diff --git a/.claude/agents/code-simplifier.md b/.claude/agents/code-simplifier.md deleted file mode 100644 index 2dfa2039d..000000000 --- a/.claude/agents/code-simplifier.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -name: code-simplifier -description: Reviews recent code changes and suggests simplifications — reduces complexity, removes dead code, flattens nesting, applies DRY. -tools: Read, Glob, Grep -model: sonnet ---- - -You are a code simplification expert for a WordPress/React plugin. - -## Your Task - -Review the recently changed files and suggest concrete simplifications. Do NOT make changes — only report findings. - -## What to Look For - -### PHP -- Duplicated logic that can be extracted into a shared method -- Deeply nested conditionals that can be flattened with early returns -- Dead code (unused variables, unreachable branches, commented-out code) -- Verbose array/string operations that WordPress has helpers for -- Overly complex conditionals that can be simplified - -### JavaScript/React -- Components doing too much — can they be split? -- Duplicated JSX or logic across components -- State that could be derived instead of stored -- useEffect with dependencies that could be simplified -- Unnecessary re-renders from inline objects/functions in props - -## Output Format - -For each finding: - -``` -### file-path:line-number -**Type:** DRY | Complexity | Dead Code | Optimization -**Current:** Brief description of current code -**Suggestion:** How to simplify (1-2 sentences) -**Impact:** Low | Medium | High -``` - -End with a summary: total findings by type and priority. - -## Rules -- Only report findings with clear, concrete improvements -- No subjective style preferences — only measurable simplifications -- Skip third-party code (`inc/lib/`, `node_modules/`, `vendor/`) -- Be precise with line numbers diff --git a/.claude/agents/srfm-block-checker.md b/.claude/agents/srfm-block-checker.md deleted file mode 100644 index ec7bbf8b9..000000000 --- a/.claude/agents/srfm-block-checker.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -name: srfm-block-checker -description: Audits SureForms block render files for security issues — checks output escaping, input sanitization, ABSPATH guards, and WPCS compliance. -tools: Read, Glob, Grep -model: sonnet ---- - -You are a WordPress security reviewer specialized in Gutenberg block rendering. - -## Your Task - -Audit SureForms block PHP files for common security and quality issues. - -## Files to Check - -1. All block render files: `inc/blocks/*/block.php` -2. All field markup files: `inc/fields/*.php` -3. The base block class: `inc/blocks/base.php` - -## Checklist for Each File - -For every file, check and report: - -### Security -- [ ] **ABSPATH guard** — File starts with `if ( ! defined( 'ABSPATH' ) ) { exit; }` -- [ ] **Output escaping** — All `echo` statements use `esc_html()`, `esc_attr()`, `wp_kses_post()`, or `wp_kses()`. Flag any raw `echo $var` without escaping (note: `// phpcs:ignore` comments may indicate intentional bypass — flag these for review) -- [ ] **Attribute sanitization** — Block attributes accessed from `$attributes` are sanitized before use -- [ ] **No direct `$_GET`/`$_POST`/`$_REQUEST`** — Block render should never read superglobals directly - -### Quality -- [ ] **`@since` tag present** — Class and methods have `@since` docblock tags -- [ ] **Namespace follows convention** — Uses `SRFM\Inc\Blocks\{BlockName}` pattern -- [ ] **Extends Base** — Block class extends `SRFM\Inc\Blocks\Base` -- [ ] **Return type** — `render()` method returns `string|bool` - -## Output Format - -For each file, output: - -``` -### block-name/block.php -- PASS: ABSPATH guard present -- WARN: Line 33 — raw echo with phpcs:ignore, verify markup() output is pre-escaped -- PASS: No superglobals used -- FAIL: Missing @since tag on render() method -``` - -End with a summary table: - -| Block | Security | Quality | Issues | -|-------|----------|---------|--------| -| input | WARN | FAIL | 2 | -| email | PASS | PASS | 0 | - -## Important - -- Be precise — include line numbers for every issue -- Distinguish FAIL (must fix) from WARN (review needed) -- Do NOT suggest code changes — only report findings -- Check ALL block files, not just a sample diff --git a/.claude/commands/sureforms:investigate.md b/.claude/commands/sureforms:investigate.md deleted file mode 100644 index d171756ec..000000000 --- a/.claude/commands/sureforms:investigate.md +++ /dev/null @@ -1,67 +0,0 @@ -# Investigate Issue - -Investigate a reported issue using parallel subagents for speed. - -## Input - -$ARGUMENTS — GitHub issue URL, Jira ticket ID, or a description of the issue. - -If no arguments provided, stop and ask: "Please provide an issue URL, Jira ticket ID, or describe the issue." - -## Step 1 — Read the Issue - -- If a GitHub URL: use `gh issue view` to read the issue -- If a Jira ticket: use the Jira MCP tools to read the ticket -- If a description: use the provided text directly - -Extract: title, description, steps to reproduce, expected vs actual behavior, screenshots, labels. - -## Step 2 — Classify - -Determine the type: -- **Bug** — something is broken, unexpected behavior, error, regression -- **Feature** — new functionality requested -- **Improvement** — enhancement to existing functionality - -Tell the user: "This looks like a **[type]**. Proceeding with [investigation/planning]." - -## Step 3 — Investigate with Subagents - -Use subagents to parallelize the investigation: - -### For Bugs: -Launch these subagents in parallel: -1. **Code Search Agent** — Search the codebase for files related to the bug (grep for keywords, function names, error messages, related hooks/filters) -2. **Test Coverage Agent** — Check if there are existing tests covering this area, identify gaps -3. **Impact Analysis Agent** — Trace all usages of the affected code to understand blast radius - -Once all agents report back, synthesize findings: -- Present the probable root cause with file path and line number -- Show which other areas might be affected -- Suggest a fix with a clear explanation -- Ask the user: "Should I apply this fix?" -- If yes — apply the fix, run linters, and suggest running relevant tests - -### For Features: -1. Enter plan mode -2. Launch subagents in parallel: - - **Pattern Discovery Agent** — Find similar existing features in the codebase to follow the same patterns - - **Impact Analysis Agent** — Identify all files that will need changes -3. Use findings to outline implementation steps -4. Present the plan for approval - -### For Improvements: -1. Launch subagents in parallel: - - **Code Search Agent** — Read the relevant existing code - - **Impact Analysis Agent** — Trace dependencies to understand what might break -2. Suggest the minimal changes needed -3. Ask the user: "Should I implement these changes?" -4. If yes — apply changes and run linters - -## Rules -- Always use subagents for investigation to maximize speed -- Show your reasoning — which files you checked and why -- Be precise with file paths and line numbers -- For bugs, prioritize finding the root cause over applying a quick patch -- Never make changes without asking first -- After any code change, run the verification checklist from CLAUDE.md diff --git a/.claude/commands/sureforms:update-readme.md b/.claude/commands/sureforms:update-readme.md deleted file mode 100644 index b3d9d8a6f..000000000 --- a/.claude/commands/sureforms:update-readme.md +++ /dev/null @@ -1,327 +0,0 @@ ---- -description: Audit and update the WordPress.org readme.txt — analyze new features, research competitors, draft changes, and create a PR ---- - -# SureForms readme.txt Update - -Comprehensive audit and update of the `readme.txt` (and `README.md`) for the WordPress.org listing. - -## Arguments - -Parse from: $ARGUMENTS - -Expected format: `[version] [--full]` - -- `version` — optional. Baseline version to analyze changes since (e.g., `2.5.0`). If not provided, auto-detect from the most recent `= X.X.X` changelog header in `readme.txt`. -- `--full` — optional flag. Perform a full rewrite of all sections instead of an incremental update. - -If no arguments are given, auto-detect the baseline and proceed with incremental mode. - -## Working Directory - -All commands and file paths are relative to the sureforms plugin root — the directory containing `sureforms.php`. - ---- - -## Phase 1: Analyze What's New - -### Step 1.1 — Determine Baseline Version - -- If `version` argument was provided, use that as the baseline. -- Otherwise, read the `== Changelog ==` section of `readme.txt`, extract the most recent version header (`= X.X.X - ... =`), and use that version as the baseline. -- Resolve the git tag: `v` (e.g., `v2.5.0`). Verify it exists with `git tag -l "v"`. -- If the tag does not exist, list available tags (`git tag --sort=-version:refname | head -10`) and ask the user to pick one. - -### Step 1.2 — Gather Changes Since Baseline - -Launch **3 Explore subagents in parallel** (single message, 3 Agent tool calls): - -**Agent 1 — Git History Analysis:** -- Run `git log v..HEAD --oneline` to get all commits since the baseline. -- Categorize commits: new features, improvements, bug fixes, refactors. -- Focus on commits touching: `inc/blocks/`, `inc/fields/`, `inc/payments/`, `inc/ai-form-builder/`, `modules/`, `src/blocks/`, `inc/page-builders/`. -- Report: list of significant user-facing changes with commit hashes and affected areas. - -**Agent 2 — Free Codebase Feature Scan:** -- List all blocks in `inc/blocks/` — compare against the readme's "Input Fields" and feature bullets. -- Check `inc/payments/` for payment providers. -- Check `inc/ai-form-builder/` for AI feature updates. -- Check `modules/` for any new modules. -- Check `inc/global-settings/` for new settings sections. -- Check `inc/rest-api.php` for new REST endpoints. -- Check `inc/page-builders/` for page builder compatibility additions. -- Report: features present in code but missing from readme. - -**Agent 3 — Pro Codebase Feature Scan:** -- Check `../sureforms-pro/inc/pro/native-integrations/integrations/` — list ALL integration JSON files and compare against the readme's integration list. -- Check `../sureforms-pro/inc/blocks/` for pro-only blocks. -- Check `../sureforms-pro/inc/pro/` subdirectories for pro features (conversational-form, save-resume, signature, zapier, etc.). -- Check `../sureforms-pro/inc/extensions/` for conditional logic, field-restrictions, etc. -- If `../sureforms-pro/` does not exist, skip this agent and warn: "Pro plugin not found. Only free features will be analyzed." -- Report: pro features/integrations present in code but missing from readme. - -### Step 1.3 — Present Gap Analysis - -Merge all agent results and present a table: - -``` -┌─────────────────────────────────────┬────────┬──────────────────────────────┐ -│ Area │ Status │ Details │ -├─────────────────────────────────────┼────────┼──────────────────────────────┤ -│ Free field types match readme │ ✅/❌ │ Code: N, Readme: M │ -│ Pro blocks mentioned │ ✅/❌ │ Missing: ... │ -│ Integration list up to date │ ✅/❌ │ Missing: ... │ -│ Pro features all listed │ ✅/❌ │ Missing: ... │ -│ Payment providers accurate │ ✅/❌ │ │ -│ Page builder compat listed │ ✅/❌ │ │ -│ "Tested up to" WP version │ ✅/❌ │ Readme: X.X, Current: Y.Y │ -│ New features since v │ ℹ️ │ N features found │ -└─────────────────────────────────────┴────────┴──────────────────────────────┘ -``` - -Tell the user: "Phase 1 complete. Found **N gaps** and **M new features** to incorporate. Proceeding to competitor research." - ---- - -## Phase 2: Competitor & Market Research - -### Step 2.1 — Research Competitor READMEs - -Use **WebSearch** to run these searches in parallel: - -1. `"WPForms" site:wordpress.org/plugins description features` -2. `"Gravity Forms" site:wordpress.org/plugins description features` -3. `"Fluent Forms" site:wordpress.org/plugins fluentform features` -4. `"Formidable Forms" site:wordpress.org/plugins description features` -5. `"Contact Form 7" site:wordpress.org/plugins description` -6. `"WordPress.org readme.txt best practices 2025 2026"` - -For each competitor, use **WebFetch** on the top result URL if needed to extract: -- How they structure feature lists -- Marketing language and benefit-focused copy -- How they distinguish free vs pro features -- FAQ structure and common questions -- Trust signals (install counts, star ratings, testimonials) - -### Step 2.2 — Present Research Summary - -Show a comparison table: - -``` -Feature Highlighted by Competitors │ SureForms Has It? │ In Readme? -──────────────────────────────────────┼───────────────────┼────────── -Conditional Logic │ ✅ (Pro) │ ✅/❌ -File Upload │ ✅ (Pro) │ ✅/❌ -Drag & Drop Builder │ ✅ (Free) │ ✅/❌ -... │ │ -``` - -Also note: -- SEO-relevant keywords competitors use that SureForms is missing. -- Structural patterns that work well (comparison tables, benefit-focused headers). -- Any WordPress.org formatting trends. - -Tell the user: "Phase 2 complete. Ready to draft the update. Shall I proceed?" - -**⏸️ WAIT for user confirmation before proceeding to Phase 3.** - ---- - -## Phase 3: Draft the Update - -### Step 3.1 — Determine Scope - -- If `--full` flag was passed: draft ALL sections from scratch. -- Otherwise: draft only sections that need changes based on Phase 1 and Phase 2 findings. - -### Step 3.2 — Draft Each Section - -For each section that needs updating, present in this format: - -``` -━━━ SECTION: [Section Name] ━━━ - -── CURRENT ── -[Current text from readme.txt, abbreviated if very long] - -── PROPOSED ── -[New text] - -── CHANGES ── -• Added: [what was added] -• Removed: [what was removed, if any] -• Reworded: [what was reworded and why] -``` - -Sections to evaluate (in order): - -1. **Plugin header** — Stable tag, Tested up to, Tags (optimize for WordPress.org search) -2. **Short description** — Must be under 150 characters. Make it compelling and keyword-rich. -3. **Long description** — Feature bullets, AI section, payment section, field types list -4. **Premium features section** — Integration list, pro-only features, pro field types -5. **FAQ** — Add questions for new features, update outdated answers -6. **3rd Party Services** — Add any new external services used -7. **Compatibility lists** — Themes and plugins - -### Step 3.3 — WordPress.org Compliance Check - -Verify the draft against WordPress.org readme standards: -- ✅ Short description is under 150 characters -- ✅ No disallowed HTML in description -- ✅ `== Changelog ==` section exists and is properly formatted -- ✅ `== Frequently Asked Questions ==` uses correct `= Question =` format -- ✅ No broken markdown that WordPress.org would render incorrectly -- ✅ Stable tag matches the version in the main plugin file - -### Step 3.4 — Present Full Draft - -Present all drafted sections together with a summary: - -``` -📋 Readme Update Summary -───────────────────────────────────── -Sections modified: N -Lines added: +X -Lines removed: -Y -New features listed: Z -New integrations: W -New FAQ entries: Q -WP.org compliance: ✅ All checks pass -``` - -Tell the user: "Please review the draft above. You can: -1. **Approve** — proceed to apply changes and create PR -2. **Request edits** — tell me what to change -3. **Abort** — cancel the update" - -**⏸️ WAIT for explicit user approval. Do NOT proceed without it.** - ---- - -## Phase 4: User Review & Iteration - -This phase is a loop: - -1. If user **requests edits** → apply them to the draft and re-present the affected sections. Ask again for approval. -2. If user **approves** → proceed to Phase 5. -3. If user **aborts** → stop and report "Readme update cancelled. No changes were made." - ---- - -## Phase 5: Apply & Create PR - -### Step 5.1 — Create Branch - -```bash -git fetch origin -git checkout dev -git pull origin dev -git checkout -b chore/update-readme -``` - -If `chore/update-readme` already exists, append a date suffix: `chore/update-readme-YYYYMMDD`. - -### Step 5.2 — Apply Changes - -Edit `readme.txt` with the approved draft changes. Apply section by section — do NOT rewrite sections that weren't modified. - -### Step 5.3 — Regenerate README.md - -```bash -npx grunt readme -``` - -Verify `README.md` was updated. If `grunt readme` fails, check that `npm install` has been run and `grunt-wp-readme-to-markdown` is in `devDependencies`. - -### Step 5.4 — Verify - -Read the updated `readme.txt` and confirm: -- Stable tag matches current plugin version -- Tested up to is correct -- Short description is under 150 characters -- All sections are properly formatted -- No stray draft markers or debug text - -### Step 5.5 — Commit and Push - -```bash -git add readme.txt README.md -git commit -m "chore: update readme.txt for WordPress.org listing - -Update plugin description, feature lists, integrations, FAQ, -and compatibility information to reflect current capabilities. - -Co-Authored-By: Claude Opus 4.6 (1M context) " -git push -u origin chore/update-readme -``` - -### Step 5.6 — Create PR - -```bash -gh pr create \ - --title "chore: Update readme.txt for WordPress.org" \ - --base dev \ - --body "$(cat <<'EOF' -## Summary -- Updated readme.txt to reflect current plugin capabilities -- Regenerated README.md via `grunt readme` - -## What Changed -[List each section that was modified and what changed] - -## Research Notes -- Competitor READMEs reviewed: WPForms, Gravity Forms, Fluent Forms, Formidable, CF7 -- Gaps identified and addressed: [count] - -## Test Plan -- [ ] Preview on WordPress.org readme validator -- [ ] Verify all links in the readme are working -- [ ] Confirm feature claims match actual plugin capabilities -- [ ] Verify short description is under 150 characters - -🤖 Generated with [Claude Code](https://claude.com/claude-code) -EOF -)" -``` - -### Step 5.7 — Final Report - -``` -✅ Readme Update Complete -───────────────────────────────────────── -✅ Phase 1: Gap analysis complete -✅ Phase 2: Competitor research complete -✅ Phase 3: Draft created -✅ Phase 4: User review passed -✅ Phase 5: Changes applied -✅ Branch: chore/update-readme (from dev) -✅ readme.txt updated -✅ README.md regenerated -✅ PR: - -Sections updated: - • [List each modified section] -``` - ---- - -## Rules - -- **NEVER modify readme.txt without user approval.** Always present the full draft first. -- **NEVER invent features.** Only document what actually exists in the codebase. -- **NEVER modify changelog entries.** The changelog is managed by `/sureforms:version-bump`. -- **ALWAYS branch from `dev`**, never from `master` or `next-release`. -- **ALWAYS run `npx grunt readme`** after modifying `readme.txt` to regenerate `README.md`. -- **ALWAYS verify feature claims** by checking the actual codebase, not just commit messages. -- **Keep the 150-character limit** for the WordPress.org short description. -- **Maintain the existing voice and tone** — professional, benefit-focused, not overly salesy. - -## Error Recovery - -| Symptom | Fix | -|---------|-----| -| `grunt readme` fails | Run `npm install` first; verify `grunt-wp-readme-to-markdown` is in `devDependencies` | -| Branch already exists | Append date suffix: `chore/update-readme-YYYYMMDD` | -| Pro plugin not found at `../sureforms-pro/` | Skip pro analysis, warn user, document only free features | -| Git tag not found | List available tags and ask user to pick one | -| WebSearch unavailable | Skip Phase 2, proceed with codebase analysis only, note the limitation | diff --git a/.claude/commands/sureforms:version-bump.md b/.claude/commands/sureforms:version-bump.md deleted file mode 100644 index 5f48a2e1f..000000000 --- a/.claude/commands/sureforms:version-bump.md +++ /dev/null @@ -1,204 +0,0 @@ -# SureForms Release Version Bump - -Automates the SureForms version bump release checklist end-to-end. - -## Arguments - -Parse from: $ARGUMENTS - -Expected format: ` [pro-version] [branch]` - -- `version` — **required**. Version number to release (e.g., `2.5.2`). If not provided, stop immediately and tell the user: `"Version number is required. Usage: /sureforms:version-bump [pro-version] [branch]"` -- `pro-version` — optional. Version to set for `SRFM_PRO_RECOMMENDED_VER`. If not provided, ask: `"What should SRFM_PRO_RECOMMENDED_VER be set to? (default: )"` and default to the core version if the user presses Enter or skips. -- `branch` — optional. Source branch to cut from — must be `dev` or `next-release`. Default: `next-release`. - -## Working Directory - -All commands and file paths are relative to the sureforms plugin root. Detect it as the directory containing `sureforms.php` — typically the current working directory or a `sureforms/` subdirectory of it. - ---- - -## Steps - -### Step 1 — Validate Arguments - -- Extract `version`, `pro-version`, and `branch` from `$ARGUMENTS`. -- Abort with usage message if `version` is missing. -- If `branch` is provided but not `dev` or `next-release`, abort: `"Invalid branch. Must be 'dev' or 'next-release'."` -- If `pro-version` was not passed as an argument, prompt the user for it (default: same as `version`). - ---- - -### Step 2 — Create Version Bump Branch - -Run from the sureforms plugin root: - -```bash -git fetch origin -git checkout -git pull origin -git checkout -b version-bump- -``` - -Confirm the new branch was created successfully before continuing. - ---- - -### Step 3 — Run Grunt Version Bump - -```bash -npx grunt version-bump --ver= -``` - -This runs `bumpup` (updates `package.json`) and `replace` (updates version strings in `readme.txt` and `sureforms.php`). - ---- - -### Step 4 — Verify package.json and package-lock.json - -- Read `package.json` → confirm `"version"` equals ``. -- Read `package-lock.json` → confirm the top-level `"version"` and `packages[""].version` both equal ``. -- If `package-lock.json` is out of sync, patch **only** the two version string values — do not alter any whitespace, indentation, line endings, or surrounding characters: - - Top-level: replace only the value in `"version": ""` → `"version": ""` - - Inside `"packages": { "": { ... } }`: replace only the value in `"version": ""` → `"version": ""` - - The resulting diff must show **exactly 2 lines changed** — only the version string on each line. No other bytes in the file should change. - - Do **not** run `npm install` — dependency conflicts can cause it to fail and it is not needed for this change. - ---- - -### Step 5 — Verify readme.txt — Stable tag - -- Read `readme.txt` and confirm `Stable tag: `. -- If incorrect, edit the line to the correct value. - ---- - -### Step 6 — Verify readme.txt — Tested up to - -- Fetch the latest WordPress version by running: - ```bash - curl -s "https://api.wordpress.org/core/version-check/1.7/" | grep -o '"version":"[^"]*"' | head -1 | cut -d'"' -f4 - ``` -- Store the result as ``. -- Read `readme.txt` and check the current `Tested up to:` value. -- If it does **not** match ``, update the line to `Tested up to: `. -- Confirm the final value in the file after any edit. - ---- - -### Step 7 — Verify sureforms.php — Plugin Header Version - -- Read `sureforms.php` lines 1–15. -- Confirm `Version: ` in the plugin header comment. -- If incorrect, edit to the correct value. - ---- - -### Step 8 — Verify SRFM_VER - -- Confirm `define( 'SRFM_VER', '' );` in `sureforms.php`. -- If incorrect, edit to the correct value. - ---- - -### Step 9 — Verify SRFM_PRO_RECOMMENDED_VER - -- Confirm `define( 'SRFM_PRO_RECOMMENDED_VER', '' );` in `sureforms.php`. -- If incorrect, edit to the correct value. - ---- - -### Step 10 — Verify Changelog Entry in readme.txt - -- Read the `== Changelog ==` section of `readme.txt`. -- **Check for a placeholder entry** matching `= x.x.x =` (case-insensitive): - - If **found**: ask the user: `"What is the release date for ? (e.g. 19th February 2026)"`. Replace the placeholder header with `= - =`, matching the exact formatting of existing changelog entries (spaces around the `=`, date style matching what is already present). -- **Check for an entry** matching `= -`: - - If **missing** after the above: warn the user and **pause** — they must add a changelog entry for `` before the process can continue. The expected format is: - ``` - = - DD Month YYYY = - * New: ... - * Improvement: ... - * Fix: ... - ``` - - If **found**: confirm the date is present and the format matches SureForms standards. -- **Polish each bullet line** of the `` entry: - - Fix any grammatical or spelling errors. - - Rewrite passive or vague phrasing into clear, active, benefit-led language (e.g. "Fixed bug where X" → "Fix: Resolved an issue where X to ensure Y"). - - Keep the improvements **subtle and factual** — do not invent features or exaggerate. The prefix (`New:`, `Improvement:`, `Fix:`) must stay unchanged. - - Show the user a before/after diff of any lines you changed and ask for confirmation before writing. -- Then sort the bullet lines of the `` entry so they follow this group order: - 1. `* New:` lines - 2. `* Improvement:` lines - 3. `* Fix:` lines - 4. Any other prefixes come last -- Within each group, sort lines **alphabetically** (case-insensitive) by the text that follows the prefix. -- Write the re-ordered lines back to `readme.txt` if any reordering was needed, and report whether changes were made. - ---- - -### Step 11 — Trim Changelog to 3 Entries - -- Parse the `== Changelog ==` section of `readme.txt` to identify all version entries (lines matching `= X.X.X - ...=`). -- Keep only the **3 most recent** entries (the new `` entry plus the 2 entries immediately before it), including all their bullet lines. -- Remove all older entries that follow the 3rd entry, up to but not including the next `==` section header. -- Write the trimmed content back to `readme.txt`. -- Report how many entries were removed (e.g., "Removed 4 old changelog entries"). - ---- - -### Step 12 — Generate README.md - -```bash -npx grunt readme -``` - ---- - -### Step 13 — Generate POT File - -```bash -npm run makepot -``` - ---- - -### Step 14 — Commit and Open PR - -```bash -git add -A -git commit -m "Version Bump " -git push origin version-bump- -gh pr create \ - --repo brainstormforce/sureforms \ - --title "Version Bump " \ - --base \ - --label "Release PR,skip-title-check" -``` - ---- - -### Step 15 — Final Report - -Print a status summary for every step, then the PR URL: - -``` -Release Bump: -───────────────────────────────────────── -✅ Branch created: version-bump- (from ) -✅ grunt version-bump: completed -✅ package.json: -✅ package-lock.json: -✅ readme.txt Stable tag: -✅ readme.txt Tested up to: -✅ sureforms.php Version: -✅ SRFM_VER: -✅ SRFM_PRO_RECOMMENDED_VER: -✅ Changelog entry polished, confirmed, and sorted (New → Improvement → Fix, alphabetical within groups) -✅ Changelog trimmed to 3 entries (N removed) -✅ README.md generated -✅ POT file generated -✅ PR opened: -``` - -If any step failed (❌) or needs attention (⚠️), list the required actions at the bottom. diff --git a/.claude/commands/sync-release-branches.md b/.claude/commands/sync-release-branches.md deleted file mode 100644 index 210f07139..000000000 --- a/.claude/commands/sync-release-branches.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -allowed-tools: Bash(git:*) -auto-approve: true -description: Sync master into dev and dev into next-release after a release ---- - -# Sync Release Branches - -After a release, sync the three main branches: master → dev → next-release. - -## Instructions - -Follow these steps sequentially. If any step fails, jump to the Error Recovery section. - -### Step 1: Record current state - -1. Record the current branch: -```bash -git rev-parse --abbrev-ref HEAD -``` -Store this as ORIGINAL_BRANCH. - -2. Check for uncommitted changes: -```bash -git status --porcelain -``` -If there is ANY output, stash the changes: -```bash -git stash -``` -Store HAD_STASH=true. Otherwise HAD_STASH=false. - -### Step 2: Fetch latest from remote - -```bash -git fetch origin -``` - -### Step 3: Update master - -```bash -git checkout master -git pull origin master -``` - -### Step 4: Merge master into dev - -```bash -git checkout dev -git pull origin dev -git pull origin master -``` - -If there are merge conflicts, STOP. Tell the user: "Merge conflicts while merging master into dev. Please resolve them manually." List the conflicting files. - -If merge succeeds: -```bash -git push origin dev -``` - -### Step 5: Merge dev into next-release - -```bash -git checkout next-release -git pull origin next-release -git pull origin dev -``` - -If there are merge conflicts, STOP. Tell the user: "Merge conflicts while merging dev into next-release. Please resolve them manually." List the conflicting files. - -If merge succeeds: -```bash -git push origin next-release -``` - -### Step 6: Return to original branch - -```bash -git checkout ${ORIGINAL_BRANCH} -``` - -If HAD_STASH=true: -```bash -git stash pop -``` - -Report success: "Branch sync complete. master → dev → next-release are now in sync." - -## Error Recovery - -If any step fails after switching branches: -1. Switch back to original branch: `git checkout ${ORIGINAL_BRANCH}` -2. Restore stash if needed: `git stash pop` (only if HAD_STASH=true) -3. Report the error to the user. - -NEVER force-push. If a merge has conflicts, stop and let the user resolve them. diff --git a/.claude/settings.json b/.claude/settings.json deleted file mode 100644 index 02b620f27..000000000 --- a/.claude/settings.json +++ /dev/null @@ -1,73 +0,0 @@ -{ - "hooks": { - "PreToolUse": [ - { - "matcher": "Bash", - "hooks": [ - { - "type": "command", - "command": "if echo \"$CLAUDE_BASH_COMMAND\" | grep -q '^git commit'; then echo '--- PreCommit: Running checks ---' && composer lint 2>&1 | tail -5 && composer phpstan 2>&1 | tail -5 && composer insights 2>&1 | tail -5; fi" - } - ] - } - ], - "PostToolUse": [ - { - "matcher": "Write|Edit", - "hooks": [ - { - "type": "command", - "command": "case \"$CLAUDE_FILE_PATH\" in *.php) vendor/bin/phpcbf \"$CLAUDE_FILE_PATH\" 2>/dev/null || true;; *.js|*.jsx) npx wp-scripts lint-js --fix \"$CLAUDE_FILE_PATH\" 2>/dev/null || true;; *.scss|*.css) npx wp-scripts lint-style --fix \"$CLAUDE_FILE_PATH\" 2>/dev/null || true;; esac" - } - ] - } - ] - }, - "permissions": { - "allow": [ - "Bash(npm run lint-js*)", - "Bash(npm run lint-css*)", - "Bash(npm run pretty*)", - "Bash(npm run build*)", - "Bash(npm run start)", - "Bash(npm run test:unit)", - "Bash(npm run test:e2e)", - "Bash(npm run play:*)", - "Bash(npm run makepot)", - "Bash(npm run i18n:*)", - "Bash(composer lint*)", - "Bash(composer format*)", - "Bash(composer test*)", - "Bash(composer phpstan*)", - "Bash(composer insights*)", - "Bash(npx playwright test*)", - "Bash(npx grunt *)", - "Bash(composer install*)", - "Bash(npm install*)", - "Bash(curl *)", - "Bash(git status*)", - "Bash(git diff*)", - "Bash(git log*)", - "Bash(git branch*)", - "Bash(git show*)", - "Bash(git stash*)", - "Bash(git checkout*)", - "Bash(git add*)", - "Bash(git commit*)", - "Bash(git merge*)", - "Bash(git rebase*)", - "Bash(git fetch*)", - "Bash(git pull*)", - "Bash(gh pr *)", - "Bash(gh issue *)", - "Bash(gh api *)", - "Bash(ls *)", - "Bash(wc *)", - "Bash(which *)", - "Bash(node -e *)", - "Bash(php -r *)", - "Bash(wp *)" - ], - "deny": [] - } -} diff --git a/.github/workflows/push-asset-readme-update.yml b/.github/workflows/push-asset-readme-update.yml deleted file mode 100644 index e2d2932be..000000000 --- a/.github/workflows/push-asset-readme-update.yml +++ /dev/null @@ -1,23 +0,0 @@ -name: Plugin asset/readme update -on: - push: - branches: - - master - paths: - - 'readme.txt' - - '.wordpress-org/**' -jobs: - master: - name: Push to main - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@master - - name: Build - run: | - npm install --force - npm run build - - name: WordPress.org plugin asset/readme update - uses: 10up/action-wordpress-plugin-asset-update@stable - env: - SVN_PASSWORD: ${{ secrets.SVN_PASSWORD }} - SVN_USERNAME: ${{ secrets.SVN_USERNAME }} diff --git a/.github/workflows/push-to-deploy.yml b/.github/workflows/push-to-deploy.yml deleted file mode 100644 index 039c0107b..000000000 --- a/.github/workflows/push-to-deploy.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: Deploy to WordPress.org -on: - release: - types: [published] -jobs: - tag: - name: New tag - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@master - - name: Build - run: | - npm install --force - npm run build - - name: WordPress Plugin Deploy - uses: 10up/action-wordpress-plugin-deploy@master - env: - SVN_USERNAME: ${{ secrets.SVN_USERNAME }} - SVN_PASSWORD: ${{ secrets.SVN_PASSWORD }} diff --git a/.github/workflows/release-pr-template.yml b/.github/workflows/release-pr-template.yml deleted file mode 100644 index b296fcd31..000000000 --- a/.github/workflows/release-pr-template.yml +++ /dev/null @@ -1,41 +0,0 @@ - -name: Update checklist for Release PR - -on: - pull_request: - types: [ labeled ] - -jobs: - update_pr: - name: Update checklist for Release PR - if: ${{ github.event.label.name == 'Release PR' }} - runs-on: ubuntu-latest - steps: - - name: Check Branch - id: check-branch - run: | - if [[ ${{ github.base_ref }} == master || ${{ github.base_ref }} == dev || ${{ github.base_ref }} == next-release ]]; then - echo ::set-output name=match::true - fi - - uses: tzkhan/pr-update-action@v2 - if: steps.check-branch.outputs.match == 'true' - with: - repo-token: "${{ secrets.GITHUB_TOKEN }}" - base-branch-regex: '[A-Za-z\d-_.\\/]+' - head-branch-regex: '[A-Za-z\d-_.\\/]+' - body-template: | - --- - ### Release Checklist: - - [ ] Run to update version number : `grunt version-bump --ver=` - - [ ] Verify the version number in `package.json` and `package-lock.json` - - [ ] Verify `Stable tag` is `` in readme.txt - - [ ] Verify `Tested upto` is set to latest tested version of WordPress - - [ ] Update version in `sureforms.php` in plugin description - - [ ] Verify constant `SRFM_VER` in `sureforms.php` with latest version of SureForms - - [ ] Verify constant `SRFM_PRO_RECOMMENDED_VER` in `sureforms.php` with compatible version of SureForms Pro - - [ ] Verify changelog `date` and `content` as per SureForms standards - - [ ] Generate README.md : `grunt readme` - - [ ] Generate POT file : `npm run makepot` - --- - body-update-action: 'suffix' - body-uppercase-base-match: false diff --git a/.github/workflows/release-tag-draft.yml b/.github/workflows/release-tag-draft.yml deleted file mode 100644 index c1ad7f48d..000000000 --- a/.github/workflows/release-tag-draft.yml +++ /dev/null @@ -1,83 +0,0 @@ -name: Create a release tag - -on: - push: - branches: - - master - paths: - # Release happens only if the version number in main file is updated. - - 'sureforms.php' - -jobs: - build-artifact: - name: Build Release Artifact - runs-on: ubuntu-22.04 - outputs: - current_version: ${{ steps.get_version.outputs.current_version }} - steps: - - name: Checkout code - uses: actions/checkout@v6 - with: - ref: master - - - name: Initialize mandatory git config - run: | - git config user.name "github-actions[bot]" - git config user.email "github-actions[bot]@users.noreply.github.com" - - - name: Compute current version - id: get_version - run: | - CURRENT_VERSION=$(jq --raw-output '.version' package.json) - echo "current_version=${CURRENT_VERSION}" >> $GITHUB_OUTPUT - - - name: Install Node.js and npm - uses: actions/setup-node@v6 - with: - node-version: '18.15.0' - cache: 'npm' - - - name: Install dependencies - run: npm ci --legacy-peer-deps - - - name: Build - run: npm run build - - - name: Build plugin ZIP file - run: bash ./bin/build-zip.sh - - - name: Upload artifact - uses: actions/upload-artifact@v7 - with: - name: sureforms-plugin - path: ./artifact/sureforms.zip - - create-release: - name: Create Release Draft and Attach Asset - needs: [build-artifact] - runs-on: ubuntu-latest - steps: - - name: Set Release Version - id: get_release_version - env: - VERSION: ${{ needs.build-artifact.outputs.current_version }} - run: echo "version=$(echo $VERSION | cut -d / -f 3 | sed 's/-rc./ RC/' )" >> $GITHUB_OUTPUT - - - name: Download Plugin Zip Artifact - uses: actions/download-artifact@v8 - with: - name: sureforms-plugin - - - name: Create Release Draft - id: create_release - uses: softprops/action-gh-release@v2 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - name: Version ${{ steps.get_release_version.outputs.version }} - tag_name: "v${{ steps.get_release_version.outputs.version }}" - target_commitish: master - draft: true - prerelease: false - body: 'Replace changelog here' - files: ./sureforms.zip diff --git a/.github/workflows/update-translations.yml b/.github/workflows/update-translations.yml deleted file mode 100644 index e9943b33b..000000000 --- a/.github/workflows/update-translations.yml +++ /dev/null @@ -1,176 +0,0 @@ -name: Update Translations - -on: - issue_comment: - types: [created] - -# Only allow one i18n job per PR at a time. -concurrency: - group: i18n-${{ github.event.issue.number }} - cancel-in-progress: true - -permissions: - contents: write - pull-requests: write - issues: write - -jobs: - i18n: - if: | - github.event.comment.body == '/i18n' && - github.event.issue.pull_request != null - runs-on: ubuntu-latest - - steps: - # Acknowledge the command with a reaction - - name: Add reaction to comment - uses: peter-evans/create-or-update-comment@v5 - with: - comment-id: ${{ github.event.comment.id }} - reactions: rocket - - # Get PR metadata (head branch, fork detection) - - name: Get PR details - id: pr - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - PR_JSON=$(gh api repos/${{ github.repository }}/pulls/${{ github.event.issue.number }}) - HEAD_REF=$(echo "$PR_JSON" | jq -r '.head.ref') - HEAD_REPO=$(echo "$PR_JSON" | jq -r '.head.repo.full_name') - IS_FORK=$(echo "$PR_JSON" | jq -r '.head.repo.full_name != .base.repo.full_name') - - echo "head_ref=$HEAD_REF" >> "$GITHUB_OUTPUT" - echo "head_repo=$HEAD_REPO" >> "$GITHUB_OUTPUT" - echo "is_fork=$IS_FORK" >> "$GITHUB_OUTPUT" - - # Block fork PRs — secrets are not available - - name: Block fork PRs - if: steps.pr.outputs.is_fork == 'true' - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - gh pr comment "${{ github.event.issue.number }}" \ - --repo "${{ github.repository }}" \ - --body "**i18n update skipped**: This PR is from a fork. Translation updates require repository secrets and cannot run on fork PRs." - exit 1 - - # Notify that the workflow has started - - name: Comment starting - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - gh pr comment "${{ github.event.issue.number }}" \ - --repo "${{ github.repository }}" \ - --body "**Translations update started** :hourglass_flowing_sand: - Building and generating translations for 7 languages (nl, fr, de, es, it, pt, pl)... - [View workflow run](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }})" - - # Checkout the actual PR branch (not default branch) - - name: Checkout PR branch - uses: actions/checkout@v6 - with: - ref: ${{ steps.pr.outputs.head_ref }} - fetch-depth: 0 - token: ${{ secrets.GITHUB_TOKEN }} - - - name: Set up Node.js - uses: actions/setup-node@v6 - with: - node-version: '18.15.0' - cache: 'npm' - - - name: Install WP-CLI - run: | - curl -sSfL -o wp-cli.phar https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar - chmod +x wp-cli.phar - sudo mv wp-cli.phar /usr/local/bin/wp - wp --info - - - name: Install dependencies - run: npm ci --legacy-peer-deps - - # Build first so makepot picks up all the latest strings - - name: Build - run: npm run build - - # Run the full i18n pipeline (makepot -> po -> gpt-translate -> mo -> json) - - name: Run i18n script - env: - OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} - run: | - set -euo pipefail - bash bin/i18n.sh - - # Check if any files changed - - name: Check for changes - id: changes - run: | - if git diff --quiet; then - echo "changed=false" >> "$GITHUB_OUTPUT" - else - echo "changed=true" >> "$GITHUB_OUTPUT" - CHANGED_FILES=$(git diff --name-only | wc -l | tr -d ' ') - echo "file_count=$CHANGED_FILES" >> "$GITHUB_OUTPUT" - fi - - # Create a separate branch, commit, push, and open a PR - - name: Commit, push, and create PR - if: steps.changes.outputs.changed == 'true' - id: create_pr - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - git config user.name "github-actions[bot]" - git config user.email "github-actions[bot]@users.noreply.github.com" - - BRANCH="i18n/${{ steps.pr.outputs.head_ref }}" - git checkout -b "$BRANCH" - git add . - git commit -m "chore: update i18n translations - - Auto-generated by /i18n command on PR #${{ github.event.issue.number }}" - git push origin "$BRANCH" - - PR_URL=$(gh pr create \ - --title "chore: update i18n translations" \ - --body "This PR updates translation files for 7 languages (nl, fr, de, es, it, pt, pl). - - Triggered by \`/i18n\` command on #${{ github.event.issue.number }}." \ - --base "${{ steps.pr.outputs.head_ref }}" \ - --head "$BRANCH") - - echo "pr_url=$PR_URL" >> "$GITHUB_OUTPUT" - - # Comment on the original PR with a link to the translations PR - - name: Comment success - if: steps.changes.outputs.changed == 'true' - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - gh pr comment "${{ github.event.issue.number }}" \ - --repo "${{ github.repository }}" \ - --body "**Translations PR created** :white_check_mark: - ${{ steps.changes.outputs.file_count }} files changed across 7 languages. - Review and merge: ${{ steps.create_pr.outputs.pr_url }}" - - - name: Comment no changes - if: steps.changes.outputs.changed == 'false' - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - gh pr comment "${{ github.event.issue.number }}" \ - --repo "${{ github.repository }}" \ - --body "**No translation changes** :white_check_mark: - All translation files are already up to date." - - # On any failure, comment with a link to the logs - - name: Comment failure - if: failure() - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - gh pr comment "${{ github.event.issue.number }}" \ - --repo "${{ github.repository }}" \ - --body "**Translation update failed** :x: - [View workflow logs](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}) for details." diff --git a/.scripts/git-hooks/pre-commit b/.scripts/git-hooks/pre-commit deleted file mode 100644 index ce0ba23ea..000000000 --- a/.scripts/git-hooks/pre-commit +++ /dev/null @@ -1,106 +0,0 @@ -#!/bin/sh - -# Check PHPCS before commit -# Ref - -# https://github.com/smgladkovskiy/phpcs-git-pre-commit/blob/master/src/pre-commit -# https://dev.to/akdevcraft/git-pre-hook-pre-commit-hook-with-npm-project-44p2 - -echo "***** Running pre-commit ******" - -PROJECT=$(php -r "echo dirname(dirname(dirname(realpath('$0'))));") -STAGED_FILES_CMD=$(git diff --cached --name-only --diff-filter=ACMR HEAD | grep \\.php) -UNSTAGED_FILES_CMD=$(git diff --name-only --diff-filter=ACMR | grep \\.php) - -# Determine if a file list is passed -if [ "$#" -eq 1 ] -then - oIFS=$IFS - IFS=' - ' - SFILES="$1" - IFS=$oIFS -fi - -SFILES=${SFILES:-$STAGED_FILES_CMD} - -STAGED_BUT_MODIFIED_FILES=$(php -r "\$sfiles=(explode(\"\\n\", '$SFILES'));\$usfiles=(explode(\"\\n\", '$UNSTAGED_FILES_CMD'));echo implode(\"\\n\",array_intersect(\$usfiles,\$sfiles));") - -if [ -z "$STAGED_BUT_MODIFIED_FILES" ]; then - echo "OK" -else - echo "Files staged but then modified:\n" - echo "${STAGED_BUT_MODIFIED_FILES}" - exit 1 -fi - -# echo $PROJECT -# echo $SFILES - -echo "Checking files for PHP Lint..." -for FILE in $SFILES -do - # echo "$PROJECT/$FILE" - php -l -d display_errors=0 "./$FILE" - if [ $? != 0 ] - then - echo "Fix the error before commit." - exit 1 - fi - FILES="$FILES ./$FILE" -done - -if [ "$FILES" = "" ] -then - echo "All good..." - exit 0 -fi - -if [ "$FILES" != "" ] -then - echo "Running PHPCS (Code Sniffer) Check..." - composer lint -n $FILES - if [ $? != 0 ] - then - echo "Please fix the PHPCS errors before commit!" - echo " => Run this command for automatic fixes." - echo " composer format-- $FILES" - exit 1 - fi -fi - -if [ "$FILES" != "" ] -then - echo "Running PHPStan Check..." - composer phpstan - if [ $? != 0 ] - then - echo "Please fix the PHPStan errors before commit!" - echo " => Run this command to check PHPStan errors." - echo " composer phpstan" - exit 1 - fi -fi - -if [ "$FILES" != "" ] -then - echo "Running CSS linting issues..." - npm run lint-css - if [ $? != 0 ] - then - echo "Please fix the CSS issues before commit!" - exit 1 - fi -fi - -if [ "$FILES" != "" ] -then - echo "Running JS linting issues..." - npm run lint-js - if [ $? != 0 ] - then - echo "Please fix the JS issues before commit!" - exit 1 - fi -fi - -exit $? diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md deleted file mode 100644 index 2afeea1d5..000000000 --- a/ARCHITECTURE.md +++ /dev/null @@ -1,355 +0,0 @@ -# SureForms Architecture Documentation - -## Table of Contents - -1. [Introduction](#introduction) -2. [System Architecture](#system-architecture) -3. [Core Components](#core-components) -4. [Data Flow](#data-flow) -5. [Form Building Process](#form-building-process) -6. [AI Integration](#ai-integration) -7. [Form Submission and Processing](#form-submission-and-processing) -8. [Security Features](#security-features) -9. [Extension Points](#extension-points) -10. [Technical Debt and Improvement Areas](#technical-debt-and-improvement-areas) -11. [Development Guidelines](#development-guidelines) - -## Introduction - -SureForms is a modern WordPress form builder plugin designed to provide an intuitive, no-code form building experience. It leverages WordPress's native block editor (Gutenberg) to create a seamless form building experience that integrates naturally with the WordPress ecosystem. - -### Key Features - -- **Native WordPress Integration**: Built on top of the WordPress block editor -- **AI-Powered Form Generation**: Create forms quickly using AI suggestions -- **No-Code Flexibility**: Advanced features without requiring coding knowledge -- **Mobile-First Design**: Responsive forms that work across all devices -- **Modern UI/UX**: Clean, intuitive interface for both admins and users -- **Security Features**: Anti-spam protection, GDPR compliance, and data security -- **Extensibility**: Developer-friendly architecture with hooks and filters - -## System Architecture - -SureForms follows a modular architecture pattern, separating concerns into distinct components that interact through well-defined interfaces. - -```mermaid -graph TD - A[WordPress Core] --> B[SureForms Plugin] - B --> C[Admin Interface] - B --> D[Form Builder] - B --> E[Form Renderer] - B --> F[Form Processor] - B --> G[Database Layer] - B --> H[AI Integration] - - C --> I[Settings Management] - C --> J[Form Management] - C --> K[Entry Management] - - D --> L[Block Editor Integration] - D --> M[Form Templates] - D --> N[Field Components] - - E --> O[Frontend Rendering] - E --> P[Validation] - - F --> Q[Submission Handler] - F --> R[Email Notifications] - F --> S[Confirmation Handler] - - G --> T[Custom Post Types] - G --> U[Custom Database Tables] - G --> V[Metadata Storage] - - H --> W[AI Form Generator] - H --> X[AI Middleware] -``` - -## Core Components - -### Plugin Loader (`Plugin_Loader`) - -The central initialization class that bootstraps the plugin, registers hooks, and loads core components. It follows a singleton pattern to ensure only one instance exists. - -### Post Types (`Post_Types`) - -Registers and manages custom post types for forms and entries. Handles the admin UI customizations for these post types. - -### Form Submit (`Form_Submit`) - -Processes form submissions through REST API endpoints, validates input data, handles file uploads, processes anti-spam measures, and triggers email notifications. - -### AI Form Builder (`AI_Form_Builder`) - -Integrates with AI services to generate form structures based on user prompts. Communicates with middleware services to process AI requests. - -### Database Layer - -Custom database tables for storing form entries and related data, separate from the WordPress post tables for better performance and data organization. - -### Frontend Assets (`Frontend_Assets`) - -Manages the loading of CSS and JavaScript assets for the frontend rendering of forms. - -### Email Notifications - -Handles the sending of email notifications based on form submissions, with support for multiple notification templates and recipients. - -## Data Flow - -### Form Creation Flow - -```mermaid -sequenceDiagram - participant User - participant WordPress - participant FormBuilder - participant Database - - User->>WordPress: Access Form Builder - WordPress->>FormBuilder: Initialize Builder Interface - FormBuilder->>User: Display Form Builder UI - - alt Manual Form Creation - User->>FormBuilder: Add/Configure Form Fields - FormBuilder->>User: Update UI Preview - else AI-Assisted Creation - User->>FormBuilder: Enter Form Description - FormBuilder->>AI: Send Form Description - AI->>FormBuilder: Return Suggested Form Structure - FormBuilder->>User: Display AI-Generated Form - User->>FormBuilder: Modify/Approve Form - end - - User->>FormBuilder: Save Form - FormBuilder->>Database: Store Form Configuration - Database->>WordPress: Return Form ID - WordPress->>User: Confirm Form Creation -``` - -### Form Submission Flow - -```mermaid -sequenceDiagram - participant User - participant Frontend - participant REST_API - participant Validation - participant AntiSpam - participant Database - participant EmailSystem - - User->>Frontend: Fill Form - Frontend->>User: Validate Client-Side - User->>Frontend: Submit Form - Frontend->>REST_API: POST Form Data - - REST_API->>Validation: Validate Data - Validation->>REST_API: Validation Result - - REST_API->>AntiSpam: Check for Spam - AntiSpam->>REST_API: Spam Check Result - - alt Valid Submission - REST_API->>Database: Store Entry - Database->>REST_API: Entry ID - REST_API->>EmailSystem: Trigger Notifications - EmailSystem->>REST_API: Email Status - REST_API->>Frontend: Success Response - Frontend->>User: Show Confirmation - else Invalid Submission - REST_API->>Frontend: Error Response - Frontend->>User: Show Error Message - end -``` - -## Form Building Process - -SureForms uses WordPress's block editor as the foundation for its form builder. This approach provides several advantages: - -1. **Familiar Interface**: Users already familiar with WordPress's editor can easily adapt -2. **Native Integration**: Seamless integration with WordPress core functionality -3. **Extensibility**: Ability to leverage the block ecosystem - -### Block Structure - -Forms are composed of various block types: - -- **Container Blocks**: Group and organize form fields -- **Field Blocks**: Individual form inputs (text, email, checkbox, etc.) -- **Layout Blocks**: Control the visual arrangement of fields -- **Special Blocks**: Submit buttons, GDPR notices, etc. - -Each block has its own edit and save components, following the WordPress block API pattern. - -### Form Data Storage - -Form configurations are stored as custom post types with: - -- Post content: Stores the block structure (serialized blocks) -- Post meta: Stores form settings, styling options, and other configuration data - -## AI Integration - -SureForms features an AI-powered form generation system that allows users to create forms by describing them in natural language. - -```mermaid -graph TD - A[User Input] --> B[AI Middleware] - B --> C[AI Service] - C --> D[Form Structure Generation] - D --> E[Field Mapping] - E --> F[Block Generation] - F --> G[Form Preview] - G --> H[User Edits] - H --> I[Final Form] -``` - -### AI Form Generation Process - -1. User provides a description of the desired form -2. The description is sent to the AI middleware -3. AI analyzes the description and generates a structured form definition -4. The form definition is mapped to SureForms field types -5. Blocks are generated and inserted into the editor -6. User can review and modify the generated form - -## Form Submission and Processing - -### Submission Handling - -Form submissions are processed through a custom REST API endpoint that: - -1. Validates the form data against defined rules -2. Checks for spam using various methods (honeypot, reCAPTCHA, etc.) -3. Processes file uploads if present -4. Stores the submission in the database -5. Triggers email notifications -6. Returns appropriate success/error responses - -### Email Notifications - -The email notification system supports: - -- Multiple notification templates per form -- Dynamic content using smart tags -- HTML email formatting -- Conditional sending based on form data -- Custom headers (CC, BCC, Reply-To) - -```mermaid -graph TD - A[Form Submission] --> B[Email Notification System] - B --> C{Multiple Recipients?} - C -->|Yes| D[Process Each Recipient] - C -->|No| E[Single Email] - D --> F[Parse Email Template] - E --> F - F --> G[Replace Smart Tags] - G --> H[Apply Email Template] - H --> I[Send Email] - I --> J{Success?} - J -->|Yes| K[Log Success] - J -->|No| L[Log Failure] -``` - -## Security Features - -SureForms implements multiple security measures to protect against common vulnerabilities: - -### Anti-Spam Protection - -- **Honeypot Fields**: Hidden fields to catch automated submissions -- **reCAPTCHA Integration**: Multiple versions of Google reCAPTCHA -- **hCaptcha Support**: Alternative to reCAPTCHA -- **Cloudflare Turnstile**: Modern CAPTCHA alternative - -### Data Protection - -- **GDPR Compliance**: Options to enable GDPR-compliant data handling -- **Data Encryption**: Sensitive data can be encrypted in storage -- **Auto-Delete Entries**: Automatic deletion of entries after a specified period - -### Input Validation - -- **Client-Side Validation**: Immediate feedback to users -- **Server-Side Validation**: Thorough validation of all submitted data -- **File Upload Security**: Strict file type and size validation - -## Extension Points - -SureForms provides several extension points for developers: - -### WordPress Hooks - -```php -// Example of filter hook for email notification -add_filter('srfm_email_notification', function($parsed, $submission_data, $item, $form_data) { - // Modify email content or recipients - return $parsed; -}, 10, 4); - -// Example of action hook before form submission -add_action('srfm_before_submission', function($form_data) { - // Perform custom actions before form processing -}); -``` - -### JavaScript API - -```javascript -// Example of extending the form validation -window.sureFormsHooks.addFilter( - 'srfm.validation.rules', - 'my-plugin/custom-validation', - function(rules, fieldData) { - // Add custom validation rules - return rules; - } -); -``` - -## Technical Debt and Improvement Areas - -1. **Performance Optimization**: - - Lazy loading of form assets - - Improved caching strategies - -2. **Code Refactoring**: - - Further modularization of components - - Consistent naming conventions - -3. **Testing Coverage**: - - Increase unit and integration test coverage - - Automated UI testing - -## Development Guidelines - -### Coding Standards - -SureForms follows WordPress coding standards with some additional guidelines: - -- PHP: PSR-12 with WordPress-specific adaptations -- JavaScript: ESLint with WordPress configuration -- CSS: Follows WordPress CSS coding standards - -### Development Workflow - -1. **Feature Planning**: Document requirements and design -2. **Development**: Implement features with appropriate tests -3. **Code Review**: Peer review for quality assurance -4. **Testing**: Automated and manual testing -5. **Documentation**: Update technical and user documentation -6. **Release**: Version tagging and deployment - -### Version Control - -- Feature branches for new development -- Pull request workflow for code review -- Semantic versioning for releases - -## Conclusion - -SureForms represents a modern approach to WordPress form building, combining the power of the block editor with advanced features like AI form generation. Its modular architecture and extensive extension points make it both user-friendly and developer-friendly, while its focus on security and performance ensures a reliable experience for all users. - -The plugin continues to evolve with a focus on improving user experience, expanding integration capabilities, and optimizing performance across all devices and platforms. diff --git a/CLAUDE.md b/CLAUDE.md deleted file mode 100644 index cf66c59fc..000000000 --- a/CLAUDE.md +++ /dev/null @@ -1,165 +0,0 @@ -# SureForms - CLAUDE.md - -## Project Overview -SureForms is a WordPress form builder plugin (v2.5.1) by Brainstorm Force. AI-powered drag-and-drop form building using the Gutenberg block editor. - -- **Plugin slug:** `sureforms` | **Text domain:** `sureforms` -- **Prefix:** `SRFM_` (constants), `srfm` (slug), `sureforms_` (post types/DB) -- **Minimum PHP:** 7.4 | **Minimum WP:** 6.4 - -## Tech Stack -- **Backend:** PHP 7.4+ / WordPress Plugin API / Custom REST endpoints -- **Frontend:** React 18 + WordPress Gutenberg blocks -- **Styling:** TailwindCSS 3.4 + SASS + PostCSS -- **Build:** WordPress Scripts (Webpack 5) + Grunt -- **Testing:** PHPUnit 9 (unit) + Playwright (E2E) -- **Static Analysis:** PHPStan level 9 + PHPCS (WordPress-Extra) -- **Node:** 18.15.0 (Volta) | **UI Library:** @bsf/force-ui - -## Commands - -### Build -```bash -npm run start # Dev server with watch -npm run build # Full production build -npm run build:script # Webpack only -npm run build:sass # SASS only -``` - -### Lint & Format -```bash -npm run lint-js # ESLint -npm run lint-js:fix # ESLint auto-fix -npm run lint-css # Stylelint -composer lint # PHPCS -composer format # PHPCBF auto-fix -composer phpstan # PHPStan level 9 -composer insights # PHP Insights -``` - -### Test -```bash -composer test # PHPUnit -composer test:coverage # PHPUnit with coverage -npm run test:unit # JS unit tests -npm run play:up # Start WP test env -npm run play:run # Playwright E2E -npm run play:stop # Stop WP test env -``` - -### i18n -```bash -npm run makepot # Generate .pot -npm run i18n:po # Update .po from .pot -npm run i18n:mo # Compile .mo -npm run i18n:json # JSON translations -``` - -## Architecture - -### Directory Structure -``` -sureforms/ -├── sureforms.php # Entry point, constants -├── plugin-loader.php # Bootstrap -├── inc/ # PHP backend -│ ├── helper.php # Central utility (large — minimize changes) -│ ├── rest-api.php # REST endpoints -│ ├── form-submit.php # Submission handler -│ ├── entries.php # Entry management -│ ├── post-types.php # CPT registration -│ ├── blocks/ # PHP block rendering -│ ├── fields/ # Field type handlers -│ ├── database/ # Custom DB tables -│ ├── payments/ # Stripe integration -│ ├── ai-form-builder/ # AI form generation -│ ├── global-settings/ # Plugin settings -│ ├── page-builders/ # Elementor/Bricks compat -│ └── lib/ # Third-party (DO NOT modify) -├── src/ # React/JS source -│ ├── admin/ # Admin UI -│ ├── blocks/ # Gutenberg block JS -│ ├── components/ # Shared React components -│ ├── store/ # WordPress data store -│ ├── utils/ # JS utilities -│ └── srfm-controls/ # Custom block controls -├── assets/ # Compiled output (gitignored) -├── sass/ # SASS source -├── modules/ # Feature modules -├── templates/ # PHP templates -├── tests/ # PHPUnit + Playwright + Docker -└── languages/ # Translation files -``` - -### Webpack Aliases -``` -@Admin → src/admin/ @Blocks → src/blocks/ @Controls → src/srfm-controls/ -@Components → src/components/ @Utils → src/utils/ @Svg → assets/svg/ -@Attributes → src/blocks-attributes/ @Image → images/ @IncBlocks → inc/blocks/ -``` - -### Key Data Structures -- **Post Type:** `sureforms_form` — Forms as CPT with block content -- **Custom Tables:** `sureforms_entries`, `sureforms_payments` -- **REST Namespace:** Custom endpoints in `inc/rest-api.php` - -## Code Rules - -### PHP -- Follow WPCS. Use `sureforms` text domain for all translatable strings -- `@since x.x.x` on all new functions/classes (updated in release PRs) -- NEVER `echo` without escaping — use `esc_html()`, `esc_attr()`, `wp_kses_post()` -- NEVER use `$_GET/$_POST/$_REQUEST` directly — use `sanitize_text_field( wp_unslash( ... ) )` -- NEVER skip security verification on endpoints/AJAX handlers - - **Public form submission endpoints** use HMAC tokens via `Submit_Token::verify()` (`inc/submit-token.php`) — NOT nonces. These are cache-safe and session-independent. The `// phpcs:ignore WordPress.Security.NonceVerification.Missing` comment is expected on these handlers. - - **Admin/authenticated endpoints** still use traditional nonces (`wp_verify_nonce()` / `check_ajax_referer()`) -- NEVER skip capability checks — use `current_user_can()` before privileged operations -- NEVER use `wp_die()` in REST callbacks — use `WP_Error` with proper response codes -- NEVER hardcode table names — use `$wpdb->prefix . 'sureforms_entries'` -- ALWAYS use `wp_json_encode()`, `wp_remote_get/post()`, `gmdate()`, `wp_safe_redirect()` - -### JavaScript/React -- Follow WordPress Scripts ESLint config -- Use WordPress data stores (`useSelect`/`useDispatch`) — never raw fetch in blocks -- Import from `@wordpress/*` packages — never import React directly -- Use `__()` from `@wordpress/i18n` — never hardcode user-facing strings -- Use TailwindCSS utility classes; use `@bsf/force-ui` for admin UI -- NEVER use `dangerouslySetInnerHTML` — use `RawHTML` from `@wordpress/element` - -### General -- NEVER create files unless absolutely necessary — prefer editing existing files -- NEVER proactively create documentation files unless explicitly requested - -## Gotchas -- **Custom DB tables** introduced in v0.0.13 — migration is irreversible -- **PHPStan level 9** is strict; check baseline before adding new ignores -- **Grunt** still used alongside Webpack for CSS minification and release packaging -- **`inc/lib/`** is third-party code — do not lint or modify -- **Node 18.15.0** pinned via Volta — other versions may cause build issues - -## Verification Before Done -After code changes, verify before reporting done: - -**JS:** `npm run lint-js` → `npm run build:script` -**SASS:** `npm run build:sass` (if touched) - -Checklist: -- Re-read the diff for obvious issues -- No debug code left (`console.log`, `error_log`, `var_dump`) -- All new functions have `@since x.x.x` -- All user-facing strings use `__()` / `_e()` -- Security checks on new endpoints/handlers (HMAC token for public, nonce for admin) -- For significant changes, suggest `npm run play:run` - -## Self-Improvement Loop -- When corrected, add a rule to **Learned Rules** so the mistake never repeats -- When a pattern causes a bug or CI failure, document it immediately -- Periodically prune outdated rules - -## Learned Rules - -- NEVER flag `phpcs:ignore WordPress.Security.NonceVerification.Missing` as a security issue on public form submission handlers (form submit, field validation, Stripe/PayPal payment intents) — these use HMAC token verification (`Submit_Token::verify()`) instead of nonces for page-cache compatibility. The HMAC token is embedded in the form at render time and verified server-side without any session dependency. -- ALWAYS use `Submit_Token::generate($form_id)` / `Submit_Token::verify($token, $form_id)` for public-facing form security — nonces (`wp_verify_nonce`) are only for admin/authenticated endpoints. - -## Current Focus - diff --git a/COMPREHENSIVE_ANALYSIS.md b/COMPREHENSIVE_ANALYSIS.md deleted file mode 100644 index aed786d38..000000000 --- a/COMPREHENSIVE_ANALYSIS.md +++ /dev/null @@ -1,304 +0,0 @@ -# SureForms: Comprehensive Analysis - -This document provides a multi-perspective analysis of the SureForms WordPress plugin, examining it from software architecture, development, and product management viewpoints. - -## Table of Contents - -1. [Software Architecture Analysis](#software-architecture-analysis) -2. [Development Perspective](#development-perspective) -3. [Product Management Analysis](#product-management-analysis) -4. [Integration Capabilities](#integration-capabilities) -5. [Future Development Roadmap](#future-development-roadmap) - -## Software Architecture Analysis - -### Core Architecture - -SureForms follows a modular architecture pattern with clear separation of concerns. The plugin is built around several key components: - -```mermaid -graph TD - A[WordPress Core] --> B[SureForms Plugin] - B --> C[Plugin_Loader] - C --> D[Core Components] - D --> E[Post_Types] - D --> F[Form_Submit] - D --> G[Block_Patterns] - D --> H[Frontend_Assets] - D --> I[AI_Form_Builder] - D --> J[Rest_Api] - D --> K[Database] - K --> L[Custom Tables] - K --> M[Post Meta] -``` - -The architecture leverages WordPress's plugin system and follows object-oriented principles with extensive use of the singleton pattern for core components. - -### Data Flow Architecture - -The data flow within SureForms follows a clear pattern: - -```mermaid -sequenceDiagram - participant User - participant Frontend - participant BlockEditor - participant REST_API - participant Database - - User->>BlockEditor: Create Form - BlockEditor->>Database: Store Form Configuration - User->>Frontend: View & Submit Form - Frontend->>REST_API: Submit Form Data - REST_API->>Database: Store Submission - REST_API->>Frontend: Return Response -``` - -This separation ensures clean data handling and allows for extensibility at various points in the process. - -### Component Analysis - -#### Plugin Loader - -The `Plugin_Loader` class serves as the entry point for the plugin, handling initialization, autoloading, and hook registration. It follows the singleton pattern to ensure only one instance exists. - -#### Post Types - -The `Post_Types` class manages custom post types for forms and entries, including admin UI customizations, shortcode functionality, and metadata registration. - -#### Form Submit - -The `Form_Submit` class processes form submissions through REST API endpoints, handling validation, file uploads, anti-spam measures, and email notifications. - -#### Database Layer - -SureForms uses both WordPress custom post types and custom database tables: -- Custom post type `sureforms_form` for form configurations -- Custom table `{prefix}_srfm_entries` for form submissions - -This hybrid approach leverages WordPress's content management for forms while optimizing data storage for submissions. - -#### AI Integration - -The AI form builder component connects with external AI services through a middleware layer, translating natural language descriptions into structured form definitions. - -### Technical Debt Assessment - -Current areas of technical debt include: - -1. **Performance Optimization** - - Opportunity for more aggressive asset loading strategies - - Potential for improved caching mechanisms - -2. **Code Organization** - - Some components have grown large and could benefit from further modularization - - Inconsistent naming conventions in some areas - -3. **Testing Coverage** - - Limited automated testing for JavaScript components - - Opportunity for more comprehensive integration tests - -## Development Perspective - -### Code Quality - -The codebase demonstrates several positive qualities: - -- **Consistent Structure**: Well-organized directory structure -- **Modern Practices**: Use of namespaces, autoloading, and OOP principles -- **Documentation**: Comprehensive inline documentation -- **Separation of Concerns**: Clear boundaries between components - -Areas for improvement include: - -- **Testing Coverage**: Expanding unit and integration tests -- **Consistent Naming**: Standardizing naming conventions across all components -- **Performance Profiling**: Identifying and addressing performance bottlenecks - -### Development Workflow - -The development process appears to follow modern practices: - -- **Version Control**: Git-based workflow with feature branches -- **Code Review**: Evidence of peer review processes -- **Continuous Integration**: GitHub Actions for automated testing -- **Semantic Versioning**: Clear versioning strategy - -### Extension Points - -SureForms provides several extension mechanisms: - -1. **WordPress Hooks** - - Actions for process intervention - - Filters for data modification - -2. **JavaScript API** - - Client-side hooks for extending functionality - - Custom events for integration - -3. **Block API** - - Ability to register custom form field blocks - - Block filters for modifying existing blocks - -4. **Template System** - - Customizable templates for form rendering - - Theme override capabilities - -### Technology Stack - -The plugin leverages a modern technology stack: - -- **PHP**: Core server-side logic -- **JavaScript/React**: Block editor integration and frontend functionality -- **CSS/SCSS**: Styling with preprocessor support -- **MySQL**: Database storage -- **REST API**: Data communication -- **AI Services**: Form generation capabilities - -## Product Management Analysis - -### User Segments - -SureForms targets several distinct user segments: - -1. **Website Owners** - - Need: Simple form creation without technical knowledge - - Value: Intuitive interface, pre-designed templates - -2. **Designers** - - Need: Visually appealing forms that match site design - - Value: Design customization, aesthetic controls - -3. **Developers** - - Need: Extensible platform with clean APIs - - Value: Hooks, filters, and documentation - -4. **No-Code Professionals** - - Need: Advanced functionality without coding - - Value: Conditional logic, multi-step forms - -### Feature Analysis - -The feature set is well-aligned with user needs: - -| Feature | User Segment | Value Proposition | -|---------|--------------|-------------------| -| Block Editor Integration | All | Familiar, native WordPress experience | -| AI Form Generation | All | Rapid form creation with minimal effort | -| Mobile-First Design | All | Forms work well on all devices | -| Advanced Field Types | No-Code Professionals | Complex form capabilities without coding | -| Developer Hooks | Developers | Extensibility for custom needs | -| Visual Customization | Designers | Forms match site aesthetics | -| Anti-Spam Features | All | Protection from spam submissions | -| GDPR Compliance | All | Legal compliance and data protection | - -### Competitive Positioning - -SureForms differentiates itself through: - -1. **Native WordPress Integration**: Using the block editor rather than a custom interface -2. **AI-Powered Creation**: Faster form building through AI assistance -3. **Design Focus**: Emphasis on visual appeal and user experience -4. **Developer-Friendly**: Clean architecture and extension points - -### Market Fit - -The product demonstrates strong market fit by addressing several key pain points: - -1. **Complex Form Building**: Simplifying the process through AI and intuitive interface -2. **Design Limitations**: Providing modern styling out-of-the-box -3. **Mobile Responsiveness**: Ensuring forms work well on all devices -4. **Technical Barriers**: Enabling advanced features without coding requirements - -## Integration Capabilities - -### WordPress Ecosystem - -SureForms integrates well with the WordPress ecosystem: - -- **Themes**: Compatible with major themes including Astra, Kadence, GeneratePress -- **Page Builders**: Works with Elementor, Beaver Builder, Divi -- **Plugins**: Compatible with popular plugins like WooCommerce, Easy Digital Downloads - -### External Services - -The plugin offers integration with several external services: - -- **reCAPTCHA**: Anti-spam protection -- **hCaptcha**: Alternative CAPTCHA solution -- **Cloudflare Turnstile**: Modern CAPTCHA alternative -- **AI Services**: Form generation capabilities - -### API Architecture - -The API architecture facilitates integration: - -```mermaid -graph LR - A[WordPress] --> B[SureForms Core] - B --> C[REST API] - C --> D[External Integrations] - D --> E[CRM Systems] - D --> F[Email Marketing] - D --> G[Payment Processors] - D --> H[AI Services] -``` - -This architecture allows for flexible integration with various third-party services. - -## Future Development Roadmap - -Based on the analysis, several development priorities emerge: - -### Short-Term Priorities - -1. **Performance Optimization** - - Implement lazy loading for form assets - - Optimize database queries for large form submissions - -2. **Code Quality Improvements** - - Increase test coverage - - Standardize naming conventions - - Refactor larger components - -3. **Integration Expansion** - - Add more third-party service integrations - - Enhance existing integrations with deeper functionality - -### Medium-Term Priorities - -1. **Advanced AI Capabilities** - - Improve form generation accuracy - - Add form analytics and insights - -2. **Enhanced User Experience** - - Streamline the form building process - - Improve form submission handling - -3. **Developer Tools** - - Create comprehensive API documentation - - Develop example extensions - -### Long-Term Vision - -1. **Form Ecosystem** - - Develop a marketplace for extensions - - Create specialized form solutions for different industries - -2. **Enterprise Features** - - Advanced workflow automation - - Enhanced security and compliance features - -3. **SaaS Potential** - - Explore hosted form solution alongside WordPress plugin - - Develop cloud-based form management - -## Conclusion - -SureForms represents a modern approach to WordPress form building, combining native block editor integration with AI-powered form generation. Its architecture demonstrates good separation of concerns and extensibility, while its feature set addresses key user needs across multiple segments. - -The product is well-positioned in the competitive form builder market, with clear differentiation through its WordPress integration, AI capabilities, and design focus. Future development should focus on expanding integrations, enhancing AI capabilities, and improving performance to maintain this competitive advantage. - -From a technical perspective, the codebase is well-structured but would benefit from increased test coverage and some refactoring of larger components. The extension system provides good flexibility for developers, though more comprehensive documentation would enhance this further. - -Overall, SureForms shows strong potential for continued growth and adoption, particularly as the WordPress ecosystem continues to embrace the block editor and AI-powered tools become increasingly important in the website building process. diff --git a/PRODUCT_ANALYSIS.md b/PRODUCT_ANALYSIS.md deleted file mode 100644 index a6c4e595e..000000000 --- a/PRODUCT_ANALYSIS.md +++ /dev/null @@ -1,251 +0,0 @@ -# SureForms Product Analysis - -## Executive Summary - -SureForms is a modern WordPress form builder plugin that differentiates itself through its native WordPress integration, AI-powered form generation, and focus on user experience. This analysis examines the product from multiple perspectives to provide a comprehensive understanding of its strengths, challenges, and opportunities for growth. - -## Table of Contents - -1. [Product Overview](#product-overview) -2. [Market Analysis](#market-analysis) -3. [User Experience Analysis](#user-experience-analysis) -4. [Technical Analysis](#technical-analysis) -5. [Competitive Analysis](#competitive-analysis) -6. [SWOT Analysis](#swot-analysis) -7. [Growth Opportunities](#growth-opportunities) -8. [Recommendations](#recommendations) - -## Product Overview - -SureForms is a WordPress form builder plugin that leverages the native WordPress block editor (Gutenberg) to provide an intuitive form building experience. Key features include: - -- **Native WordPress Integration**: Built on top of the WordPress block editor -- **AI-Powered Form Generation**: Create forms quickly using AI suggestions -- **No-Code Flexibility**: Advanced features without requiring coding knowledge -- **Mobile-First Design**: Responsive forms that work across all devices -- **Modern UI/UX**: Clean, intuitive interface for both admins and users -- **Security Features**: Anti-spam protection, GDPR compliance, and data security -- **Extensibility**: Developer-friendly architecture with hooks and filters - -The plugin is currently at version 1.7.0 and requires WordPress 6.4+ and PHP 7.4+. - -## Market Analysis - -### Target Audience - -SureForms targets several key user segments: - -1. **Website Owners**: Individuals and businesses who manage their own WordPress websites and need to collect information from visitors -2. **Designers**: Professionals who value good design and want to create visually appealing forms -3. **Developers**: Technical users who need a developer-friendly solution with clean APIs and hooks -4. **No-Code Professionals**: Users who need advanced form features without coding skills - -### Market Positioning - -SureForms positions itself as a modern alternative to traditional form builders, emphasizing: - -1. **Seamless WordPress Integration**: Using the native block editor rather than a separate interface -2. **Design-First Approach**: Focusing on aesthetics and user experience -3. **AI-Powered Efficiency**: Leveraging AI to speed up form creation -4. **Simplicity Without Compromise**: Providing advanced features in an accessible way - -### Market Trends - -Several trends in the WordPress form builder market are relevant to SureForms: - -1. **Shift to Block Editor**: Growing adoption of Gutenberg and block-based themes -2. **AI Integration**: Increasing use of AI for content and design generation -3. **Mobile-First Design**: Continued emphasis on mobile responsiveness -4. **Privacy Compliance**: Growing importance of GDPR and other privacy regulations -5. **No-Code Movement**: Rising demand for powerful tools that don't require coding skills - -## User Experience Analysis - -### Form Creation Experience - -SureForms provides a streamlined form creation experience: - -- **Block-Based Building**: Drag-and-drop interface using familiar WordPress blocks -- **AI Form Generation**: Natural language prompts to quickly create form structures -- **Visual Editing**: Real-time preview of forms as they're built -- **Templates**: Pre-designed form templates for common use cases - -### Form Submission Experience - -The end-user experience for form submission is optimized for: - -- **Responsive Design**: Forms adapt to different screen sizes -- **Inline Validation**: Real-time feedback on form inputs -- **Accessibility**: Support for screen readers and keyboard navigation -- **Confirmation Messages**: Customizable success messages and redirects - -### Admin Experience - -The admin interface focuses on: - -- **Intuitive Management**: Easy access to forms, entries, and settings -- **Data Visualization**: Visual reporting of form submission data -- **Entry Management**: Tools for viewing, filtering, and exporting submissions -- **Email Notifications**: Customizable email alerts for new submissions - -## Technical Analysis - -### Architecture - -SureForms follows a modular architecture with clear separation of concerns: - -- **Core Plugin**: Handles initialization, hooks, and basic functionality -- **Block System**: Manages form field blocks and their behavior -- **Form Processing**: Handles form submissions and data storage -- **AI Integration**: Connects with AI services for form generation -- **Extension System**: Provides hooks and filters for customization - -### Performance - -The plugin is designed with performance in mind: - -- **Optimized Asset Loading**: CSS and JS loaded only when needed -- **Efficient Database Usage**: Custom tables with appropriate indexes -- **Caching Strategies**: Caching of frequently accessed data -- **Minimal Dependencies**: Limited reliance on external libraries - -### Security - -Security features include: - -- **Input Validation**: Thorough validation of all user inputs -- **Anti-Spam Measures**: Multiple options for spam prevention -- **Data Protection**: GDPR compliance features -- **File Upload Security**: Strict validation of uploaded files - -### Extensibility - -The plugin provides several extension points: - -- **WordPress Hooks**: Actions and filters for modifying behavior -- **JavaScript API**: Client-side hooks for extending functionality -- **Block API**: Ability to create custom form field blocks -- **Template System**: Customizable templates for form rendering - -## Competitive Analysis - -### Key Competitors - -1. **Gravity Forms**: Established premium form builder with extensive features -2. **WPForms**: User-friendly form builder with a focus on simplicity -3. **Formidable Forms**: Advanced form builder with data management features -4. **Ninja Forms**: Modular form builder with add-on marketplace -5. **Contact Form 7**: Simple, free form builder with large user base - -### Competitive Advantages - -SureForms differentiates itself through: - -1. **Native Block Editor Integration**: More seamless WordPress experience -2. **AI-Powered Form Creation**: Faster form building process -3. **Modern Design Focus**: Better out-of-the-box aesthetics -4. **Developer-Friendly Architecture**: Clean APIs and extension points -5. **Mobile-First Approach**: Better experience on mobile devices - -### Competitive Challenges - -Areas where competitors may have advantages: - -1. **Ecosystem Maturity**: Established competitors have larger add-on ecosystems -2. **Market Recognition**: Lower brand awareness as a newer entrant -3. **Feature Depth**: Some competitors have more specialized features -4. **Integration Breadth**: Fewer third-party service integrations - -## SWOT Analysis - -### Strengths - -- Native integration with WordPress block editor -- AI-powered form generation capabilities -- Modern, clean design aesthetic -- Mobile-first responsive approach -- Developer-friendly architecture -- Focus on user experience - -### Weaknesses - -- Newer entrant in a mature market -- Smaller ecosystem of extensions and add-ons -- Limited third-party integrations compared to competitors -- Requires newer versions of WordPress and PHP - -### Opportunities - -- Growing adoption of the WordPress block editor -- Increasing demand for AI-powered tools -- Rising importance of mobile-friendly forms -- Expanding market for no-code solutions -- Potential for vertical-specific form solutions - -### Threats - -- Established competitors with loyal user bases -- WordPress core changes affecting block editor functionality -- Potential AI regulation affecting AI form generation -- Market commoditization driving price competition -- Alternative form solutions outside WordPress ecosystem - -## Growth Opportunities - -### Product Development - -1. **Expanded AI Capabilities**: More sophisticated form generation and analysis -2. **Vertical-Specific Templates**: Forms tailored to specific industries or use cases -3. **Advanced Conditional Logic**: More powerful dynamic form behavior -4. **Enhanced Data Analysis**: Better visualization and reporting of form data -5. **Multi-Step Form Improvements**: More sophisticated multi-page form experiences - -### Market Expansion - -1. **Agency Partner Program**: Dedicated resources for agencies and developers -2. **Vertical Marketing**: Targeted solutions for specific industries -3. **Educational Content**: Tutorials and resources to drive adoption -4. **Integration Partnerships**: Collaborations with complementary services -5. **International Expansion**: Localization for key markets - -### Business Model - -1. **Freemium Model**: Free core plugin with premium add-ons or features -2. **Subscription Tiers**: Different service levels for different user needs -3. **White-Label Solutions**: Customizable versions for agencies and resellers -4. **Enterprise Offerings**: Custom solutions for larger organizations -5. **Marketplace**: Platform for third-party extensions - -## Recommendations - -### Short-Term (0-6 months) - -1. **Expand Integration Ecosystem**: Add connections to popular CRM and email marketing platforms -2. **Enhance AI Form Builder**: Improve accuracy and capabilities of AI form generation -3. **Develop Educational Content**: Create tutorials and documentation to drive adoption -4. **Optimize Performance**: Further improve loading speed and resource usage -5. **Implement User Feedback System**: Gather structured feedback from early adopters - -### Medium-Term (6-12 months) - -1. **Launch Partner Program**: Develop resources for agencies and developers -2. **Create Vertical Solutions**: Develop specialized templates for key industries -3. **Expand Block Library**: Add more specialized form field types -4. **Improve Analytics**: Enhance data visualization and reporting capabilities -5. **Develop Extension Marketplace**: Create platform for third-party add-ons - -### Long-Term (12+ months) - -1. **Develop Enterprise Features**: Add capabilities for larger organizations -2. **Explore SaaS Model**: Consider hosted form solution alongside WordPress plugin -3. **Implement Advanced AI**: Add predictive analytics and personalization -4. **Create Form Ecosystem**: Develop complementary products and services -5. **Explore International Markets**: Localize for key global markets - -## Conclusion - -SureForms represents a modern approach to WordPress form building, combining the power of the native block editor with AI-powered form generation. Its focus on user experience, design, and developer-friendly architecture positions it well in the competitive form builder market. - -By leveraging its strengths in WordPress integration and AI capabilities while addressing its challenges in market recognition and ecosystem development, SureForms has significant potential for growth. The recommended strategies focus on expanding integrations, enhancing AI capabilities, developing educational resources, and creating specialized solutions for key market segments. - -With continued development and strategic focus, SureForms can establish itself as a leading WordPress form solution for the modern web. diff --git a/README.md b/README.md index 4db15793c..2cb76add9 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ **Requires at least:** 6.4 **Tested up to:** 6.9.4 **Requires PHP:** 7.4 -**Stable tag:** 2.8.0 +**Stable tag:** 2.8.1 **License:** GPLv2 or later **License URI:** http://www.gnu.org/licenses/gpl-2.0.html @@ -478,6 +478,14 @@ You can collect payments securely through Stripe in the free version. PayPal pay You can report the issue through our [Bug Bounty Program](https://brainstormforce.com/bug-bounty-program/). We collaborate with Patchstack to provide opportunities for researchers to report vulnerabilities. The Patchstack team will help validate, triage, and handle any reported security issues. ## Changelog ## +### 2.8.1 - 27th April 2026 ### +* New: Added support for dynamic default values on Dropdown and Multi-Choice fields. +* New: Added {entry_id} smart tag for use in email templates, confirmations, and dynamic content. +* Improvement: Added PLN (Polish Złoty) to the currency dropdown. +* Fix: Fixed background color not applying correctly in non-iframe editor mode. +* Fix: Fixed MCP endpoint REST URL resolution so it uses the correct site URL. +* Fix: Fixed Phone field country flag unexpectedly changing during browser autocomplete. +* Fix: Fixed review/validation issues in Global Settings. ### 2.8.0 - 16th April 2026 ### * New: Added My Account page allowing users to view and manage their payment history and subscriptions. * Improvement: Phone number country detection moved to backend with caching, reducing multiple API calls. @@ -494,16 +502,6 @@ You can report the issue through our [Bug Bounty Program](https://brainstormforc * Fix: Fixed slugs with underscores not mapping correctly during smart tag and integration processing. * Fix: Fixed textarea values losing line breaks in {form:field} smart tags. * Fix: Fixed {current_page_url} smart tag resolving to REST API URL in email notifications. -### 2.7.0 - 31st March 2026 ### -* New: Added styling options for Gutenberg SureForms Form Block. -* New: Added styling options for Bricks Builder SureForms Form Element. -* New: Added styling options for Elementor SureForms Form Widget. -* Fix: Fixed "Send as Raw HTML" email option wrapping content in unwanted template markup. -* Fix: Fixed Multi Choice option labels with extra whitespace failing to resolve numeric values in payment calculations. -* Fix: Fixed block slug not locking when a smart tag is inserted via the pro plugin. -* Fix: Fixed dynamic tag URLs being auto-linked with HTML markup when used in redirect query parameters. -* Fix: Fixed theme text-transform styles cascading into form input fields. -* Fix: Fixed unique field validation endpoint exposing submitted data to unauthenticated enumeration attacks. The full changelog is available [here](https://sureforms.com/whats-new/). ## Upgrade Notice ## diff --git a/TECHNICAL_OVERVIEW.md b/TECHNICAL_OVERVIEW.md deleted file mode 100644 index 9d2d44140..000000000 --- a/TECHNICAL_OVERVIEW.md +++ /dev/null @@ -1,393 +0,0 @@ -# SureForms Technical Overview - -## Introduction - -SureForms is a modern WordPress form builder plugin that leverages the native WordPress block editor (Gutenberg) to provide an intuitive, no-code form building experience. This document provides a comprehensive technical overview of the plugin's architecture, components, and functionality. - -## Table of Contents - -1. [Plugin Architecture](#plugin-architecture) -2. [Core Components](#core-components) -3. [Database Structure](#database-structure) -4. [Form Building System](#form-building-system) -5. [Form Submission Process](#form-submission-process) -6. [AI Integration](#ai-integration) -7. [Security Features](#security-features) -8. [Extension Points](#extension-points) -9. [Performance Considerations](#performance-considerations) -10. [Future Development](#future-development) - -## Plugin Architecture - -SureForms follows a modular architecture pattern with clear separation of concerns. The plugin is structured around several key components that interact through well-defined interfaces. - -### Directory Structure - -``` -sureforms/ -├── admin/ # Admin-specific functionality -├── api/ # REST API endpoints -├── assets/ # CSS, JS, and other assets -├── inc/ # Core functionality -│ ├── ai-form-builder/ # AI form generation -│ ├── blocks/ # Block registration -│ ├── compatibility/ # Theme/plugin compatibility -│ ├── database/ # Custom database tables -│ ├── email/ # Email notification system -│ ├── fields/ # Form field definitions -│ ├── global-settings/ # Global plugin settings -│ ├── lib/ # Third-party libraries -│ ├── page-builders/ # Page builder integrations -│ ├── single-form-settings/ # Form-specific settings -│ └── traits/ # Shared PHP traits -├── languages/ # Internationalization files -├── modules/ # Feature modules -│ ├── gutenberg/ # Gutenberg integration -│ └── quick-action-sidebar/ # Quick action UI -├── src/ # JavaScript source files -│ ├── admin/ # Admin JS -│ ├── blocks/ # Block JS -│ ├── components/ # Reusable React components -│ ├── lib/ # JS libraries -│ ├── store/ # Redux store -│ ├── styles/ # SCSS files -│ └── utils/ # Utility functions -└── templates/ # Template files -``` - -### Initialization Flow - -The plugin follows a structured initialization process: - -1. `sureforms.php` - Main plugin file that defines constants and includes the plugin loader -2. `plugin-loader.php` - Initializes the plugin and registers core components -3. Core components are loaded through the `Plugin_Loader` class using autoloading -4. WordPress hooks are registered to integrate with the WordPress lifecycle - -```mermaid -graph TD - A[sureforms.php] --> B[plugin-loader.php] - B --> C[Plugin_Loader class] - C --> D[Register hooks] - C --> E[Autoload classes] - C --> F[Load textdomain] - D --> G[Init core components] - G --> H[Post_Types] - G --> I[Form_Submit] - G --> J[Block_Patterns] - G --> K[Frontend_Assets] - G --> L[AI_Form_Builder] - G --> M[Rest_Api] -``` - -## Core Components - -### Plugin_Loader - -The central initialization class that bootstraps the plugin, registers hooks, and loads core components. It follows a singleton pattern to ensure only one instance exists. - -```php -class Plugin_Loader { - private static $instance = null; - - public static function get_instance() { - if (null === self::$instance) { - self::$instance = new self(); - do_action('srfm_core_loaded'); - } - return self::$instance; - } - - // Initialization methods... -} -``` - -### Post_Types - -Registers and manages custom post types for forms and entries. Handles the admin UI customizations for these post types. - -Key features: -- Registers `sureforms_form` post type for storing form configurations -- Adds custom columns to the admin list view -- Implements shortcode functionality -- Manages form metadata registration - -### Form_Submit - -Processes form submissions through REST API endpoints, validates input data, handles file uploads, processes anti-spam measures, and triggers email notifications. - -Key features: -- Registers `/sureforms/v1/submit-form` REST API endpoint -- Validates form submissions against defined rules -- Processes file uploads with security checks -- Handles anti-spam measures (honeypot, reCAPTCHA, hCaptcha, Cloudflare Turnstile) -- Stores submissions in the database -- Triggers email notifications - -### AI_Form_Builder - -Integrates with AI services to generate form structures based on user prompts. Communicates with middleware services to process AI requests. - -Key features: -- Processes natural language descriptions into form structures -- Maps AI-generated fields to SureForms field types -- Generates block structures for the editor - -## Database Structure - -SureForms uses both WordPress custom post types and custom database tables to store data efficiently. - -### Custom Post Types - -- **sureforms_form**: Stores form configurations - - Post content: Serialized blocks representing the form structure - - Post meta: Form settings, styling options, and other configuration data - -### Custom Database Tables - -- **{prefix}_srfm_entries**: Stores form submissions - - ID: Primary key - - form_id: Associated form ID - - user_id: Submitter's user ID (if logged in) - - form_data: JSON-encoded submission data - - submission_info: Browser, IP, and device information - - status: Entry status (read, unread, trash) - - logs: Activity logs for the entry - - created_at: Submission timestamp - -```mermaid -erDiagram - FORMS ||--o{ ENTRIES : "has" - FORMS { - int ID - string post_title - text post_content - string post_status - datetime post_date - } - ENTRIES { - int ID - int form_id - int user_id - json form_data - json submission_info - string status - json logs - datetime created_at - } - FORMS ||--o{ FORM_META : "has" - FORM_META { - int meta_id - int post_id - string meta_key - mixed meta_value - } -``` - -## Form Building System - -SureForms uses WordPress's block editor as the foundation for its form builder. - -### Block Structure - -Forms are composed of various block types: - -- **Container Blocks**: Group and organize form fields -- **Field Blocks**: Individual form inputs (text, email, checkbox, etc.) -- **Layout Blocks**: Control the visual arrangement of fields -- **Special Blocks**: Submit buttons, GDPR notices, etc. - -Each block has its own edit and save components, following the WordPress block API pattern. - -### Block Registration - -Blocks are registered using the WordPress block registration API: - -```javascript -registerBlockType('sureforms/input', { - title: __('Text Field', 'sureforms'), - icon: 'text', - category: 'sureforms', - attributes: { - // Block attributes - }, - edit: Edit, - save: Save -}); -``` - -### Form Rendering - -Forms are rendered on the frontend using a combination of server-side rendering and client-side JavaScript: - -1. The form shortcode or block triggers the `Generate_Form_Markup::get_form_markup()` method -2. The method retrieves the form configuration and generates the HTML markup -3. Frontend JavaScript initializes the form functionality (validation, submission, etc.) - -## Form Submission Process - -### Client-Side Flow - -1. User fills out the form -2. Client-side validation checks for errors -3. Form data is collected and serialized -4. AJAX request is sent to the REST API endpoint -5. Response is processed and appropriate feedback is shown to the user - -### Server-Side Flow - -1. REST API endpoint receives the form submission -2. Data is validated and sanitized -3. Anti-spam checks are performed -4. If GDPR compliance is enabled, appropriate data handling is applied -5. Submission is stored in the database (unless configured not to) -6. Email notifications are triggered -7. Response is sent back to the client - -```mermaid -sequenceDiagram - participant User - participant Browser - participant REST_API - participant Database - participant Email - - User->>Browser: Fill form - Browser->>Browser: Validate input - User->>Browser: Submit form - Browser->>REST_API: POST /sureforms/v1/submit-form - REST_API->>REST_API: Validate data - REST_API->>REST_API: Anti-spam check - REST_API->>Database: Store submission - REST_API->>Email: Send notifications - REST_API->>Browser: Return response - Browser->>User: Show confirmation -``` - -## AI Integration - -SureForms features an AI-powered form generation system that allows users to create forms by describing them in natural language. - -### AI Form Generation Process - -1. User provides a description of the desired form -2. The description is sent to the AI middleware -3. AI analyzes the description and generates a structured form definition -4. The form definition is mapped to SureForms field types -5. Blocks are generated and inserted into the editor -6. User can review and modify the generated form - -### AI Middleware - -The AI middleware acts as a bridge between SureForms and the AI service: - -1. Receives the form description from SureForms -2. Processes the description using AI models -3. Returns a structured form definition -4. Handles authentication and rate limiting - -## Security Features - -SureForms implements multiple security measures to protect against common vulnerabilities: - -### Anti-Spam Protection - -- **Honeypot Fields**: Hidden fields to catch automated submissions -- **reCAPTCHA Integration**: Multiple versions of Google reCAPTCHA -- **hCaptcha Support**: Alternative to reCAPTCHA -- **Cloudflare Turnstile**: Modern CAPTCHA alternative - -### Data Protection - -- **GDPR Compliance**: Options to enable GDPR-compliant data handling -- **Data Encryption**: Sensitive data can be encrypted in storage -- **Auto-Delete Entries**: Automatic deletion of entries after a specified period - -### Input Validation - -- **Client-Side Validation**: Immediate feedback to users -- **Server-Side Validation**: Thorough validation of all submitted data -- **File Upload Security**: Strict file type and size validation - -## Extension Points - -SureForms provides several extension points for developers: - -### WordPress Hooks - -```php -// Example of filter hook for email notification -add_filter('srfm_email_notification', function($parsed, $submission_data, $item, $form_data) { - // Modify email content or recipients - return $parsed; -}, 10, 4); - -// Example of action hook before form submission -add_action('srfm_before_submission', function($form_data) { - // Perform custom actions before form processing -}); -``` - -### JavaScript API - -```javascript -// Example of extending the form validation -window.sureFormsHooks.addFilter( - 'srfm.validation.rules', - 'my-plugin/custom-validation', - function(rules, fieldData) { - // Add custom validation rules - return rules; - } -); -``` - -## Performance Considerations - -SureForms is designed with performance in mind: - -### Asset Loading - -- CSS and JavaScript assets are loaded only when needed -- Assets are minified and optimized for production -- Critical CSS is inlined for faster rendering - -### Database Optimization - -- Custom database tables with appropriate indexes -- Efficient queries with proper WHERE clauses -- Caching of frequently accessed data - -### Form Rendering - -- Server-side rendering for initial form display -- Progressive enhancement for JavaScript features -- Lazy loading of heavy components - -## Future Development - -Planned enhancements for future versions: - -1. **Enhanced AI Capabilities** - - More sophisticated form generation - - AI-powered form analytics - -2. **Advanced Integrations** - - More third-party service integrations - - Improved CRM connections - -3. **Performance Optimizations** - - Further asset optimization - - Enhanced caching strategies - -4. **Accessibility Improvements** - - Better screen reader support - - Keyboard navigation enhancements - -5. **Developer Tools** - - More comprehensive API documentation - - Additional extension points - -## Conclusion - -SureForms represents a modern approach to WordPress form building, combining the power of the block editor with advanced features like AI form generation. Its modular architecture and extensive extension points make it both user-friendly and developer-friendly, while its focus on security and performance ensures a reliable experience for all users. diff --git a/admin/admin.php b/admin/admin.php index ed3090236..bc68cef59 100644 --- a/admin/admin.php +++ b/admin/admin.php @@ -20,8 +20,8 @@ exit; // Exit if accessed directly. } -if ( ! class_exists( 'Astra_Notices' ) ) { - require_once SRFM_DIR . 'inc/lib/astra-notices/class-astra-notices.php'; +if ( ! class_exists( 'BSF_Admin_Notices' ) ) { + require_once SRFM_DIR . 'inc/lib/astra-notices/class-bsf-admin-notices.php'; } /** * Admin handler class. @@ -943,6 +943,7 @@ public function enqueue_scripts() { 'mcp_adapter_status' => file_exists( WP_PLUGIN_DIR . '/mcp-adapter/mcp-adapter.php' ) ? ( is_plugin_active( 'mcp-adapter/mcp-adapter.php' ) ? 'active' : 'installed' ) : 'not_installed', + 'mcp_endpoint_url' => esc_url_raw( rest_url( 'sureforms/v1/mcp' ) ), ]; $is_screen_sureforms_menu = Helper::validate_request_context( 'sureforms_menu', 'page' ); diff --git a/admin/analytics.php b/admin/analytics.php index 4481b73dc..20c78ab4b 100644 --- a/admin/analytics.php +++ b/admin/analytics.php @@ -44,8 +44,8 @@ public function __construct() { require_once SRFM_DIR . 'inc/lib/bsf-analytics/class-bsf-analytics-loader.php'; } - if ( ! class_exists( 'Astra_Notices' ) ) { - require_once SRFM_DIR . 'inc/lib/astra-notices/class-astra-notices.php'; + if ( ! class_exists( 'BSF_Admin_Notices' ) ) { + require_once SRFM_DIR . 'inc/lib/astra-notices/class-bsf-admin-notices.php'; } add_filter( diff --git a/assets/js/unminified/blocks/phone.js b/assets/js/unminified/blocks/phone.js index e8463d914..7f4715283 100644 --- a/assets/js/unminified/blocks/phone.js +++ b/assets/js/unminified/blocks/phone.js @@ -139,6 +139,13 @@ function initializePhoneField() { } const iti = window.intlTelInput( phoneNumber, itlOptions ); + + // Prevent the country flag from changing based on input value changes + // (e.g., browser autocomplete, typing, or deleting the country code). + // The flag should only change when the user explicitly selects a country from the dropdown. + // Dropdown selection goes through _selectListItem -> _setCountry directly, so it still works. + iti._updateCountryFromNumber = () => false; + const countriesData = iti?.countryList.querySelectorAll( '.iti__country' ); diff --git a/bin/build-zip.sh b/bin/build-zip.sh deleted file mode 100644 index 0bf38a51d..000000000 --- a/bin/build-zip.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/usr/bin/env bash - -# Exit if any command fails. -set -e - -# Enable nicer messaging for build status. -BLUE_BOLD='\033[1;34m'; -GREEN_BOLD='\033[1;32m'; -RED_BOLD='\033[1;31m'; -YELLOW_BOLD='\033[1;33m'; -COLOR_RESET='\033[0m'; -error () { - echo -e "\n${RED_BOLD}$1${COLOR_RESET}\n" -} -status () { - echo -e "\n${BLUE_BOLD}$1${COLOR_RESET}\n" -} -success () { - echo -e "\n${GREEN_BOLD}$1${COLOR_RESET}\n" -} -warning () { - echo -e "\n${YELLOW_BOLD}$1${COLOR_RESET}\n" -} - - -status "💃 Time to build the plugin ZIP file 🕺" - -if [ ! -d "artifact" ]; then - mkdir "artifact" -fi - - -# Copy files for zip. -rsync -rc --delete --exclude-from ".distignore" "./" "artifact/sureforms" - -# Go to directory -cd artifact - -# Create a zip copied files. -zip -r sureforms.zip "./sureforms" - -if [ "no-clean" != "$1" ]; then - # Removed copied files folder. - rm -rf sureforms -fi - -success "Done. Your sureforms zip is ready..! 🎉" diff --git a/bin/checkout-and-build b/bin/checkout-and-build deleted file mode 100755 index c7529e42e..000000000 --- a/bin/checkout-and-build +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/bash -# Script to checkout a branch and build the project - -# Check if branch name is provided as an argument -if [ -z "$1" ]; then - echo "Error: No branch name provided." - echo "Usage: ./checkout-and-build.sh " - exit 1 -fi - -# Assign the first argument to a variable -branch_name=$1 - -# Checkout the specified branch -git checkout "$branch_name" - -# pull the latest version -git pull origin "$branch_name" - -# Run the build command -npm run build diff --git a/bin/i18n.sh b/bin/i18n.sh deleted file mode 100644 index 357e3aee1..000000000 --- a/bin/i18n.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/bash - -# Run release script -#bash bin/i18n.sh - -# Run textdomain updates and generate the POT file -echo "Running textdomain update and POT file generation..." -npm run makepot - -# Update PO files -echo "Updating PO files..." -npm run i18n:po - -# Translate using GPT-PO for Dutch, French, and more -echo "Translating PO files using GPT-PO..." -npm run i18n:gptpo:nl -npm run i18n:gptpo:fr -npm run i18n:gptpo:de -npm run i18n:gptpo:es -npm run i18n:gptpo:it -npm run i18n:gptpo:pt -npm run i18n:gptpo:pl - -# Update PO files again after translation -echo "Updating PO files again..." -npm run i18n:po - -# Generate MO files -echo "Generating MO files..." -npm run i18n:mo - -# Generate JSON translation files -echo "Generating JSON translation files..." -npm run i18n:json - -echo "All commands executed successfully." diff --git a/composer.lock b/composer.lock index 269982543..f852bdf35 100644 --- a/composer.lock +++ b/composer.lock @@ -8,16 +8,16 @@ "packages": [ { "name": "brainstormforce/astra-notices", - "version": "1.1.14", + "version": "1.2.1", "source": { "type": "git", "url": "https://github.com/brainstormforce/astra-notices.git", - "reference": "0b28968693e979a3a7920bc527d1d56e9b7953f5" + "reference": "79430df6cc3bf97efeb287989c1c4a848dbd8039" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/brainstormforce/astra-notices/zipball/0b28968693e979a3a7920bc527d1d56e9b7953f5", - "reference": "0b28968693e979a3a7920bc527d1d56e9b7953f5", + "url": "https://api.github.com/repos/brainstormforce/astra-notices/zipball/79430df6cc3bf97efeb287989c1c4a848dbd8039", + "reference": "79430df6cc3bf97efeb287989c1c4a848dbd8039", "shasum": "" }, "require": { @@ -56,23 +56,23 @@ ], "description": "Easily create admin notices", "support": { - "source": "https://github.com/brainstormforce/astra-notices/tree/1.1.14", + "source": "https://github.com/brainstormforce/astra-notices/tree/1.2.1", "issues": "https://github.com/brainstormforce/astra-notices/issues" }, - "time": "2025-03-17T06:09:37+00:00" + "time": "2026-04-20T10:30:34+00:00" }, { "name": "brainstormforce/bsf-analytics", - "version": "1.1.25", + "version": "1.1.26", "source": { "type": "git", "url": "git@github.com:brainstormforce/bsf-analytics.git", - "reference": "20e4c1b4766cf959075cee55cc65e3eda269aadb" + "reference": "e9079f78d4cf7a3e85ea61e94f842e2f8e00ee68" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/brainstormforce/bsf-analytics/zipball/20e4c1b4766cf959075cee55cc65e3eda269aadb", - "reference": "20e4c1b4766cf959075cee55cc65e3eda269aadb", + "url": "https://api.github.com/repos/brainstormforce/bsf-analytics/zipball/e9079f78d4cf7a3e85ea61e94f842e2f8e00ee68", + "reference": "e9079f78d4cf7a3e85ea61e94f842e2f8e00ee68", "shasum": "" }, "require-dev": { @@ -111,10 +111,10 @@ }, "description": "Library to gather non sensitive analytics data to enhance bsf products.", "support": { - "source": "https://github.com/brainstormforce/bsf-analytics/tree/1.1.25", + "source": "https://github.com/brainstormforce/bsf-analytics/tree/1.1.26", "issues": "https://github.com/brainstormforce/bsf-analytics/issues" }, - "time": "2026-04-13T08:45:00+00:00" + "time": "2026-04-20T10:30:24+00:00" }, { "name": "composer/ca-bundle", diff --git a/inc/blocks/dropdown/block.json b/inc/blocks/dropdown/block.json index 270475cc1..2312c3fde 100644 --- a/inc/blocks/dropdown/block.json +++ b/inc/blocks/dropdown/block.json @@ -87,6 +87,10 @@ "preselectedOptions": { "type": "array", "default": [] + }, + "dynamicDefaultValue": { + "type": "string", + "default": "" } } } diff --git a/inc/blocks/multichoice/block.json b/inc/blocks/multichoice/block.json index 8715e3bb1..69ddb6c43 100644 --- a/inc/blocks/multichoice/block.json +++ b/inc/blocks/multichoice/block.json @@ -98,6 +98,10 @@ "preselectedOptions": { "type": "array", "default": [] + }, + "dynamicDefaultValue": { + "type": "string", + "default": "" } } } diff --git a/inc/database/tables/payments.php b/inc/database/tables/payments.php index 74580d4bd..6a85b9fd0 100644 --- a/inc/database/tables/payments.php +++ b/inc/database/tables/payments.php @@ -117,6 +117,7 @@ class Payments extends Base { 'SGD', 'HKD', 'NOK', + 'PLN', 'TRY', 'RUB', 'INR', diff --git a/inc/fields/base.php b/inc/fields/base.php index 4f7e0baa7..b43408212 100644 --- a/inc/fields/base.php +++ b/inc/fields/base.php @@ -392,20 +392,24 @@ protected function set_properties( $attributes ) { $filter_classes = apply_filters( 'srfm_field_classes', $default_classes, [ 'attributes' => $attributes ] ); $field_config = apply_filters( 'srfm_field_config', [], [ 'attributes' => $attributes ] ); - $this->field_config = $field_config ? htmlspecialchars( Helper::get_string_value( wp_json_encode( $field_config, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE ) ), ENT_QUOTES, 'UTF-8' ) : ''; - $this->attributes = $attributes; - $this->required = $attributes['required'] ?? false; - $this->field_width = $attributes['fieldWidth'] ?? ''; - $this->label = $attributes['label'] ?? ''; - $this->help = $attributes['help'] ?? ''; - $this->block_id = isset( $attributes['block_id'] ) ? Helper::get_string_value( $attributes['block_id'] ) : ''; - $this->form_id = isset( $attributes['formId'] ) ? Helper::get_string_value( $attributes['formId'] ) : ''; - $this->block_slug = $attributes['slug'] ?? ''; - $this->class_name = $filter_classes; - $this->placeholder = $attributes['placeholder'] ?? ''; - $this->default = $attributes['defaultValue'] ?? ''; - $this->checked = $attributes['checked'] ?? ''; - $this->options = apply_filters( 'srfm_field_options', $attributes['options'] ?? '', $attributes ); + $this->field_config = $field_config ? htmlspecialchars( Helper::get_string_value( wp_json_encode( $field_config, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE ) ), ENT_QUOTES, 'UTF-8' ) : ''; + $this->attributes = $attributes; + $this->required = $attributes['required'] ?? false; + $this->field_width = $attributes['fieldWidth'] ?? ''; + $this->label = $attributes['label'] ?? ''; + $this->help = $attributes['help'] ?? ''; + $this->block_id = isset( $attributes['block_id'] ) ? Helper::get_string_value( $attributes['block_id'] ) : ''; + $this->form_id = isset( $attributes['formId'] ) ? Helper::get_string_value( $attributes['formId'] ) : ''; + $this->block_slug = $attributes['slug'] ?? ''; + $this->class_name = $filter_classes; + $this->placeholder = $attributes['placeholder'] ?? ''; + $this->default = $attributes['defaultValue'] ?? ''; + $this->checked = $attributes['checked'] ?? ''; + // Inject the block type slug (e.g. 'dropdown', 'multi-choice') into the attributes passed to + // the filter. The field's `slug` attribute can be prefixed when the block is inside a repeater + // (e.g. 'srfm-repeater-srfm-dropdown'), so filter consumers need a reliable block type identifier. + $block_args = [ 'block_args' => [ 'slug' => $this->slug ] ]; + $this->options = apply_filters( 'srfm_field_options', $attributes['options'] ?? '', array_merge( $attributes, $block_args ) ); $this->is_unique = $attributes['isUnique'] ?? false; $this->conditional_class = apply_filters( 'srfm_conditional_logic_classes', $this->form_id, $this->block_id ); $this->data_require_attr = $this->required ? 'true' : 'false'; diff --git a/inc/fields/dropdown-markup.php b/inc/fields/dropdown-markup.php index aaa208ac7..c5223b6e5 100644 --- a/inc/fields/dropdown-markup.php +++ b/inc/fields/dropdown-markup.php @@ -12,6 +12,7 @@ use Spec_Gb_Helper; use SRFM\Inc\Helper; +use SRFM\Inc\Smart_Tags; if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. @@ -85,6 +86,7 @@ public function __construct( $attributes ) { $this->multi_select_attr = ! empty( $attributes['multiSelect'] ) ? 'true' : 'false'; $this->search_attr = ! empty( $attributes['searchable'] ) ? 'true' : 'false'; $this->preselected_options = $attributes['preselectedOptions'] ?? []; + $this->resolve_dynamic_default( $attributes ); $this->set_markup_properties(); $this->set_aria_described_by(); @@ -186,6 +188,39 @@ function( $i ) { ); } + /** + * Resolve dynamic default value from smart tags and override preselected options. + * + * @param array $attributes Block attributes. + * @since 2.8.1 + * @return void + */ + protected function resolve_dynamic_default( $attributes ) { + $dynamic_default = is_string( $attributes['dynamicDefaultValue'] ?? '' ) ? $attributes['dynamicDefaultValue'] : ''; + if ( empty( $dynamic_default ) || ! empty( $attributes['multiSelect'] ) ) { + return; + } + + $smart_tags = new Smart_Tags(); + $resolved = $smart_tags->process_smart_tags( $dynamic_default ); + + if ( empty( $resolved ) || ! is_string( $resolved ) ) { + return; + } + + $resolved = trim( $resolved ); + + if ( is_array( $this->options ) ) { + foreach ( $this->options as $i => $option ) { + $option_label = is_array( $option ) ? ( $option['label'] ?? '' ) : ''; + if ( strcasecmp( $option_label, $resolved ) === 0 ) { + $this->preselected_options = [ $i ]; + return; + } + } + } + } + /** * Data attribute markup for min and max value * diff --git a/inc/fields/multichoice-markup.php b/inc/fields/multichoice-markup.php index c2029ad83..95f19f80c 100644 --- a/inc/fields/multichoice-markup.php +++ b/inc/fields/multichoice-markup.php @@ -10,6 +10,7 @@ use Spec_Gb_Helper; use SRFM\Inc\Helper; +use SRFM\Inc\Smart_Tags; if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. @@ -122,6 +123,7 @@ public function __construct( $attributes ) { $this->choice_width_attr = $this->choice_width ? 'srfm-choice-width-' . str_replace( '.', '-', $this->choice_width ) : ''; $this->show_values = apply_filters( 'srfm_show_options_values', false, $attributes['showValues'] ?? false ); $this->preselected_options = $attributes['preselectedOptions'] ?? []; + $this->resolve_dynamic_default( $attributes ); $this->set_markup_properties(); $this->set_aria_described_by(); } @@ -201,6 +203,39 @@ class="srfm-input-slug ); ?>-single" $attributes Block attributes. + * @since 2.8.1 + * @return void + */ + protected function resolve_dynamic_default( $attributes ) { + $dynamic_default = is_string( $attributes['dynamicDefaultValue'] ?? '' ) ? $attributes['dynamicDefaultValue'] : ''; + if ( empty( $dynamic_default ) || ! $this->single_selection ) { + return; + } + + $smart_tags = new Smart_Tags(); + $resolved = $smart_tags->process_smart_tags( $dynamic_default ); + + if ( empty( $resolved ) || ! is_string( $resolved ) ) { + return; + } + + $resolved = trim( $resolved ); + + if ( is_array( $this->options ) ) { + foreach ( $this->options as $i => $option ) { + $option_title = $option['optionTitle'] ?? ''; + if ( strcasecmp( $option_title, $resolved ) === 0 ) { + $this->preselected_options = [ $i ]; + return; + } + } + } + } + /** * Data attribute markup for min and max value * diff --git a/inc/form-submit.php b/inc/form-submit.php index 782e5c42f..d7b506ee4 100644 --- a/inc/form-submit.php +++ b/inc/form-submit.php @@ -614,6 +614,8 @@ public function handle_form_entry( $form_data ) { $entry_id = Entries::add( $entries_data ); if ( $entry_id ) { + // Inject entry_id so {entry_id} smart tag resolves in confirmation message, redirect URL, and downstream integrations. + $form_data['entry_id'] = intval( $entry_id ); $confirmation_message = Generate_Form_Markup::get_confirmation_markup( $form_data, $submission_data ); diff --git a/inc/lib/astra-notices/class-astra-notices.php b/inc/lib/astra-notices/class-bsf-admin-notices.php similarity index 75% rename from inc/lib/astra-notices/class-astra-notices.php rename to inc/lib/astra-notices/class-bsf-admin-notices.php index 9f9940c54..080f0f952 100644 --- a/inc/lib/astra-notices/class-astra-notices.php +++ b/inc/lib/astra-notices/class-bsf-admin-notices.php @@ -1,57 +1,62 @@ get_notice_by_id( $notice_id ); $capability = isset( $notice['capability'] ) ? $notice['capability'] : 'manage_options'; - if ( ! apply_filters( 'astra_notices_user_cap_check', current_user_can( $capability ) ) ) { - return; + $has_cap = current_user_can( $capability ); + + /** + * Filters whether the current user passes the capability check for notice dismissal. + * + * Both the legacy and new filter names are fired for backward compatibility. + * Filters can only restrict access (return false), never grant it — if the + * underlying current_user_can() check fails, filters cannot override to true. + */ + $cap_check = apply_filters( 'astra_notices_user_cap_check', $has_cap ); + $cap_check = apply_filters( 'bsf_admin_notices_user_cap_check', $cap_check ); + + if ( ! $has_cap || ! $cap_check ) { + wp_send_json_error( esc_html__( 'Permission denied.', 'astra-notices' ) ); } $allowed_notices = get_option( 'allowed_astra_notices', array() ); // Get allowed notices. - // Define restricted user meta keys. + // Define restricted user meta keys using the dynamic table prefix. + global $wpdb; $wp_default_meta_keys = array( - 'wp_capabilities', - 'wp_user_level', - 'wp_user-settings', + $wpdb->prefix . 'capabilities', + $wpdb->prefix . 'user_level', + $wpdb->prefix . 'user-settings', 'account_status', 'session_tokens', ); // if $notice_id does not start with astra-notices-id and notice_id is not from the allowed notices, then return. - if ( strpos( $notice_id, 'astra-notices-id-' ) !== 0 && ( ! in_array( $notice_id, $allowed_notices, true ) ) ) { - return; - } - - if ( false === wp_verify_nonce( $nonce, 'astra-notices' ) ) { - wp_send_json_error( esc_html_e( 'WordPress Nonce not validated.' ) ); + if ( 0 !== strpos( $notice_id, 'astra-notices-id-' ) && ( ! in_array( $notice_id, $allowed_notices, true ) ) ) { + wp_send_json_error( esc_html__( 'Invalid notice ID.', 'astra-notices' ) ); } // Valid inputs? if ( ! empty( $notice_id ) ) { if ( in_array( $notice_id, $wp_default_meta_keys, true ) ) { - wp_send_json_error( esc_html_e( 'Invalid notice ID.' ) ); + wp_send_json_error( esc_html__( 'Invalid notice ID.', 'astra-notices' ) ); } if ( ! empty( $repeat_notice_after ) ) { @@ -168,7 +183,7 @@ public function dismiss_notice() { /** * Enqueue Scripts. * - * @since 1.0.0 + * @since 1.2.0 * @return void */ public function enqueue_scripts() { @@ -187,7 +202,7 @@ public function enqueue_scripts() { * Sort the notices based on the given priority of the notice. * This function is called from usort() * - * @since 1.5.2 + * @since 1.2.0 * @param array $notice_1 First notice. * @param array $notice_2 Second Notice. * @return array @@ -205,7 +220,6 @@ public function sort_notices( $notice_1, $notice_2 ) { /** * Get all registered notices. - * Since v1.1.8 it is recommended to register the notices on * * @return array|null */ @@ -216,7 +230,7 @@ private function get_notices() { } /** - * Get notice by notice_id + * Get notice by notice_id. * * @param string $notice_id Notice id. * @@ -241,7 +255,7 @@ private function get_notice_by_id( $notice_id ) { /** * Display the notices in the WordPress admin. * - * @since 1.0.0 + * @since 1.2.0 * @return void */ public function show_notices() { @@ -254,7 +268,7 @@ public function show_notices() { 'display-notice-after' => false, // Optional, Dismiss-able notice time. It'll auto show after given time. 'class' => '', // Optional, Additional notice wrapper class. 'priority' => 10, // Priority of the notice. - 'display-with-other-notices' => true, // Should the notice be displayed if other notices are being displayed from Astra_Notices. + 'display-with-other-notices' => true, // Should the notice be displayed if other notices are being displayed from BSF_Admin_Notices. 'is_dismissible' => true, 'capability' => 'manage_options', // User capability - This capability is required for the current user to see this notice. ); @@ -294,7 +308,7 @@ public function show_notices() { /** * Render a notice. * - * @since 1.0.0 + * @since 1.2.0 * @param array $notice Notice markup. * @return void */ @@ -302,28 +316,35 @@ public static function markup( $notice = array() ) { wp_enqueue_script( 'astra-notices' ); wp_enqueue_style( 'astra-notices' ); + // Dual-emit: legacy (astra_notice_*) + new (bsf_admin_notice_*) hooks for backward compat. + // Note: consumers hooking BOTH names for the same event will be called twice. do_action( 'astra_notice_before_markup' ); + do_action( 'bsf_admin_notice_before_markup' ); do_action( "astra_notice_before_markup_{$notice['id']}" ); + do_action( "bsf_admin_notice_before_markup_{$notice['id']}" ); ?> -
+
+
entities as $key => $data ) { - add_action( 'astra_notice_before_markup_' . $key . '-optin-notice', array( $this, 'enqueue_assets' ) ); + add_action( 'bsf_admin_notice_before_markup_' . $key . '-optin-notice', array( $this, 'enqueue_assets' ) ); add_action( 'update_option_' . $key . '_usage_optin', array( $this, 'update_analytics_option_callback' ), 10, 3 ); add_action( 'add_option_' . $key . '_usage_optin', array( $this, 'add_analytics_option_callback' ), 10, 2 ); } @@ -235,6 +235,9 @@ public function get_usage_doc_link( $product_key, $context = 'notice' ) { * @since 1.0.0 */ public function option_notice() { + if ( ! class_exists( 'BSF_Admin_Notices' ) ) { + return; + } if ( ! current_user_can( 'manage_options' ) ) { return; @@ -279,7 +282,7 @@ public function option_notice() { $language_dir = is_rtl() ? 'rtl' : 'ltr'; - Astra_Notices::add_notice( + BSF_Admin_Notices::add_notice( array( 'id' => $key . '-optin-notice', 'type' => '', diff --git a/inc/lib/bsf-analytics/version.json b/inc/lib/bsf-analytics/version.json index 401a49d0d..6f450d022 100644 --- a/inc/lib/bsf-analytics/version.json +++ b/inc/lib/bsf-analytics/version.json @@ -1,3 +1,3 @@ { - "bsf-analytics-ver": "1.1.25" + "bsf-analytics-ver": "1.1.26" } diff --git a/inc/payments/payment-helper.php b/inc/payments/payment-helper.php index cc9e1db98..b8376d736 100644 --- a/inc/payments/payment-helper.php +++ b/inc/payments/payment-helper.php @@ -255,6 +255,11 @@ public static function get_all_currencies_data() { 'symbol' => 'kr', 'decimal_places' => 2, ], + 'PLN' => [ + 'name' => __( 'Polish Złoty', 'sureforms' ), + 'symbol' => 'zł', + 'decimal_places' => 2, + ], 'KRW' => [ 'name' => __( 'South Korean Won', 'sureforms' ), 'symbol' => '₩', diff --git a/inc/smart-tags.php b/inc/smart-tags.php index 58cb99883..222233727 100644 --- a/inc/smart-tags.php +++ b/inc/smart-tags.php @@ -125,6 +125,7 @@ public static function smart_tag_list() { '{browser_platform}' => __( 'Browser Platform', 'sureforms' ), '{embed_post_id}' => __( 'Embedded Post/Page ID', 'sureforms' ), '{embed_post_title}' => __( 'Embedded Post/Page Title', 'sureforms' ), + '{entry_id}' => __( 'Entry ID', 'sureforms' ), '{get_input:param}' => __( 'Populate by GET Param', 'sureforms' ), '{get_cookie:cookie_name}' => __( 'Cookie Value', 'sureforms' ), ] @@ -326,6 +327,17 @@ public static function smart_tags_callback( $tag, $submission_data = null, $form case '{embed_post_title}': case '{embed_post_url}': return self::parse_post_props( $tag ); + case '{entry_id}': + // Check $form_data first (normal submission path). + if ( ! empty( $form_data ) && is_array( $form_data ) && ! empty( $form_data['entry_id'] ) ) { + return absint( $form_data['entry_id'] ); + } + // Webhooks pass form_data as $submission_data; check there too. + if ( ! empty( $submission_data ) && is_array( $submission_data ) && ! empty( $submission_data['entry_id'] ) ) { + return absint( $submission_data['entry_id'] ); + } + return ''; + case '{current_page_url}': if ( isset( $form_data['_wp_http_referer'] ) ) { $request_uri = sanitize_text_field( Helper::get_string_value( wp_unslash( $form_data['_wp_http_referer'] ) ) ); diff --git a/internal-docs/README.md b/internal-docs/README.md deleted file mode 100644 index 9a933cae0..000000000 --- a/internal-docs/README.md +++ /dev/null @@ -1,160 +0,0 @@ -# SureForms Internal Documentation - -**Version:** 2.5.0 -**Last Updated:** February 2026 -**Target Audience:** Developers, AI Agents, Technical Team - ---- - -## Welcome - -This is the internal documentation for **SureForms Free** and **SureForms Pro** - WordPress form builder plugins used by 300,000+ websites. - -**SureForms Free:** AI-powered form builder with payments (Stripe), native WordPress blocks, 16+ fields -**SureForms Pro:** Advanced features - conversational forms, multi-step, conditional logic, PayPal, 24+ integrations - ---- - -## Quick Start - -### For New Developers (1 Hour) - -1. **Install locally:** - ```bash - cd /path/to/wordpress/wp-content/plugins - git clone https://github.com/brainstormforce/sureforms.git - git clone https://github.com/brainstormforce/sureforms-pro.git - cd sureforms && npm install && npm run build - cd ../sureforms-pro && npm install && npm run build - ``` - -2. **Activate plugins:** - - SureForms Free (required) - - SureForms Pro (optional, requires Free) - -3. **Create first form:** - - Dashboard → SureForms → Add New - - Try AI form builder or blank form - - Add fields from block inserter - - Publish and test submission - -4. **Read these docs:** - - [Architecture](architecture.md) - System design - - [Codebase Map](codebase-map.md) - Where is what - - [APIs](apis.md) - REST, AJAX, hooks - -### For AI Agents - -Start with [ai-agent-guide.md](ai-agent-guide.md) for codebase conventions, patterns, and agent-specific guidance. - ---- - -## Key Files & Directories - -| Path | Purpose | -|------|---------| -| `sureforms/inc/` | Core PHP logic | -| `sureforms/inc/blocks/` | Gutenberg block PHP | -| `sureforms/src/` | React components (admin UI) | -| `sureforms/inc/payments/` | Stripe payment processing | -| `sureforms/inc/ai-form-builder/` | AI form generation | -| `sureforms-pro/inc/business/` | Pro features (PayPal, registration, PDF) | -| `sureforms-pro/inc/pro/native-integrations/` | 24+ service integrations | - ---- - -## Build System - -**SureForms Free:** -```bash -npm run build # Full build (webpack + sass + grunt) -npm run start # Dev mode (watch) -npm run lint-js:fix # Fix JS linting -npm run makepot # Generate translation files -``` - -**SureForms Pro:** -```bash -npm run build # Full build -npm run package # Create distributable zip -``` - -Both use: -- **@wordpress/scripts** (webpack 5, Babel, ESLint) -- **Grunt** (minification, compression) -- **Sass** for CSS compilation - ---- - -## Database Tables - -Custom tables (via `inc/database/`): - -| Table | Purpose | -|-------|---------| -| `wp_sureforms_entries` | Form submissions | -| `wp_sureforms_payments` | Payment transactions (Stripe/PayPal) | -| `wp_sureforms_integrations` | Native integration credentials (encrypted) | -| `wp_sureforms_save_resume` | Draft form state (Pro) | - ---- - -## Testing - -**Unit Tests:** -```bash -composer test # PHPUnit -npm run test:unit # Jest (JS) -``` - -**E2E Tests:** -```bash -npm run play:up # Start wp-env -npm run play:run # Run Playwright tests -``` - -**Code Quality:** -```bash -composer lint # PHP_CodeSniffer -composer phpstan # Static analysis -npm run lint-js # ESLint -``` - ---- - -## Release Process - -**Free (WordPress.org):** -1. Update version in `sureforms.php` and `package.json` -2. Run `npm run build && grunt release` -3. Files excluded via `.distignore` -4. SVN commit to WordPress.org repo - -**Pro (Custom Distribution):** -1. Update version in `sureforms-pro.php` -2. Run `npm run build && npm run package` -3. Generates `sureforms-pro.zip` -4. Deploy to licensing server - ---- - -## Support & Resources - -- **GitHub (Free):** https://github.com/brainstormforce/sureforms -- **GitHub (Pro):** https://github.com/brainstormforce/sureforms-pro -- **Documentation:** https://sureforms.com/docs/ -- **Bug Bounty:** https://brainstormforce.com/bug-bounty-program/ -- **Support:** support@brainstormforce.com - ---- - -## Next Steps - -- **Product Vision:** [product-vision.md](product-vision.md) - Understand goals and personas -- **Architecture:** [architecture.md](architecture.md) - System design and data flow -- **Onboarding:** [onboarding.md](onboarding.md) - 1-hour, 1-day, 1-week learning paths - ---- - -**Maintained by:** SureForms Engineering Team -**Contact:** engineering@brainstormforce.com diff --git a/internal-docs/ai-agent-guide.md b/internal-docs/ai-agent-guide.md deleted file mode 100644 index 867f3c7ea..000000000 --- a/internal-docs/ai-agent-guide.md +++ /dev/null @@ -1,459 +0,0 @@ -# AI Agent Guide - -**Version:** 2.5.0 -**For:** AI Coding Agents & LLMs - ---- - -## Overview - -This guide helps AI agents understand SureForms codebase conventions, make safe changes, and avoid common pitfalls. - ---- - -## Core Principles - -1. **Security First:** Sanitize inputs, escape outputs, use prepared statements -2. **WordPress Standards:** Follow WP coding standards, use WP functions -3. **Backward Compatibility:** Don't break existing forms/entries -4. **Performance:** Avoid N+1 queries, cache when possible -5. **Testing:** Write tests, run existing tests before committing - ---- - -## File Modification Guidelines - -### ✅ Safe to Modify - -**Add features (low risk):** -- New blocks: `inc/blocks/new-block/` -- New integrations (Pro): `inc/pro/native-integrations/integrations/new-service/` -- New validation rules: Add to `inc/field-validation.php` -- New hooks: Add filters/actions (don't remove existing) - -**Extend existing:** -- Add sanitization functions to `inc/helper.php` -- Add validation methods to `inc/field-validation.php` -- Add utility functions to helper classes - -### ⚠️ Modify with Caution - -**Database schema changes:** -- Requires migration script -- Must handle existing data -- Version increments in `inc/database/tables/*.php` - -**Payment processing:** -- `inc/payments/stripe/stripe-webhook.php` -- `inc/business/payments/pay-pal/webhook-listener.php` -- **Risk:** Financial impact if broken - -**Form submission pipeline:** -- `inc/form-submit.php` -- **Risk:** Could break all forms - -### 🚫 High Risk - Avoid Unless Necessary - -**Core WordPress integration:** -- `plugin-loader.php` -- `sureforms.php` / `sureforms-pro.php` - -**Database base class:** -- `inc/database/base.php` (inherited by all tables) - -**Critical security:** -- Nonce verification logic -- Capability checks -- Encryption (Pro): `inc/pro/native-integrations/encryption.php` - ---- - -## Common Patterns - -### Adding a New Field Type - -1. **Create block:** - ``` - inc/blocks/my-field/block.php - src/blocks/my-field/ - ``` - -2. **Register block:** - ```php - // inc/blocks/my-field/block.php - namespace SRFM\Inc\Blocks\My_Field; - - class Block extends \SRFM\Inc\Blocks\Base { - public static function register() { - register_block_type( - 'sureforms/my-field', - [ - 'render_callback' => [__CLASS__, 'render'], - 'attributes' => [/* schema */], - ] - ); - } - - public static function render($attributes) { - // Return HTML - } - } - ``` - -3. **Add to block registry:** - ```php - // inc/blocks/register.php - My_Field\Block::register(); - ``` - -4. **Add sanitization:** - ```php - // inc/helper.php - public static function sanitize_by_field_type($type, $value) { - switch ($type) { - case 'my-field': - return sanitize_text_field($value); - } - } - ``` - -### Adding a REST Endpoint - -```php -// inc/rest-api.php or new file -public function register_routes() { - register_rest_route( - 'sureforms/v1', - '/my-endpoint', - [ - 'methods' => 'POST', - 'callback' => [$this, 'handle_request'], - 'permission_callback' => [$this, 'check_permissions'], - ] - ); -} - -public function check_permissions() { - // CRITICAL: Always verify permissions - return current_user_can('manage_options'); -} - -public function handle_request($request) { - // CRITICAL: Always verify nonce - $nonce = $request->get_header('X-WP-Nonce'); - if (!wp_verify_nonce($nonce, 'wp_rest')) { - return new \WP_Error('invalid_nonce', 'Invalid nonce', ['status' => 403]); - } - - // Sanitize inputs - $data = $request->get_params(); - $clean_data = Helper::sanitize_array_recursively($data); - - // Process... - - return ['success' => true]; -} -``` - -### Adding an Integration (Pro) - -1. **Create integration folder:** - ``` - inc/pro/native-integrations/integrations/myservice/ - ├── config.json - └── actions/ - └── send-data.php - ``` - -2. **config.json:** - ```json - { - "name": "MyService", - "slug": "myservice", - "auth_method": "api_key", - "api_endpoint": "https://api.myservice.com/v1/", - "actions": [ - { - "name": "Send Data", - "slug": "send-data", - "endpoint": "contacts" - } - ] - } - ``` - -3. **actions/send-data.php:** - ```php - namespace SRFM_PRO\Inc\Pro\Native_Integrations\Integrations\Myservice\Actions; - - class Send_Data { - public function execute($integration_data, $form_data) { - $api_key = $integration_data['api_key']; - $response = wp_remote_post( - 'https://api.myservice.com/v1/contacts', - [ - 'headers' => ['Authorization' => 'Bearer ' . $api_key], - 'body' => json_encode($form_data), - ] - ); - - if (is_wp_error($response)) { - return ['success' => false, 'error' => $response->get_error_message()]; - } - - return ['success' => true, 'response' => wp_remote_retrieve_body($response)]; - } - } - ``` - ---- - -## Security Patterns - -### Input Sanitization - -```php -// Text -$name = sanitize_text_field( wp_unslash( $_POST['name'] ?? '' ) ); - -// Email -$email = sanitize_email( wp_unslash( $_POST['email'] ?? '' ) ); - -// Number -$id = absint( $_POST['id'] ?? 0 ); - -// Array (recursive) -$data = Helper::sanitize_array_recursively( $_POST['data'] ?? [] ); - -// Textarea -$message = Helper::sanitize_textarea( wp_unslash( $_POST['message'] ?? '' ) ); -``` - -### Output Escaping - -```php -// HTML content -echo esc_html( $user_name ); - -// Attributes -echo '
'; - -// URLs -echo ''; - -// Rich text (allows safe HTML) -echo wp_kses_post( $content ); -``` - -### Database Queries - -```php -global $wpdb; - -// ✅ Good - Prepared statement -$results = $wpdb->get_results( - $wpdb->prepare( - "SELECT * FROM {$wpdb->prefix}sureforms_entries WHERE form_id = %d AND status = %s", - $form_id, - $status - ) -); - -// ❌ Bad - SQL injection risk -$results = $wpdb->query("DELETE FROM {$wpdb->prefix}sureforms_entries WHERE id = $_POST[id]"); -``` - ---- - -## Testing Your Changes - -### Before Committing - -```bash -# 1. Lint PHP -composer lint - -# 2. Run PHP tests -composer test - -# 3. Lint JavaScript -npm run lint-js - -# 4. Run JS tests -npm run test:unit - -# 5. Build assets -npm run build - -# 6. Test in browser -# - Create form -# - Submit form -# - Check entries -# - Verify no console errors -``` - -### E2E Testing - -```bash -# Start environment -npm run play:up - -# Run tests -npm run play:run - -# Interactive mode (with browser) -npm run play:run:interactive -``` - ---- - -## Database Queries - Common Patterns - -### Get Entries - -```php -use SRFM\Inc\Database\Tables\Entries; - -// Get all for form -$entries = Entries::get_all([ - 'where' => [ - ['key' => 'form_id', 'value' => 123, 'compare' => '='] - ], - 'orderby' => 'created_at', - 'order' => 'DESC', -]); - -// With pagination -$entries = Entries::get_all([ - 'where' => [['key' => 'form_id', 'value' => 123, 'compare' => '=']], - 'limit' => 20, - 'offset' => 40 // Page 3 (20 per page) -]); - -// Count entries -$count = Entries::get_count([ - 'where' => [['key' => 'status', 'value' => 'published', 'compare' => '=']] -]); -``` - -### Get Payments - -```php -use SRFM\Inc\Database\Tables\Payments; - -// Get completed payments -$payments = Payments::get_all([ - 'where' => [ - ['key' => 'status', 'value' => 'completed', 'compare' => '='] - ] -]); - -// Get payment by transaction ID -$payment = Payments::get_by_transaction_id('ch_xxxxx', 'stripe'); -``` - ---- - -## Hooks - When to Use - -### Modify Data Before Save - -```php -// Filter entry data before save -add_filter('sureforms_submit_form_data', function($data, $form_id) { - // Add custom field - $data['custom_timestamp'] = current_time('mysql'); - return $data; -}, 10, 2); -``` - -### Trigger External Action - -```php -// Action after entry save -add_action('sureforms_after_entry_save', function($entry_id, $form_id, $data) { - // Send to external CRM - send_to_crm($data); -}, 10, 3); -``` - -### Modify Email - -```php -// Filter email template -add_filter('sureforms_email_template', function($html, $entry_id) { - // Add custom header - return '
...
' . $html; -}, 10, 2); -``` - ---- - -## Debugging Tips - -### Enable Debug Mode - -```php -// wp-config.php -define('WP_DEBUG', true); -define('WP_DEBUG_LOG', true); -define('WP_DEBUG_DISPLAY', false); -``` - -### Check Debug Log - -```bash -tail -f wp-content/debug.log -``` - -### JavaScript Console - -```javascript -// Check for errors -// Open browser DevTools → Console - -// SureForms global -console.log(window.sureforms); -``` - -### Database Queries - -```php -// Install Query Monitor plugin -// Shows all queries, slow queries, errors -``` - ---- - -## Common Pitfalls to Avoid - -1. **Don't bypass sanitization:** "It's internal, it's safe" → Still sanitize -2. **Don't skip nonce checks:** Every AJAX/REST endpoint needs verification -3. **Don't use `$_POST` directly:** Always sanitize first -4. **Don't concatenate SQL:** Use `$wpdb->prepare()` -5. **Don't echo user data raw:** Use `esc_html()`, `esc_attr()`, etc. -6. **Don't modify database schema without migration:** Breaks existing sites -7. **Don't remove existing hooks:** Other plugins may depend on them -8. **Don't hardcode `wp_` prefix:** Use `$wpdb->prefix` - ---- - -## Getting Help - -**Documentation:** -- This folder: All internal docs -- WordPress Codex: https://codex.wordpress.org/ -- React Docs: https://react.dev/ - -**Code Search:** -- Use Glob/Grep tools to find patterns -- Example: `grep -r "sanitize_text_field" inc/` → See how sanitization is used - -**Ask Before:** -- Breaking changes -- Database schema changes -- Removing existing functionality - ---- - -**Next:** [Troubleshooting](troubleshooting.md) - Common problems and solutions diff --git a/internal-docs/apis.md b/internal-docs/apis.md deleted file mode 100644 index 0a7a16ec7..000000000 --- a/internal-docs/apis.md +++ /dev/null @@ -1,418 +0,0 @@ -# APIs - -Complete API reference for SureForms Free & Pro. - ---- - -## REST API Endpoints - -### Free (`/sureforms/v1/`) - -**Form Management:** -```http -POST /sureforms/v1/generate-form -GET /sureforms/v1/forms -GET /sureforms/v1/forms/{id} -DELETE /sureforms/v1/forms/{id} -``` - -**Form Submission:** -```http -POST /sureforms/v1/submit-form -``` -**Body:** `{ form_id, nonce, field_data... }` -**Response:** `{ success, message, entry_id }` - -**Entries:** -```http -GET /sureforms/v1/entries/list -GET /sureforms/v1/entries/{id} -DELETE /sureforms/v1/entries/{id} -POST /sureforms/v1/entries/export -``` - -**Payments:** -```http -GET /sureforms/v1/payments/list -GET /sureforms/v1/payments/{id} -``` - -**Stripe Webhooks:** -```http -POST /sureforms/webhook_test # Stripe webhooks -POST /sureforms/webhook_live -``` - -**Settings:** -```http -GET /sureforms/v1/settings -POST /sureforms/v1/settings/update -``` - -### Pro (`/sureforms-pro/v1/`) - -**OAuth:** -```http -POST /sureforms-pro/v1/oauth/authorize -POST /sureforms-pro/v1/oauth/callback -``` - -**PayPal Webhooks:** -```http -POST /sureforms-pro/paypal-test-webhook -POST /sureforms-pro/paypal-live-webhook -``` - -**User Registration:** -```http -POST /sureforms-pro/v1/login -POST /sureforms-pro/v1/lost-password -POST /sureforms-pro/v1/reset-password -``` - ---- - -## AJAX Handlers - -### Free (30 handlers) - -**Admin:** -```php -'srfm_admin_action' # Generic admin handler -'srfm_get_forms' # Fetch forms list -'srfm_delete_form' # Delete form -'srfm_duplicate_form' # Duplicate form -'srfm_export_entries' # Export CSV -``` - -**Payments (Public):** -```php -'wp_ajax_srfm_create_payment_intent' # Stripe payment -'wp_ajax_nopriv_srfm_create_payment_intent' -'wp_ajax_srfm_create_subscription_intent' # Stripe subscription -'wp_ajax_nopriv_srfm_create_subscription_intent' -``` - -**Admin Stripe:** -```php -'srfm_stripe_cancel_subscription' # Cancel subscription -'srfm_stripe_pause_subscription' # Pause subscription -``` - -**Admin Payments:** -```php -'srfm_create_payment_refund' # Create refund -``` - -**Form Validation (Public):** -```php -'wp_ajax_srfm_field_unique_validation' # Check unique fields -'wp_ajax_nopriv_srfm_field_unique_validation' -``` - -### Pro (22 handlers) - -**PayPal (Public):** -```php -'wp_ajax_srfm_pro_create_paypal_order' -'wp_ajax_nopriv_srfm_pro_create_paypal_order' -'wp_ajax_srfm_pro_create_paypal_subscription' -'wp_ajax_nopriv_srfm_pro_create_paypal_subscription' -``` - -**PayPal Admin:** -```php -'srfm_pro_paypal_cancel_subscription' -'srfm_pro_paypal_pause_subscription' -``` - -**PDF:** -```php -'srfm_pro_generate_pdf' # Generate PDF from entry -'srfm_pro_download_pdf' # Download PDF -``` - -**Licensing:** -```php -'srfm_pro_activate_license' -'srfm_pro_deactivate_license' -``` - -**Entries:** -```php -'sureforms_pro_entry_delete_file' # Delete uploaded file -``` - ---- - -## WordPress Hooks - -### Actions (Form Submission) - -```php -// Before entry save -do_action('sureforms_before_entry_save', $form_id, $entry_data); - -// After entry save -do_action('sureforms_after_entry_save', $entry_id, $form_id, $entry_data); - -// After payment completed -do_action('sureforms_payment_completed', $payment_id, $entry_id, $gateway); - -// After integration success -do_action('sureforms_integration_success', $integration_type, $response); - -// Before email send -do_action('sureforms_before_email_send', $to, $subject, $message); - -// After form submission (success) -do_action('sureforms_form_submitted', $entry_id, $form_id); -``` - -### Filters (Data Modification) - -```php -// Modify form data before save -$entry_data = apply_filters('sureforms_submit_form_data', $entry_data, $form_id); - -// Modify payment amount -$amount = apply_filters('sureforms_payment_amount', $amount, $form_id, $entry_data); - -// Modify email template -$html = apply_filters('sureforms_email_template', $html, $entry_id, $form_id); - -// Modify email subject -$subject = apply_filters('sureforms_email_subject', $subject, $form_id); - -// Modify email recipients -$to = apply_filters('sureforms_email_recipients', $to, $entry_id, $form_id); - -// Modify confirmation message -$message = apply_filters('sureforms_confirmation_message', $message, $entry_id); - -// Modify field validation -$is_valid = apply_filters('sureforms_validate_field', $is_valid, $field, $value); - -// Modify sanitized value -$value = apply_filters("sureforms_sanitize_{$field_type}", $value, $field); -``` - -### Integration Hooks (Pro) - -```php -// Before integration request -do_action('sureforms_pro_before_integration', $integration, $data); - -// After integration request -do_action('sureforms_pro_after_integration', $integration, $response); - -// Integration error -do_action('sureforms_pro_integration_error', $integration, $error); -``` - ---- - -## JavaScript APIs - -### Global Objects - -```javascript -// Form settings -window.sureforms = { - ajaxUrl: '/wp-admin/admin-ajax.php', - nonce: 'xxx', - formId: 123, - settings: {...} -}; - -// Block editor -window.sureformsBlocks = { - registerBlock: (name, settings) => {...}, - getBlock: (name) => {...} -}; -``` - -### Custom Events - -```javascript -// Form submitted -document.addEventListener('sureforms-form-submitted', (e) => { - console.log('Entry ID:', e.detail.entryId); -}); - -// Payment completed -document.addEventListener('sureforms-payment-completed', (e) => { - console.log('Payment ID:', e.detail.paymentId); -}); - -// Validation error -document.addEventListener('sureforms-validation-error', (e) => { - console.log('Field:', e.detail.field, 'Error:', e.detail.message); -}); -``` - ---- - -## Database APIs - -### Entry Operations - -```php -use SRFM\Inc\Database\Tables\Entries; - -// Get all entries for a form -$entries = Entries::get_all([ - 'where' => [ - ['key' => 'form_id', 'value' => 123, 'compare' => '='] - ], - 'orderby' => 'created_at', - 'order' => 'DESC', - 'limit' => 20, - 'offset' => 0 -]); - -// Get single entry -$entry = Entries::get_by_id(456); - -// Insert entry -$entry_id = Entries::insert([ - 'form_id' => 123, - 'entry_data' => json_encode($data), - 'status' => 'published' -]); - -// Update entry -Entries::update(456, ['status' => 'trash']); - -// Delete entry -Entries::delete(456); -``` - -### Payment Operations - -```php -use SRFM\Inc\Database\Tables\Payments; - -// Get payments -$payments = Payments::get_all_main_payments([ - 'where' => [ - ['key' => 'status', 'value' => 'completed', 'compare' => '='] - ] -]); - -// Create payment -$payment_id = Payments::insert([ - 'entry_id' => 456, - 'transaction_id' => 'ch_xxx', - 'gateway' => 'stripe', - 'status' => 'pending', - 'total_amount' => 99.99, - 'currency' => 'USD' -]); - -// Update payment status -Payments::update($payment_id, ['status' => 'completed']); -``` - ---- - -## Helper APIs - -### Sanitization - -```php -use SRFM\Inc\Helper; - -// Sanitize by field type -$clean = Helper::sanitize_by_field_type('email', $value); -$clean = Helper::sanitize_by_field_type('textarea', $value); -$clean = Helper::sanitize_by_field_type('number', $value); - -// Email-specific -$email = Helper::sanitize_email_header($raw_email); - -// Recursive sanitization -$clean_array = Helper::sanitize_array_recursively($array); -``` - -### Validation - -```php -use SRFM\Inc\Field_Validation; - -// Validate field -$result = Field_Validation::validate_field($field_config, $value); -// Returns: ['valid' => true/false, 'message' => 'Error message'] - -// Validate entire form -$result = Field_Validation::validate_form_data($form_id, $data); -``` - -### Payment Helpers - -```php -use SRFM\Inc\Payments\Payment_Helper; - -// Validate amount against form config -$result = Payment_Helper::validate_payment_amount($amount, $currency, $form_id, $block_id); - -// Get currency -$currency = Payment_Helper::get_currency(); -``` - ---- - -## Encryption API (Pro) - -```php -use SRFM_PRO\Inc\Pro\Native_Integrations\Encryption; - -$enc = new Encryption(); - -// Encrypt sensitive data -$encrypted = $enc->encrypt('oauth_token_12345'); - -// Decrypt -$decrypted = $enc->decrypt($encrypted); - -// Storage: wp_sureforms_integrations.data column -``` - -**Algorithm:** AES-256-CTR -**Key:** `SRFM_ENCRYPTION_KEY` constant or `LOGGED_IN_KEY` - ---- - -## Integration Workflow API (Pro) - -```php -use SRFM_PRO\Inc\Pro\Native_Integrations\Services\Workflow_Processor; - -// Execute integration workflow -$processor = new Workflow_Processor(); -$result = $processor->execute_workflow($integration_config, $entry_data); - -// Returns: ['success' => true/false, 'response' => API response] -``` - ---- - -## Rate Limiting - -**Note:** No built-in rate limiting. Implementations should add: - -```php -// Example pattern (not in core) -$key = 'form_submit_' . $user_ip; -$attempts = get_transient($key) ?: 0; - -if ($attempts >= 5) { - wp_send_json_error('Too many submissions', 429); -} - -set_transient($key, $attempts + 1, 15 * MINUTE_IN_SECONDS); -``` - ---- - -**Next:** [Coding Standards](coding-standards.md) - PHP/JS conventions diff --git a/internal-docs/architecture.md b/internal-docs/architecture.md deleted file mode 100644 index 9e59e0b81..000000000 --- a/internal-docs/architecture.md +++ /dev/null @@ -1,329 +0,0 @@ -# Architecture - -**Version:** 2.5.0 - ---- - -## System Overview - -SureForms is a WordPress form builder with a **Free + Pro** plugin architecture: - -``` -WordPress Site -├── SureForms Free (Required) -│ ├── Core form functionality -│ ├── Stripe payments -│ ├── AI form builder -│ └── Entry management -└── SureForms Pro (Optional Extension) - ├── Advanced features (conditional logic, multi-step) - ├── PayPal payments - ├── User registration/login - └── 24+ native integrations -``` - ---- - -## High-Level Architecture - -``` -┌─────────────────────────────────────────────────────────┐ -│ WordPress Admin │ -│ ┌──────────────────────────────────────────────────┐ │ -│ │ React Admin UI (src/) │ │ -│ │ - Form Builder (Gutenberg Blocks) │ │ -│ │ - Entry Dashboard │ │ -│ │ - Settings Panels │ │ -│ └──────────────────────────────────────────────────┘ │ -└─────────────────────────────────────────────────────────┘ - ↕ -┌─────────────────────────────────────────────────────────┐ -│ REST API Layer │ -│ - /sureforms/v1/* (Free) │ -│ - /sureforms-pro/v1/* (Pro) │ -│ - AJAX handlers (wp_ajax_*) │ -└─────────────────────────────────────────────────────────┘ - ↕ -┌─────────────────────────────────────────────────────────┐ -│ Business Logic (inc/) │ -│ ┌──────────┬──────────┬──────────┬──────────────────┐ │ -│ │ Forms │ Payments │ AI │ Integrations │ │ -│ │ Submit │ Stripe │ Builder │ (Pro: 24+) │ │ -│ │ Validate │ PayPal │ Field │ Mailchimp, etc │ │ -│ │ Store │ Webhooks │ Mapping │ │ │ -│ └──────────┴──────────┴──────────┴──────────────────┘ │ -└─────────────────────────────────────────────────────────┘ - ↕ -┌─────────────────────────────────────────────────────────┐ -│ Data Layer │ -│ ┌──────────────┬────────────────┬──────────────────┐ │ -│ │ WP Options │ Custom Tables │ Encrypted Data │ │ -│ │ Form configs │ Entries │ OAuth tokens │ │ -│ │ Settings │ Payments │ API keys │ │ -│ └──────────────┴────────────────┴──────────────────┘ │ -└─────────────────────────────────────────────────────────┘ - ↕ -┌─────────────────────────────────────────────────────────┐ -│ Frontend Rendering │ -│ - Gutenberg Blocks (PHP + JS) │ -│ - Form submission (AJAX) │ -│ - reCAPTCHA/Turnstile │ -│ - Real-time validation │ -└─────────────────────────────────────────────────────────┘ -``` - ---- - -## Component Breakdown - -### 1. Block System (Gutenberg) - -**Free Blocks (16):** -- Input types: Text, Email, Number, Phone, URL, Textarea, Dropdown -- Special: Address, Checkbox, Multiple Choice, GDPR, Payment -- Layout: Separator, Heading, Image, Icon, Custom Button - -**Pro Blocks (8):** -- Input: Date Picker, Time Picker, Rating, Slider, Hidden, Password -- Advanced: File Upload, HTML, Page Break (multi-step) -- User Registration: Login, Register, Lost Password, Reset Password - -**Location:** `inc/blocks/*/block.php` and `src/blocks/*/` - -### 2. Form Submission Pipeline - -``` -User Submits Form - ↓ -1. Nonce Verification (inc/form-submit.php:91-95) - ↓ -2. Field Validation (inc/field-validation.php) - - Type validation (email, URL, number) - - Required fields - - Min/max constraints - - Custom regex - ↓ -3. Sanitization (inc/helper.php:258-274) - - Per-field type sanitization - - XSS prevention (wp_kses_post) - - SQL injection prevention - ↓ -4. CAPTCHA Validation (inc/form-submit.php:317-386) - - reCAPTCHA v2/v3 - - Cloudflare Turnstile - - hCaptcha - ↓ -5. Business Logic (Pro: Conditional Logic) - ↓ -6. Payment Processing (if enabled) - - Stripe: Create PaymentIntent - - PayPal: Create Order - ↓ -7. Entry Storage (inc/database/tables/entries.php) - ↓ -8. Integrations (Pro: Send to external services) - ↓ -9. Email Notifications (inc/email/email-template.php) - ↓ -10. Confirmation/Redirect -``` - -### 3. Payment Processing - -**Stripe (Free):** -- Location: `inc/payments/stripe/` -- Flow: - 1. Frontend creates PaymentIntent (AJAX) - 2. User completes payment on Stripe - 3. Webhook updates payment status - 4. Entry marked as paid - -**PayPal (Pro):** -- Location: `inc/business/payments/pay-pal/` -- Flow: - 1. Frontend creates Order via API - 2. User redirected to PayPal - 3. Webhook confirms payment - 4. Entry status updated - -**Database:** `wp_sureforms_payments` table - -### 4. AI Form Builder - -**Location:** `inc/ai-form-builder/` - -**Flow:** -``` -User Prompt ("Create a contact form") - ↓ -AI Middleware (SRFM_AI_MIDDLEWARE) - ↓ -Field Mapping (field-mapping.php) - ↓ -Gutenberg Block Generation - ↓ -Form Preview -``` - -**API:** `https://credits.startertemplates.com/sureforms/` - -### 5. Native Integrations (Pro) - -**Location:** `inc/pro/native-integrations/` - -**Supported Services (24+):** -- Email: Mailchimp, Brevo, Constant Contact -- CRM: HubSpot, Salesforce, Zoho -- Messaging: Telegram, Slack, Discord -- Marketing: FluentCRM, MailerPress -- Booking: LatePoint -- Automation: Zapier, OttoKit - -**Architecture:** -``` -Generic Provider Base Class - ↓ -Integration-Specific Classes -(inc/pro/native-integrations/integrations/*/actions/) - ↓ -OAuth Handler (oauth-handler.php) - ↓ -Encrypted Storage (encryption.php - AES-256-CTR) - ↓ -Workflow Processor (services/workflow-processor.php) -``` - -### 6. Database Schema - -**Custom Tables:** - -```sql --- Entries -wp_sureforms_entries -- id (INT, PK) -- form_id (INT) -- entry_data (LONGTEXT, JSON) -- created_at (DATETIME) -- updated_at (DATETIME) -- status (VARCHAR - 'published', 'trash') -- user_agent (TEXT) -- ip_address (VARCHAR) - --- Payments -wp_sureforms_payments -- id (INT, PK) -- entry_id (INT, FK) -- transaction_id (VARCHAR) -- gateway (ENUM 'stripe', 'paypal') -- status (ENUM 'pending', 'completed', 'failed', 'refunded') -- total_amount (DECIMAL) -- refunded_amount (DECIMAL) -- currency (VARCHAR) - --- Integrations (Pro) -wp_sureforms_integrations -- id (INT, PK) -- type (VARCHAR - 'mailchimp', 'hubspot', etc.) -- data (LONGTEXT, encrypted JSON) -- status (ENUM 'active', 'inactive') - --- Save & Resume (Pro) -wp_sureforms_save_resume -- id (INT, PK) -- form_id (INT) -- token (VARCHAR, unique) -- form_data (LONGTEXT, JSON) -- expires_at (DATETIME) -``` - ---- - -## Security Architecture - -**Input Validation:** -- Nonce verification on all AJAX/REST requests -- Sanitization via `sanitize_*` functions -- Type casting (absint, floatval) - -**Output Escaping:** -- `esc_html()`, `esc_attr()`, `esc_url()` throughout -- `wp_kses_post()` for rich text - -**SQL Security:** -- `$wpdb->prepare()` for all queries -- No direct SQL concatenation - -**Payment Security:** -- Webhook signature verification (Stripe, PayPal) -- Server-side amount validation -- PCI-DSS compliant (payments handled by Stripe/PayPal) - -**Encryption (Pro):** -- AES-256-CTR for OAuth tokens -- Key derivation: `SRFM_ENCRYPTION_KEY` constant or `LOGGED_IN_KEY` -- Storage: `wp_sureforms_integrations.data` (encrypted JSON) - ---- - -## Performance Optimizations - -1. **Lazy Loading:** React components loaded on-demand -2. **Asset Minification:** Grunt uglifies JS/CSS -3. **Database Indexing:** Indexes on `form_id`, `entry_id`, `status` -4. **Caching:** Transients for integration API calls -5. **Query Optimization:** `SELECT` only needed columns - ---- - -## Extensibility - -**Hooks (Filters):** -- `sureforms_submit_form_data` - Modify data before save -- `sureforms_email_template` - Customize email HTML -- `sureforms_payment_amount` - Modify payment amount - -**Hooks (Actions):** -- `sureforms_after_entry_save` - Trigger after entry created -- `sureforms_payment_completed` - After successful payment -- `sureforms_integration_success` - After integration sends data - -**Developer APIs:** -- REST: `/sureforms/v1/*` -- PHP: `SRFM\Inc\Helper` class -- JavaScript: `window.sureforms.*` globals - ---- - -## Technology Stack - -| Layer | Technologies | -|-------|-------------| -| Frontend (Admin) | React 18, @wordpress/components, TanStack Query | -| Frontend (Public) | Vanilla JS, DOMPurify, intl-tel-input | -| Backend | PHP 7.4+, WordPress 6.4+ | -| Build | webpack 5, Babel, Sass, Grunt | -| Testing | PHPUnit, Jest, Playwright | -| Database | MySQL 5.7+, MariaDB 10.3+ | - ---- - -## Deployment Architecture - -``` -Developer Machine - ↓ -Git Commit → GitHub Actions CI - ↓ -Automated Tests (PHPUnit, Playwright) - ↓ -Build Assets (npm run build) - ↓ -Free: WordPress.org SVN -Pro: Licensing Server (ZIP) - ↓ -End User WordPress Sites (300,000+) -``` - ---- - -**Next:** [Codebase Map](codebase-map.md) for detailed folder structure diff --git a/internal-docs/codebase-map.md b/internal-docs/codebase-map.md deleted file mode 100644 index 9d85000c2..000000000 --- a/internal-docs/codebase-map.md +++ /dev/null @@ -1,303 +0,0 @@ -# Codebase Map - -**Version:** 2.5.0 - -Complete folder-by-folder guide to both plugins. - ---- - -## SureForms Free (`sureforms/`) - -### Root Files - -| File | Purpose | -|------|---------| -| `sureforms.php` | Main plugin file, defines constants, loads `plugin-loader.php` | -| `plugin-loader.php` | Bootstraps plugin, registers hooks, loads dependencies | -| `composer.json` | PHP dependencies (nps-survey, bsf-analytics, astra-notices) | -| `package.json` | JS dependencies, build scripts | -| `Gruntfile.js` | Grunt tasks (minify, compress, release) | - -### `admin/` - WordPress Admin UI - -| File | Purpose | -|------|---------| -| `admin.php` | Admin page registration, AJAX handlers for admin actions | -| `analytics.php` | Usage analytics, event tracking | -| `notice-manager.php` | Admin notices, dismissible alerts | - -### `inc/` - Core PHP Logic - -#### `inc/blocks/` - Gutenberg Block Definitions (PHP) - -Each block has a `block.php` with: -- Block registration (`register_block_type`) -- Server-side rendering callback -- Attribute schema -- Enqueue scripts/styles - -**Blocks (16):** -- `address/`, `checkbox/`, `dropdown/`, `email/`, `gdpr/`, `inlinebutton/` -- `input/`, `multichoice/`, `number/`, `payment/`, `phone/`, `sform/`, `textarea/`, `url/` -- `base.php` - Base block class - -#### `inc/fields/` - Field Markup Generation - -Mirrors `blocks/` - generates HTML markup for each field type. - -**Pattern:** -```php -*-markup.php files: -- render_field() method -- Outputs escaped HTML -- Handles field attributes, validation states -``` - -#### `inc/payments/` - Payment Processing - -**Core Files:** -| File | Purpose | -|------|---------| -| `front-end.php` | Public AJAX handlers (`srfm_create_payment_intent`, `srfm_create_subscription_intent`) | -| `payment-helper.php` | Utility functions, amount validation, currency formatting | - -**`payments/stripe/`:** -| File | Purpose | -|------|---------| -| `stripe-webhook.php` | Webhook handler (charge, refund, subscription events) | -| `stripe-helper.php` | Stripe API wrapper, PaymentIntent creation | -| `admin-stripe-handler.php` | Admin AJAX for subscription management | -| `payments-settings.php` | Stripe connection settings, API keys | - -**`payments/admin/`:** -| File | Purpose | -|------|---------| -| `admin-handler.php` | Admin AJAX for refunds, payment management | - -#### `inc/ai-form-builder/` - AI Form Generation - -| File | Purpose | -|------|---------| -| `ai-form-builder.php` | Main AI form builder class, API integration | -| `ai-auth.php` | Middleware authentication | -| `ai-helper.php` | Helper functions, prompt processing | -| `field-mapping.php` | Maps AI response to Gutenberg blocks | - -**API:** `SRFM_AI_MIDDLEWARE` - `https://credits.startertemplates.com/sureforms/` - -#### `inc/database/` - Custom Database Tables - -| File | Purpose | -|------|---------| -| `base.php` | Abstract base class for all table classes (CRUD operations) | -| `register.php` | Table registration, schema creation | -| `tables/entries.php` | `wp_sureforms_entries` table (1,300+ lines) | -| `tables/payments.php` | `wp_sureforms_payments` table (1,200+ lines) | - -**Key Methods:** -- `get_all()`, `get_by_id()`, `insert()`, `update()`, `delete()` -- `get_all_main_payments()` - Payment queries with filtering - -#### Other `inc/` Files - -| File | Purpose | Lines | -|------|---------|-------| -| `form-submit.php` | Form submission handler (AJAX + REST) | 1,280 | -| `helper.php` | Utility functions (sanitization, escaping, validation) | 1,500+ | -| `field-validation.php` | Server-side field validation | 800+ | -| `rest-api.php` | REST API registration (`/sureforms/v1/*`) | 800 | -| `entries.php` | Entry management (list, view, export) | 1,000+ | -| `email/email-template.php` | Email notification templates | 400 | -| `frontend-assets.php` | Enqueue public scripts/styles | 300 | - -### `src/` - React Admin UI - -**Structure:** -``` -src/ -├── admin/ # Main admin app -│ ├── components/ # Reusable React components -│ ├── pages/ # Page-level components -│ └── index.js # Entry point -├── blocks/ # Block editor components -│ ├── address/ # Block-specific React -│ ├── email/ -│ └── ... -└── common/ # Shared utilities - ├── api.js # API client (wp.apiFetch) - └── utils.js # Helper functions -``` - -**Build:** webpack via `@wordpress/scripts` - ---- - -## SureForms Pro (`sureforms-pro/`) - -### Root Files - -| File | Purpose | -|------|---------| -| `sureforms-pro.php` | Main plugin file, requires Free plugin | -| `plugin-loader.php` | Bootstraps Pro features | - -### `inc/business/` - Pro Business Features - -#### `inc/business/payments/pay-pal/` - PayPal Integration - -| File | Purpose | Lines | -|------|---------|-------| -| `webhook-listener.php` | PayPal webhook handler (orders, refunds, subscriptions) | 1,173 | -| `frontend.php` | Public AJAX for PayPal orders, subscriptions | 1,100 | -| `api-payments.php` | PayPal API wrapper (create order, capture, refund) | 178 | -| `helper.php` | PayPal utilities, amount formatting | 520 | -| `settings.php` | PayPal connection settings | AJAX | - -#### `inc/business/user-registration/` - Login & Registration - -| File | Purpose | Lines | -|------|---------|-------| -| `init.php` | REST API registration, login/password endpoints | 600+ | -| `processor.php` | Registration processing, `wp_insert_user()` | 1,000+ | -| `login/block.php` | Login block definition | | -| `register/block.php` | Registration block | | -| `lost-password/block.php` | Lost password block | | -| `reset-password/block.php` | Reset password block | | - -**⚠️ Security Note:** Registration processor creates WordPress users from form submissions. - -#### `inc/business/pdf/` - PDF Generation - -| File | Purpose | -|------|---------| -| `pdf.php` | PDF generation API, AJAX handlers | -| `document.php` | PDF document builder (uses TCPDF or similar) | -| `utils.php` | PDF utilities | - -#### `inc/business/custom-app/` - Custom Application Builder - -| File | Purpose | -|------|---------| -| `load.php` | Custom post type forms, standalone applications | -| `utils.php` | App utilities | - -#### `inc/business/custom-post-type/` - Custom Post Type Integration - -Allows forms to create/update custom post types. - -### `inc/pro/native-integrations/` - 24+ Service Integrations - -**Core:** -| File | Purpose | Lines | -|------|---------|-------| -| `native-integrations.php` | Main integration manager | | -| `encryption.php` | AES-256-CTR encryption for OAuth tokens | 200 | -| `oauth-handler.php` | OAuth authorization flow | 400+ | -| `generic-provider.php` | Base provider class | | -| `integration-provider.php` | Provider interface | | - -**`inc/pro/native-integrations/integrations/`:** - -Each integration has its own folder: -``` -mailchimp/ -├── config.json # API endpoints, auth method -└── actions/ - ├── add-contact.php # Action: Add subscriber - └── remove-contact.php - -hubspot/ -├── config.json -└── actions/ - └── create-contact.php - -...24+ integrations -``` - -**Supported:** -- Email: Mailchimp, Brevo, Constant Contact -- CRM: HubSpot, Salesforce, Zoho -- Messaging: Telegram, Slack, Discord -- WP: FluentCRM, MailerPress, MailPoet -- Booking: LatePoint -- Automation: Zapier, OttoKit - -**Encryption:** OAuth tokens encrypted via `encryption.php` before storage in `wp_sureforms_integrations`. - -### `inc/pro/database/tables/` - Pro Database Tables - -| File | Purpose | -|------|---------| -| `integrations.php` | `wp_sureforms_integrations` table | -| `save-resume.php` | `wp_sureforms_save_resume` table (draft forms) | - -### `inc/extensions/` - Pro Extensions - -| File | Purpose | -|------|---------| -| `conditional-logic.php` | Show/hide fields based on conditions | -| `conditional-emails.php` | Conditional email notifications | -| `conditional-confirmations.php` | Conditional redirects | -| `field-validation.php` | Extended validation (file uploads, MIME types) | -| `entries-management.php` | Enhanced entry features (edit, delete files) | -| `page-break.php` | Multi-step form logic | - -### `inc/blocks/` - Pro Blocks (8) - -- `date-picker/`, `time-picker/`, `rating/`, `slider/` -- `upload/`, `hidden/`, `html/`, `page-break/` - ---- - -## Key Patterns & Conventions - -### Naming Conventions - -**Functions:** -- Public: `srfm_function_name()` -- Internal: `_srfm_internal_function()` - -**Classes:** -- Namespaced: `SRFM\Inc\ClassName` -- Pro: `SRFM_PRO\Inc\ClassName` - -**Hooks:** -- Actions: `sureforms_action_name` -- Filters: `sureforms_filter_name` - -**Database:** -- Tables: `wp_sureforms_table_name` -- Options: `sureforms_option_name` - -### File Organization - -``` -feature/ -├── block.php # Block registration -├── feature-markup.php # HTML generation -├── api-handler.php # AJAX/REST handlers -└── helper.php # Utilities -``` - -### REST API Convention - -**Free:** `/sureforms/v1/endpoint` -**Pro:** `/sureforms-pro/v1/endpoint` - ---- - -## Where to Find Things - -**Need to:** -- **Add a new field type?** → `inc/blocks/` + `inc/fields/` + `src/blocks/` -- **Modify form submission?** → `inc/form-submit.php` -- **Change email template?** → `inc/email/email-template.php` -- **Add payment gateway?** → `inc/payments/` (copy Stripe/PayPal pattern) -- **Add integration?** → `inc/pro/native-integrations/integrations/new-service/` -- **Debug entries?** → `inc/database/tables/entries.php` -- **Fix validation?** → `inc/field-validation.php` -- **Customize admin UI?** → `src/admin/` - ---- - -**Next:** [APIs](apis.md) - REST endpoints, AJAX handlers, hooks diff --git a/internal-docs/coding-standards.md b/internal-docs/coding-standards.md deleted file mode 100644 index 0b746674c..000000000 --- a/internal-docs/coding-standards.md +++ /dev/null @@ -1,312 +0,0 @@ -# Coding Standards - -**Version:** 2.5.0 - ---- - -## PHP Standards - -**WordPress Coding Standards:** https://developer.wordpress.org/coding-standards/wordpress-coding-standards/php/ - -### Code Style - -- **PSR-12 inspired** but follows WordPress conventions -- **Tabs for indentation** (not spaces) -- **Yoda conditions:** `if ( 'value' === $variable )` -- **Braces:** Required for all control structures - -```php -// ✅ Good -if ( $condition ) { - do_something(); -} - -// ❌ Bad -if ($condition) do_something(); -``` - -### Naming Conventions - -**Functions:** -```php -srfm_public_function() // Public functions -_srfm_private_function() // Internal (leading underscore) -``` - -**Classes:** -```php -namespace SRFM\Inc; -class Form_Submit { } // Underscores in class names - -namespace SRFM_PRO\Inc\Business; -class PayPal_Helper { } -``` - -**Variables:** -```php -$snake_case_variable = 'value'; // Lowercase with underscores -``` - -**Constants:** -```php -define( 'SRFM_CONSTANT', 'value' ); -``` - -### Security - -**Always:** -- Sanitize input: `sanitize_text_field()`, `absint()`, `sanitize_email()` -- Validate: Check types, ranges, allowed values -- Escape output: `esc_html()`, `esc_attr()`, `esc_url()` -- Use nonces: `wp_verify_nonce()` for AJAX/forms -- Use `$wpdb->prepare()` for SQL queries -- Check capabilities: `current_user_can()` - -**Example:** -```php -// Input -$email = sanitize_email( wp_unslash( $_POST['email'] ?? '' ) ); - -// Database -$results = $wpdb->get_results( - $wpdb->prepare( - "SELECT * FROM {$wpdb->prefix}sureforms_entries WHERE form_id = %d", - $form_id - ) -); - -// Output -echo '
' . esc_html( $user_name ) . '
'; -``` - -### Documentation - -**PHPDoc blocks:** -```php -/** - * Short description. - * - * Longer description if needed. - * - * @since 2.5.0 - * - * @param int $form_id Form ID. - * @param array $data Entry data. - * @return int|false Entry ID on success, false on failure. - */ -function srfm_create_entry( $form_id, $data ) { - // Implementation -} -``` - ---- - -## JavaScript Standards - -**WordPress JavaScript Coding Standards:** https://developer.wordpress.org/coding-standards/wordpress-coding-standards/javascript/ - -### Code Style (ESLint) - -**Config:** `@wordpress/eslint-plugin` - -```javascript -// ✅ Good - ES6+, const/let, arrow functions -const handleSubmit = (event) => { - event.preventDefault(); - const formData = new FormData(event.target); - // ... -}; - -// ❌ Bad - var, function expressions -var handleSubmit = function(event) { - event.preventDefault(); -}; -``` - -### React Conventions - -**Functional components with hooks:** -```jsx -import { useState, useEffect } from '@wordpress/element'; - -function FormBuilder({ formId }) { - const [fields, setFields] = useState([]); - - useEffect(() => { - fetchFields(formId).then(setFields); - }, [formId]); - - return ( -
- {fields.map(field => )} -
- ); -} -``` - -**Naming:** -- Components: `PascalCase` -- Hooks: `useCamelCase` -- Functions: `camelCase` -- Constants: `UPPER_SNAKE_CASE` - ---- - -## CSS/SCSS Standards - -**BEM-inspired naming:** -```scss -.srfm-form { - &__field { - // Field styles - } - - &__field--error { - // Error state - } -} -``` - -**Prefix:** All classes start with `srfm-` to avoid conflicts. - ---- - -## Database Standards - -### Table Names - -```php -$wpdb->prefix . 'sureforms_entries' -$wpdb->prefix . 'sureforms_payments' -``` - -**Always use `$wpdb->prefix`**, never hardcode `wp_`. - -### Queries - -**Always use prepared statements:** -```php -// ✅ Good -$wpdb->get_results( - $wpdb->prepare( - "SELECT * FROM {$wpdb->prefix}sureforms_entries WHERE id = %d", - $entry_id - ) -); - -// ❌ Bad -$wpdb->query( "DELETE FROM wp_sureforms_entries WHERE id = $entry_id" ); -``` - ---- - -## Git Commit Messages - -**Format:** -``` -type(scope): brief description - -Longer explanation if needed. - -Co-Authored-By: Name -``` - -**Types:** -- `feat`: New feature -- `fix`: Bug fix -- `docs`: Documentation -- `style`: Formatting, no code change -- `refactor`: Code restructuring -- `test`: Adding tests -- `chore`: Build/tooling - -**Example:** -``` -feat(payments): add PayPal subscription support - -- Implement PayPal billing agreement API -- Add webhook handler for subscription events -- Update admin UI for PayPal subscriptions - -Co-Authored-By: Claude Sonnet 4.5 -``` - ---- - -## File Organization - -**One class per file:** -``` -inc/payments/stripe/stripe-helper.php → class Stripe_Helper -``` - -**Group related functionality:** -``` -inc/payments/ -├── payment-helper.php # Shared utilities -├── front-end.php # Public AJAX handlers -├── stripe/ -│ ├── stripe-helper.php -│ ├── stripe-webhook.php -│ └── admin-stripe-handler.php -└── admin/ - └── admin-handler.php -``` - ---- - -## Testing Standards - -**PHPUnit:** -```php -class Test_Form_Submit extends WP_UnitTestCase { - public function test_form_submission_saves_entry() { - $entry_id = srfm_submit_form( $data ); - $this->assertIsInt( $entry_id ); - } -} -``` - -**Playwright:** -```javascript -test('form submission works', async ({ page }) => { - await page.goto('/test-form/'); - await page.fill('[name="email"]', 'test@example.com'); - await page.click('button[type="submit"]'); - await expect(page.locator('.success-message')).toBeVisible(); -}); -``` - ---- - -## Code Review Checklist - -Before submitting PR: - -- [ ] Code follows WordPress/project standards -- [ ] All inputs sanitized -- [ ] All outputs escaped -- [ ] SQL queries use `prepare()` -- [ ] Nonces verified for AJAX/forms -- [ ] Capabilities checked for admin actions -- [ ] PHPDoc blocks added -- [ ] No PHP/JS errors in console -- [ ] Tested in latest WordPress version -- [ ] Tests pass: `composer test && npm run test:unit` -- [ ] Linting passes: `composer lint && npm run lint-js` - ---- - -**Automated Checks:** - -```bash -# PHP linting -composer lint # PHP_CodeSniffer - -# JS linting -npm run lint-js # ESLint - -# Auto-fix -composer format # phpcbf -npm run lint-js:fix # ESLint --fix -``` diff --git a/internal-docs/faq.md b/internal-docs/faq.md deleted file mode 100644 index 8e174c45f..000000000 --- a/internal-docs/faq.md +++ /dev/null @@ -1,1003 +0,0 @@ -# Frequently Asked Questions - -**Version:** 2.5.0 - ---- - -## General Questions - -### What is SureForms? - -SureForms is an AI-powered WordPress form builder that uses Gutenberg blocks. - -**Key features:** -- AI form generation (describe in plain language, get complete form) -- Built-in payments (Stripe in Free, PayPal in Pro) -- Mobile-first design -- Native WordPress (no proprietary builder) -- Custom database tables (not post meta) - -**Target users:** Website owners, designers, developers who need forms without complexity. - ---- - -### What's the difference between Free and Pro? - -**Free (sureforms):** -- Unlimited forms & submissions -- All 15+ field types -- Stripe payments (one-time & subscriptions) -- Email notifications -- Spam protection (reCAPTCHA, Honeypot) -- Form analytics -- CSV export - -**Pro (sureforms-pro):** -- **All Free features, plus:** -- PayPal payments -- 24+ native integrations (Mailchimp, HubSpot, Salesforce, etc.) -- Conditional logic -- Multi-step & conversational forms -- User registration & login -- PDF generation -- File upload fields -- Priority support (< 24hr response) - -**Pricing:** -- Free: $0 (WordPress.org) -- Pro: $99-$299/year (3 sites to unlimited) - ---- - -### Can I use SureForms on multiple sites? - -**Free:** Yes, unlimited sites. - -**Pro:** Depends on license: -- Essential ($99/year): 3 sites -- Plus ($199/year): 20 sites -- Agency ($299/year): Unlimited sites - -**License activation:** -- Enter license key in SureForms → Settings → License -- Deactivate from one site to move to another -- All sites must be owned by you (not for client sites unless Agency plan) - ---- - -### Is SureForms GDPR compliant? - -**Yes.** SureForms provides tools for GDPR compliance: - -**Features:** -- GDPR checkbox field (explicit consent) -- Data export (users can request their data) -- Data deletion (users can request deletion) -- No third-party data sharing (unless you enable integrations) -- Privacy policy link support - -**What you must do:** -1. Add GDPR checkbox to forms collecting personal data -2. Link to your privacy policy -3. Honor data export/deletion requests -4. Configure data retention policies - -**Data storage:** -- Submissions stored in your WordPress database -- No data sent to SureForms servers (AI calls go through middleware but don't store data) -- Payment data stored encrypted (PCI-compliant) - ---- - -### Does SureForms work with my theme? - -**Yes.** SureForms is designed to work with any properly-coded WordPress theme. - -**Tested with:** -- Astra -- GeneratePress -- Kadence -- Neve -- Blocksy -- Twenty Twenty-Three/Four -- Page builder themes (Elementor, Divi, Beaver Builder) - -**If you experience styling conflicts:** -1. Check [troubleshooting guide](troubleshooting.md#form-breaks-after-theme-update) -2. Use SureForms → Settings → Custom CSS to override -3. Contact support with theme name - ---- - -### Can I use SureForms with page builders? - -**Yes.** SureForms works with: -- **Gutenberg** (native, best experience) -- **Elementor** (via shortcode or WordPress widget) -- **Divi** (via shortcode or code module) -- **Beaver Builder** (via WordPress widget) -- **Bricks** (via shortcode or WordPress element) - -**How to add:** - -**Elementor:** -1. Add "Shortcode" widget -2. Paste: `[sureforms id="123"]` -3. Replace 123 with your form ID - -**Divi:** -1. Add "Code" module -2. Paste shortcode -3. Save - -**Beaver Builder:** -1. Add "WordPress Widget" module -2. Select "SureForms" widget -3. Choose form - ---- - -## Technical Questions - -### What are the system requirements? - -**Minimum:** -- WordPress 6.4+ -- PHP 7.4+ -- MySQL 5.6+ or MariaDB 10.1+ -- HTTPS (for payments) - -**Recommended:** -- WordPress 6.6+ -- PHP 8.1+ -- MySQL 8.0+ or MariaDB 10.6+ -- 256MB PHP memory limit -- Object caching (Redis or Memcached) - -**Browser support:** -- Chrome 90+ -- Firefox 88+ -- Safari 14+ -- Edge 90+ - ---- - -### Does SureForms slow down my site? - -**No.** SureForms is optimized for performance: - -**Impact on page load:** -- Additional CSS: ~15KB (minified) -- Additional JS: ~25KB (minified, deferred) -- Total: ~40KB additional assets - -**Database queries:** -- Form render: 2-3 queries (cached) -- Form submission: 4-5 queries (optimized with indexes) -- No N+1 query issues - -**Performance features:** -- Lazy loading for non-critical assets -- Custom database tables (not post meta) -- Query optimization (indexed columns) -- Minified & concatenated assets -- CDN-friendly (versioned static files) - -**Benchmarks:** -- Lighthouse score: 95+ (with proper hosting) -- Time to Interactive: < 2 seconds on 3G -- Form submission latency: < 500ms - ---- - -### Can I export my data? - -**Yes.** Multiple export options: - -**Entries export:** -1. Go to SureForms → Entries -2. Select entries (or "Select All") -3. Click "Export to CSV" -4. Download file - -**Format:** CSV with all fields as columns - -**Form export:** -- Export form as JSON (Settings → Export) -- Import on another site (Settings → Import) - -**Database export:** -```bash -# Export all SureForms data -wp db export sureforms-backup.sql --tables=wp_sureforms_entries,wp_sureforms_payments,wp_sureforms_integrations -``` - ---- - -### How do I migrate forms to another site? - -**Method 1: Export/Import (Recommended)** - -**On old site:** -1. Go to SureForms → Forms -2. Hover over form → "Export" -3. Download JSON file - -**On new site:** -1. Install SureForms (same version) -2. Go to SureForms → Import -3. Upload JSON file -4. Map any dependencies (integrations, etc.) - -**Method 2: Database migration** - -```bash -# On old site -wp db export sureforms-data.sql --tables=wp_sureforms_entries,wp_sureforms_payments - -# Transfer file to new site - -# On new site -wp db import sureforms-data.sql - -# Update URLs in entries (if domain changed) -wp search-replace 'https://oldsite.com' 'https://newsite.com' wp_sureforms_entries -``` - ---- - -### Can I use SureForms offline / localhost? - -**Yes, with limitations:** - -**Works offline:** -- Form creation -- Form editing -- Local submissions (saved to database) - -**Requires internet:** -- AI form generation (external API) -- Payment processing (Stripe/PayPal API) -- Native integrations (Mailchimp, HubSpot, etc.) -- Google Fonts (if used) -- reCAPTCHA (if enabled) - -**Development setup:** -```bash -# Use Local by Flywheel or similar -# Or manual setup: -cd ~/Sites/my-wordpress-site -wp core download -wp core config --dbname=sureforms_dev --dbuser=root -wp core install --url=http://localhost:8080 --title="Dev Site" -wp plugin install sureforms --activate -``` - ---- - -## Payment Questions - -### Which payment gateways are supported? - -**Free plugin:** -- Stripe (one-time payments & subscriptions) - -**Pro plugin:** -- Stripe (one-time payments & subscriptions) -- PayPal (one-time payments & subscriptions) - -**Coming soon:** -- Razorpay (India) -- Mollie (Europe) - -**Not planned:** -- WooCommerce (use WooCommerce for full e-commerce) -- Square (low demand) -- Bitcoin/crypto (regulatory complexity) - ---- - -### How do I test payments before going live? - -**Stripe test mode:** - -1. Get test API keys: - - Go to https://dashboard.stripe.com/test/apikeys - - Copy "Publishable key" (pk_test_...) - - Copy "Secret key" (sk_test_...) - -2. In SureForms: - - Go to Settings → Payments → Stripe - - Enable "Test Mode" - - Paste test keys - - Save - -3. Test with card: - - Card number: `4242 4242 4242 4242` - - Expiry: Any future date (e.g., 12/28) - - CVC: Any 3 digits (e.g., 123) - -4. Verify in Stripe dashboard: - - Go to Payments → Test Mode - - See your test payment - -**PayPal sandbox (Pro):** - -1. Create sandbox account: - - Go to https://developer.paypal.com/ - - Sign in with PayPal account - - Create sandbox business & buyer accounts - -2. Get sandbox credentials: - - Apps & Credentials → Sandbox - - Copy Client ID & Secret - -3. In SureForms: - - Settings → Payments → PayPal - - Enable "Sandbox Mode" - - Paste credentials - - Save - -4. Test with sandbox buyer account - ---- - -### How are payment fees handled? - -**SureForms fees:** $0 (we charge nothing) - -**Gateway fees:** - -**Stripe:** -- Standard: 2.9% + $0.30 per transaction -- International cards: +1.5% -- Currency conversion: +1% -- (Varies by country, see Stripe pricing) - -**PayPal:** -- Standard: 2.9% + $0.30 per transaction -- International: +1.5% -- (Varies by country, see PayPal pricing) - -**Who pays fees:** -- Fees deducted from amount received -- Example: $100 charge → You receive ~$97 - -**Passing fees to customer:** -- Not built-in (would require payment gateway approval) -- Workaround: Add fee as separate amount field - ---- - -### Can I accept subscriptions? - -**Yes** (both Stripe and PayPal). - -**Setup:** - -1. Create form with Payment block -2. Payment block settings: - - Payment Type: ● Subscription - - Interval: Monthly/Yearly/Weekly - - Amount: [price] - -3. Customer pays once, charged automatically recurring - -**Management:** - -**Stripe:** -- View subscriptions: Stripe Dashboard → Subscriptions -- Cancel: Click subscription → "Cancel subscription" -- Refund: Not automatic, manual refund in Stripe - -**PayPal (Pro):** -- View subscriptions: PayPal Dashboard → Subscriptions -- Cancel: Click subscription → "Cancel" - -**Customer cancellation:** -- Customers can cancel in Stripe/PayPal customer portal -- You can provide link in confirmation email - ---- - -## AI & Form Generation Questions - -### How does AI form generation work? - -**Technical flow:** - -``` -User enters prompt ("job application form") - ↓ -SureForms sends to AI middleware - ↓ -Middleware calls GPT-4 API - ↓ -GPT-4 returns structured JSON (field types, labels, validations) - ↓ -Middleware sends back to SureForms - ↓ -SureForms creates Gutenberg blocks from JSON - ↓ -Form appears in editor, ready to customize -``` - -**What data is sent:** -- Your prompt ("create a contact form") -- Form context (if modifying existing form) -- No user data, no submissions, no PII - -**What data is stored:** -- None. AI responses are not logged. -- Form configuration stored in WordPress database only - -**Privacy:** -- AI calls routed through SureForms middleware (not direct to OpenAI) -- No data retention -- No training on your data - ---- - -### Can I use AI without internet? - -**No.** AI requires external API call to GPT-4. - -**Offline alternatives:** -- Create forms manually (no AI) -- Use templates (no AI needed) -- Import pre-made forms - ---- - -### What languages does AI support? - -**Prompts:** Any language GPT-4 supports (100+ languages) - -**Field labels:** Generated in same language as prompt - -**Example:** -- Prompt (Spanish): "formulario de contacto" -- Result: Fields with Spanish labels ("Nombre", "Correo electrónico", etc.) - -**Limitations:** -- Some languages better than others (English, Spanish, French, German excellent) -- Less common languages may have lower quality - ---- - -## Integration Questions (Pro) - -### What integrations are available? - -**24+ native integrations:** - -**Email Marketing:** -- Mailchimp -- Brevo (Sendinblue) -- ActiveCampaign -- ConvertKit -- MailerLite - -**CRM:** -- HubSpot -- Salesforce -- Zoho CRM -- Pipedrive - -**Communication:** -- Slack -- Telegram -- Discord (coming soon) - -**Productivity:** -- Google Sheets -- Airtable (coming soon) -- Notion (coming soon) - -**WordPress Plugins:** -- FluentCRM (native) -- OttoKit (SureTriggers) - -**Webhooks:** -- Custom webhooks (POST to any URL) - -**Not included:** -- Zapier (use webhooks instead) -- Make/Integromat (use webhooks) - ---- - -### How do I connect Mailchimp? - -**Setup (OAuth):** - -1. Go to SureForms → Settings → Integrations -2. Click "Mailchimp" → "Connect" -3. Redirected to Mailchimp → "Allow access" -4. Redirected back, connection confirmed - -**Use in form:** - -1. Edit form -2. Settings → Actions → "Add Action" -3. Select "Mailchimp" -4. Choose audience (list) -5. Map fields: - - Email field → Mailchimp EMAIL - - Name field → Mailchimp FNAME -6. Save - -**On form submission:** -- Contact added to Mailchimp list automatically -- Tags applied (if configured) -- Double opt-in email sent (if enabled in Mailchimp) - ---- - -### Can I send form data to custom webhook? - -**Yes** (Pro feature). - -**Setup:** - -1. Form settings → Actions → "Add Action" -2. Select "Webhook" -3. Configure: - - URL: `https://yourapi.com/endpoint` - - Method: POST (or GET, PUT) - - Headers: (optional, e.g., `Authorization: Bearer token`) -4. Save - -**Payload format:** - -```json -{ - "form_id": 123, - "entry_id": 456, - "fields": { - "email": "user@example.com", - "name": "John Doe", - "message": "Hello!" - }, - "meta": { - "submitted_at": "2026-02-12 10:30:00", - "user_ip": "192.168.1.1", - "user_agent": "Mozilla/5.0..." - } -} -``` - -**Retry logic:** -- Failed webhooks retried 3 times -- Exponential backoff (1s, 5s, 25s) -- After 3 failures, logged as error - ---- - -## Security & Privacy Questions - -### Is SureForms secure? - -**Yes.** Security is a core priority. - -**Security measures:** - -**Input sanitization:** -- All user input sanitized before storage -- WordPress functions: `sanitize_text_field()`, `sanitize_email()`, etc. -- Custom sanitization for complex fields - -**Output escaping:** -- All output escaped before rendering -- `esc_html()`, `esc_attr()`, `esc_url()` used throughout -- Prevents XSS attacks - -**SQL injection prevention:** -- All database queries use `$wpdb->prepare()` -- No direct SQL concatenation -- Custom database class with built-in protection - -**CSRF protection:** -- Nonce verification on all AJAX/REST endpoints -- `wp_verify_nonce()` checked before state-changing operations - -**Authorization:** -- Capability checks: `current_user_can()` -- Admin actions require `manage_options` capability -- User-specific data access controlled - -**Payment security:** -- PCI DSS compliant (no card storage) -- Stripe/PayPal handle sensitive data -- API credentials encrypted at rest (AES-256) - -**File uploads (Pro):** -- MIME type validation (server-side) -- File size limits enforced -- Path traversal prevention -- Disallowed file types: `.php`, `.js`, `.exe`, etc. - ---- - -### Where is my data stored? - -**Form submissions:** -- Your WordPress database -- Table: `wp_sureforms_entries` -- No data sent to SureForms servers - -**Payment data:** -- Stripe: Stored in Stripe (not in WordPress) -- PayPal: Stored in PayPal (not in WordPress) -- WordPress stores: Transaction ID, amount, status only - -**Integration credentials (Pro):** -- WordPress database -- Table: `wp_sureforms_integrations` -- Encrypted with AES-256 -- Encryption key in `wp-config.php` (recommended) - -**AI prompts:** -- Sent to AI middleware → OpenAI GPT-4 -- Not stored or logged -- Not used for training - ---- - -### Can users delete their data? - -**Yes** (GDPR requirement). - -**Manual deletion:** - -1. User requests deletion via email -2. Admin finds submissions by email -3. Delete from SureForms → Entries - -**Automatic (Pro):** -- Data retention policy: Auto-delete entries after X days -- Settings → Privacy → Data Retention -- Configure per form or globally - -**What gets deleted:** -- Entry data (all fields) -- Entry metadata (IP, user agent) -- File uploads (if any) - -**What's preserved:** -- Form configuration (for re-use) -- Analytics (anonymized counts only) - ---- - -## Troubleshooting Questions - -### My forms aren't showing on the frontend. Why? - -**Common causes:** - -**1. Form not published:** -- Check form status in SureForms → Forms -- Must be "Published" not "Draft" - -**2. Form not embedded:** -- Add SureForms block to page -- Select your form from dropdown -- Or use shortcode: `[sureforms id="123"]` - -**3. Theme conflict:** -- Try default theme: `wp theme activate twentytwentythree` -- If works → Theme issue, contact theme developer - -**4. JavaScript disabled:** -- Check browser console for errors -- Disable other plugins to find conflict - -**Debug:** -```bash -# Enable debugging -wp config set WP_DEBUG true --raw -wp config set WP_DEBUG_LOG true --raw - -# Check debug log -tail -f wp-content/debug.log -``` - -See [troubleshooting guide](troubleshooting.md) for more. - ---- - -### Form submissions aren't saving. What's wrong? - -**Check:** - -**1. Database tables exist:** -```bash -wp db query "SHOW TABLES LIKE '%sureforms%';" -``` - -Should show `wp_sureforms_entries` table. - -**2. Database permissions:** -```bash -wp db query "SHOW GRANTS;" -``` - -User must have INSERT privilege. - -**3. Nonce verification:** -- If using caching, exclude AJAX endpoints -- WP Super Cache: Exclude `/wp-admin/admin-ajax.php` - -**4. Debug log:** -```bash -tail -f wp-content/debug.log -# Submit form, watch for errors -``` - -See [troubleshooting: submissions not saving](troubleshooting.md#form-submissions-not-saving) - ---- - -### Email notifications aren't sending. Help! - -**Diagnose:** - -```bash -# Test WordPress mail function -wp eval "wp_mail('your@email.com', 'Test', 'Testing');" -``` - -If no email received → Server mail() disabled. - -**Fix:** - -**Install SMTP plugin:** -```bash -wp plugin install wp-mail-smtp --activate -``` - -**Configure with:** -- Gmail -- SendGrid -- Mailgun -- Amazon SES - -**Check spam folder:** -- Default WordPress sender: `wordpress@yourdomain.com` -- Often flagged as spam -- SMTP fixes this - -See [troubleshooting: emails not sending](troubleshooting.md#email-notifications-not-sending) - ---- - -## Customization Questions - -### Can I customize form styling? - -**Yes.** Multiple options: - -**Option 1: Settings panel (no code):** -1. Edit form -2. Settings sidebar → Design -3. Customize: - - Colors (background, text, buttons) - - Typography (fonts, sizes) - - Spacing (padding, margins) - - Border radius - -**Option 2: Custom CSS:** -1. SureForms → Settings → Custom CSS -2. Add your styles: -```css -.srfm-form { - background: #f9f9f9; - padding: 30px; - border-radius: 8px; -} - -.srfm-form input { - border: 2px solid #333; -} -``` - -**Option 3: Theme stylesheet:** - -Add to `style.css`: -```css -.srfm-form { /* Your styles */ } -``` - -**Option 4: Page builder:** - -Use page builder's CSS editor (if using Elementor/Divi). - ---- - -### Can I add custom fields? - -**Yes** (requires development). - -**Process:** - -1. Create block folder: `inc/blocks/my-field/` -2. Register block: `block.php` -3. Create React component: `src/blocks/my-field/edit.js` -4. Add sanitization: `inc/helper.php` -5. Add validation: `inc/field-validation.php` - -**Example:** See [onboarding guide](onboarding.md#step-2-create-block-structure) - -**Pre-built custom fields (Pro):** -- Star rating -- Signature -- File upload -- Date/time picker - ---- - -### Can I change the submit button text? - -**Yes.** - -**Per form:** -1. Edit form -2. Click submit button block -3. Settings sidebar → Button Text -4. Change text -5. Update form - -**Globally:** - -Add to `functions.php`: -```php -add_filter('sureforms_submit_button_text', function($text) { - return __('Send Message', 'sureforms'); -}); -``` - ---- - -## Business & Licensing Questions - -### Can I use SureForms on client sites? - -**Free:** Yes, unlimited sites. - -**Pro:** -- **Agency license required** ($299/year, unlimited sites) -- Essential ($99/year, 3 sites) - only for your own sites -- Plus ($199/year, 20 sites) - only for your own sites - -**License terms:** -- You must own the sites (not client-owned sites with Essential/Plus) -- Agency license allows client sites -- Each site needs separate activation - ---- - -### Can I white-label SureForms? - -**Not officially.** - -**What you can do:** -- Remove branding from admin (CSS) -- Custom email footer (replace "Powered by SureForms") -- Custom confirmation messages - -**What you can't do:** -- Remove copyright notices from code -- Rebrand and resell as your own product -- Remove attribution from free plugin - -**Enterprise white-label:** -- Contact sales for custom licensing -- Available for high-volume agencies - ---- - -### What's your refund policy? - -**14-day money-back guarantee** (Pro licenses) - -**Refund eligibility:** -- Purchased within last 14 days -- Tried to use but encountered issues -- Support unable to resolve - -**Not eligible:** -- After 14 days -- Changed mind (not technical issue) -- Purchased wrong license (can upgrade instead) - -**Process:** -1. Contact support: support@sureforms.com -2. Describe issue (we'll try to help first) -3. If unresolved, refund processed within 3-5 business days - ---- - -### How long do I get updates? - -**Free:** Lifetime updates. - -**Pro:** -- Updates: For duration of license (1 year) -- Renewals: Discounted renewal price after year 1 -- If license expires: Plugin continues working, no new updates - -**Version compatibility:** -- Major updates: Included -- Security updates: Prioritized -- Feature updates: Based on roadmap - ---- - -## Developer Questions - -### Is the code open source? - -**Free plugin:** Yes. -- License: GPL v2 or later -- GitHub: https://github.com/brainstormforce/sureforms - -**Pro plugin:** No. -- Proprietary license -- Source code visible but not redistributable - ---- - -### Can I contribute to SureForms? - -**Yes!** We welcome contributions. - -**How to contribute:** - -1. Fork repo: https://github.com/brainstormforce/sureforms -2. Create branch: `git checkout -b feat/my-feature` -3. Make changes -4. Run tests: `composer test && npm run test:unit` -5. Submit PR - -**Contribution guidelines:** -- Follow [coding standards](coding-standards.md) -- Add tests for new features -- Update docs if needed -- Sign off commits: `Co-Authored-By: Your Name ` - ---- - -### Where can I find the API documentation? - -**API docs:** [apis.md](apis.md) - -**Key resources:** -- REST endpoints: [apis.md#rest-api](apis.md#rest-api) -- Hooks & filters: [apis.md#hooks--filters](apis.md#hooks--filters) -- JavaScript APIs: [apis.md#javascript-apis](apis.md#javascript-apis) -- Database APIs: [apis.md#database-apis](apis.md#database-apis) - -**Code examples:** [ai-agent-guide.md](ai-agent-guide.md) - ---- - -## Need More Help? - -**Documentation:** -- [README.md](README.md) - Quick start -- [Troubleshooting](troubleshooting.md) - Common problems -- [Onboarding](onboarding.md) - Developer guide -- [Glossary](glossary.md) - Technical terms - -**Support:** -- **Free users:** WordPress.org forum, GitHub issues -- **Pro users:** https://support.brainstormforce.com/ (< 24hr response) - -**Community:** -- Facebook: https://www.facebook.com/groups/surecart -- GitHub Discussions: https://github.com/brainstormforce/sureforms/discussions - ---- - -**Next:** [Glossary](glossary.md) diff --git a/internal-docs/glossary.md b/internal-docs/glossary.md deleted file mode 100644 index 440e34b70..000000000 --- a/internal-docs/glossary.md +++ /dev/null @@ -1,723 +0,0 @@ -# Glossary - -**Version:** 2.5.0 - ---- - -## A - -### AJAX (Asynchronous JavaScript and XML) -Technique for updating parts of a page without full reload. Used in SureForms for form submissions, payment processing, and file uploads. - -**Example:** -```javascript -// AJAX request to submit form -wp.ajax.post('srfm_submit_form', { data: formData }); -``` - -### API (Application Programming Interface) -Set of functions and methods for interacting with software. SureForms provides REST API, database API, and JavaScript API. - -**Types in SureForms:** -- **REST API:** HTTP endpoints for external access -- **Database API:** Methods to query entries/payments -- **JavaScript API:** Frontend form manipulation - -### Attribute (Gutenberg) -Data stored with a block. In SureForms, attributes define field configuration (label, required, placeholder, etc.). - -**Example:** -```json -{ - "label": "Email", - "required": true, - "placeholder": "name@example.com" -} -``` - ---- - -## B - -### Block (Gutenberg) -Reusable component in WordPress editor. SureForms forms are composed of blocks (Email block, Textarea block, Submit button block, etc.). - -**Types:** -- **Static blocks:** Rendered client-side (React) -- **Dynamic blocks:** Rendered server-side (PHP) - -### Block Editor -WordPress's editing interface (formerly called "Gutenberg"). Native to WordPress 5.0+. - -**Why SureForms uses it:** -- Users already familiar -- No proprietary builder to learn -- Future-proof (WordPress core) - ---- - -## C - -### Capability -WordPress permission level. SureForms checks capabilities before allowing admin actions. - -**Common capabilities:** -- `manage_options` - Admin settings access -- `edit_posts` - Create forms (default) -- `read` - View forms (logged-in users) - -**Example:** -```php -if (current_user_can('manage_options')) { - // Allow admin action -} -``` - -### Conditional Logic (Pro) -Show or hide form fields based on user answers. Example: Show "Dietary restrictions" only if user selects "Yes" to "Will you attend?" - -**Types:** -- **Show when:** Display field if condition matches -- **Hide when:** Hide field if condition matches -- **AND/OR logic:** Multiple conditions combined - -### Conversational Form (Pro) -Form that displays one question at a time, like a chat conversation. Increases engagement and completion rates. - -**Benefits:** -- Less overwhelming than long forms -- Higher completion rate (3x vs single-page) -- Better mobile experience - -### CSRF (Cross-Site Request Forgery) -Attack where malicious site tricks user into submitting request to your site. SureForms prevents with nonce verification. - -**Example attack (prevented):** -```html - -
- - -
- -``` - -### CSV (Comma-Separated Values) -File format for spreadsheet data. SureForms can export form entries as CSV. - -**Example:** -``` -Name,Email,Message -John Doe,john@example.com,Hello! -Jane Smith,jane@example.com,Question about... -``` - ---- - -## D - -### Database Table -MySQL table storing structured data. SureForms uses 4 custom tables: -- `wp_sureforms_entries` - Form submissions -- `wp_sureforms_payments` - Payment records -- `wp_sureforms_integrations` - OAuth credentials -- `wp_sureforms_save_resume` - Draft submissions (Pro) - -**Why custom tables?** -- Faster queries (indexed columns) -- More efficient than post meta -- Easier to export - -### Dynamic Block -Gutenberg block rendered server-side (PHP). Most SureForms field blocks are dynamic for security (server-side validation). - -**Example:** -```php -register_block_type('sureforms/email', [ - 'render_callback' => 'render_email_field' -]); -``` - ---- - -## E - -### Encryption -Converting data to unreadable format. SureForms encrypts OAuth credentials and API keys. - -**Algorithm:** AES-256-CTR - -**Example:** -```php -$encrypted = Encryption::encrypt($api_key); -// Stored in database: "base64encodedIV.encryptedData" -``` - -### Entry -Single form submission. Stored in `wp_sureforms_entries` table. - -**Contains:** -- Form ID -- User ID (if logged in) -- Field values (JSON) -- Metadata (IP, user agent, timestamp) -- Status (published, spam, trash) - -### Escaping (Output Escaping) -Converting special characters to prevent XSS. SureForms escapes all user data before display. - -**Functions:** -- `esc_html()` - For HTML content -- `esc_attr()` - For HTML attributes -- `esc_url()` - For URLs -- `esc_js()` - For JavaScript strings - -**Example:** -```php -echo '
' . esc_html($user_input) . '
'; -``` - ---- - -## F - -### Field Type -Type of input field (email, text, number, etc.). SureForms has 15+ field types. - -**Common types:** -- Text, Email, URL, Textarea -- Number, Phone -- Multiple Choice, Checkbox, Dropdown -- Address, Upload (Pro) - -### Filter (WordPress Hook) -Function that modifies data. SureForms provides 30+ filters for customization. - -**Example:** -```php -add_filter('sureforms_email_subject', function($subject, $form_id) { - return "[Form $form_id] $subject"; -}, 10, 2); -``` - ---- - -## G - -### GDPR (General Data Protection Regulation) -European privacy law. SureForms provides GDPR-compliance features (consent checkbox, data export/deletion). - -**Requirements:** -- Explicit consent for data collection -- Right to access data (export) -- Right to deletion -- Privacy policy link - -### Gutenberg -WordPress's block editor (officially called "Block Editor"). Named after Johannes Gutenberg, inventor of printing press. - -**Why "Gutenberg"?** -- Revolutionized content creation (like printing press) -- Blocks are reusable components - ---- - -## H - -### Honeypot -Anti-spam technique using hidden field. Bots fill all fields (including hidden), revealing themselves. - -**How it works:** -```html - - -``` - -**SureForms logic:** -```php -if (!empty($_POST['srfm-honeypot'])) { - // Spam detected -} -``` - -### Hook (WordPress) -Point where developers can inject custom code. Two types: actions and filters. - -**SureForms hooks:** -- 50+ action hooks (e.g., `sureforms_after_entry_save`) -- 30+ filter hooks (e.g., `sureforms_email_template`) - ---- - -## I - -### Integration (Native Integration) -Connection to third-party service. SureForms Pro has 24+ native integrations (Mailchimp, HubSpot, etc.). - -**Types:** -- **OAuth:** User authorizes connection (Mailchimp, Google) -- **API Key:** User provides key from service -- **Webhook:** SureForms sends POST request to URL - -### Instant Form -SureForms feature allowing forms to be published with unique URL (no embedding needed). - -**Example URL:** -``` -https://yoursite.com/?srfm_form=abc123 -``` - -**Use cases:** -- Email signatures -- Social media links -- QR codes - ---- - -## J - -### JSON (JavaScript Object Notation) -Data format for structured information. SureForms stores entry data and block attributes as JSON. - -**Example entry data:** -```json -{ - "email": "john@example.com", - "name": "John Doe", - "message": "Hello!" -} -``` - ---- - -## L - -### Localization (l10n) -Adapting software for specific language/region. SureForms supports translation. - -**Files:** -- `languages/sureforms-{locale}.po` - Translation strings -- `languages/sureforms-{locale}.mo` - Compiled translations - -**Functions:** -```php -__('Email', 'sureforms'); // Translate string -_e('Submit', 'sureforms'); // Translate and echo -``` - ---- - -## M - -### Middleware -Intermediate server between client and API. SureForms uses middleware for AI form generation (client → middleware → OpenAI). - -**Why middleware?** -- Hides API keys from client -- Rate limiting -- Request logging -- Caching - -### Multi-Step Form (Pro) -Form split into multiple pages/steps. Improves completion rate by reducing cognitive load. - -**Example:** -``` -Step 1: Personal Information (name, email) -Step 2: Address Details -Step 3: Payment Information -``` - ---- - -## N - -### Namespace -PHP feature to organize code and prevent name conflicts. SureForms uses namespaces. - -**Example:** -```php -namespace SRFM\Inc\Database\Tables; - -class Entries { - // ... -} -``` - -### Native Integration -Integration built into SureForms (not requiring Zapier or external connector). - -**Examples:** -- Mailchimp (OAuth) -- HubSpot (OAuth) -- Slack (Webhook URL) - -### Nonce (Number Used Once) -Security token to verify request came from your site. SureForms verifies nonces on all AJAX/REST requests. - -**Example:** -```php -// Generate nonce -$nonce = wp_create_nonce('srfm_submit_form'); - -// Verify nonce -if (!wp_verify_nonce($_POST['nonce'], 'srfm_submit_form')) { - die('Invalid nonce'); -} -``` - ---- - -## O - -### OAuth (Open Authorization) -Protocol for secure authorization. Used by SureForms integrations (Mailchimp, HubSpot, etc.). - -**Flow:** -1. User clicks "Connect to Mailchimp" -2. Redirected to Mailchimp login -3. User approves access -4. Mailchimp redirects back with token -5. SureForms stores encrypted token - ---- - -## P - -### Payment Gateway -Service that processes credit card payments. SureForms supports Stripe and PayPal. - -**Comparison:** -- **Stripe:** 2.9% + $0.30, better for US/Europe -- **PayPal:** 2.9% + $0.30, more global recognition - -### Payment Intent (Stripe) -Stripe object representing payment attempt. Created before customer enters card details. - -**States:** -- `requires_payment_method` - Awaiting card -- `requires_confirmation` - Card entered, needs confirm -- `succeeded` - Payment successful -- `canceled` - Payment canceled - -### PCI DSS (Payment Card Industry Data Security Standard) -Security standard for handling credit card data. SureForms is PCI-compliant (never stores card data). - -**Compliance:** -- Card data sent directly to Stripe/PayPal -- SureForms only stores transaction ID -- No PAN (Primary Account Number) stored - -### Placeholder -Example text shown in empty input field. Disappears when user types. - -**Example:** -```html - -``` - -**Accessibility note:** Never use placeholder as label (screen readers may miss it). - -### Post Meta -WordPress method for storing additional data with posts. SureForms **doesn't** use post meta (uses custom tables instead). - -**Why not post meta?** -- Slow queries (no indexes) -- Hard to search -- Not optimized for large datasets - -### Post Type (Custom Post Type) -WordPress content type. SureForms forms are stored as custom post type `sureforms_form`. - -**Advantages:** -- Uses WordPress admin UI -- Revision history -- Trash/restore functionality - ---- - -## R - -### reCAPTCHA -Google anti-spam service. SureForms supports reCAPTCHA v2 and v3. - -**Versions:** -- **v2:** "I'm not a robot" checkbox -- **v3:** Invisible, scores user behavior (0-1) - -**Setup:** -1. Get API keys from Google reCAPTCHA admin -2. Add to SureForms → Settings → Security -3. Enable on forms - -### REST API -HTTP API for accessing SureForms data. Used by frontend, mobile apps, integrations. - -**Base URL:** `/wp-json/sureforms/v1/` - -**Example endpoints:** -- `POST /submit-form` - Submit form -- `GET /forms/{id}` - Get form data -- `POST /generate-form` - AI form generation - -### RTL (Right-to-Left) -Text direction for languages like Arabic, Hebrew. SureForms supports RTL. - -**CSS:** -```css -.srfm-field { - margin-inline-start: 10px; /* Not margin-left */ -} -``` - ---- - -## S - -### Sanitization (Input Sanitization) -Cleaning user input to prevent attacks. SureForms sanitizes all input before storage. - -**Functions:** -- `sanitize_text_field()` - Remove HTML/PHP -- `sanitize_email()` - Validate email format -- `sanitize_url()` - Validate URL format -- `absint()` - Force integer - -**Example:** -```php -$email = sanitize_email($_POST['email']); -$id = absint($_POST['id']); -``` - -### Schema (Database Schema) -Structure of database table (columns, types, indexes). - -**Example (wp_sureforms_entries):** -```sql -CREATE TABLE wp_sureforms_entries ( - id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, - form_id BIGINT UNSIGNED NOT NULL, - user_id BIGINT UNSIGNED, - entry_data LONGTEXT NOT NULL, - status VARCHAR(20) DEFAULT 'published', - created_at DATETIME NOT NULL, - INDEX idx_form_id (form_id), - INDEX idx_created_at (created_at) -); -``` - -### Shortcode -WordPress feature for embedding content. SureForms forms can be embedded via shortcode. - -**Syntax:** -``` -[sureforms id="123"] -``` - -**Parameters:** -- `id` - Form ID (required) -- `title` - Show title (true/false) -- `description` - Show description (true/false) - -### SQL Injection -Attack injecting malicious SQL into queries. SureForms prevents with `$wpdb->prepare()`. - -**Vulnerable code (DON'T DO THIS):** -```php -$id = $_GET['id']; -$wpdb->query("DELETE FROM table WHERE id = $id"); -// Attack: ?id=1 OR 1=1 (deletes all records!) -``` - -**Safe code:** -```php -$id = absint($_GET['id']); -$wpdb->query($wpdb->prepare("DELETE FROM table WHERE id = %d", $id)); -``` - -### Subscription -Recurring payment. SureForms supports subscriptions via Stripe and PayPal. - -**Intervals:** -- Daily -- Weekly -- Monthly -- Yearly - ---- - -## T - -### Template (Form Template) -Pre-built form configuration. SureForms provides 100+ templates (contact, registration, survey, etc.). - -**Structure:** -```json -{ - "name": "Contact Form", - "fields": [ - { "type": "text", "label": "Name" }, - { "type": "email", "label": "Email" }, - { "type": "textarea", "label": "Message" } - ] -} -``` - -### Transient -WordPress temporary cache. SureForms uses transients for AI rate limiting and API responses. - -**Example:** -```php -// Store for 1 hour -set_transient('srfm_ai_rate_limit_' . $user_id, true, HOUR_IN_SECONDS); - -// Check -if (get_transient('srfm_ai_rate_limit_' . $user_id)) { - // Rate limited -} -``` - ---- - -## U - -### User Agent -String identifying browser/device. SureForms logs user agent for spam detection. - -**Example:** -``` -Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 -``` - ---- - -## V - -### Validation (Form Validation) -Checking if user input meets requirements. SureForms validates both client-side (JavaScript) and server-side (PHP). - -**Types:** -- **Required:** Field must not be empty -- **Format:** Email/URL must be valid -- **Range:** Number within min/max -- **Length:** String length constraints - -**Example:** -```php -if (empty($email) || !is_email($email)) { - $errors[] = 'Please enter a valid email'; -} -``` - ---- - -## W - -### Webhook -HTTP callback sent when event occurs. SureForms can send webhooks on form submission (Pro). - -**Flow:** -``` -User submits form - ↓ -SureForms processes submission - ↓ -Sends POST to webhook URL - ↓ -External service receives data -``` - -**Example payload:** -```json -{ - "event": "form_submit", - "form_id": 123, - "entry_id": 456, - "fields": { ... } -} -``` - -### WordPress Coding Standards (WPCS) -PHP coding style guide for WordPress. SureForms follows WPCS. - -**Key rules:** -- Tabs for indentation (not spaces) -- Yoda conditions: `if ( 'value' === $variable )` -- Braces required for all control structures -- Space after control keywords: `if (` not `if(` - -**Check compliance:** -```bash -composer lint -``` - ---- - -## X - -### XSS (Cross-Site Scripting) -Attack injecting malicious JavaScript into pages. SureForms prevents with output escaping. - -**Vulnerable code (DON'T DO THIS):** -```php -echo '
' . $_POST['name'] . '
'; -// Attack: -``` - -**Safe code:** -```php -echo '
' . esc_html($_POST['name']) . '
'; -// Output: <script>steal(document.cookie)</script> -``` - ---- - -## Z - -### Zapier -Third-party automation service. SureForms doesn't have native Zapier integration but supports webhooks (which Zapier can consume). - -**Alternative:** Use SureForms webhooks to trigger Zapier zaps. - ---- - -## Acronyms Quick Reference - -| Acronym | Full Term | Meaning | -|---------|-----------|---------| -| AJAX | Asynchronous JavaScript and XML | Update page without reload | -| API | Application Programming Interface | Methods to interact with software | -| CSRF | Cross-Site Request Forgery | Attack tricking users into unwanted actions | -| CSV | Comma-Separated Values | Spreadsheet file format | -| GDPR | General Data Protection Regulation | EU privacy law | -| JSON | JavaScript Object Notation | Data format | -| OAuth | Open Authorization | Secure authorization protocol | -| PCI DSS | Payment Card Industry Data Security Standard | Credit card security | -| REST | Representational State Transfer | Web API architecture | -| RTL | Right-to-Left | Text direction (Arabic, Hebrew) | -| SQL | Structured Query Language | Database query language | -| URL | Uniform Resource Locator | Web address | -| WCAG | Web Content Accessibility Guidelines | Accessibility standards | -| WPCS | WordPress Coding Standards | PHP coding style | -| XSS | Cross-Site Scripting | JavaScript injection attack | - ---- - -## Common Abbreviations - -| Abbr | Full Term | -|------|-----------| -| Pro | SureForms Pro (premium plugin) | -| CRM | Customer Relationship Management | -| UI | User Interface | -| UX | User Experience | -| CPT | Custom Post Type | -| DB | Database | -| WP | WordPress | -| PHP | PHP: Hypertext Preprocessor | -| JS | JavaScript | -| CSS | Cascading Style Sheets | - ---- - -**Next:** [Maintenance](maintenance.md) diff --git a/internal-docs/maintenance.md b/internal-docs/maintenance.md deleted file mode 100644 index 71c2f2604..000000000 --- a/internal-docs/maintenance.md +++ /dev/null @@ -1,842 +0,0 @@ -# Documentation Maintenance Guide - -**Version:** 2.5.0 - ---- - -## Purpose - -This guide explains how to keep SureForms internal documentation accurate and useful. - -**Goal:** Documentation should always reflect current reality. - -**Principle:** Update docs when code changes, not as afterthought. - ---- - -## When to Update Documentation - -### Always Update - -**1. New Feature Added** -- Update: `architecture.md`, `apis.md`, `product-vision.md` -- Add: Code examples to `ai-agent-guide.md` -- Update: Onboarding guide if workflow changes - -**2. API Changes** -- Update: `apis.md` (new endpoints, hooks, parameters) -- Update: Code examples in all docs referencing changed API -- Mark deprecated APIs in `apis.md` - -**3. Database Schema Changes** -- Update: `architecture.md` (database section) -- Update: `codebase-map.md` (new files) -- Update: Migration guide if schema change requires migration - -**4. Security Fix** -- Update: `ai-agent-guide.md` (add to common pitfalls) -- Update: `troubleshooting.md` if fix addresses known issue -- Add example of vulnerable pattern to avoid - -**5. Breaking Changes** -- Update: `README.md` (migration guide) -- Update: `onboarding.md` (new workflows) -- Update: `faq.md` (address upgrade questions) - ---- - -### Update if Needed - -**6. Bug Fixes** -- Update: `troubleshooting.md` if common issue -- Add: To FAQ if frequently asked - -**7. Performance Improvements** -- Update: `architecture.md` if architecture changed -- Update: Benchmarks in `README.md` - -**8. UI/UX Changes** -- Update: `ui-and-copy.md` (new patterns, copy) -- Update: `onboarding.md` (user journeys) - ---- - -### Don't Update - -**9. Code Refactoring (No Behavior Change)** -- No doc update unless internal architecture significantly changed - -**10. Minor Copy Changes** -- No doc update unless it changes UX patterns - -**11. Version Bumps** -- Update version number at top of each doc -- That's it (unless other changes) - ---- - -## How to Update Documentation - -### Step 1: Identify Affected Docs - -**Use this decision tree:** - -``` -Did you change... - -┌─ Database schema? -│ └─> Update: architecture.md, codebase-map.md -│ -┌─ REST API? -│ └─> Update: apis.md, ai-agent-guide.md (examples) -│ -┌─ AJAX handlers? -│ └─> Update: apis.md -│ -┌─ Hooks/filters? -│ └─> Update: apis.md, ai-agent-guide.md (patterns) -│ -┌─ User-facing UI? -│ └─> Update: ui-and-copy.md, onboarding.md -│ -┌─ Security patterns? -│ └─> Update: ai-agent-guide.md, coding-standards.md -│ -┌─ Build process? -│ └─> Update: README.md, onboarding.md -│ -└─ New file/folder? - └─> Update: codebase-map.md -``` - ---- - -### Step 2: Read Existing Doc - -**Before editing:** -1. Read entire document -2. Identify outdated sections -3. Check for consistency with your changes - -**Don't:** -- Blindly add new section without reading context -- Create duplicate information -- Use different terminology than existing docs - ---- - -### Step 3: Make Minimal Changes - -**Best practices:** - -**Do:** -- Update only what changed -- Keep existing structure -- Match existing tone and style -- Add code examples if helpful - -**Don't:** -- Rewrite entire document (unless necessary) -- Change unrelated sections -- Reorganize without discussion -- Remove information (mark deprecated instead) - ---- - -### Step 4: Verify Examples Still Work - -**All code examples must be tested:** - -**PHP examples:** -```bash -# Create test file -cat > /tmp/test-example.php << 'EOF' - [ - ['key' => 'form_id', 'value' => 123, 'compare' => '='] - ], - 'limit' => 20 -]); -``` - -**❌ Bad:** -```php -// Vague, generic -$data = SomeClass::get_stuff($args); -``` - ---- - -### Cross-Referencing - -**Internal links:** -```markdown -See [Architecture Guide](architecture.md) for details. -See [Database Schema](architecture.md#database-schema) for table structure. -``` - -**External links:** -```markdown -Read [WordPress Coding Standards](https://developer.wordpress.org/coding-standards/). -``` - -**Code references:** -```markdown -See `inc/form-submit.php:88-119` for nonce verification. -``` - ---- - -### Code Block Guidelines - -**Always specify language:** - -````markdown -```php -// PHP code here -``` - -```javascript -// JavaScript here -``` - -```bash -# Shell commands here -``` - -```sql --- SQL queries here -``` -```` - -**Include comments:** -```php -// Good: Explain what code does -$entries = Entries::get_all([ - 'where' => [ - ['key' => 'status', 'value' => 'published', 'compare' => '='] - ] -]); -``` - -**Show output if helpful:** -```bash -wp plugin list --status=active -# Output: -# sureforms active -# sureforms-pro active -``` - ---- - -## Deprecation Process - -**When removing features:** - -### Step 1: Mark as Deprecated - -**In code:** -```php -/** - * Old function. - * - * @deprecated 2.5.0 Use new_function() instead. - */ -function old_function() { - _deprecated_function(__FUNCTION__, '2.5.0', 'new_function'); - return new_function(); -} -``` - -**In docs:** -```markdown -## ~~Old Feature~~ (Deprecated) - -**Deprecated in:** 2.5.0 -**Removed in:** 3.0.0 -**Replacement:** [New Feature](#new-feature) - -This feature is deprecated and will be removed in version 3.0.0. -Use [New Feature](#new-feature) instead. - -~~Old documentation here...~~ -``` - ---- - -### Step 2: Update Migration Guide - -**In README.md:** - -```markdown -## Upgrading from 2.4.x to 2.5.0 - -### Breaking Changes - -**Old Feature Deprecated:** -- **What changed:** `old_function()` is now deprecated -- **Action required:** Replace with `new_function()` -- **Code example:** - ```php - // Old (deprecated) - old_function($data); - - // New (recommended) - new_function($data); - ``` -``` - ---- - -### Step 3: Remove After Major Version - -**On next major version (3.0.0):** -1. Remove deprecated code -2. Remove ~~strikethrough~~ docs -3. Update changelog - ---- - -## Changelog Management - -**Keep CHANGELOG.md updated:** - -### Format - -```markdown -# Changelog - -## [2.5.1] - 2026-02-15 - -### Added -- New REST endpoint: `/sureforms/v1/forms/{id}/duplicate` -- Support for custom date formats in email notifications - -### Changed -- Improved performance of entry queries (20% faster) -- Updated Stripe API to v2024-01-01 - -### Deprecated -- `old_function()` - Use `new_function()` instead - -### Fixed -- Bug where conditional logic didn't work with checkboxes -- Memory leak in AI form generation - -### Security -- Fixed XSS vulnerability in admin settings (CVE-2026-0001) - -## [2.5.0] - 2026-02-01 - -... -``` - -**Categories:** -- **Added:** New features -- **Changed:** Changes to existing features -- **Deprecated:** Features marked for removal -- **Removed:** Features removed -- **Fixed:** Bug fixes -- **Security:** Security fixes - ---- - -## Documentation Review Checklist - -**Before committing doc changes:** - -### Content -- [ ] Information is accurate (tested code examples) -- [ ] No outdated information (double-checked) -- [ ] Cross-references updated (links work) -- [ ] Version number updated -- [ ] Terminology consistent with other docs - -### Style -- [ ] Clear and concise (no fluff) -- [ ] Code examples formatted correctly -- [ ] Spelling and grammar correct -- [ ] Tone matches existing docs - -### Technical -- [ ] All code examples tested -- [ ] All commands verified (on dev environment) -- [ ] All links work (no 404s) -- [ ] File paths correct (checked in codebase) - -### Accessibility -- [ ] Headings in logical order (H1 → H2 → H3) -- [ ] Code blocks have language specified -- [ ] Alt text for images (if any) -- [ ] Tables have headers - ---- - -## Automation & Tools - -### Linting Documentation - -**Check Markdown syntax:** - -```bash -# Install markdownlint -npm install -g markdownlint-cli - -# Lint all docs -cd internal-docs/ -markdownlint *.md -``` - -**Common issues caught:** -- Inconsistent heading levels -- Trailing whitespace -- Missing blank lines around code blocks - ---- - -### Link Checking - -**Verify all links work:** - -```bash -# Install markdown-link-check -npm install -g markdown-link-check - -# Check links -markdown-link-check internal-docs/*.md -``` - -**Fix broken links:** -- Update to correct URL -- Remove if resource no longer exists -- Use Internet Archive if critical resource - ---- - -### Spell Checking - -**Use spell checker:** - -```bash -# Install aspell -brew install aspell # macOS -apt install aspell # Linux - -# Check spelling -aspell check internal-docs/README.md -``` - -**Custom dictionary:** - -Create `.aspell.en.pws`: -``` -personal_ws-1.1 en 50 -SureForms -WordPress -Gutenberg -Mailchimp -PayPal -``` - ---- - -## Documentation Templates - -### New Feature Documentation Template - -**When adding new feature:** - -```markdown -## [Feature Name] - -**Since:** [version] -**Type:** [Free/Pro] - -### Overview - -[2-3 sentence description of what feature does and why it exists] - -### Use Cases - -- [Use case 1] -- [Use case 2] -- [Use case 3] - -### How to Use - -**Step 1: [Action]** - -[Description] - -```php -// Code example -``` - -**Step 2: [Action]** - -[Description] - -### Configuration - -| Option | Type | Default | Description | -|--------|------|---------|-------------| -| `option_name` | string | 'default' | What this does | - -### API Reference - -**REST Endpoint:** -``` -POST /sureforms/v1/feature -``` - -**Parameters:** -- `param1` (string, required) - Description -- `param2` (integer, optional) - Description - -**Response:** -```json -{ - "success": true, - "data": { ... } -} -``` - -### Examples - -**Example 1: [Use case]** -```php -// Code here -``` - -**Example 2: [Use case]** -```php -// Code here -``` - -### Troubleshooting - -**Issue:** [Common problem] -**Solution:** [How to fix] - -### Related - -- [Related feature 1](link) -- [Related feature 2](link) -``` - ---- - -### Bug Fix Documentation Template - -**When fixing bug:** - -**In troubleshooting.md:** - -```markdown -### [Issue Description] - -**Symptom:** [What user sees] - -**Diagnosis:** - -[How to identify the issue] - -```bash -# Commands to diagnose -``` - -**Fixes:** - -**Option 1: [Fix description]** -```php -// Code or command -``` - -**Option 2: [Alternative fix]** -```php -// Alternative code -``` - -**Prevents:** [What this prevents] - -**See also:** [Related issues] -``` - ---- - -## Review & Approval Process - -### Before Merging Docs - -**Self-review:** -1. Read your changes out loud -2. Test all code examples -3. Run linters -4. Check cross-references - -**Peer review:** -1. Request review from team member -2. Address feedback -3. Update based on comments - -**Final checks:** -1. Rebase on main branch -2. Verify no conflicts -3. One last proofread - ---- - -### Documentation Pull Request Template - -**PR description:** - -```markdown -## Documentation Update - -**Plugin Version:** 2.5.1 -**Docs Changed:** [List files] - -### Changes Made - -- [ ] Added documentation for [feature] -- [ ] Updated [section] in [file] -- [ ] Fixed typos in [file] - -### Verification - -- [x] All code examples tested -- [x] All links checked -- [x] Spelling checked -- [x] Cross-references updated -- [x] Version numbers updated - -### Related - -- Related PR: #123 -- Related Issue: #456 -``` - ---- - -## Documentation Metrics - -**Track documentation quality:** - -### Metrics to Monitor - -**Coverage:** -- % of features documented -- % of APIs documented -- % of code examples tested - -**Freshness:** -- Days since last update -- Number of outdated sections -- Deprecated content count - -**Quality:** -- Broken link count -- Spelling error count -- User-reported doc issues - -**Engagement:** -- Doc views (if analytics enabled) -- Time spent reading -- Bounce rate (if high, docs unclear) - ---- - -## Long-Term Maintenance - -### Quarterly Review - -**Every 3 months:** - -1. **Audit all docs:** - - Read each document start to finish - - Test all code examples - - Verify all links - - Update outdated info - -2. **User feedback:** - - Review GitHub issues tagged "documentation" - - Survey users about doc clarity - - Identify gaps in coverage - -3. **Reorganize if needed:** - - Move sections to better fit structure - - Split large docs if too long - - Merge duplicate information - ---- - -### Annual Review - -**Every year:** - -1. **Major cleanup:** - - Remove deprecated content - - Archive old versions - - Rewrite outdated sections - -2. **Structure evaluation:** - - Does structure still make sense? - - Should we add/remove files? - - Are cross-references clear? - -3. **Voice & tone:** - - Is tone consistent? - - Is it still beginner-friendly? - - Does it match product evolution? - ---- - -## Questions? - -**For documentation questions:** -- Create GitHub issue: `[Docs] Your question` -- Tag: `documentation` -- Assign: Documentation maintainer - -**For urgent doc bugs:** -- Ping in Slack: `#sureforms-docs` -- Include: File name, line number, issue description - ---- - -## Conclusion - -**Documentation is code.** - -Treat it with same care: -- Test before committing -- Review changes -- Keep it DRY (Don't Repeat Yourself) -- Refactor when needed - -**Good documentation:** -- Saves support time -- Accelerates onboarding -- Prevents bugs -- Shows we care - -**Thank you for maintaining SureForms docs!** 📚 - ---- - -**Version:** 2.5.0 -**Last Updated:** 2026-02-12 -**Maintainer:** SureForms Team diff --git a/internal-docs/onboarding.md b/internal-docs/onboarding.md deleted file mode 100644 index ab5b83ad3..000000000 --- a/internal-docs/onboarding.md +++ /dev/null @@ -1,1086 +0,0 @@ -# Developer Onboarding - -**Version:** 2.5.0 - ---- - -## Welcome to SureForms - -This guide helps you become productive quickly, whether you have 1 hour, 1 day, or 1 week. - -**What you're working on:** -- **SureForms Free:** AI-powered WordPress form builder (219 PHP files, 50+ blocks) -- **SureForms Pro:** Premium extension (206 PHP files, payments, integrations, advanced features) - -**Architecture:** WordPress + Gutenberg blocks + React 18 + Custom database - ---- - -## Prerequisites - -Before starting: -- [ ] WordPress 6.4+ installed locally -- [ ] Node.js 18+ and npm 8+ -- [ ] PHP 7.4+ with Composer -- [ ] Git configured -- [ ] IDE with PHP/JavaScript support -- [ ] Both plugins cloned from GitHub - -**Test environment:** -```bash -# If using Local by Flywheel or similar -http://localhost:10003/wp-admin/ -Username: admin -Password: admin -``` - ---- - -## 1-Hour Quick Start - -**Goal:** Make your first successful change - -### Step 1: Get Code Running (15 min) - -```bash -# Clone repositories (if not already) -cd /path/to/wp-content/plugins/ -git clone https://github.com/brainstormforce/sureforms.git -git clone https://github.com/brainstormforce/sureforms-pro.git - -# Install dependencies - SureForms Free -cd sureforms/ -npm install -composer install - -# Build assets -npm run build - -# Install dependencies - SureForms Pro -cd ../sureforms-pro/ -npm install -composer install -npm run build -``` - -**Verify installation:** -```bash -# In WordPress admin -wp plugin activate sureforms sureforms-pro -wp plugin list | grep sureforms -``` - -### Step 2: Create Your First Form (15 min) - -**Via WordPress admin:** -1. Go to **SureForms → Add New** -2. Click **Create with AI** or **Start from Blank** -3. Add fields: Email, Name, Message -4. Click **Publish** -5. Add to a page with the SureForms block - -**Via WP-CLI:** -```bash -# Create form programmatically -wp post create \ - --post_type=sureforms_form \ - --post_title="Test Contact Form" \ - --post_status=publish \ - --post_content='' -``` - -### Step 3: Make a Simple Change (20 min) - -**Task:** Change the submit button text - -**Files to modify:** -``` -src/blocks/form/edit.js ← React component -inc/blocks/form/block.php ← Server-side rendering -``` - -**Change 1: Edit the React component** - -Open `src/blocks/form/edit.js`: - -```javascript -// Find around line 45-50 -const { submitButtonText } = attributes; - -// Change default value -const defaultSubmitText = __('Send Message', 'sureforms'); // ← Change this -``` - -**Change 2: Rebuild** - -```bash -npm run build -``` - -**Verify:** Create new form, check if default button text changed. - -### Step 4: Debug Your Change (10 min) - -**Enable debugging:** - -Edit `wp-config.php`: -```php -define('WP_DEBUG', true); -define('WP_DEBUG_LOG', true); -define('WP_DEBUG_DISPLAY', false); -define('SCRIPT_DEBUG', true); // Loads unminified JS -``` - -**Check debug log:** -```bash -tail -f wp-content/debug.log -``` - -**Browser console:** -- Open DevTools → Console -- Look for JavaScript errors -- Check Network tab for AJAX failures - ---- - -## 1-Day Deep Dive - -**Goal:** Understand architecture and make meaningful contributions - -### Morning: Core Concepts (4 hours) - -#### Hour 1: Architecture Overview - -**Read these docs first:** -1. [README.md](README.md) - Project overview -2. [architecture.md](architecture.md) - System design -3. [codebase-map.md](codebase-map.md) - File structure - -**Key concepts to understand:** -- **Gutenberg blocks:** React components that render forms -- **Custom post type:** `sureforms_form` stores form configurations -- **Custom database tables:** `wp_sureforms_entries`, `wp_sureforms_payments` -- **REST API:** Handles form submissions, AI generation -- **AJAX handlers:** Payment processing, file uploads - -**Test your understanding:** -- Where is form submission data saved? (Answer: `wp_sureforms_entries` table) -- How does AI form generation work? (Answer: REST endpoint → external middleware → GPT API) -- What's the difference between Free and Pro? (Answer: Pro adds payments, integrations, conditional logic) - -#### Hour 2: Data Flow - -**Trace a form submission from start to finish:** - -``` -User fills form → Frontend validation → AJAX request - ↓ -inc/form-submit.php (Line 88-119: Nonce verification) - ↓ -Field validation (inc/field-validation.php) - ↓ -Sanitization (inc/helper.php::sanitize_by_field_type()) - ↓ -Database insert (inc/database/tables/entries.php::insert()) - ↓ -Email notification (inc/email/email-handler.php) - ↓ -Confirmation message (or redirect) -``` - -**Hands-on exercise:** -1. Enable MySQL query logging -2. Submit a test form -3. Check `wp_sureforms_entries` table -4. Verify entry data matches submission - -```bash -# View recent entries -wp db query "SELECT * FROM wp_sureforms_entries ORDER BY id DESC LIMIT 5;" -``` - -#### Hour 3: Payment Processing - -**Understand Stripe payment flow:** - -``` -User clicks "Pay" → Frontend creates payment intent - ↓ -AJAX: wp_ajax_nopriv_srfm_create_payment_intent - ↓ -inc/payments/front-end.php (Line 77-83: Create Stripe PaymentIntent) - ↓ -Stripe API processes payment - ↓ -Webhook received: sureforms/webhook_test - ↓ -inc/payments/stripe/stripe-webhook.php (Line 220-637: Handle events) - ↓ -Update wp_sureforms_payments table - ↓ -Send confirmation email -``` - -**Hands-on exercise:** -1. Set up Stripe test keys -2. Create a payment form -3. Use Stripe test card: `4242 4242 4242 4242` -4. Check `wp_sureforms_payments` table for payment record - -#### Hour 4: Pro Features - -**Explore key Pro additions:** - -**1. User Registration:** -- File: `inc/business/user-registration/processor.php` -- Creates WordPress user accounts from form submissions -- Handles login/password reset - -**2. Native Integrations:** -- Folder: `inc/pro/native-integrations/integrations/` -- 24+ services: Mailchimp, Brevo, HubSpot, Salesforce, etc. -- OAuth authentication with encrypted token storage - -**3. Conditional Logic:** -- Frontend: `src/pro/conditional-logic/` -- Show/hide fields based on user selections -- Real-time UI updates - -**Hands-on exercise:** -1. Create form with registration block -2. Submit form, verify user created: `wp user list` -3. Enable Mailchimp integration (test mode) -4. Submit form, check integration logs - -### Afternoon: Build Your First Feature (4 hours) - -**Challenge:** Add a new field type - -**Example: "Star Rating" field** - -#### Step 1: Plan (30 min) - -**Requirements:** -- Display 5 stars (clickable) -- Save selected rating (1-5) -- Validate: Required if configured -- Display in entries table - -**Files to create/modify:** -``` -src/blocks/star-rating/ ← New React component -inc/blocks/star-rating/block.php ← Server-side rendering -inc/helper.php ← Add sanitization -inc/field-validation.php ← Add validation -``` - -#### Step 2: Create Block Structure (1 hour) - -**Create block files:** - -```bash -# Create directories -mkdir -p src/blocks/star-rating -mkdir -p inc/blocks/star-rating - -# Copy from existing field (Phone is a good template) -cp -r src/blocks/phone/* src/blocks/star-rating/ -cp inc/blocks/phone/block.php inc/blocks/star-rating/ -``` - -**Edit `src/blocks/star-rating/block.json`:** - -```json -{ - "$schema": "https://schemas.wp.org/trunk/block.json", - "apiVersion": 3, - "name": "sureforms/star-rating", - "title": "Star Rating", - "category": "sureforms", - "icon": "star-filled", - "description": "Display a star rating input", - "attributes": { - "label": { - "type": "string", - "default": "Rate your experience" - }, - "required": { - "type": "boolean", - "default": false - }, - "maxRating": { - "type": "number", - "default": 5 - } - }, - "supports": { - "html": false - } -} -``` - -**Edit `src/blocks/star-rating/edit.js`:** - -```javascript -import { __ } from '@wordpress/i18n'; -import { useBlockProps } from '@wordpress/block-editor'; -import { TextControl, ToggleControl, RangeControl } from '@wordpress/components'; - -export default function Edit({ attributes, setAttributes }) { - const { label, required, maxRating } = attributes; - - return ( -
- setAttributes({ label: value })} - /> - setAttributes({ required: value })} - /> - setAttributes({ maxRating: value })} - min={1} - max={10} - /> -
- {[...Array(maxRating)].map((_, i) => ( - - ))} -
-
- ); -} -``` - -#### Step 3: Server-Side Rendering (45 min) - -**Edit `inc/blocks/star-rating/block.php`:** - -```php - [__CLASS__, 'render'], - ] - ); - } - - public static function render($attributes) { - $label = esc_html($attributes['label'] ?? 'Rate your experience'); - $required = !empty($attributes['required']); - $max_rating = absint($attributes['maxRating'] ?? 5); - $field_name = 'srfm-star-rating-' . uniqid(); - - ob_start(); - ?> -
- -
- - - ★ - - -
- > -
- { - const stars = container.querySelectorAll('.srfm-star'); - const input = container.nextElementSibling; - const maxRating = parseInt(container.dataset.max); - - stars.forEach(star => { - star.addEventListener('click', function() { - const value = parseInt(this.dataset.value); - input.value = value; - - // Visual update - stars.forEach((s, index) => { - if (index < value) { - s.classList.add('selected'); - } else { - s.classList.remove('selected'); - } - }); - }); - - // Hover effect - star.addEventListener('mouseenter', function() { - const value = parseInt(this.dataset.value); - stars.forEach((s, index) => { - if (index < value) { - s.classList.add('hover'); - } else { - s.classList.remove('hover'); - } - }); - }); - }); - - container.addEventListener('mouseleave', function() { - stars.forEach(s => s.classList.remove('hover')); - }); - }); -}); -``` - -#### Step 5: Register Block (15 min) - -**Edit `inc/blocks/register.php`:** - -```php -// Add to existing blocks registration -Star_Rating\Block::register(); -``` - -**Edit `src/blocks/star-rating/index.js`:** - -```javascript -import { registerBlockType } from '@wordpress/blocks'; -import edit from './edit'; -import metadata from './block.json'; - -registerBlockType(metadata.name, { - edit, - save: () => null, // Server-side rendering -}); -``` - -#### Step 6: Add Sanitization & Validation (30 min) - -**Edit `inc/helper.php`:** - -Find `sanitize_by_field_type()` method and add: - -```php -case 'star-rating': - $value = absint($value); - // Ensure value is between 1 and max rating - return ($value >= 1 && $value <= 10) ? $value : 0; -``` - -**Edit `inc/field-validation.php`:** - -Find validation logic and add: - -```php -if ($field_type === 'star-rating' && $is_required && empty($value)) { - $errors[] = __('Please select a rating', 'sureforms'); -} -``` - -#### Step 7: Build & Test (30 min) - -```bash -# Build assets -npm run build - -# Test in browser -# 1. Create new form -# 2. Add "Star Rating" block -# 3. Configure settings (label, required, max stars) -# 4. Publish form -# 5. Submit test entry -# 6. Verify data saved correctly - -# Check database -wp db query "SELECT * FROM wp_sureforms_entries ORDER BY id DESC LIMIT 1;" -``` - ---- - -## 1-Week Mastery - -**Goal:** Expert-level understanding and complex feature development - -### Day 1: Architecture Deep Dive - -**Morning:** -- Complete 1-day onboarding -- Read all internal docs thoroughly -- Map data flow for all major features - -**Afternoon:** -- Trace payment processing end-to-end -- Understand webhook verification -- Study integration architecture - -### Day 2: Security & Best Practices - -**Focus areas:** -1. **Input sanitization:** Understand all 15+ sanitization methods -2. **Output escaping:** When to use `esc_html()`, `esc_attr()`, `esc_url()` -3. **SQL injection prevention:** Always use `$wpdb->prepare()` -4. **CSRF protection:** Nonce verification patterns -5. **Authorization:** `current_user_can()` checks - -**Hands-on exercises:** -- Review `inc/form-submit.php` (Lines 88-119: Security checks) -- Study `inc/helper.php` sanitization methods -- Find and fix intentional security bugs in test code - -**Read:** -- [coding-standards.md](coding-standards.md) -- [ai-agent-guide.md](ai-agent-guide.md) - Security section - -### Day 3: React & Gutenberg Blocks - -**Topics:** -1. **Block architecture:** How Gutenberg blocks work -2. **Attributes:** Data storage and retrieval -3. **Inspector controls:** Settings sidebar -4. **Block variations:** Different field configurations -5. **Dynamic blocks:** Server-side rendering - -**Build complex block:** -- **Multi-step form block** (if not using Pro feature) -- Add step navigation -- Save progress between steps -- Implement validation per step - -**Resources:** -- Official Gutenberg docs: https://developer.wordpress.org/block-editor/ -- Example: Study `src/blocks/phone/` for complex field - -### Day 4: Database & REST API - -**Morning: Database operations** - -**Study these classes:** -- `inc/database/base.php` - Base table class -- `inc/database/tables/entries.php` - Entries CRUD -- `inc/database/tables/payments.php` - Payment records - -**Practice:** -```php -// Create custom query -use SRFM\Inc\Database\Tables\Entries; - -$entries = Entries::get_all([ - 'where' => [ - ['key' => 'form_id', 'value' => 123, 'compare' => '='], - ['key' => 'status', 'value' => 'published', 'compare' => '='] - ], - 'orderby' => 'created_at', - 'order' => 'DESC', - 'limit' => 20 -]); -``` - -**Afternoon: REST API development** - -**Create custom endpoint:** - -```php -// In new file: inc/rest-api-custom.php -namespace SRFM\Inc; - -class Rest_API_Custom { - public function register_routes() { - register_rest_route('sureforms/v1', '/custom-stats', [ - 'methods' => 'GET', - 'callback' => [$this, 'get_stats'], - 'permission_callback' => [$this, 'check_permissions'] - ]); - } - - public function check_permissions() { - return current_user_can('manage_options'); - } - - public function get_stats($request) { - // Your logic here - return ['success' => true, 'data' => []]; - } -} -``` - -### Day 5: Pro Features & Integrations - -**Morning: Payment processing** - -**Study both gateways:** -- Stripe: `inc/payments/stripe/` -- PayPal (Pro): `inc/business/payments/pay-pal/` - -**Understand webhook handling:** -- Signature verification -- Event processing -- Database updates -- Error handling - -**Afternoon: Build custom integration** - -**Example: Slack integration** - -1. Create integration folder: -``` -inc/pro/native-integrations/integrations/slack/ -├── config.json -└── actions/ - └── send-message.php -``` - -2. Define config: -```json -{ - "name": "Slack", - "slug": "slack", - "auth_method": "webhook_url", - "actions": [ - { - "name": "Send Message", - "slug": "send-message", - "endpoint": "chat.postMessage" - } - ] -} -``` - -3. Implement action: -```php -format_message($form_data); - - $response = wp_remote_post($webhook_url, [ - 'body' => json_encode(['text' => $message]), - 'headers' => ['Content-Type' => 'application/json'] - ]); - - if (is_wp_error($response)) { - return ['success' => false, 'error' => $response->get_error_message()]; - } - - return ['success' => true]; - } - - private function format_message($form_data) { - // Format form data as Slack message - return "New form submission:\n" . print_r($form_data, true); - } -} -``` - ---- - -## Testing Your Changes - -### Local Testing - -**PHP Unit Tests:** -```bash -# Run all tests -composer test - -# Run specific test file -vendor/bin/phpunit tests/unit/test-helper.php - -# Run with coverage -composer test-coverage -``` - -**JavaScript Tests:** -```bash -# Run all JS tests -npm run test:unit - -# Watch mode -npm run test:unit:watch - -# Coverage -npm run test:unit:coverage -``` - -### E2E Testing (Playwright) - -```bash -# Start test environment -npm run play:up - -# Run E2E tests -npm run play:run - -# Interactive mode (see browser) -npm run play:run:interactive - -# Stop environment -npm run play:down -``` - -### Manual Testing Checklist - -Before submitting PR: -- [ ] Form creation works -- [ ] Form submission saves entry -- [ ] Email notifications sent -- [ ] Payment processing works (if touched) -- [ ] No JavaScript console errors -- [ ] No PHP errors in debug.log -- [ ] Works in latest WordPress version -- [ ] Works in Firefox, Chrome, Safari -- [ ] Mobile responsive -- [ ] Accessibility: keyboard navigation works - ---- - -## Code Review Process - -### Before Creating PR - -**Self-review:** -1. Run linters: -```bash -composer lint # PHP_CodeSniffer -npm run lint-js # ESLint -``` - -2. Auto-fix minor issues: -```bash -composer format # phpcbf -npm run lint-js:fix # ESLint --fix -``` - -3. Check for common issues: -- [ ] All inputs sanitized -- [ ] All outputs escaped -- [ ] SQL queries use `prepare()` -- [ ] Nonces verified for AJAX/forms -- [ ] Capabilities checked for admin actions -- [ ] No hardcoded strings (use `__()` for i18n) - -### Creating PR - -**Branch naming:** -```bash -git checkout -b feat/star-rating-field -git checkout -b fix/payment-webhook-error -git checkout -b refactor/database-queries -``` - -**Commit message format:** -``` -type(scope): brief description - -Longer explanation if needed. - -Co-Authored-By: Your Name -``` - -**Types:** feat, fix, docs, style, refactor, test, chore - -**Example:** -``` -feat(blocks): add star rating field - -- Add new star-rating block -- Implement frontend JavaScript -- Add sanitization and validation -- Update docs with new field type - -Co-Authored-By: Claude Sonnet 4.5 -``` - -### PR Checklist - -- [ ] Tests pass: `composer test && npm run test:unit` -- [ ] Linting passes: `composer lint && npm run lint-js` -- [ ] No console errors -- [ ] Database migrations documented (if any) -- [ ] Breaking changes documented -- [ ] Changelog updated -- [ ] Screenshots attached (for UI changes) - ---- - -## Common Tasks & Patterns - -### Add New AJAX Handler - -**Pattern:** -```php -// In controller file -public function register_ajax_actions() { - add_action('wp_ajax_srfm_my_action', [$this, 'handle_my_action']); - add_action('wp_ajax_nopriv_srfm_my_action', [$this, 'handle_my_action']); -} - -public function handle_my_action() { - // CRITICAL: Always verify nonce - check_ajax_referer('srfm_my_action_nonce', 'security'); - - // Check permissions if needed - if (!current_user_can('manage_options')) { - wp_send_json_error(['message' => 'Insufficient permissions']); - } - - // Sanitize inputs - $data = Helper::sanitize_array_recursively($_POST['data'] ?? []); - - // Process... - - wp_send_json_success(['result' => $result]); -} -``` - -### Add New REST Endpoint - -**Pattern:** -```php -// In inc/rest-api.php -public function register_routes() { - register_rest_route('sureforms/v1', '/my-endpoint', [ - 'methods' => 'POST', - 'callback' => [$this, 'handle_request'], - 'permission_callback' => [$this, 'check_permissions'] - ]); -} - -public function check_permissions() { - return current_user_can('manage_options'); -} - -public function handle_request($request) { - // Always verify nonce - $nonce = $request->get_header('X-WP-Nonce'); - if (!wp_verify_nonce($nonce, 'wp_rest')) { - return new \WP_Error('invalid_nonce', 'Invalid nonce', ['status' => 403]); - } - - // Get and sanitize parameters - $params = $request->get_params(); - $clean_params = Helper::sanitize_array_recursively($params); - - // Process... - - return ['success' => true, 'data' => $result]; -} -``` - -### Add WordPress Hook - -**Action hook (notify about event):** -```php -// Trigger action after entry save -do_action('sureforms_after_entry_save', $entry_id, $form_id, $entry_data); - -// Other plugins/themes can listen: -add_action('sureforms_after_entry_save', function($entry_id, $form_id, $data) { - // Custom logic -}, 10, 3); -``` - -**Filter hook (modify data):** -```php -// Allow filtering of email subject -$subject = apply_filters('sureforms_email_subject', $subject, $form_id, $entry_data); - -// Other plugins/themes can modify: -add_filter('sureforms_email_subject', function($subject, $form_id, $data) { - return "[Form $form_id] $subject"; -}, 10, 3); -``` - -### Database Operations - -**Insert entry:** -```php -use SRFM\Inc\Database\Tables\Entries; - -$entry_id = Entries::insert([ - 'form_id' => 123, - 'user_id' => get_current_user_id(), - 'status' => 'published', - 'entry_data' => wp_json_encode($form_data) -]); -``` - -**Update entry:** -```php -Entries::update($entry_id, [ - 'status' => 'spam' -]); -``` - -**Delete entry:** -```php -Entries::delete($entry_id); -``` - -**Query entries:** -```php -$entries = Entries::get_all([ - 'where' => [ - ['key' => 'form_id', 'value' => 123, 'compare' => '='] - ], - 'limit' => 20, - 'offset' => 0 -]); -``` - ---- - -## Debugging Tips - -### Enable Debug Mode - -**wp-config.php:** -```php -define('WP_DEBUG', true); -define('WP_DEBUG_LOG', true); -define('WP_DEBUG_DISPLAY', false); -define('SCRIPT_DEBUG', true); -define('SAVEQUERIES', true); -``` - -### Check Debug Log - -```bash -# Real-time log monitoring -tail -f wp-content/debug.log - -# Search for errors -grep "SureForms" wp-content/debug.log -``` - -### JavaScript Debugging - -**Browser console:** -```javascript -// Check global object -console.log(window.sureforms); - -// Check block attributes -wp.data.select('core/block-editor').getBlocks(); - -// Check form data -document.querySelector('form').addEventListener('submit', (e) => { - console.log('Form data:', new FormData(e.target)); -}); -``` - -### Database Queries - -**Install Query Monitor plugin:** -```bash -wp plugin install query-monitor --activate -``` - -**Check slow queries:** -- Visit any admin page -- Click "Query Monitor" in admin bar -- View "Queries" tab -- Sort by time -- Optimize slow queries - -**Manual query inspection:** -```php -// Add to code temporarily -global $wpdb; -$wpdb->show_errors(); -$wpdb->print_error(); -``` - -### AJAX Debugging - -**Check network tab:** -1. Open DevTools → Network -2. Filter: XHR -3. Submit form -4. Click request -5. Check Response tab for errors - -**Add debug output:** -```php -public function handle_ajax() { - error_log('AJAX data: ' . print_r($_POST, true)); - // ... rest of code -} -``` - ---- - -## Resources - -### Internal Documentation -- [README.md](README.md) - Quick start -- [architecture.md](architecture.md) - System design -- [codebase-map.md](codebase-map.md) - File structure -- [apis.md](apis.md) - API reference -- [coding-standards.md](coding-standards.md) - Code standards -- [ai-agent-guide.md](ai-agent-guide.md) - AI agent guidance -- [troubleshooting.md](troubleshooting.md) - Common problems - -### External Resources -- **WordPress Codex:** https://codex.wordpress.org/ -- **Block Editor Handbook:** https://developer.wordpress.org/block-editor/ -- **REST API Handbook:** https://developer.wordpress.org/rest-api/ -- **React Docs:** https://react.dev/ -- **WP-CLI:** https://wp-cli.org/ - -### Community -- **GitHub Issues:** Report bugs, request features -- **Facebook Group:** https://www.facebook.com/groups/surecart -- **Support:** https://support.brainstormforce.com/ - ---- - -## Next Steps - -After completing onboarding: - -1. **Pick a starter issue:** - - Look for "good first issue" label on GitHub - - Start with documentation or small bug fixes - - Work up to features - -2. **Read code:** - - Pick a feature you use - - Trace it from UI to database - - Understand every line - -3. **Write tests:** - - For code you touch - - Increases confidence - - Helps others understand your changes - -4. **Ask questions:** - - Don't hesitate to ask - - Better to ask than assume - - Document answers for others - -**Welcome to the team!** 🚀 diff --git a/internal-docs/product-vision.md b/internal-docs/product-vision.md deleted file mode 100644 index f41f1951c..000000000 --- a/internal-docs/product-vision.md +++ /dev/null @@ -1,688 +0,0 @@ -# Product Vision - -**Version:** 2.5.0 - ---- - -## Mission - -**Empower anyone to build beautiful, high-converting forms without code.** - -SureForms exists to solve a fundamental problem: creating forms on WordPress is unnecessarily complex, resulting in ugly forms that hurt conversion rates. - ---- - -## The Problem We Solve - -### Pain Points (Before SureForms) - -**1. Complexity** -- Learning curve: New interfaces, proprietary builders -- Time waste: Hours configuring simple contact forms -- Technical barriers: Requires developer for custom fields - -**2. Design Limitations** -- Generic templates that don't match site design -- Limited styling options without CSS knowledge -- Mobile responsiveness as afterthought - -**3. Low Engagement** -- Long, intimidating single-page forms -- No personalization or conditional logic -- High abandonment rates (avg 67% for long forms) - -**4. Spam & Security** -- Constant bot submissions -- Security vulnerabilities in popular plugins -- GDPR compliance challenges - -**5. Integration Friction** -- Payment processing requires multiple plugins -- Manual data export/import to CRMs -- Webhook setup requires developer knowledge - ---- - -## Our Solution - -### Core Differentiators - -**1. Native WordPress (Gutenberg)** -- **Why:** Users already know the interface -- **Benefit:** Zero learning curve, instant productivity -- **Technical:** React blocks, no proprietary builder - -**2. AI-Powered Form Building** -- **Innovation:** First AI form builder for WordPress -- **How:** Natural language → complete functional form in seconds -- **Examples:** - - "Create a job application form" → 12-field form with file upload - - "Simple contact form" → 3 fields, perfectly styled - - "Event RSVP with dietary restrictions" → Conditional logic auto-configured - -**3. Built-in Payments** -- **Why:** No WooCommerce, no add-ons required -- **Gateways:** Stripe (Free), PayPal (Pro) -- **Features:** One-time, subscriptions, custom amounts -- **Security:** PCI-compliant, encrypted credentials - -**4. Mobile-First Design** -- **Approach:** Responsive by default, not opt-in -- **Testing:** Every block tested on iOS/Android -- **Performance:** Fast load times on 3G networks - -**5. Engagement Features (Pro)** -- **Conversational Forms:** Chat-like, one question at a time -- **Multi-Step Forms:** Break long forms into digestible steps -- **Conditional Logic:** Show/hide based on answers -- **Result:** 3x higher completion rates vs single-page forms - ---- - -## Target Users - -### Primary Personas - -#### 1. Website Owner (40% of users) -**Profile:** -- Small business owner or solopreneur -- Limited technical skills -- DIY mentality -- Budget-conscious - -**Needs:** -- Contact forms, quote requests, bookings -- Easy setup (< 10 minutes) -- Professional appearance -- Spam protection - -**Pain Points:** -- Frustrated with complex form builders -- Can't afford developer -- Generic templates don't match brand - -**How SureForms Helps:** -- AI creates form in 30 seconds -- Instant Form feature (no embedding needed) -- Built-in anti-spam (reCAPTCHA, Honeypot) -- Modern, customizable design - ---- - -#### 2. WordPress Designer (30% of users) -**Profile:** -- Freelancer or agency designer -- Strong design skills, basic code knowledge -- Builds sites for clients -- Values aesthetics and UX - -**Needs:** -- Forms that match site design -- Custom styling without CSS -- Fast deployment -- Client-friendly interface - -**Pain Points:** -- Form plugins look "generic" -- CSS overrides are tedious -- Clients can't update forms themselves -- Other plugins don't use Gutenberg - -**How SureForms Helps:** -- Gutenberg-native (feels like page building) -- Extensive styling options in UI -- Client can edit without breaking design -- Block patterns for reusability - ---- - -#### 3. WordPress Developer (20% of users) -**Profile:** -- Full-stack developer -- Builds custom WordPress solutions -- Values clean code and extensibility -- Performance-conscious - -**Needs:** -- Developer-friendly APIs -- Hooks and filters -- Custom field types -- Database access -- Integration capabilities - -**Pain Points:** -- Other plugins have messy codebases -- Limited extensibility -- Poor documentation -- Performance issues (N+1 queries, bloat) - -**How SureForms Helps:** -- Clean, modern codebase (PSR-12-inspired) -- Extensive hooks: 50+ actions/filters -- Well-documented APIs -- Optimized queries (custom tables, not post meta) -- GitHub access for contributions - ---- - -#### 4. E-commerce Store Owner (10% of users) -**Profile:** -- Runs WooCommerce or custom store -- Needs payment forms (not full checkout) -- Sells services, memberships, donations -- Wants simplicity - -**Needs:** -- Accept payments without WooCommerce -- Subscription billing -- Custom pricing fields -- Receipt emails - -**Pain Points:** -- WooCommerce is overkill for simple payments -- Other payment forms require add-ons -- Can't customize payment flow -- Poor mobile checkout experience - -**How SureForms Helps:** -- Built-in Stripe/PayPal (no plugins) -- Subscription support included -- Custom amount fields (donations, tips) -- Mobile-optimized payment UI - ---- - -## Feature Philosophy - -### Design Principles - -**1. Simplicity Over Features** -- Don't add features just because competitors have them -- Every feature must solve real user problem -- Hide complexity behind smart defaults - -**Example:** -- ❌ Bad: 50 font options overwhelming users -- ✅ Good: 5 curated fonts + custom font option - -**2. Progressive Disclosure** -- Show basic options first -- Advanced settings collapsed by default -- Help text on hover, not always visible - -**Example:** -- Default form settings: 4 essential options -- Advanced panel: 15+ options (collapsed) - -**3. Convention Over Configuration** -- Smart defaults based on common use cases -- Zero config for 80% of users -- Power users can customize - -**Example:** -- Email notification auto-configured with sensible template -- User can override if needed - -**4. Performance First** -- Lazy load non-critical assets -- Minimize HTTP requests -- Database queries optimized (no N+1) -- CSS/JS minified and cached - -**Metrics:** -- Page load impact: < 50KB additional assets -- Time to Interactive: < 2 seconds on 3G -- Database queries: Max 5 per form render - -**5. Accessibility Built-In** -- WCAG 2.1 Level AA compliance -- Keyboard navigation -- Screen reader support -- Focus indicators - -**Testing:** -- Every block tested with NVDA/JAWS -- Keyboard-only testing required -- Color contrast checked - ---- - -## Free vs Pro Strategy - -### Free Plugin (Core Experience) - -**Philosophy:** Full-featured, not crippled trial - -**Included:** -- Unlimited forms -- Unlimited submissions -- All 15+ field types -- Email notifications -- Spam protection (reCAPTCHA, Honeypot) -- Stripe payments (one-time, subscriptions) -- Form analytics -- Export entries (CSV) -- GDPR compliance -- Instant Forms - -**Limitations:** -- No PayPal -- No native integrations (Mailchimp, etc.) -- No conditional logic -- No multi-step/conversational forms -- No user registration -- No PDF generation - -**Goal:** Provide genuine value, build trust, convert 5-10% to Pro - ---- - -### Pro Plugin (Power Features) - -**Philosophy:** Advanced features for serious users - -**Added Value:** -- **Payments:** PayPal (one-time, subscriptions) -- **Integrations:** 24+ native (Mailchimp, Brevo, HubSpot, Salesforce, etc.) -- **Logic:** Conditional show/hide, calculations -- **Forms:** Multi-step, conversational, save & resume -- **Users:** Registration, login, password reset -- **Output:** PDF generation from submissions -- **Advanced Fields:** Upload (images, files), signature, calculator -- **Priority Support:** < 24hr response time - -**Pricing Tiers:** -- **Essential:** $99/year (3 sites) -- **Plus:** $199/year (20 sites) -- **Agency:** $299/year (unlimited sites) - -**Conversion Strategy:** -- Free users see "Pro" badge on locked features -- No nag screens or popups -- Upgrade CTA in logical places (when user needs feature) -- 14-day money-back guarantee - ---- - -## Competitive Landscape - -### Direct Competitors - -**1. Gravity Forms** -- **Strengths:** Mature, extensive add-ons, trusted -- **Weaknesses:** Old UI, not Gutenberg-native, expensive -- **Our Advantage:** Modern interface, AI builder, lower cost - -**2. WPForms** -- **Strengths:** Beginner-friendly, drag-and-drop -- **Weaknesses:** Generic designs, limited styling -- **Our Advantage:** Better design flexibility, Gutenberg-native - -**3. Formidable Forms** -- **Strengths:** Advanced features, views/reporting -- **Weaknesses:** Steep learning curve, performance issues -- **Our Advantage:** Simpler, faster, AI-assisted - -**4. Fluent Forms** -- **Strengths:** Conversational forms, modern UI -- **Weaknesses:** Not Gutenberg-native, separate builder -- **Our Advantage:** Native Gutenberg, simpler UX - -**5. Contact Form 7** -- **Strengths:** Free, lightweight, popular -- **Weaknesses:** No UI, requires shortcodes, ugly default styles -- **Our Advantage:** Visual builder, beautiful defaults, AI - ---- - -### Market Positioning - -**SureForms:** The AI-powered Gutenberg form builder - -**Tagline:** "Beautiful forms without code" - -**Positioning Statement:** -> For WordPress users who want high-converting forms without complexity, SureForms is the AI-powered form builder that creates beautiful, mobile-first forms in seconds—unlike outdated plugins that require hours of configuration and result in generic-looking forms. - -**Why Users Choose SureForms:** -1. **Speed:** AI creates forms in 30 seconds vs 30 minutes -2. **Design:** Modern, mobile-first vs generic templates -3. **Ease:** Gutenberg-native vs proprietary builder -4. **Value:** Built-in payments vs add-ons required - ---- - -## Product Roadmap - -### Current Focus (2026 Q1) - -**Theme:** Stability & Performance - -**Priorities:** -1. Bug fixes from user reports -2. Performance optimization (lazy loading, query optimization) -3. Security hardening (code audit, penetration testing) -4. Documentation improvements -5. Accessibility compliance (WCAG 2.2 Level AA) - ---- - -### Near-Term (2026 Q2-Q3) - -**Theme:** Advanced Features & Integrations - -**Planned:** -1. **More Integrations:** - - Google Sheets (native, no Zapier) - - Airtable - - Notion - - Slack (native) - -2. **Field Types:** - - Star rating - - Matrix/grid (Pro) - - File upload enhancements (drag & drop, preview) - -3. **Conditional Logic Enhancements (Pro):** - - Show/hide blocks (not just fields) - - Calculation fields (price quotes, BMI calculators) - - Conditional email notifications - -4. **Analytics:** - - Conversion funnel visualization - - A/B testing (form variations) - - Heatmaps (where users drop off) - -5. **Templates:** - - 100+ pre-built form templates - - Industry-specific (real estate, healthcare, education) - - Import/export custom templates - ---- - -### Long-Term Vision (2027+) - -**Theme:** AI-Driven Personalization - -**Research Areas:** -1. **AI Form Optimization:** - - Auto-suggest field improvements based on completion rates - - Predictive text for common fields - - Smart field ordering (ML-driven) - -2. **Advanced Conversational Forms:** - - Voice input support - - Natural language processing for responses - - Branching logic based on sentiment - -3. **Global Expansion:** - - Multi-language support (WPML, Polylang) - - Currency localization - - Regional compliance (CCPA, PIPEDA, etc.) - -4. **Enterprise Features:** - - Team collaboration (roles, permissions) - - Advanced approval workflows - - Audit logs - - White-label options - -5. **Mobile App:** - - iOS/Android app for managing entries - - Push notifications for new submissions - - Offline form viewing - ---- - -## Success Metrics - -### North Star Metric -**Active Forms:** Number of forms receiving at least 1 submission per month - -**Why:** Indicates genuine usage, not just installs - -**Target:** 100,000 active forms by end of 2026 - ---- - -### Secondary Metrics - -**Growth:** -- New installations per month: 50,000+ -- Activation rate: 60% (user creates first form within 7 days) -- Retention: 80% still active after 30 days - -**Engagement:** -- Forms created per user: 3.5 average -- Submissions per form: 25/month average -- Feature adoption (Pro): 40% use conditional logic - -**Conversion:** -- Free → Pro conversion: 5-7% -- Trial → Paid: 25% -- Annual renewal rate: 85% - -**Quality:** -- Support ticket volume: < 2% of active users -- Bug reports: < 0.5% of installations -- 4.5+ star rating on WordPress.org - -**Performance:** -- Average page load impact: < 40KB -- Time to first form submission: < 5 minutes (from install) -- Support response time: < 12 hours - ---- - -## User Feedback Integration - -### How We Listen - -**1. Support Tickets** -- Every ticket tagged by topic -- Monthly review of common issues -- Feature requests tracked in GitHub - -**2. User Surveys** -- Annual user satisfaction survey -- Post-purchase survey (Pro users) -- Exit survey (churned Pro users) - -**3. Analytics** -- Feature usage tracking (opt-in) -- Error logging (anonymized) -- Performance metrics - -**4. Community** -- Facebook group discussions -- GitHub issues and discussions -- WordPress.org support forum - -**5. Direct Outreach** -- User interviews (quarterly) -- Beta tester program -- Power user advisory board - ---- - -### Decision Framework - -**Feature Requests Evaluation:** - -**Criteria:** -1. **Impact:** How many users need this? (1-10) -2. **Effort:** Development complexity? (1-10) -3. **Strategic Fit:** Aligns with vision? (Yes/No) -4. **Competitive:** Do competitors have it? (Yes/No) -5. **Revenue:** Drives conversions? (Yes/No) - -**Scoring:** -- Impact / Effort = Priority score -- Strategic Fit = multiplier (2x if yes) -- Build if score > 5 - -**Example:** -- Feature: "Drag & drop file upload" -- Impact: 8 (many requests) -- Effort: 4 (moderate complexity) -- Strategic Fit: Yes (better UX) -- Score: (8/4) × 2 = 4 → **Build later** - ---- - -## Brand & Voice - -### Brand Personality - -**Adjectives:** -- Approachable (not intimidating) -- Modern (not trendy) -- Reliable (not boring) -- Empowering (not condescending) - -**Tone:** -- Friendly but professional -- Clear over clever -- Helpful without being pushy -- Honest about limitations - ---- - -### Writing Guidelines - -**Do:** -- Use "you" (conversational) -- Short sentences -- Active voice -- Explain "why" not just "how" - -**Don't:** -- Jargon without explanation -- Marketing fluff ("revolutionary", "game-changing") -- Passive voice ("the form was created") -- Unnecessary exclamation marks!!!! - -**Examples:** - -❌ Bad: "SureForms revolutionizes form building with cutting-edge AI technology!" - -✅ Good: "SureForms uses AI to create forms in seconds. Describe what you need, and we'll build it." - ---- - -❌ Bad: "The form submission process has been optimized for maximum conversion potential." - -✅ Good: "We designed our forms to load fast and look great on mobile, so more people complete them." - ---- - -## Technical Vision - -### Architecture Goals - -**1. Performance** -- Custom database tables (not post meta) -- Lazy loading for non-critical assets -- Query optimization (no N+1) -- CDN-friendly (static assets versioned) - -**2. Scalability** -- Handle 100,000+ submissions per form -- Efficient database queries (indexed columns) -- Background processing for heavy tasks (webhooks, PDFs) -- Caching strategy (transients, object cache) - -**3. Security** -- Input sanitization (all user data) -- Output escaping (all rendered content) -- Nonce verification (all AJAX/REST) -- SQL injection prevention (prepared statements) -- Regular security audits - -**4. Extensibility** -- 50+ hooks (actions and filters) -- Clean, documented APIs -- Developer-friendly codebase -- Backward compatibility promise - -**5. Maintainability** -- WordPress coding standards (PHP_CodeSniffer) -- ESLint for JavaScript -- Automated testing (PHPUnit, Playwright) -- Clear documentation (inline and external) - ---- - -## Values & Principles - -**1. User Privacy** -- No tracking without consent -- GDPR compliance built-in -- Data portability (easy export) -- Clear privacy policy - -**2. Open Source (Free Plugin)** -- Public GitHub repository -- Accept community contributions -- Transparent roadmap -- Active maintenance - -**3. Quality Over Speed** -- Test thoroughly before release -- Fix bugs before adding features -- Code review required for all changes -- No "move fast and break things" - -**4. Accessibility** -- WCAG 2.1 Level AA minimum -- Keyboard navigation always -- Screen reader testing required -- Color contrast compliance - -**5. Sustainability** -- Reasonable pricing (not subscription trap) -- Long-term support commitment -- No vendor lock-in (data always exportable) -- Transparent upgrade policies - ---- - -## What We Won't Do - -**Out of Scope:** - -**1. Full CRM System** -- Why: Bloat, complexity, competing with specialists -- Alternative: Integrate with existing CRMs (HubSpot, Salesforce) - -**2. Email Marketing Platform** -- Why: Already solved by Mailchimp, Brevo, etc. -- Alternative: Native integrations with 24+ email platforms - -**3. Complete E-commerce Solution** -- Why: WooCommerce exists, does it well -- Alternative: Simple payment forms (our niche) - -**4. Website Builder** -- Why: Outside core competency (forms) -- Alternative: Work seamlessly with any page builder - -**5. Survey & Quiz Builder** -- Why: Different use case, different UX requirements -- Alternative: Forms work for simple surveys - ---- - -## Conclusion - -**Core Belief:** -Forms are critical touchpoints between businesses and customers. They should be beautiful, fast, and easy to create. - -**Our Promise:** -We'll keep building tools that make form creation accessible to everyone, without sacrificing power or flexibility. - -**For Developers:** -Your feedback shapes this product. Keep the issues and PRs coming. We're listening. - ---- - -**Next:** [UI & Copy Guidelines](ui-and-copy.md) diff --git a/internal-docs/troubleshooting.md b/internal-docs/troubleshooting.md deleted file mode 100644 index b7f256af5..000000000 --- a/internal-docs/troubleshooting.md +++ /dev/null @@ -1,1031 +0,0 @@ -# Troubleshooting Guide - -**Version:** 2.5.0 - ---- - -## Quick Diagnostic - -**Before diving deep, check these common issues:** - -```bash -# 1. WordPress & PHP versions -wp core version -php -v - -# 2. Plugin status -wp plugin list | grep sureforms - -# 3. Theme compatibility -wp theme list --status=active - -# 4. Recent errors -tail -50 wp-content/debug.log | grep -i "sureforms\|fatal\|error" - -# 5. Database tables exist -wp db query "SHOW TABLES LIKE '%sureforms%';" -``` - ---- - -## Installation & Activation Issues - -### Plugin Won't Activate - -**Symptom:** "Plugin activation failed" or white screen - -**Common Causes:** - -**1. PHP Version Too Old** -```bash -php -v -# Required: PHP 7.4+ -``` - -**Fix:** -```bash -# Update PHP (contact host if shared hosting) -# Or add to wp-config.php temporarily to see error: -define('WP_DEBUG', true); -define('WP_DEBUG_DISPLAY', true); -``` - -**2. WordPress Version Too Old** -```bash -wp core version -# Required: WordPress 6.4+ -``` - -**Fix:** -```bash -wp core update -``` - -**3. Conflicting Plugin** - -**Check for conflicts:** -```bash -# Deactivate all other plugins -wp plugin deactivate --all --exclude=sureforms,sureforms-pro - -# Try activating SureForms -wp plugin activate sureforms - -# Reactivate plugins one by one -wp plugin activate plugin-name -``` - -**Common conflicts:** -- Old caching plugins (W3 Total Cache < 2.0) -- Security plugins with aggressive rules -- Other form builders (namespace collisions) - -**4. Memory Limit Too Low** - -**Check current limit:** -```bash -wp eval 'echo WP_MEMORY_LIMIT;' -``` - -**Fix (wp-config.php):** -```php -define('WP_MEMORY_LIMIT', '256M'); -``` - ---- - -### Pro Plugin Shows "Base Plugin Required" - -**Symptom:** SureForms Pro won't activate - -**Diagnosis:** -```bash -wp plugin list | grep sureforms -# Ensure both sureforms AND sureforms-pro are installed -``` - -**Fix:** -1. Install SureForms Free first -2. Activate SureForms Free -3. Then activate SureForms Pro - -**Check version compatibility:** -```bash -# Free and Pro versions should match -# Both should be 2.5.0 (or same major.minor) -``` - ---- - -### Database Tables Not Created - -**Symptom:** Form submissions fail, entries not showing - -**Check tables exist:** -```bash -wp db query "SHOW TABLES LIKE '%sureforms%';" -``` - -**Expected output:** -``` -wp_sureforms_entries -wp_sureforms_payments -wp_sureforms_integrations -wp_sureforms_save_resume -``` - -**Fix: Force database creation** -```bash -# Deactivate plugin -wp plugin deactivate sureforms sureforms-pro - -# Delete plugin (backup first!) -wp plugin delete sureforms - -# Reinstall -wp plugin install sureforms --activate - -# Tables should be created on activation -``` - -**Manual creation (last resort):** - -Read schema from: -- `inc/database/tables/entries.php` -- `inc/database/tables/payments.php` - -Run CREATE TABLE statements manually. - ---- - -## Form Builder (Editor) Issues - -### Forms Won't Load in Editor - -**Symptom:** Blank screen or infinite loading spinner - -**Diagnosis:** - -**1. Check browser console:** -``` -Open DevTools → Console -Look for JavaScript errors -``` - -**Common errors:** - -**a) "wp.blockEditor is undefined"** -- **Cause:** Outdated WordPress version -- **Fix:** `wp core update` - -**b) "React version mismatch"** -- **Cause:** Another plugin using old React version -- **Fix:** Deactivate other plugins one by one to find conflict - -**c) "Uncaught SyntaxError"** -- **Cause:** JavaScript file corrupted or not minified correctly -- **Fix:** Rebuild assets: `npm run build` in plugin directory - -**2. Check network tab:** -``` -DevTools → Network -Filter: JS -Look for failed requests (red, 404, 500) -``` - -**Common failures:** -- `form-editor.js` (404) → Rebuild assets -- `chunk-vendors.js` (500) → Server misconfiguration - -**3. Enable SCRIPT_DEBUG:** - -In `wp-config.php`: -```php -define('SCRIPT_DEBUG', true); -``` - -This loads unminified JS, easier to debug. - ---- - -### Blocks Not Appearing in Inserter - -**Symptom:** SureForms blocks missing from block library - -**Diagnosis:** -```bash -# Check if blocks are registered -wp eval "print_r(get_option('srfm_blocks_registration'));" -``` - -**Fixes:** - -**1. Re-register blocks:** -```bash -wp plugin deactivate sureforms -wp plugin activate sureforms -``` - -**2. Clear block cache:** -```bash -wp cache flush -wp transient delete --all -``` - -**3. Check block.json files exist:** -```bash -find wp-content/plugins/sureforms/inc/blocks -name "block.json" -# Should return multiple files -``` - ---- - -### Form Preview Shows "Invalid Block" - -**Symptom:** Form renders as "This block contains unexpected or invalid content" - -**Cause:** Block HTML structure changed, saved form has old structure - -**Fix:** - -**Option 1: Update block (preserves data):** -1. Click "Attempt Block Recovery" -2. Verify content looks correct -3. Update form - -**Option 2: Clear and rebuild:** -1. Delete the invalid block -2. Add fresh block -3. Reconfigure settings - -**Prevention:** -- Always test after plugin updates -- Keep staging environment for testing - ---- - -## Form Submission Issues - -### Form Submissions Not Saving - -**Symptom:** User submits form, success message shows, but no entry in database - -**Diagnosis:** - -**1. Check debug log:** -```bash -tail -f wp-content/debug.log -# Submit form while watching log -``` - -**Common errors:** -- "Database insert failed" → Check table permissions -- "Nonce verification failed" → Caching issue (see below) -- "Call to undefined method" → PHP version or missing dependency - -**2. Check database directly:** -```bash -# Get latest entry -wp db query "SELECT * FROM wp_sureforms_entries ORDER BY id DESC LIMIT 1;" -``` - -**3. Test with minimal form:** -Create form with ONLY: -- Email field -- Submit button - -If this works, issue is with specific field type. - -**Fixes:** - -**Database Permissions:** -```bash -# Check MySQL user has INSERT privilege -wp db query "SHOW GRANTS;" -``` - -**Fix permissions (MySQL):** -```sql -GRANT INSERT, UPDATE, DELETE ON database_name.* TO 'wp_user'@'localhost'; -FLUSH PRIVILEGES; -``` - -**Caching Interference:** - -Caching plugins cache nonce values, causing verification failures. - -**Fix:** -1. Exclude `/wp-admin/admin-ajax.php` from cache -2. Exclude REST API `/wp-json/` from cache -3. Or disable caching temporarily to test - ---- - -### Email Notifications Not Sending - -**Symptom:** Form submitted successfully, but no email received - -**Diagnosis:** - -**1. Check if emails are being sent at all:** -```bash -# Install WP Mail SMTP or similar -wp plugin install wp-mail-smtp --activate - -# Or test with simple command: -wp eval "wp_mail('your@email.com', 'Test', 'Testing SureForms');" -``` - -**2. Check SureForms email settings:** -```bash -# View form meta -wp post meta list | grep email -``` - -**3. Check spam folder** -- WordPress default `from` address: `wordpress@yourdomain.com` -- Often flagged as spam - -**Fixes:** - -**Configure SMTP:** - -Install WP Mail SMTP plugin: -```bash -wp plugin install wp-mail-smtp --activate -``` - -Configure with: -- Gmail -- SendGrid -- Mailgun -- Amazon SES - -**Check email template:** - -In form settings → Email Notification: -- Verify "To" address is correct -- Check "From" address is valid domain -- Test with simple subject/message - -**Server mail() function:** - -Some hosts disable PHP `mail()` function. - -Test: -```bash -php -r "mail('test@example.com', 'Test', 'Test message');" -``` - -If no email received, `mail()` is disabled. Use SMTP. - ---- - -### Form Validation Not Working - -**Symptom:** Form submits even with empty required fields - -**Causes:** - -**1. JavaScript disabled** (frontend validation skipped) -**2. Theme CSS hiding error messages** -**3. Custom JavaScript conflict** - -**Diagnosis:** - -**Check browser console:** -``` -Look for JavaScript errors -Check if srfm-validation.js loaded -``` - -**Test with default theme:** -```bash -wp theme activate twentytwentythree -# Submit form again -``` - -If works with default theme → Theme conflict. - -**Fixes:** - -**Theme conflict:** - -Add to theme's `functions.php`: -```php -add_action('wp_enqueue_scripts', function() { - // Ensure SureForms scripts load - wp_enqueue_script('srfm-frontend'); -}, 20); -``` - -**CSS hiding errors:** - -Check if theme has: -```css -.srfm-error { display: none !important; } -``` - -Remove or override. - ---- - -## Payment Processing Issues - -### Stripe Payments Failing - -**Symptom:** "Payment failed" error after entering card details - -**Diagnosis:** - -**1. Check Stripe API keys:** -```bash -# In WordPress admin: SureForms → Settings → Payments → Stripe -# Verify: -# - Using correct keys (test vs live) -# - Keys match Stripe dashboard -``` - -**2. Check Stripe webhook:** -```bash -# In Stripe Dashboard → Developers → Webhooks -# Verify webhook URL is: -https://yoursite.com/wp-json/sureforms/webhook_test - -# Check recent webhook deliveries for errors -``` - -**3. Check browser console:** -``` -DevTools → Console -Look for Stripe.js errors -``` - -**Common Errors:** - -**"Invalid API Key"** -- Using test key in live mode (or vice versa) -- API key revoked in Stripe dashboard -- Fix: Copy fresh keys from Stripe - -**"Payment Intent creation failed"** -- Amount is $0 or negative -- Currency mismatch -- Fix: Check form configuration, amount field - -**"Webhook signature verification failed"** -- Webhook secret incorrect -- Middleware issue -- Fix: Copy webhook signing secret from Stripe, update settings - -**Fixes:** - -**Test mode checklist:** -```bash -# 1. Use test API keys (starts with pk_test_ / sk_test_) -# 2. Test card: 4242 4242 4242 4242 -# 3. Any future expiry date -# 4. Any 3-digit CVC -``` - -**Live mode checklist:** -```bash -# 1. Use live API keys (starts with pk_live_ / sk_live_) -# 2. SSL certificate valid (https://) -# 3. Webhook verified in Stripe dashboard -# 4. Test with real card (refund immediately) -``` - ---- - -### PayPal Payments Failing (Pro) - -**Symptom:** Redirected to PayPal but payment doesn't process - -**Diagnosis:** - -**Check PayPal credentials:** -```bash -# SureForms → Settings → Payments → PayPal -# Verify: -# - Client ID matches PayPal dashboard -# - Secret matches -# - Using sandbox for testing, live for production -``` - -**Check webhook endpoint:** -```bash -# PayPal Dashboard → Apps & Credentials → Webhooks -# Webhook URL should be: -https://yoursite.com/wp-json/sureforms-pro/paypal-live-webhook -``` - -**Fixes:** - -**Test in sandbox mode first:** -1. Create PayPal sandbox account: https://developer.paypal.com/ -2. Use sandbox credentials in SureForms -3. Test with sandbox buyer account - -**Common issues:** -- **Wrong environment:** Using sandbox credentials in live mode -- **Webhook not subscribed:** Must subscribe to payment events in PayPal dashboard -- **SSL certificate:** PayPal requires valid HTTPS - ---- - -## Integration Issues (Pro) - -### Native Integration Not Connecting - -**Symptom:** "Connection failed" when adding integration (Mailchimp, HubSpot, etc.) - -**Diagnosis:** - -**1. Check OAuth redirect URL:** - -For OAuth integrations (Mailchimp, HubSpot, Salesforce): -``` -Redirect URL must be: -https://yoursite.com/wp-json/sureforms-pro/v1/oauth/callback -``` - -**2. Test API credentials:** - -For API key integrations (Brevo, etc.): -```bash -# Test API key directly -curl -X GET "https://api.brevo.com/v3/account" \ - -H "api-key: YOUR_API_KEY" -``` - -Should return account info, not error. - -**3. Check error logs:** -```bash -tail -f wp-content/debug.log | grep -i "integration\|oauth" -``` - -**Fixes:** - -**OAuth issues:** -- Ensure site uses HTTPS (required for OAuth) -- Whitelist redirect URL in service's developer console -- Check OAuth app has correct permissions/scopes - -**API key issues:** -- Regenerate key in service dashboard -- Copy entire key (no spaces, no quotes) -- Check key has required permissions (read/write) - ---- - -### Webhook Not Firing - -**Symptom:** Form submitted, but data not sent to integrated service - -**Diagnosis:** - -**Check webhook logs:** - -Install Query Monitor plugin: -```bash -wp plugin install query-monitor --activate -``` - -Submit form, check "HTTP API Calls" panel for webhook requests. - -**Manually trigger webhook:** -```bash -# Find integration ID -wp db query "SELECT * FROM wp_sureforms_integrations;" - -# Trigger webhook manually (developer test) -wp eval "do_action('sureforms_after_entry_save', 123, 456, []);" -``` - -**Fixes:** - -**Webhook URL validation:** - -In `inc/pro/integrations/webhooks.php`, ensure URL is valid: -- HTTPS only (no HTTP) -- No localhost (unless testing) -- Responds with 200 OK - -**Timeout issues:** - -Increase timeout in `wp-config.php`: -```php -define('WP_HTTP_BLOCK_EXTERNAL', false); -define('WP_ACCESSIBLE_HOSTS', 'api.mailchimp.com,api.hubspot.com'); -``` - ---- - -## Performance Issues - -### Form Editor Slow to Load - -**Symptom:** Takes 10+ seconds to load form in editor - -**Diagnosis:** - -**1. Check database size:** -```bash -wp db query "SELECT COUNT(*) FROM wp_sureforms_entries;" -# If > 100,000 entries, database may be slow -``` - -**2. Check server resources:** -```bash -# Memory usage -free -h - -# CPU usage -top - -# Disk I/O -iostat -``` - -**3. Profile with Query Monitor:** -```bash -wp plugin install query-monitor --activate -# Open form editor, check QM panel for slow queries -``` - -**Fixes:** - -**Optimize database:** -```bash -# Clean old entries (backup first!) -wp db query "DELETE FROM wp_sureforms_entries WHERE created_at < DATE_SUB(NOW(), INTERVAL 1 YEAR);" - -# Optimize tables -wp db optimize -``` - -**Increase PHP limits:** - -In `php.ini` or `.htaccess`: -``` -max_execution_time = 300 -memory_limit = 256M -``` - -**Enable object caching:** - -Install Redis or Memcached: -```bash -wp plugin install redis-cache --activate -wp redis enable -``` - ---- - -### Frontend Form Loads Slowly - -**Symptom:** Form takes 5+ seconds to appear on page - -**Diagnosis:** - -**Check asset loading:** -``` -DevTools → Network → Slow 3G simulation -Watch which assets are slow -``` - -**Common bottlenecks:** -- Google Fonts loading slowly -- Large CSS/JS files -- Unoptimized images in form - -**Fixes:** - -**Lazy load non-critical assets:** - -In `functions.php`: -```php -add_filter('script_loader_tag', function($tag, $handle) { - if ($handle === 'srfm-frontend') { - return str_replace(' src', ' defer src', $tag); - } - return $tag; -}, 10, 2); -``` - -**Use CDN for Google Fonts:** - -In form settings → Design → Typography: -- Limit to 1-2 font families -- Use system fonts for faster load (e.g., -apple-system) - -**Minify and combine assets:** -```bash -npm run build # Ensures assets are minified -``` - -**Enable caching:** - -Install caching plugin: -```bash -wp plugin install wp-super-cache --activate -``` - -Configure to cache pages with forms. - ---- - -## Block Compatibility Issues - -### Form Breaks After Theme Update - -**Symptom:** Form displays incorrectly or not at all after theme update - -**Diagnosis:** - -**Compare theme CSS:** - -Check if new theme has conflicting styles: -```css -/* Common conflicts */ -.srfm-form input { /* Theme override */ } -.srfm-field { /* Theme override */ } -``` - -**Test with default theme:** -```bash -wp theme activate twentytwentythree -``` - -If works → Theme issue. - -**Fixes:** - -**Add theme compatibility CSS:** - -In child theme `style.css`: -```css -/* Reset SureForms blocks */ -.srfm-form, -.srfm-field, -.srfm-form input, -.srfm-form textarea { - all: revert; -} - -/* Then apply minimal SureForms styles */ -``` - -**Use !important (last resort):** - -In SureForms settings → Custom CSS: -```css -.srfm-form input { - border: 1px solid #ccc !important; - padding: 10px !important; -} -``` - ---- - -### Conflicts with Page Builders - -**Symptom:** Forms don't work inside Elementor/Divi/Beaver Builder - -**Common Issues:** - -**1. JavaScript conflicts:** -- Page builder loads own jQuery version -- Conflicts with SureForms scripts - -**Fix:** -```php -// In functions.php -add_action('wp_enqueue_scripts', function() { - if (class_exists('Elementor\Plugin')) { - wp_dequeue_script('jquery'); - wp_enqueue_script('jquery'); - } -}, 100); -``` - -**2. CSS specificity:** -- Page builder CSS overrides SureForms - -**Fix:** - -Use SureForms settings → Custom CSS with higher specificity: -```css -.elementor-widget-container .srfm-form input { - /* Your styles */ -} -``` - ---- - -## Database & Query Issues - -### "Too many connections" Error - -**Symptom:** Site crashes during high form submission volume - -**Diagnosis:** -```bash -wp db query "SHOW STATUS LIKE 'max_used_connections';" -wp db query "SHOW VARIABLES LIKE 'max_connections';" -``` - -**Fixes:** - -**Increase max connections (MySQL):** - -In `my.cnf`: -``` -[mysqld] -max_connections = 500 -``` - -**Use persistent connections:** - -In `wp-config.php`: -```php -define('DB_CHARSET', 'utf8mb4'); -define('DB_COLLATE', ''); -define('MYSQL_CLIENT_FLAGS', MYSQLI_CLIENT_PERSISTENT); -``` - -**Add connection pooling:** - -Use ProxySQL or PgBouncer for connection pooling. - ---- - -### Slow Query: "SELECT * FROM wp_sureforms_entries" - -**Symptom:** Admin page very slow when viewing entries - -**Diagnosis:** -```bash -wp plugin install query-monitor --activate -# View entries page, check QM for slow queries -``` - -**Fixes:** - -**Add database indexes:** -```sql -ALTER TABLE wp_sureforms_entries -ADD INDEX idx_form_id (form_id), -ADD INDEX idx_created_at (created_at), -ADD INDEX idx_status (status); -``` - -**Limit entries displayed:** - -In admin, reduce entries per page from 100 to 20. - -**Paginate large result sets:** - -Ensure code uses `LIMIT` and `OFFSET`: -```php -$entries = Entries::get_all([ - 'limit' => 20, - 'offset' => ($page - 1) * 20 -]); -``` - ---- - -## WordPress.org Review Issues - -### Plugin Rejected for Security - -**Common reasons:** - -**1. Direct database calls without prepare():** -```php -// ❌ Bad -$wpdb->query("DELETE FROM table WHERE id = $id"); - -// ✅ Good -$wpdb->query($wpdb->prepare("DELETE FROM table WHERE id = %d", $id)); -``` - -**2. Unsanitized user input:** -```php -// ❌ Bad -echo $_POST['name']; - -// ✅ Good -echo esc_html(sanitize_text_field($_POST['name'] ?? '')); -``` - -**3. Missing nonce verification:** -```php -// ❌ Bad -if (isset($_POST['action'])) { do_action(); } - -// ✅ Good -if (isset($_POST['action']) && check_ajax_referer('my_action_nonce')) { - do_action(); -} -``` - -**Fix:** - -Run WordPress Coding Standards checker: -```bash -composer require --dev wp-coding-standards/wpcs -vendor/bin/phpcs --standard=WordPress inc/ -``` - -Fix all errors before resubmitting. - ---- - -## Getting Help - -### Before Asking for Help - -**Gather this information:** - -```bash -# 1. WordPress & PHP versions -wp core version -php -v - -# 2. Plugin version -wp plugin list | grep sureforms - -# 3. Active theme -wp theme list --status=active - -# 4. Other active plugins -wp plugin list --status=active - -# 5. Recent errors -tail -50 wp-content/debug.log - -# 6. Browser/OS (if frontend issue) -# Example: Chrome 120 on macOS 14 -``` - -### Where to Get Help - -**1. Documentation** (check first) -- This troubleshooting guide -- [FAQ](faq.md) -- [Architecture](architecture.md) - -**2. GitHub Issues** (bugs & feature requests) -- Search existing issues first -- Provide minimal reproduction steps -- Include system info from above - -**3. Support Portal** (Pro users) -- https://support.brainstormforce.com/ -- < 24hr response time for Pro users - -**4. Community** -- Facebook group: https://www.facebook.com/groups/surecart -- WordPress.org forum (Free only) - ---- - -## Still Stuck? - -If none of the above solutions work: - -**Create detailed bug report:** - -```markdown -**Environment:** -- WordPress: 6.4.2 -- PHP: 8.1 -- SureForms: 2.5.0 (Free/Pro) -- Theme: Astra 4.5.0 -- Browser: Chrome 120 - -**Steps to Reproduce:** -1. Create form with email field -2. Mark field as required -3. Submit form with empty email -4. [Describe unexpected behavior] - -**Expected:** Validation error shows -**Actual:** Form submits anyway - -**Debug Log:** -[Paste relevant errors from debug.log] - -**Screenshots:** -[Attach if visual issue] -``` - -Submit to: https://github.com/brainstormforce/sureforms/issues - ---- - -**Next:** [FAQ](faq.md) diff --git a/internal-docs/ui-and-copy.md b/internal-docs/ui-and-copy.md deleted file mode 100644 index e12a9a45a..000000000 --- a/internal-docs/ui-and-copy.md +++ /dev/null @@ -1,1077 +0,0 @@ -# UI & Copy Guidelines - -**Version:** 2.5.0 - ---- - -## User Experience Philosophy - -**Principle:** Every word and interaction should make the user feel capable, not confused. - -**User Mindset:** -- "I just want to create a form quickly" -- "I don't have time to read documentation" -- "I'm not a developer" - -**Our Responsibility:** -- Make obvious what to do next -- Explain why, not just how -- Never blame the user - ---- - -## User Journeys - -### Journey 1: First-Time User Creates Contact Form - -**Goal:** Create and publish first form in < 5 minutes - -**Steps:** - -**1. Plugin Activation (30 seconds)** - -``` -User activates plugin - ↓ -Redirect to welcome screen - ↓ -Show 2 options: - [Create with AI] [Start from Blank] -``` - -**Copy:** -``` -Welcome to SureForms! - -Let's create your first form. - -[Create with AI] ← Recommended for beginners - Let AI build your form from a simple description - -[Start from Blank] - Build your form block-by-block -``` - -**Design notes:** -- Large, friendly buttons -- "Recommended" badge on AI option -- No walls of text - ---- - -**2. AI Form Creation (2 minutes)** - -``` -User clicks "Create with AI" - ↓ -Modal appears with text input - ↓ -User types: "simple contact form" - ↓ -AI generates form (3-5 seconds) - ↓ -Form opens in editor, ready to publish -``` - -**Copy:** - -``` -Create Form with AI - -Describe the form you need: -┌─────────────────────────────────────┐ -│ Example: "job application with │ -│ file upload" or "event RSVP" │ -└─────────────────────────────────────┘ - -[Cancel] [Generate Form →] -``` - -**Loading state:** -``` -✨ Creating your form... - -AI is adding fields based on your description. -This usually takes 3-5 seconds. -``` - -**Success state:** -``` -✅ Your form is ready! - -We added: -• Name field -• Email field -• Message field -• Submit button - -You can add, remove, or rearrange fields below. - -[Publish Form] -``` - -**Design notes:** -- Loading spinner + encouraging message -- Success message lists what was created -- Clear next action (Publish) - ---- - -**3. Form Publishing (1 minute)** - -``` -User clicks "Publish" - ↓ -Gutenberg publish panel opens - ↓ -SureForms shows additional options -``` - -**Copy in publish panel:** - -``` -📋 Form Settings - -Where should submissions be sent? - -Email: [admin@yoursite.com ▼] - -After submission, show: -○ Confirmation message -○ Redirect to page -● Confirmation message (selected by default) - -Message: -┌─────────────────────────────────────┐ -│ Thank you! We'll respond within │ -│ 24 hours. │ -└─────────────────────────────────────┘ - -[Publish Form] -``` - -**Design notes:** -- Sensible defaults (confirmation message, admin email) -- Inline editing (no separate settings page) -- Jargon-free labels - ---- - -**4. Embedding Form (30 seconds)** - -``` -User wants to add form to page - ↓ -Edit page in Gutenberg - ↓ -Add SureForms block - ↓ -Select form from dropdown -``` - -**Copy in block inserter:** - -``` -SureForms - -Display a form on your page. - -📝 No form yet? Create one in SureForms > Add New -``` - -**Copy in block settings:** - -``` -Form - -Select a form: -[Contact Form ▼] [Create New] - -Display settings: -☑ Show form title -☑ Show form description -☐ Hide labels (show placeholders only) -``` - -**Design notes:** -- Help text guides to form creation if needed -- Checkbox labels explain what they do -- Preview updates in real-time - ---- - -### Journey 2: Pro User Sets Up Payment Form - -**Goal:** Create payment form and collect first payment - -**Complexity:** Higher (involves Stripe setup) - -**Steps:** - -**1. Payment Gateway Setup (5 minutes)** - -``` -User navigates to: -SureForms → Settings → Payments → Stripe -``` - -**Copy:** - -``` -Stripe Payments - -Accept credit card payments with Stripe. - -🔒 Secure: We never store card details. Payments are processed directly by Stripe. - -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -Test Mode (for testing) - -☑ Enable test mode - -Use these while testing: - Test card: 4242 4242 4242 4242 - Any future expiry, any CVC - -Publishable Key (starts with pk_test_) -┌─────────────────────────────────────┐ -│ │ -└─────────────────────────────────────┘ - -Secret Key (starts with sk_test_) -┌─────────────────────────────────────┐ -│ •••••••••••••••••••••••••••••••• │ -└─────────────────────────────────────┘ - -Where to get keys: -→ Stripe Dashboard > Developers > API Keys - https://dashboard.stripe.com/apikeys - -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -Live Mode (for real payments) - -⚠️ Only use after testing - -Publishable Key (starts with pk_live_) -┌─────────────────────────────────────┐ -│ │ -└─────────────────────────────────────┘ - -Secret Key (starts with sk_live_) -┌─────────────────────────────────────┐ -│ │ -└─────────────────────────────────────┘ - -[Save Settings] -``` - -**Design notes:** -- Test mode emphasized first -- Clear instructions where to get keys -- Security reassurance ("We never store") -- Direct link to Stripe dashboard - ---- - -**2. Creating Payment Form (3 minutes)** - -``` -User creates new form - ↓ -Adds "Payment" block - ↓ -Configures amount and currency -``` - -**Copy in Payment block settings:** - -``` -Payment Details - -Amount -○ Fixed amount - ┌──────┐ - │ 50 │ USD ▼ - └──────┘ - -● Let user choose amount - Min: [10] Max: [1000] USD ▼ - Default: [50] - -Payment Type -● One-time payment -○ Subscription - Interval: [Monthly ▼] - -Button Text -┌─────────────────────────────────────┐ -│ Pay Now │ -└─────────────────────────────────────┘ -``` - -**Design notes:** -- Radio buttons for mutually exclusive options -- Currency dropdown next to amount -- Clear labels (no "recurring" jargon, use "subscription") - ---- - -**3. Testing Payment (2 minutes)** - -**Copy on frontend form:** - -``` -Payment Information - -Amount: $50.00 - -Card Number -┌─────────────────────────────────────┐ -│ 1234 5678 9012 3456 │ [Card icon] -└─────────────────────────────────────┘ - -Expiry CVC -┌──────────┐ ┌─────┐ -│ MM / YY │ │ 123 │ -└──────────┘ └─────┘ - -🔒 Secure payment powered by Stripe - Your card details are encrypted and never stored. - -[Pay $50.00] -``` - -**Success message after payment:** - -``` -✅ Payment Successful! - -Receipt sent to: john@example.com - -Transaction ID: ch_1A2B3C4D5E6F - -[View Receipt] [Back to Home] -``` - -**Error message if payment fails:** - -``` -❌ Payment Failed - -Your card was declined. - -Common reasons: -• Insufficient funds -• Incorrect card number or expiry date -• Card requires 3D Secure verification - -Please try again or use a different card. - -[Try Again] -``` - -**Design notes:** -- Security reassurance prominent -- Success message includes receipt email and transaction ID -- Error message explains why and how to fix - ---- - -### Journey 3: Power User Builds Conditional Logic Form (Pro) - -**Goal:** Show/hide fields based on user selection - -**Example:** Event RSVP with dietary restrictions (only show if attending) - -**Steps:** - -**1. Creating Base Form (2 minutes)** - -``` -User adds fields: - - "Will you attend?" (Multiple Choice: Yes/No) - - "Dietary restrictions" (Dropdown) -``` - -**2. Adding Conditional Logic (3 minutes)** - -``` -User clicks "Dietary restrictions" block - ↓ -Opens block settings panel - ↓ -Enables conditional logic -``` - -**Copy in block settings:** - -``` -Conditional Logic - -Show this field only when certain conditions are met. - -☑ Enable conditional logic - -Show this field when: - -[Will you attend? ▼] [is ▼] [Yes ▼] - -[+ Add Condition] - -Logic: -● Show if ALL conditions match (AND) -○ Show if ANY condition matches (OR) -``` - -**Design notes:** -- Toggle to enable -- Dropdown-based condition builder (no code) -- Visual feedback: field grays out in editor preview when hidden - ---- - -**3. Testing Logic (1 minute)** - -**Copy in editor preview mode:** - -``` -💡 Preview Mode - -This is how your form will appear to users. - -Try selecting different options to see conditional logic in action. - -[Exit Preview] -``` - -**Behavior:** -- User selects "Yes" → Dietary field appears -- User selects "No" → Dietary field disappears - -**Design notes:** -- Clear indication of preview mode -- Real-time updates (no reload) - ---- - -## Microcopy Guidelines - -### Field Labels - -**Be concise and conversational** - -❌ Bad: "Please enter your electronic mail address" -✅ Good: "Email" - -❌ Bad: "Input telephone number (optional)" -✅ Good: "Phone (optional)" - -**Use sentence case, not title case** - -❌ Bad: "First Name" -✅ Good: "First name" - -❌ Bad: "Company Name (If Applicable)" -✅ Good: "Company name (if applicable)" - ---- - -### Help Text - -**Explain why or provide examples** - -**Email field:** -❌ Bad: "Enter email" -✅ Good: "We'll send a confirmation to this email" - -**Phone field:** -❌ Bad: "Phone number" -✅ Good: "We'll only call if there's an issue with your order" - -**File upload:** -❌ Bad: "Upload file" -✅ Good: "Upload your resume (PDF or DOCX, max 10MB)" - ---- - -### Error Messages - -**Be specific and actionable** - -**Email validation:** -❌ Bad: "Invalid email" -✅ Good: "Please enter a valid email (e.g., name@example.com)" - -**Required field:** -❌ Bad: "This field is required" -✅ Good: "Please enter your name" - -**File size:** -❌ Bad: "File too large" -✅ Good: "File must be under 10MB. Yours is 15MB. Try compressing it." - -**Payment failed:** -❌ Bad: "Transaction error" -✅ Good: "Your card was declined. Please check your card details or try a different card." - ---- - -### Success Messages - -**Be enthusiastic but not over-the-top** - -**Form submission:** -❌ Bad: "Form submitted" -✅ Good: "Thanks! We'll get back to you within 24 hours." - -**Payment successful:** -❌ Bad: "Payment processed successfully. Transaction ID: 1234." -✅ Good: "✅ Payment received! Receipt sent to your email." - -**Registration:** -❌ Bad: "Account created. Please log in." -✅ Good: "Welcome! Check your email to verify your account." - ---- - -### Button Labels - -**Use verbs that describe the action** - -❌ Bad: "Submit" -✅ Good: "Send Message" - -❌ Bad: "Click Here" -✅ Good: "Download Receipt" - -❌ Bad: "Proceed" -✅ Good: "Continue to Payment" - -**For payment buttons, include amount** - -❌ Bad: "Pay" -✅ Good: "Pay $50.00" - -❌ Bad: "Subscribe" -✅ Good: "Subscribe for $9.99/month" - ---- - -### Settings & Options - -**Explain consequences, not just features** - -**Email notification:** -❌ Bad: "Send email notification" -✅ Good: "Email me when someone submits this form" - -**Required field:** -❌ Bad: "Required" -✅ Good: "Make this field required" (checkbox label) - -**Conditional logic:** -❌ Bad: "Enable conditional logic" -✅ Good: "Show or hide this field based on other answers" - ---- - -## Visual Design Patterns - -### Empty States - -**When user has no forms yet:** - -``` -┌─────────────────────────────────────────┐ -│ │ -│ 📝 │ -│ │ -│ No forms yet │ -│ │ -│ Forms help you collect information │ -│ from your website visitors. │ -│ │ -│ [Create Your First Form] │ -│ │ -└─────────────────────────────────────────┘ -``` - -**Copy principles:** -- Icon relevant to context -- 1-sentence explanation -- Clear call-to-action button - ---- - -**When form has no submissions:** - -``` -┌─────────────────────────────────────────┐ -│ │ -│ 📭 │ -│ │ -│ No submissions yet │ -│ │ -│ Share this form to start collecting │ -│ responses. │ -│ │ -│ [Copy Form Link] [Embed on Page] │ -│ │ -└─────────────────────────────────────────┘ -``` - -**Design notes:** -- Actionable next steps -- Multiple options (link vs embed) - ---- - -### Loading States - -**Form submission in progress:** - -``` -┌─────────────────────────────────────┐ -│ ⏳ Sending... │ -│ │ -│ Please don't close this page. │ -└─────────────────────────────────────┘ -``` - -**AI form generation:** - -``` -┌─────────────────────────────────────┐ -│ ✨ Creating your form... │ -│ │ -│ [████████░░] 80% │ -│ │ -│ Adding email validation... │ -└─────────────────────────────────────┘ -``` - -**Design notes:** -- Spinner or progress indicator -- Explain what's happening -- Show progress if possible - ---- - -### Confirmation Dialogs - -**Deleting a form:** - -``` -┌─────────────────────────────────────┐ -│ Delete "Contact Form"? │ -│ │ -│ This will permanently delete: │ -│ • The form │ -│ • 47 submissions │ -│ • All settings │ -│ │ -│ This cannot be undone. │ -│ │ -│ [Cancel] [Delete Form] │ -└─────────────────────────────────────┘ -``` - -**Design notes:** -- Specific about what will be deleted -- Use red/destructive style for delete button -- Cancel button should be default (easier to accidentally click) - ---- - -### Tooltips & Hints - -**When to use:** -- Explaining technical terms -- Providing examples -- Showing keyboard shortcuts - -**Format:** - -``` -Field Name [?] - ↓ (on hover) -┌─────────────────────────────────────┐ -│ This is the internal name used in │ -│ the database. │ -│ │ -│ Example: "first_name" │ -└─────────────────────────────────────┘ -``` - -**Guidelines:** -- Keep under 2 sentences -- Provide example if helpful -- Don't repeat the label - ---- - -## Accessibility - -### Screen Reader Text - -**Form structure:** - -```html -
-
-

Personal Information

- -
-
-``` - -**Error announcements:** - -```html -
- Please fix 2 errors before submitting. -
- - - - Please enter a valid email address - -``` - ---- - -### Keyboard Navigation - -**Required interactions:** -- Tab through all fields -- Space to toggle checkboxes/radio buttons -- Enter to submit form -- Escape to close modals - -**Visual focus indicators:** - -```css -.srfm-field input:focus { - outline: 2px solid #0073aa; - outline-offset: 2px; -} -``` - -**Never:** -```css -:focus { - outline: none; /* ❌ Never remove focus outline */ -} -``` - ---- - -### Color Contrast - -**WCAG 2.1 Level AA Requirements:** -- Normal text: 4.5:1 minimum -- Large text (18pt+): 3:1 minimum -- UI components: 3:1 minimum - -**Test tools:** -- WebAIM Contrast Checker -- Chrome DevTools (Lighthouse) - -**Safe color combinations:** -- White text on dark backgrounds (#333 or darker) -- Dark text on light backgrounds (#F0F0F0 or lighter) -- Avoid gray text on gray backgrounds - ---- - -## Tone & Voice - -### Voice Characteristics - -**Friendly but professional** -- Use "we" and "you" -- Conversational, not formal -- Helpful, not condescending - -**Example:** -❌ Formal: "The system has detected an error in your input." -✅ Friendly: "Oops! We couldn't save that. Check for any errors above." - ---- - -**Clear over clever** -- Avoid puns and wordplay -- Be direct -- Technical accuracy over marketing fluff - -**Example:** -❌ Clever: "Houston, we have a problem!" -✅ Clear: "Something went wrong. Please try again." - ---- - -**Empowering, not blaming** -- Focus on solutions, not problems -- Use "we" for errors, "you" for successes - -**Example:** -❌ Blaming: "You entered an invalid email." -✅ Empowering: "Hmm, that email doesn't look quite right. Mind double-checking it?" - ---- - -### Writing for Different Contexts - -**First-time users:** -- More explanation -- Examples provided -- Encouraging tone - -**Example:** -``` -Welcome to SureForms! - -Creating your first form is easy. We'll walk you through each step. - -Let's start by choosing what kind of form you need. -``` - ---- - -**Power users:** -- Less explanation -- Assume knowledge -- Efficiency-focused - -**Example:** -``` -Advanced Settings - -Show field if: [condition builder] -Custom CSS class: [input] -``` - ---- - -**Error states:** -- Apologetic but not dramatic -- Specific about what went wrong -- Clear next steps - -**Example:** -``` -We couldn't save your changes. - -The connection to the server timed out. - -Please try again. If this keeps happening, check your internet connection. - -[Try Again] -``` - ---- - -**Success states:** -- Positive reinforcement -- What happens next -- Optional next action - -**Example:** -``` -✅ Form published! - -Your form is now live at: -https://yoursite.com/contact - -[View Form] [Create Another] -``` - ---- - -## Form Field Best Practices - -### Required vs Optional - -**Default:** Make fields optional - -**Require only when absolutely necessary:** -- Name (if sending personalized response) -- Email (if you need to contact them) -- Payment details (if collecting payment) - -**Label optional fields:** -``` -Phone (optional) -Company name (optional) -``` - -**Don't label required fields:** -❌ Bad: "Email (required)" -✅ Good: "Email" (with * indicator) - ---- - -### Field Order - -**Logical flow:** -1. Personal info (Name, Email) -2. Specific questions -3. Payment details (if applicable) -4. Submit button - -**Example contact form:** -``` -1. Name -2. Email -3. Subject -4. Message -5. [Submit] -``` - -**Example order form:** -``` -1. Name -2. Email -3. Product selection -4. Quantity -5. Payment details -6. [Complete Purchase] -``` - ---- - -### Placeholder Text - -**Use sparingly** - -Only for examples, not as labels: - -❌ Bad: -``` -Label: [empty] -Placeholder: "Enter your email" -``` - -✅ Good: -``` -Label: Email -Placeholder: "name@example.com" -``` - -**Never use placeholders as only label** (accessibility issue) - ---- - -### Multi-Step Forms (Pro) - -**Step indicators:** - -``` -Step 1 of 3: Your Information -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -●━━━━━━━━━━━━○━━━━━━━━━━━━━○ - -[Fields here] - -[Continue to Step 2 →] -``` - -**Navigation:** -- Show progress (Step 1 of 3) -- Visual progress bar -- Allow back navigation (not just forward) - -**Button labels:** -- Step 1: "Continue" (not "Next") -- Step 2: "Continue" -- Step 3: "Submit Form" (or "Complete Order") - ---- - -## Internationalization (i18n) - -### Text Translation - -**All user-facing strings must be translatable:** - -```php -// ✅ Good -__('Email', 'sureforms'); -_e('Submit Form', 'sureforms'); - -// ❌ Bad -echo 'Email'; // Hardcoded English -``` - -**Placeholders for dynamic content:** - -```php -// ✅ Good -sprintf(__('You have %d new submissions', 'sureforms'), $count); - -// ❌ Bad -echo "You have $count new submissions"; -``` - ---- - -### Date & Number Formatting - -**Use WordPress functions:** - -```php -// Dates -echo date_i18n(get_option('date_format'), $timestamp); - -// Numbers -echo number_format_i18n($number); - -// Currency -echo '$' . number_format_i18n($amount, 2); -``` - ---- - -### RTL Support - -**CSS for right-to-left languages:** - -```css -/* Use logical properties */ -.srfm-field { - margin-inline-start: 10px; /* Not margin-left */ - padding-inline-end: 20px; /* Not padding-right */ -} -``` - -**Test with RTL languages:** -- Arabic -- Hebrew -- Persian - ---- - -## Quality Checklist - -Before shipping UI copy: - -- [ ] Spell check passed -- [ ] Grammar correct -- [ ] Tone matches guidelines -- [ ] Actionable error messages -- [ ] Examples provided where helpful -- [ ] Accessibility: screen reader friendly -- [ ] Accessibility: color contrast ≥ 4.5:1 -- [ ] Keyboard navigation works -- [ ] i18n: All strings translatable -- [ ] RTL languages supported -- [ ] Tested with real users (if major UI) - ---- - -**Next:** [FAQ](faq.md) diff --git a/languages/sureforms-de_DE-4b62e3f004dea2c587b5a3069263d994.json b/languages/sureforms-de_DE-4b62e3f004dea2c587b5a3069263d994.json index 9de018f52..23d4e69fb 100644 --- a/languages/sureforms-de_DE-4b62e3f004dea2c587b5a3069263d994.json +++ b/languages/sureforms-de_DE-4b62e3f004dea2c587b5a3069263d994.json @@ -1 +1 @@ -{"translation-revision-date":"2024-12-13T16:14:52+00:00","generator":"WP-CLI\/2.12.0","source":"assets\/build\/blocks.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"en","plural-forms":"nplurals=2; plural=(n != 1);"},"Settings":["Einstellungen"],"Search":["Suche"],"Fields":["Felder"],"Image":["Bild"],"Submit":["Einreichen"],"Required":["Erforderlich"],"Form Title":["Formulartitel"],"Show":["Zeigen"],"Hide":["Verbergen"],"Edit Form":["Formular bearbeiten"],"Icon":["Symbol"],"Desktop":["Desktop"],"Medium":["Mittel"],"Mobile":["Mobil"],"Repeat":["Wiederholen"],"Scroll":["Scrollen"],"Tablet":["Tablet"],"Basic":["Grundlegend"],"(no title)":["(kein Titel)"],"Select a Form":["W\u00e4hlen Sie ein Formular aus"],"No forms found\u2026":["Keine Formulare gefunden\u2026"],"Choose":["W\u00e4hlen"],"Create New":["Neu erstellen"],"Change Form":["Formular \u00e4ndern"],"This form has been deleted or is unavailable.":["Dieses Formular wurde gel\u00f6scht oder ist nicht verf\u00fcgbar."],"Form Settings":["Formulareinstellungen"],"Show Form Title on this Page":["Formulartitel auf dieser Seite anzeigen"],"Note: For editing SureForms, please refer to the SureForms Editor - ":["Hinweis: F\u00fcr die Bearbeitung von SureForms, bitte den SureForms-Editor verwenden -"],"Field preview":["Feldvorschau"],"General":["Allgemein"],"Style":["Stil"],"Advanced":["Fortgeschritten"],"No tags available":["Keine Tags verf\u00fcgbar"],"Device":["Ger\u00e4t"],"Select Shortcodes":["Shortcodes ausw\u00e4hlen"],"Page Break Label":["Seitenumbruch-Label"],"Next":["Weiter"],"Back":["Zur\u00fcck"],"Reset":["Zur\u00fccksetzen"],"Generic tags":["Allgemeine Tags"],"Pixel":["Pixel"],"Em":["Em"],"Select Units":["Einheiten ausw\u00e4hlen"],"%s units":["%s Einheiten"],"Margin":["Marge"],"Attributes":["Attribute"],"Input Pattern":["Eingabemuster"],"None":["Keine"],"(###) ###-####":["(###) ###-####"],"(##) ####-####":["(##) ####-####"],"27\/08\/2024":["27.08.2024"],"23:59:59":["23:59:59"],"27\/08\/2024 23:59:59":["27.08.2024 23:59:59"],"Custom":["Benutzerdefiniert"],"Custom Mask":["Benutzerdefinierte Maske"],"Please check the documentation to manage custom input pattern ":["Bitte \u00fcberpr\u00fcfen Sie die Dokumentation, um das benutzerdefinierte Eingabemuster zu verwalten"],"here":["hier"],"Default Value":["Standardwert"],"Error Message":["Fehlermeldung"],"Help Text":["Hilfetext"],"Number Format":["Zahlenformat"],"US Style (Eg: 9,999.99)":["US-Stil (z. B.: 9.999,99)"],"EU Style (Eg: 9.999,99)":["EU-Stil (z. B.: 9.999,99)"],"Minimum Value":["Mindestwert"],"Maximum Value":["Maximalwert"],"Please check the Minimum and Maximum value":["Bitte \u00fcberpr\u00fcfen Sie den Mindest- und H\u00f6chstwert"],"Enable Email Confirmation":["E-Mail-Best\u00e4tigung aktivieren"],"Checked by Default":["Standardm\u00e4\u00dfig aktiviert"],"Error message":["Fehlermeldung"],"Checked by default":["Standardm\u00e4\u00dfig ausgew\u00e4hlt"],"Please add a option props to MultiButtonsControl":["Bitte f\u00fcgen Sie eine Option props zu MultiButtonsControl hinzu"],"Icon Library":["Icon-Bibliothek"],"Close":["Schlie\u00dfen"],"All Icons":["Alle Symbole"],"Other":["Andere"],"No Icons Found":["Keine Symbole gefunden"],"Insert Icon":["Symbol einf\u00fcgen"],"Change Icon":["Symbol \u00e4ndern"],"Choose Icon":["Symbol ausw\u00e4hlen"],"Confirm":["Best\u00e4tigen"],"Cancel":["Abbrechen"],"Processing\u2026":["Verarbeitung\u2026"],"Select Video":["Video ausw\u00e4hlen"],"Change Video":["Video \u00e4ndern"],"Select Lottie Animation":["Lottie-Animation ausw\u00e4hlen"],"Change Lottie Animation":["Lottie-Animation \u00e4ndern"],"Upload SVG":["SVG hochladen"],"Change SVG":["SVG \u00e4ndern"],"Select Image":["Bild ausw\u00e4hlen"],"Change Image":["Bild \u00e4ndern"],"Upload SVG?":["SVG hochladen?"],"Upload SVG can be potentially risky. Are you sure?":["Das Hochladen von SVG kann potenziell riskant sein. Bist du sicher?"],"Upload Anyway":["Trotzdem hochladen"],"Bulk Add":["Massenhinzuf\u00fcgen"],"Bulk Add Options":["Optionen in gro\u00dfen Mengen hinzuf\u00fcgen"],"Enter each option on a new line.":["Geben Sie jede Option in einer neuen Zeile ein."],"Insert Options":["Optionen einf\u00fcgen"],"Full Width":["Volle Breite"],"Option Type":["Optionstyp"],"Edit Options":["Optionen bearbeiten"],"Add New Option":["Neue Option hinzuf\u00fcgen"],"ADD":["HINZUF\u00dcGEN"],"Enable Auto Country Detection":["Automatische L\u00e4nderdetektion aktivieren"],"%s Width":["%s Breite"],"Upgrade":["Aktualisieren"],"Clear":["Klar"],"Select Color":["Farbe ausw\u00e4hlen"],"Primary Color":["Prim\u00e4rfarbe"],"Text Color":["Textfarbe"],"Field Spacing":["Feldabstand"],"Small":["Klein"],"Large":["Gro\u00df"],"Left":["Links"],"Center":["Zentrum"],"Right":["Richtig"],"Color":["Farbe"],"Background Color":["Hintergrundfarbe"],"Auto":["Auto"],"Default":["Standard"],"Normal":["Normal"],"%":["%"],"Top":["Oben"],"Bottom":["Unten"],"Width":["Breite"],"Size":["Gr\u00f6\u00dfe"],"EM":["EM"],"Padding":["Polsterung"],"Color 1":["Farbe 1"],"Color 2":["Farbe 2"],"Type":["Typ"],"Linear":["Linear"],"Radial":["Radial"],"Location 1":["Standort 1"],"Location 2":["Standort 2"],"Angle":["Winkel"],"Classic":["Klassisch"],"Gradient":["Gradient"],"Horizontal":["Horizontal"],"Vertical":["Vertikal"],"Background":["Hintergrund"],"Cover":["Abdeckung"],"Contain":["Enthalten"],"Layout":["Layout"],"Overlay":["\u00dcberlagerung"],"No Repeat":["Keine Wiederholung"],"Overlay Opacity":["\u00dcberlagerungsdeckkraft"],"Conditional Logic":["Bedingte Logik"],"Upgrade to the SureForms Starter Plan to create dynamic forms that adapt based on user input, offering a personalised and efficient form experience.":["Wechseln Sie zum SureForms Starter-Plan, um dynamische Formulare zu erstellen, die sich basierend auf Benutzereingaben anpassen und ein personalisiertes und effizientes Formularerlebnis bieten."],"Enable Conditional Logic":["Bedingte Logik aktivieren"],"this field if":["dieses Feld, wenn"],"Configure Conditions":["Bedingungen konfigurieren"],"Premium":["Premium"],"Overlay Type":["Overlay-Typ"],"Image Overlay Color":["Bild\u00fcberlagerungsfarbe"],"Image Position":["Bildposition"],"Attachment":["Anhang"],"Fixed":["Fest"],"Blend Mode":["Mischmodus"],"Multiply":["Multiplizieren"],"Screen":["Bildschirm"],"Darken":["Verdunkeln"],"Lighten":["Erleichtern"],"Color Dodge":["Farb-Abwedeln"],"Saturation":["S\u00e4ttigung"],"Repeat-x":["Wiederholen-x"],"Repeat-y":["Wiederhole-y"],"PX":["PX"],"Button":["Schaltfl\u00e4che"],"Prefix Label":["Pr\u00e4fix-Label"],"Suffix Label":["Suffix-Label"],"Border Radius":["Randradius"],"Form Theme":["Formular-Thema"],"Select Gradient":["Gradient ausw\u00e4hlen"],"Unlock Conditional Logic Editor":["Conditional Logic Editor entsperren"],"Rich Text Editor":["Rich-Text-Editor"],"Read Only":["Nur Lesen"],"Select Country":["Land ausw\u00e4hlen"],"Default Country":["Standardland"],"Subscription":["Abonnement"],"One Time":["Einmal"],"Unique Entry":["Einzigartiger Eintrag"],"Maximum Characters":["Maximale Zeichen"],"Textarea Height":["Textbereichsh\u00f6he"],"Minimum Selections":["Mindestanzahl an Auswahlen"],"Maximum Selections":["Maximale Auswahlen"],"Add Numeric Values to Options":["F\u00fcgen Sie numerische Werte zu Optionen hinzu"],"Single Choice Only":["Nur eine Auswahl m\u00f6glich"],"Enable Dropdown Search":["Dropdown-Suche aktivieren"],"Allow Multiple":["Mehrfach erlauben"],"%1$s fields are required. Please configure these fields in the block settings.":["%1$s Felder sind erforderlich. Bitte konfigurieren Sie diese Felder in den Blockeinstellungen."],"%1$s field is required. Please configure this field in the block settings.":["%1$s Feld ist erforderlich. Bitte konfigurieren Sie dieses Feld in den Blockeinstellungen."],"You need to configure a payment account to collect payments from this form. Please configure your payment provider to proceed.":["Sie m\u00fcssen ein Zahlungskonto einrichten, um Zahlungen \u00fcber dieses Formular zu sammeln. Bitte konfigurieren Sie Ihren Zahlungsanbieter, um fortzufahren."],"Configure Payment Account":["Zahlungskonto konfigurieren"],"This is a placeholder for the Payment block. The actual payment fields for your configured payment provider(s) will only appear when you preview or publish the form.":["Dies ist ein Platzhalter f\u00fcr den Zahlungsblock. Die tats\u00e4chlichen Zahlungsfelder f\u00fcr Ihre konfigurierten Zahlungsanbieter werden nur angezeigt, wenn Sie das Formular in der Vorschau anzeigen oder ver\u00f6ffentlichen."],"2 Payments":["2 Zahlungen"],"3 Payments":["3 Zahlungen"],"4 Payments":["4 Zahlungen"],"5 Payments":["5 Zahlungen"],"Never":["Niemals"],"Stop Subscription After":["Abonnement beenden nach"],"Choose when to automatically stop the subscription":["W\u00e4hlen Sie, wann das Abonnement automatisch beendet werden soll"],"Number of Payments":["Anzahl der Zahlungen"],"Enter a number between 1 to 100":["Geben Sie eine Zahl zwischen 1 und 100 ein"],"Form Field":["Formularfeld"],"Payment Type":["Zahlungsart"],"Subscription Plan Name":["Abonnementplanname"],"Billing Interval":["Abrechnungsintervall"],"Daily":["T\u00e4glich"],"Weekly":["W\u00f6chentlich"],"Monthly":["Monatlich"],"Quarterly":["Viertelj\u00e4hrlich"],"Yearly":["J\u00e4hrlich"],"Amount Type":["Betragstyp"],"Fixed Amount":["Fester Betrag"],"Dynamic Amount":["Dynamischer Betrag"],"Choose whether to charge a fixed amount or charge the amount based on user input in other form fields.":["W\u00e4hlen Sie, ob ein fester Betrag berechnet werden soll oder ob der Betrag basierend auf Benutzereingaben in anderen Formularfeldern berechnet werden soll."],"Set the exact amount you want to charge. Users won\u2019t be able to change it":["Legen Sie den genauen Betrag fest, den Sie berechnen m\u00f6chten. Benutzer k\u00f6nnen ihn nicht \u00e4ndern"],"Choose Amount Field":["Betragsfeld ausw\u00e4hlen"],"Select a field\u2026":["W\u00e4hlen Sie ein Feld aus\u2026"],"Pick a field from your form like a number, dropdown, or multichoice whose value should decide the payment amount.":["W\u00e4hlen Sie ein Feld aus Ihrem Formular, wie eine Zahl, ein Dropdown-Men\u00fc oder eine Mehrfachauswahl, dessen Wert den Zahlungsbetrag bestimmen soll."],"Minimum Amount":["Mindestbetrag"],"Set the minimum amount users can enter (0 for no minimum)":["Legen Sie den Mindestbetrag fest, den Benutzer eingeben k\u00f6nnen (0 f\u00fcr kein Minimum)"],"Customer Name Field (Required)":["Kundenname-Feld (erforderlich)"],"Customer Name Field (Optional)":["Kundenname-Feld (Optional)"],"Select the input field that contains the customer name (Required for subscriptions)":["W\u00e4hlen Sie das Eingabefeld aus, das den Kundennamen enth\u00e4lt (Erforderlich f\u00fcr Abonnements)"],"Select the input field that contains the customer name":["W\u00e4hlen Sie das Eingabefeld aus, das den Kundennamen enth\u00e4lt"],"Customer Email Field (Required)":["Kunden-E-Mail-Feld (erforderlich)"],"Select the email field that contains the customer email":["W\u00e4hlen Sie das E-Mail-Feld aus, das die Kunden-E-Mail enth\u00e4lt"],"Payment":["Zahlung"],"%s - Order ID":["%s - Bestell-ID"],"%s - Amount":["%s - Betrag"],"%s - Customer Email":["%s - Kunden-E-Mail"],"%s - Customer Name":["%s - Kundenname"],"%s - Status":["%s - Status"],"Button Alignment":["Schaltfl\u00e4chenanordnung"],"Placeholder":["Platzhalter"],"Preselect this option":["Diese Option vorausw\u00e4hlen"],"Restrict Country Codes":["L\u00e4ndercodes einschr\u00e4nken"],"Restriction Type":["Einschr\u00e4nkungstyp"],"Allow":["Erlauben"],"Block":["Blockieren"],"Select Allowed Countries":["Zul\u00e4ssige L\u00e4nder ausw\u00e4hlen"],"Choose countries\u2026":["L\u00e4nder ausw\u00e4hlen\u2026"],"Choose which country codes users can select in the phone number field. Leave empty to allow all country codes.":["W\u00e4hlen Sie aus, welche L\u00e4ndercodes Benutzer im Telefonnummernfeld ausw\u00e4hlen k\u00f6nnen. Lassen Sie das Feld leer, um alle L\u00e4ndercodes zuzulassen."],"Select Blocked Countries":["Gesperrte L\u00e4nder ausw\u00e4hlen"],"These countries will be hidden from the dropdown.":["Diese L\u00e4nder werden im Dropdown-Men\u00fc ausgeblendet."],"Bulk Edit":["Massenbearbeitung"],"Select Layout":["Layout ausw\u00e4hlen"],"Number of Columns":["Anzahl der Spalten"],"Validation Message for Duplicate":["Validierungsnachricht f\u00fcr Duplikat"],"Click here to insert a form":["Klicken Sie hier, um ein Formular einzuf\u00fcgen"],"Inherit Form's Original Style":["Urspr\u00fcnglichen Stil des Formulars \u00fcbernehmen"],"Text on Primary":["Text auf Prim\u00e4r"],"%s - Description":["%s - Beschreibung"],"Upgrade to Unlock":["Upgrade zum Freischalten"],"Custom (Premium)":["Benutzerdefiniert (Premium)"],"Select a theme style for this form embed.":["W\u00e4hlen Sie einen Themenstil f\u00fcr dieses Formulareinbettung aus."],"Colors":["Farben"],"Advanced Styling":["Erweitertes Styling"],"Unlock Custom Styling":["Benutzerdefinierte Gestaltung freischalten"],"Switch to Custom Mode to take full control of your form's design and spacing.":["Wechseln Sie in den benutzerdefinierten Modus, um die volle Kontrolle \u00fcber das Design und den Abstand Ihres Formulars zu \u00fcbernehmen."],"Full color control (buttons, fields, text)":["Volle Farbkontrolle (Schaltfl\u00e4chen, Felder, Text)"],"Row and column gap control":["Steuerung von Zeilen- und Spaltenabst\u00e4nden"],"Field spacing and layout precision":["Feldabst\u00e4nde und Layoutpr\u00e4zision"],"Complete button styling":["Komplette Schaltfl\u00e4chen-Stilgestaltung"],"Payment Description":["Zahlungsbeschreibung"],"Shown on payment receipts and in your payment dashboard (Stripe and PayPal). Leave blank to use the default.":["Auf Zahlungsbelegen und in Ihrem Zahlungs-Dashboard (Stripe und PayPal) angezeigt. Leer lassen, um den Standard zu verwenden."],"Slug":["Schnecke"],"Auto-generated on save":["Automatisch beim Speichern generiert"],"This slug is already used by another field. It will revert to the previous value.":["Dieser Slug wird bereits von einem anderen Feld verwendet. Er wird auf den vorherigen Wert zur\u00fcckgesetzt."],"Changing the slug may break form submissions, conditional logic, integrations, or any other feature currently referencing this slug. You will need to update all such references manually.":["Das \u00c4ndern des Slugs kann Formular\u00fcbermittlungen, bedingte Logik, Integrationen oder andere Funktionen, die derzeit auf diesen Slug verweisen, beeintr\u00e4chtigen. Sie m\u00fcssen alle derartigen Verweise manuell aktualisieren."],"Field Slug":["Feld-Slug"],"Location Services":["Standortdienste"],"Unlock Address Autocomplete":["Adresse-Autovervollst\u00e4ndigung freischalten"],"Upgrade to enable Google Address Autocomplete with interactive map preview, making address entry faster and more accurate for your users.":["Upgrade, um die Google Address Autocomplete-Funktion mit interaktiver Kartenansicht zu aktivieren, wodurch die Adresseingabe f\u00fcr Ihre Nutzer schneller und genauer wird."],"Enable Google Autocomplete":["Google Autovervollst\u00e4ndigung aktivieren"],"Show Interactive Map":["Interaktive Karte anzeigen"],"Payments Per Page":["Zahlungen pro Seite"],"Show Subscriptions Section":["Abonnement-Bereich anzeigen"],"Show a dedicated subscriptions section above payment history.":["Zeige einen eigenen Abonnementbereich \u00fcber der Zahlungshistorie an."],"Payment Dashboard":["Zahlungs\u00fcbersicht"],"View your payments and manage subscriptions in a single dashboard.":["Sehen Sie Ihre Zahlungen ein und verwalten Sie Abonnements in einem einzigen Dashboard."]}}} \ No newline at end of file +{"translation-revision-date":"2024-12-13T16:14:52+00:00","generator":"WP-CLI\/2.12.0","source":"assets\/build\/blocks.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"en","plural-forms":"nplurals=2; plural=(n != 1);"},"Settings":["Einstellungen"],"Search":["Suche"],"Fields":["Felder"],"Image":["Bild"],"Submit":["Einreichen"],"Required":["Erforderlich"],"Form Title":["Formulartitel"],"Show":["Zeigen"],"Hide":["Verbergen"],"Edit Form":["Formular bearbeiten"],"Icon":["Symbol"],"Desktop":["Desktop"],"Medium":["Mittel"],"Mobile":["Mobil"],"Repeat":["Wiederholen"],"Scroll":["Scrollen"],"Tablet":["Tablet"],"Basic":["Grundlegend"],"(no title)":["(kein Titel)"],"Select a Form":["W\u00e4hlen Sie ein Formular aus"],"No forms found\u2026":["Keine Formulare gefunden\u2026"],"Choose":["W\u00e4hlen"],"Create New":["Neu erstellen"],"Change Form":["Formular \u00e4ndern"],"This form has been deleted or is unavailable.":["Dieses Formular wurde gel\u00f6scht oder ist nicht verf\u00fcgbar."],"Form Settings":["Formulareinstellungen"],"Show Form Title on this Page":["Formulartitel auf dieser Seite anzeigen"],"Note: For editing SureForms, please refer to the SureForms Editor - ":["Hinweis: F\u00fcr die Bearbeitung von SureForms, bitte den SureForms-Editor verwenden -"],"Field preview":["Feldvorschau"],"General":["Allgemein"],"Style":["Stil"],"Advanced":["Fortgeschritten"],"No tags available":["Keine Tags verf\u00fcgbar"],"Device":["Ger\u00e4t"],"Select Shortcodes":["Shortcodes ausw\u00e4hlen"],"Page Break Label":["Seitenumbruch-Label"],"Next":["Weiter"],"Back":["Zur\u00fcck"],"Reset":["Zur\u00fccksetzen"],"Generic tags":["Allgemeine Tags"],"Pixel":["Pixel"],"Em":["Em"],"Select Units":["Einheiten ausw\u00e4hlen"],"%s units":["%s Einheiten"],"Margin":["Marge"],"Attributes":["Attribute"],"Input Pattern":["Eingabemuster"],"None":["Keine"],"(###) ###-####":["(###) ###-####"],"(##) ####-####":["(##) ####-####"],"27\/08\/2024":["27.08.2024"],"23:59:59":["23:59:59"],"27\/08\/2024 23:59:59":["27.08.2024 23:59:59"],"Custom":["Benutzerdefiniert"],"Custom Mask":["Benutzerdefinierte Maske"],"Please check the documentation to manage custom input pattern ":["Bitte \u00fcberpr\u00fcfen Sie die Dokumentation, um das benutzerdefinierte Eingabemuster zu verwalten"],"here":["hier"],"Default Value":["Standardwert"],"Error Message":["Fehlermeldung"],"Help Text":["Hilfetext"],"Number Format":["Zahlenformat"],"US Style (Eg: 9,999.99)":["US-Stil (z. B.: 9.999,99)"],"EU Style (Eg: 9.999,99)":["EU-Stil (z. B.: 9.999,99)"],"Minimum Value":["Mindestwert"],"Maximum Value":["Maximalwert"],"Please check the Minimum and Maximum value":["Bitte \u00fcberpr\u00fcfen Sie den Mindest- und H\u00f6chstwert"],"Enable Email Confirmation":["E-Mail-Best\u00e4tigung aktivieren"],"Checked by Default":["Standardm\u00e4\u00dfig aktiviert"],"Error message":["Fehlermeldung"],"Checked by default":["Standardm\u00e4\u00dfig ausgew\u00e4hlt"],"Please add a option props to MultiButtonsControl":["Bitte f\u00fcgen Sie eine Option props zu MultiButtonsControl hinzu"],"Icon Library":["Icon-Bibliothek"],"Close":["Schlie\u00dfen"],"All Icons":["Alle Symbole"],"Other":["Andere"],"No Icons Found":["Keine Symbole gefunden"],"Insert Icon":["Symbol einf\u00fcgen"],"Change Icon":["Symbol \u00e4ndern"],"Choose Icon":["Symbol ausw\u00e4hlen"],"Confirm":["Best\u00e4tigen"],"Cancel":["Abbrechen"],"Processing\u2026":["Verarbeitung\u2026"],"Select Video":["Video ausw\u00e4hlen"],"Change Video":["Video \u00e4ndern"],"Select Lottie Animation":["Lottie-Animation ausw\u00e4hlen"],"Change Lottie Animation":["Lottie-Animation \u00e4ndern"],"Upload SVG":["SVG hochladen"],"Change SVG":["SVG \u00e4ndern"],"Select Image":["Bild ausw\u00e4hlen"],"Change Image":["Bild \u00e4ndern"],"Upload SVG?":["SVG hochladen?"],"Upload SVG can be potentially risky. Are you sure?":["Das Hochladen von SVG kann potenziell riskant sein. Bist du sicher?"],"Upload Anyway":["Trotzdem hochladen"],"Bulk Add":["Massenhinzuf\u00fcgen"],"Bulk Add Options":["Optionen in gro\u00dfen Mengen hinzuf\u00fcgen"],"Enter each option on a new line.":["Geben Sie jede Option in einer neuen Zeile ein."],"Insert Options":["Optionen einf\u00fcgen"],"Full Width":["Volle Breite"],"Option Type":["Optionstyp"],"Edit Options":["Optionen bearbeiten"],"Add New Option":["Neue Option hinzuf\u00fcgen"],"ADD":["HINZUF\u00dcGEN"],"Enable Auto Country Detection":["Automatische L\u00e4nderdetektion aktivieren"],"%s Width":["%s Breite"],"Upgrade":["Aktualisieren"],"Clear":["Klar"],"Select Color":["Farbe ausw\u00e4hlen"],"Primary Color":["Prim\u00e4rfarbe"],"Text Color":["Textfarbe"],"Field Spacing":["Feldabstand"],"Small":["Klein"],"Large":["Gro\u00df"],"Left":["Links"],"Center":["Zentrum"],"Right":["Richtig"],"Color":["Farbe"],"Background Color":["Hintergrundfarbe"],"Auto":["Auto"],"Default":["Standard"],"Normal":["Normal"],"%":["%"],"Top":["Oben"],"Bottom":["Unten"],"Width":["Breite"],"Size":["Gr\u00f6\u00dfe"],"EM":["EM"],"Padding":["Polsterung"],"Color 1":["Farbe 1"],"Color 2":["Farbe 2"],"Type":["Typ"],"Linear":["Linear"],"Radial":["Radial"],"Location 1":["Standort 1"],"Location 2":["Standort 2"],"Angle":["Winkel"],"Classic":["Klassisch"],"Gradient":["Gradient"],"Horizontal":["Horizontal"],"Vertical":["Vertikal"],"Background":["Hintergrund"],"Cover":["Abdeckung"],"Contain":["Enthalten"],"Layout":["Layout"],"Overlay":["\u00dcberlagerung"],"No Repeat":["Keine Wiederholung"],"Overlay Opacity":["\u00dcberlagerungsdeckkraft"],"Conditional Logic":["Bedingte Logik"],"Upgrade to the SureForms Starter Plan to create dynamic forms that adapt based on user input, offering a personalised and efficient form experience.":["Wechseln Sie zum SureForms Starter-Plan, um dynamische Formulare zu erstellen, die sich basierend auf Benutzereingaben anpassen und ein personalisiertes und effizientes Formularerlebnis bieten."],"Enable Conditional Logic":["Bedingte Logik aktivieren"],"this field if":["dieses Feld, wenn"],"Configure Conditions":["Bedingungen konfigurieren"],"Premium":["Premium"],"Overlay Type":["Overlay-Typ"],"Image Overlay Color":["Bild\u00fcberlagerungsfarbe"],"Image Position":["Bildposition"],"Attachment":["Anhang"],"Fixed":["Fest"],"Blend Mode":["Mischmodus"],"Multiply":["Multiplizieren"],"Screen":["Bildschirm"],"Darken":["Verdunkeln"],"Lighten":["Erleichtern"],"Color Dodge":["Farb-Abwedeln"],"Saturation":["S\u00e4ttigung"],"Repeat-x":["Wiederholen-x"],"Repeat-y":["Wiederhole-y"],"PX":["PX"],"Button":["Schaltfl\u00e4che"],"Prefix Label":["Pr\u00e4fix-Label"],"Suffix Label":["Suffix-Label"],"Border Radius":["Randradius"],"Form Theme":["Formular-Thema"],"Select Gradient":["Gradient ausw\u00e4hlen"],"Unlock Conditional Logic Editor":["Conditional Logic Editor entsperren"],"Rich Text Editor":["Rich-Text-Editor"],"Read Only":["Nur Lesen"],"Select Country":["Land ausw\u00e4hlen"],"Default Country":["Standardland"],"Subscription":["Abonnement"],"One Time":["Einmal"],"Unique Entry":["Einzigartiger Eintrag"],"Maximum Characters":["Maximale Zeichen"],"Textarea Height":["Textbereichsh\u00f6he"],"Minimum Selections":["Mindestanzahl an Auswahlen"],"Maximum Selections":["Maximale Auswahlen"],"Add Numeric Values to Options":["F\u00fcgen Sie numerische Werte zu Optionen hinzu"],"Single Choice Only":["Nur eine Auswahl m\u00f6glich"],"Enable Dropdown Search":["Dropdown-Suche aktivieren"],"Allow Multiple":["Mehrfach erlauben"],"%1$s fields are required. Please configure these fields in the block settings.":["%1$s Felder sind erforderlich. Bitte konfigurieren Sie diese Felder in den Blockeinstellungen."],"%1$s field is required. Please configure this field in the block settings.":["%1$s Feld ist erforderlich. Bitte konfigurieren Sie dieses Feld in den Blockeinstellungen."],"You need to configure a payment account to collect payments from this form. Please configure your payment provider to proceed.":["Sie m\u00fcssen ein Zahlungskonto einrichten, um Zahlungen \u00fcber dieses Formular zu sammeln. Bitte konfigurieren Sie Ihren Zahlungsanbieter, um fortzufahren."],"Configure Payment Account":["Zahlungskonto konfigurieren"],"This is a placeholder for the Payment block. The actual payment fields for your configured payment provider(s) will only appear when you preview or publish the form.":["Dies ist ein Platzhalter f\u00fcr den Zahlungsblock. Die tats\u00e4chlichen Zahlungsfelder f\u00fcr Ihre konfigurierten Zahlungsanbieter werden nur angezeigt, wenn Sie das Formular in der Vorschau anzeigen oder ver\u00f6ffentlichen."],"2 Payments":["2 Zahlungen"],"3 Payments":["3 Zahlungen"],"4 Payments":["4 Zahlungen"],"5 Payments":["5 Zahlungen"],"Never":["Niemals"],"Stop Subscription After":["Abonnement beenden nach"],"Choose when to automatically stop the subscription":["W\u00e4hlen Sie, wann das Abonnement automatisch beendet werden soll"],"Number of Payments":["Anzahl der Zahlungen"],"Enter a number between 1 to 100":["Geben Sie eine Zahl zwischen 1 und 100 ein"],"Form Field":["Formularfeld"],"Payment Type":["Zahlungsart"],"Subscription Plan Name":["Abonnementplanname"],"Billing Interval":["Abrechnungsintervall"],"Daily":["T\u00e4glich"],"Weekly":["W\u00f6chentlich"],"Monthly":["Monatlich"],"Quarterly":["Viertelj\u00e4hrlich"],"Yearly":["J\u00e4hrlich"],"Amount Type":["Betragstyp"],"Fixed Amount":["Fester Betrag"],"Dynamic Amount":["Dynamischer Betrag"],"Choose whether to charge a fixed amount or charge the amount based on user input in other form fields.":["W\u00e4hlen Sie, ob ein fester Betrag berechnet werden soll oder ob der Betrag basierend auf Benutzereingaben in anderen Formularfeldern berechnet werden soll."],"Set the exact amount you want to charge. Users won\u2019t be able to change it":["Legen Sie den genauen Betrag fest, den Sie berechnen m\u00f6chten. Benutzer k\u00f6nnen ihn nicht \u00e4ndern"],"Choose Amount Field":["Betragsfeld ausw\u00e4hlen"],"Select a field\u2026":["W\u00e4hlen Sie ein Feld aus\u2026"],"Pick a field from your form like a number, dropdown, or multichoice whose value should decide the payment amount.":["W\u00e4hlen Sie ein Feld aus Ihrem Formular, wie eine Zahl, ein Dropdown-Men\u00fc oder eine Mehrfachauswahl, dessen Wert den Zahlungsbetrag bestimmen soll."],"Minimum Amount":["Mindestbetrag"],"Set the minimum amount users can enter (0 for no minimum)":["Legen Sie den Mindestbetrag fest, den Benutzer eingeben k\u00f6nnen (0 f\u00fcr kein Minimum)"],"Customer Name Field (Required)":["Kundenname-Feld (erforderlich)"],"Customer Name Field (Optional)":["Kundenname-Feld (Optional)"],"Select the input field that contains the customer name (Required for subscriptions)":["W\u00e4hlen Sie das Eingabefeld aus, das den Kundennamen enth\u00e4lt (Erforderlich f\u00fcr Abonnements)"],"Select the input field that contains the customer name":["W\u00e4hlen Sie das Eingabefeld aus, das den Kundennamen enth\u00e4lt"],"Customer Email Field (Required)":["Kunden-E-Mail-Feld (erforderlich)"],"Select the email field that contains the customer email":["W\u00e4hlen Sie das E-Mail-Feld aus, das die Kunden-E-Mail enth\u00e4lt"],"Payment":["Zahlung"],"%s - Order ID":["%s - Bestell-ID"],"%s - Amount":["%s - Betrag"],"%s - Customer Email":["%s - Kunden-E-Mail"],"%s - Customer Name":["%s - Kundenname"],"%s - Status":["%s - Status"],"Button Alignment":["Schaltfl\u00e4chenanordnung"],"Placeholder":["Platzhalter"],"Preselect this option":["Diese Option vorausw\u00e4hlen"],"Restrict Country Codes":["L\u00e4ndercodes einschr\u00e4nken"],"Restriction Type":["Einschr\u00e4nkungstyp"],"Allow":["Erlauben"],"Block":["Blockieren"],"Select Allowed Countries":["Zul\u00e4ssige L\u00e4nder ausw\u00e4hlen"],"Choose countries\u2026":["L\u00e4nder ausw\u00e4hlen\u2026"],"Choose which country codes users can select in the phone number field. Leave empty to allow all country codes.":["W\u00e4hlen Sie aus, welche L\u00e4ndercodes Benutzer im Telefonnummernfeld ausw\u00e4hlen k\u00f6nnen. Lassen Sie das Feld leer, um alle L\u00e4ndercodes zuzulassen."],"Select Blocked Countries":["Gesperrte L\u00e4nder ausw\u00e4hlen"],"These countries will be hidden from the dropdown.":["Diese L\u00e4nder werden im Dropdown-Men\u00fc ausgeblendet."],"Bulk Edit":["Massenbearbeitung"],"Select Layout":["Layout ausw\u00e4hlen"],"Number of Columns":["Anzahl der Spalten"],"Validation Message for Duplicate":["Validierungsnachricht f\u00fcr Duplikat"],"Click here to insert a form":["Klicken Sie hier, um ein Formular einzuf\u00fcgen"],"Inherit Form's Original Style":["Urspr\u00fcnglichen Stil des Formulars \u00fcbernehmen"],"Text on Primary":["Text auf Prim\u00e4r"],"%s - Description":["%s - Beschreibung"],"Upgrade to Unlock":["Upgrade zum Freischalten"],"Custom (Premium)":["Benutzerdefiniert (Premium)"],"Select a theme style for this form embed.":["W\u00e4hlen Sie einen Themenstil f\u00fcr dieses Formulareinbettung aus."],"Colors":["Farben"],"Advanced Styling":["Erweitertes Styling"],"Unlock Custom Styling":["Benutzerdefinierte Gestaltung freischalten"],"Switch to Custom Mode to take full control of your form's design and spacing.":["Wechseln Sie in den benutzerdefinierten Modus, um die volle Kontrolle \u00fcber das Design und den Abstand Ihres Formulars zu \u00fcbernehmen."],"Full color control (buttons, fields, text)":["Volle Farbkontrolle (Schaltfl\u00e4chen, Felder, Text)"],"Row and column gap control":["Steuerung von Zeilen- und Spaltenabst\u00e4nden"],"Field spacing and layout precision":["Feldabst\u00e4nde und Layoutpr\u00e4zision"],"Complete button styling":["Komplette Schaltfl\u00e4chen-Stilgestaltung"],"Payment Description":["Zahlungsbeschreibung"],"Shown on payment receipts and in your payment dashboard (Stripe and PayPal). Leave blank to use the default.":["Auf Zahlungsbelegen und in Ihrem Zahlungs-Dashboard (Stripe und PayPal) angezeigt. Leer lassen, um den Standard zu verwenden."],"Slug":["Schnecke"],"Auto-generated on save":["Automatisch beim Speichern generiert"],"This slug is already used by another field. It will revert to the previous value.":["Dieser Slug wird bereits von einem anderen Feld verwendet. Er wird auf den vorherigen Wert zur\u00fcckgesetzt."],"Changing the slug may break form submissions, conditional logic, integrations, or any other feature currently referencing this slug. You will need to update all such references manually.":["Das \u00c4ndern des Slugs kann Formular\u00fcbermittlungen, bedingte Logik, Integrationen oder andere Funktionen, die derzeit auf diesen Slug verweisen, beeintr\u00e4chtigen. Sie m\u00fcssen alle derartigen Verweise manuell aktualisieren."],"Field Slug":["Feld-Slug"],"Location Services":["Standortdienste"],"Unlock Address Autocomplete":["Adresse-Autovervollst\u00e4ndigung freischalten"],"Upgrade to enable Google Address Autocomplete with interactive map preview, making address entry faster and more accurate for your users.":["Upgrade, um die Google Address Autocomplete-Funktion mit interaktiver Kartenansicht zu aktivieren, wodurch die Adresseingabe f\u00fcr Ihre Nutzer schneller und genauer wird."],"Enable Google Autocomplete":["Google Autovervollst\u00e4ndigung aktivieren"],"Show Interactive Map":["Interaktive Karte anzeigen"],"Payments Per Page":["Zahlungen pro Seite"],"Show Subscriptions Section":["Abonnement-Bereich anzeigen"],"Show a dedicated subscriptions section above payment history.":["Zeige einen eigenen Abonnementbereich \u00fcber der Zahlungshistorie an."],"Payment Dashboard":["Zahlungs\u00fcbersicht"],"View your payments and manage subscriptions in a single dashboard.":["Sehen Sie Ihre Zahlungen ein und verwalten Sie Abonnements in einem einzigen Dashboard."],"Dynamic Default Value":["Dynamischer Standardwert"]}}} \ No newline at end of file diff --git a/languages/sureforms-de_DE-51635fe6489fc8288d603fe596c755ca.json b/languages/sureforms-de_DE-51635fe6489fc8288d603fe596c755ca.json index 23b9b2a5f..ab2dae3aa 100644 --- a/languages/sureforms-de_DE-51635fe6489fc8288d603fe596c755ca.json +++ b/languages/sureforms-de_DE-51635fe6489fc8288d603fe596c755ca.json @@ -1 +1 @@ -{"translation-revision-date":"2024-12-13T16:14:52+00:00","generator":"WP-CLI\/2.12.0","source":"assets\/build\/settings.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"en","plural-forms":"nplurals=2; plural=(n != 1);"},"Dashboard":["Armaturenbrett"],"Settings":["Einstellungen"],"Entries":["Eintr\u00e4ge"],"Activated":["Aktiviert"],"Activate":["Aktivieren"],"Monday":["Montag"],"Forms":["Formulare"],"GitHub":["GitHub"],"General":["Allgemein"],"Other":["Andere"],"Confirm":["Best\u00e4tigen"],"Cancel":["Abbrechen"],"Install":["Installieren"],"Plugin Installation failed, Please try again later.":["Plugin-Installation fehlgeschlagen, bitte versuchen Sie es sp\u00e4ter erneut."],"Plugin activation failed, Please try again later.":["Plugin-Aktivierung fehlgeschlagen, bitte versuchen Sie es sp\u00e4ter erneut."],"Integrations":["Integrationen"],"What's New?":["Was gibt's Neues?"],"Core":["Kern"],"Unlicensed":["Ohne Lizenz"],"Connecting\u2026":["Verbinden\u2026"],"Install & Activate":["Installieren & Aktivieren"],"Send Email To":["E-Mail senden an"],"Google reCAPTCHA":["Google reCAPTCHA"],"hCaptcha":["hCaptcha"],"reCAPTCHA v2 Invisible":["reCAPTCHA v2 Unsichtbar"],"reCAPTCHA v3":["reCAPTCHA v3"],"Validations":["Validierungen"],"Spam Protection":["Spam-Schutz"],"Email Summaries":["E-Mail-Zusammenfassungen"],"Tuesday":["Dienstag"],"Wednesday":["Mittwoch"],"Thursday":["Donnerstag"],"Friday":["Freitag"],"Saturday":["Samstag"],"Sunday":["Sonntag"],"Test Email":["Test-E-Mail"],"Schedule Reports":["Berichte planen"],"IP Logging":["IP-Protokollierung"],"If this option is turned on, the user's IP address will be saved with the form data":["Wenn diese Option aktiviert ist, wird die IP-Adresse des Benutzers zusammen mit den Formulardaten gespeichert."],"%s represents the minimum selections needed. For example: \u201cMinimum 2 selections are required.\u201d":["%s repr\u00e4sentiert die minimal erforderlichen Auswahlen. Zum Beispiel: \u201eMindestens 2 Auswahlen sind erforderlich.\u201c"],"%s represents the maximum selections allowed. For example: \u201cMaximum 4 selections are allowed.\u201d":["%s repr\u00e4sentiert die maximal erlaubten Auswahlen. Zum Beispiel: \u201eMaximal 4 Auswahlen sind erlaubt.\u201c"],"%s represents the minimum choices needed. For example: \u201cMinimum 1 selection is required.\u201d":["%s repr\u00e4sentiert die minimal erforderlichen Auswahlm\u00f6glichkeiten. Zum Beispiel: \u201eMindestens 1 Auswahl ist erforderlich.\u201c"],"%s represents the maximum choices allowed. For example: \u201cMaximum 3 selections are allowed.\u201d":["%s repr\u00e4sentiert die maximal erlaubten Auswahlm\u00f6glichkeiten. Zum Beispiel: \u201eMaximal 3 Auswahlen sind erlaubt.\u201c"]," Error Message":["Fehlermeldung"],"Auto":["Auto"],"Light":["Licht"],"Dark":["Dunkel"],"Turnstile":["Drehkreuz"],"Honeypot":["Honigtopf"],"Get Keys":["Schl\u00fcssel holen"],"Documentation":["Dokumentation"],"Site Key":["Standortschl\u00fcssel"],"Secret Key":["Geheimer Schl\u00fcssel"],"Cloudflare Turnstile":["Cloudflare-Drehkreuz"],"Appearance Mode":["Erscheinungsmodus"],"Enable Honeypot Security":["Honeypot-Sicherheit aktivieren"],"Enable Honeypot Security for better spam protection":["Aktivieren Sie Honeypot-Sicherheit f\u00fcr besseren Spamschutz"],"This field cannot be left blank.":["Dieses Feld darf nicht leer gelassen werden."],"Confirmation Email Mismatch Message":["Best\u00e4tigungs-E-Mail-Unstimmigkeitsnachricht"],"%s represents the minimum input value. For example: \"Minimum value is 10.\"":["%s repr\u00e4sentiert den minimalen Eingabewert. Zum Beispiel: \"Der Mindestwert ist 10.\""],"%s represents the maximum input value. For example: \"Maximum value is 100.\"":["%s repr\u00e4sentiert den maximalen Eingabewert. Zum Beispiel: \"Der Maximalwert ist 100.\""],"OttoKit":["OttoKit"],"Connect with OttoKit":["Mit OttoKit verbinden"],"reCAPTCHA":["reCAPTCHA"],"Ready to go beyond free plan?":["Bereit, \u00fcber den kostenlosen Plan hinauszugehen?"],"Upgrade now":["Jetzt upgraden"],"and unlock the full power of SureForms!":["und die volle Kraft von SureForms freischalten!"],"Upgrade SureForms":["SureForms aktualisieren"],"Upgrade Now":["Jetzt upgraden"],"Form Validation":["Formularvalidierung"],"Required Error Messages":["Erforderliche Fehlermeldungen"],"Other Error Messages":["Andere Fehlermeldungen"],"Input Field Unique":["Eingabefeld eindeutig"],"Email Field Unique":["E-Mail-Feld eindeutig"],"Invalid URL":["Ung\u00fcltige URL"],"Phone Field Unique":["Telefonfeld eindeutig"],"Invalid Field Number Block":["Ung\u00fcltiger Feldnummernblock"],"Invalid Email":["Ung\u00fcltige E-Mail"],"Number Minimum Value":["Zahlen-Mindestwert"],"Number Maximum Value":["Zahlen Maximalwert"],"Dropdown Minimum Selections":["Dropdown Minimale Auswahlen"],"Dropdown Maximum Selections":["Dropdown Maximale Auswahlen"],"Multiple Choice Minimum Selections":["Mehrfachauswahl Mindestanzahl der Auswahlen"],"Multiple Choice Maximum Selections":["Mehrfachauswahl Maximale Auswahlm\u00f6glichkeiten"],"Input Field":["Eingabefeld"],"Email Field":["E-Mail-Feld"],"URL Field":["URL-Feld"],"Phone Field":["Telefonfeld"],"Textarea Field":["Textbereichsfeld"],"Checkbox Field":["Kontrollk\u00e4stchenfeld"],"Dropdown Field":["Dropdown-Feld"],"Multiple Choice Field":["Mehrfachauswahlfeld"],"Address Field":["Adressfeld"],"Number Field":["Zahlenfeld"],"reCAPTCHA v2":["reCAPTCHA v2"],"To enable reCAPTCHA feature on your SureForms Please enable reCAPTCHA option on your blocks setting and select version. Add google reCAPTCHA secret and site key here. reCAPTCHA will be added to your page on front-end.":["Um die reCAPTCHA-Funktion in Ihren SureForms zu aktivieren, aktivieren Sie bitte die reCAPTCHA-Option in Ihren Blockeinstellungen und w\u00e4hlen Sie die Version aus. F\u00fcgen Sie hier den Google reCAPTCHA Secret und den Site Key hinzu. reCAPTCHA wird auf der Vorderseite Ihrer Seite hinzugef\u00fcgt."],"Enter your %s here":["Geben Sie hier Ihr %s ein"],"To enable hCAPTCHA, please add your site key and secret key. Configure these settings within the individual form.":["Um hCAPTCHA zu aktivieren, f\u00fcgen Sie bitte Ihren Site-Schl\u00fcssel und Geheimschl\u00fcssel hinzu. Konfigurieren Sie diese Einstellungen innerhalb des einzelnen Formulars."],"To enable Cloudflare Turnstile, please add your site key and secret key. Configure these settings within the individual form.":["Um Cloudflare Turnstile zu aktivieren, f\u00fcgen Sie bitte Ihren Site-Schl\u00fcssel und Geheimschl\u00fcssel hinzu. Konfigurieren Sie diese Einstellungen innerhalb des einzelnen Formulars."],"Save":["Speichern"],"Anonymous Analytics":["Anonyme Analysen"],"Learn More":["Mehr erfahren"],"Admin Notification":["Administratorbenachrichtigung"],"Enable Admin Notification":["Admin-Benachrichtigung aktivieren"],"Admin notifications keep you informed about new form entries since your last visit.":["Admin-Benachrichtigungen halten Sie \u00fcber neue Formulareintr\u00e4ge seit Ihrem letzten Besuch auf dem Laufenden."],"Continue":["Fortfahren"],"Get Started":["Loslegen"],"Integration":["Integration"],"Connect Native Integrations with SureForms":["Native Integrationen mit SureForms verbinden"],"Unlock powerful integrations in the Premium plan to automate your workflows and connect SureForms directly with your favourite tools.":["Schalten Sie leistungsstarke Integrationen im Premium-Plan frei, um Ihre Arbeitsabl\u00e4ufe zu automatisieren und SureForms direkt mit Ihren Lieblingstools zu verbinden."],"Send form submissions straight to CRMs, email, and marketing platforms":["Senden Sie Formulareinsendungen direkt an CRMs, E-Mail- und Marketingplattformen"],"Automate repetitive tasks with seamless data syncing":["Automatisieren Sie repetitive Aufgaben mit nahtloser Datensynchronisierung"],"Access exclusive native integrations for faster workflows":["Zugriff auf exklusive native Integrationen f\u00fcr schnellere Arbeitsabl\u00e4ufe"],"Payments":["Zahlungen"],"Stripe account disconnected successfully.":["Stripe-Konto erfolgreich getrennt."],"Failed to create webhook.":["Fehler beim Erstellen des Webhooks."],"Failed to connect to Stripe.":["Verbindung zu Stripe fehlgeschlagen."],"Webhook":["Webhook"],"Knowledge Base":["Wissensdatenbank"],"What\u2019s New":["Was gibt's Neues"],"delete":["l\u00f6schen"],"Please type \"%s\" in the input box":["Bitte geben Sie \"%s\" in das Eingabefeld ein"],"To confirm, type \"%s\" in the box below:":["Um zu best\u00e4tigen, geben Sie \"%s\" in das Feld unten ein:"],"Type \"%s\"":["Geben Sie \"%s\" ein"],"Go to OttoKit Settings":["Gehe zu den OttoKit-Einstellungen"],"USD - US Dollar":["USD - US-Dollar"],"Payment Mode":["Zahlungsart"],"Test Mode":["Testmodus"],"Live Mode":["Live-Modus"],"General Settings":["Allgemeine Einstellungen"],"Set up email summaries, admin alerts, and data preferences to manage your forms with ease.":["Richten Sie E-Mail-Zusammenfassungen, Admin-Benachrichtigungen und Datenpr\u00e4ferenzen ein, um Ihre Formulare m\u00fchelos zu verwalten."],"Customize default error messages shown when users submit invalid or incomplete form entries.":["Passen Sie die Standardfehlermeldungen an, die angezeigt werden, wenn Benutzer ung\u00fcltige oder unvollst\u00e4ndige Formulareintr\u00e4ge \u00fcbermitteln."],"Enable spam protection for your forms using CAPTCHA services or honeypot security.":["Aktivieren Sie den Spam-Schutz f\u00fcr Ihre Formulare mithilfe von CAPTCHA-Diensten oder Honeypot-Sicherheit."],"Connect and manage your payment gateways to securely accept transactions through your forms.":["Verbinden und verwalten Sie Ihre Zahlungsgateways, um Transaktionen sicher \u00fcber Ihre Formulare zu akzeptieren."],"1% transaction and payment gateway fees apply.":["1% Transaktions- und Zahlungsgateway-Geb\u00fchren fallen an."],"2.9% transaction and payment gateway fees apply. Activate license to reduce transaction fees.":["2,9 % Transaktions- und Zahlungsgateway-Geb\u00fchren fallen an. Aktivieren Sie die Lizenz, um die Transaktionsgeb\u00fchren zu reduzieren."],"2.9% transaction and payment gateway fees apply.":["Es fallen 2,9 % Transaktions- und Zahlungs-Gateway-Geb\u00fchren an."],"Please visit %1$s, delete an unused webhook, then click below to retry.":["Bitte besuchen Sie %1$s, l\u00f6schen Sie einen ungenutzten Webhook und klicken Sie dann unten, um es erneut zu versuchen."],"SureForms could not create a webhook because your Stripe account has run out of free slots. Webhooks are needed to receive updates about payments.":["SureForms konnte keinen Webhook erstellen, da Ihr Stripe-Konto keine freien Slots mehr hat. Webhooks sind erforderlich, um Updates zu Zahlungen zu erhalten."],"Stripe Dashboard":["Stripe-Dashboard"],"Creating\u2026":["Erstellen\u2026"],"Create Webhook":["Webhook erstellen"],"Successfully connected to Stripe!":["Erfolgreich mit Stripe verbunden!"],"Invalid response from server. Please try again.":["Ung\u00fcltige Antwort vom Server. Bitte versuchen Sie es erneut."],"Failed to disconnect Stripe account.":["Trennen des Stripe-Kontos fehlgeschlagen."],"Webhook created successfully!":["Webhook erfolgreich erstellt!"],"Select Currency":["W\u00e4hrung ausw\u00e4hlen"],"Select the default currency for payment forms.":["W\u00e4hlen Sie die Standardw\u00e4hrung f\u00fcr Zahlungsformulare aus."],"Connection Status":["Verbindungsstatus"],"Disconnect Stripe Account":["Stripe-Konto trennen"],"Are you sure you want to disconnect your Stripe account? This will stop all active payments, subscriptions, and form transactions connected to this account.":["Sind Sie sicher, dass Sie Ihr Stripe-Konto trennen m\u00f6chten? Dadurch werden alle aktiven Zahlungen, Abonnements und Formulartransaktionen, die mit diesem Konto verbunden sind, gestoppt."],"Disconnect":["Trennen"],"Disconnecting\u2026":["Trennen\u2026"],"Webhook successfully connected, all Stripe events are being tracked.":["Webhook erfolgreich verbunden, alle Stripe-Ereignisse werden verfolgt."],"Connect your Stripe account to start accepting payments through your forms.":["Verbinden Sie Ihr Stripe-Konto, um Zahlungen \u00fcber Ihre Formulare zu akzeptieren."],"Connect to Stripe":["Mit Stripe verbinden"],"Securely connect to Stripe with just a few clicks to begin accepting payments! ":["Verbinden Sie sich sicher mit Stripe, um mit nur wenigen Klicks Zahlungen zu akzeptieren!"],"Payment Methods":["Zahlungsmethoden"],"Test mode allows you to process payments without real charges. Switch to Live mode for actual transactions.":["Der Testmodus erm\u00f6glicht es Ihnen, Zahlungen ohne echte Belastungen zu verarbeiten. Wechseln Sie in den Live-Modus f\u00fcr tats\u00e4chliche Transaktionen."],"General Payment Settings":["Allgemeine Zahlungseinstellungen"],"These settings apply to all payment gateways.":["Diese Einstellungen gelten f\u00fcr alle Zahlungs-Gateways."],"Stripe Settings":["Stripe-Einstellungen"],"Left ($100)":["Links ($100)"],"Right (100$)":["Richtig (100$)"],"Left Space ($ 100)":["Verbleibender Platz ($ 100)"],"Right Space (100 $)":["Rechter Raum (100 $)"],"Currency Sign Position":["Position des W\u00e4hrungszeichens"],"Select the position of the currency symbol relative to the amount.":["W\u00e4hlen Sie die Position des W\u00e4hrungssymbols relativ zum Betrag aus."],"Learn":["Lernen"],"Enable email summaries":["E-Mail-Zusammenfassungen aktivieren"],"Enable IP logging":["IP-Protokollierung aktivieren"],"Turn on Admin Notification from here.":["Aktivieren Sie hier die Admin-Benachrichtigung."],"Send entries to 100+ popular apps.":["Eintr\u00e4ge an \u00fcber 100 beliebte Apps senden."],"Build automated workflows that run instantly.":["Erstellen Sie automatisierte Workflows, die sofort ausgef\u00fchrt werden."],"Create custom app integrations using our Custom App feature.":["Erstellen Sie benutzerdefinierte App-Integrationen mit unserer benutzerdefinierten App-Funktion."],"Keep your tools in sync automatically.":["Halten Sie Ihre Werkzeuge automatisch synchron."],"This will install and activate OttoKit on your WordPress site to enable automation features.":["Dies wird OttoKit auf Ihrer WordPress-Seite installieren und aktivieren, um Automatisierungsfunktionen zu erm\u00f6glichen."],"Automate Your Forms with OttoKit":["Automatisieren Sie Ihre Formulare mit OttoKit"],"Every form submission should trigger something \u2014 a Slack alert, a CRM lead, a follow-up email, or a new row in Google Sheets.":["Jede Formular\u00fcbermittlung sollte etwas ausl\u00f6sen \u2014 eine Slack-Benachrichtigung, einen CRM-Lead, eine Follow-up-E-Mail oder eine neue Zeile in Google Sheets."],"MCP":["MCP"],"Configure AI client permissions and MCP server settings.":["Konfigurieren Sie die Berechtigungen des KI-Clients und die Einstellungen des MCP-Servers."],"View documentation":["Dokumentation anzeigen"],"Copy to clipboard":["In die Zwischenablage kopieren"],"Claude Desktop":["Claude Desktop"],"~\/Library\/Application Support\/Claude\/claude_desktop_config.json (macOS) or %APPDATA%\\Claude\\claude_desktop_config.json (Windows)":["~\/Library\/Application Support\/Claude\/claude_desktop_config.json (macOS) oder %APPDATA%\\Claude\\claude_desktop_config.json (Windows)"],"Claude Code":["Claude-Code"],".mcp.json (project) or ~\/.claude.json (global)":[".mcp.json (Projekt) oder ~\/.claude.json (global)"],"Cursor":["Cursor"],"~\/.cursor\/mcp.json":["~\/.cursor\/mcp.json"],"VS Code (Copilot)":["VS Code (Copilot)"],".vscode\/mcp.json (project) or settings.json > mcp.servers (global)":[".vscode\/mcp.json (Projekt) oder settings.json > mcp.servers (global)"],"~\/.continue\/config.yaml or config.json":["~\/.continue\/config.yaml oder config.json"],"Your client's MCP configuration file":["Die MCP-Konfigurationsdatei Ihres Kunden"],"Connect Your AI Client":["Verbinden Sie Ihren KI-Client"],"AI Client":["KI-Client"],"Create an Application Password \u2014 ":["Erstellen Sie ein Anwendungskennwort \u2014"],"Open Application Passwords":["Anwendungspassw\u00f6rter \u00f6ffnen"],"Or use this CLI command to add the server quickly (you will still need to set the environment variables):":["Oder verwenden Sie diesen CLI-Befehl, um den Server schnell hinzuzuf\u00fcgen (Sie m\u00fcssen dennoch die Umgebungsvariablen festlegen):"],"Copy the JSON config below into: ":["Kopiere die JSON-Konfiguration unten in:"],"Replace \"your-application-password\" with the password from Step 1.":["Ersetzen Sie \"your-application-password\" durch das Passwort aus Schritt 1."],"WP_API_URL \u2014 your site's MCP endpoint. WP_API_USERNAME \u2014 your WordPress username. WP_API_PASSWORD \u2014 the application password you generated.":["WP_API_URL \u2014 der MCP-Endpunkt Ihrer Website. WP_API_USERNAME \u2014 Ihr WordPress-Benutzername. WP_API_PASSWORD \u2014 das Anwendungskennwort, das Sie erstellt haben."],"View setup docs":["Einrichtungsdokumente anzeigen"],"The MCP Adapter plugin is installed but not active. Activate it to configure MCP settings.":["Das MCP Adapter-Plugin ist installiert, aber nicht aktiv. Aktivieren Sie es, um die MCP-Einstellungen zu konfigurieren."],"The MCP Adapter plugin is required to connect AI clients to your forms. Download and install it from GitHub, then activate it.":["Das MCP Adapter-Plugin ist erforderlich, um AI-Clients mit Ihren Formularen zu verbinden. Laden Sie es von GitHub herunter, installieren Sie es und aktivieren Sie es dann."],"Download the latest release from":["Laden Sie die neueste Version herunter von"],"Install the plugin via Plugins > Add New Plugin > Upload Plugin.":["Installieren Sie das Plugin \u00fcber Plugins > Neues Plugin hinzuf\u00fcgen > Plugin hochladen."],"Activate the MCP Adapter plugin.":["Aktivieren Sie das MCP Adapter-Plugin."],"Activating\u2026":["Aktivierung\u2026"],"Activate MCP Adapter":["MCP-Adapter aktivieren"],"Download MCP Adapter":["MCP-Adapter herunterladen"],"Experimental":["Experimentell"],"Enable Abilities":["F\u00e4higkeiten aktivieren"],"Register SureForms abilities with the WordPress Abilities API. When enabled, AI clients can list, read, create, edit, and delete your forms and entries. When disabled, no abilities are registered and AI clients cannot perform any actions on your forms.":["Registriere die F\u00e4higkeiten von SureForms mit der WordPress Abilities API. Wenn aktiviert, k\u00f6nnen KI-Clients Ihre Formulare und Eintr\u00e4ge auflisten, lesen, erstellen, bearbeiten und l\u00f6schen. Wenn deaktiviert, werden keine F\u00e4higkeiten registriert und KI-Clients k\u00f6nnen keine Aktionen an Ihren Formularen durchf\u00fchren."],"Abilities API \u2014 Edit":["F\u00e4higkeiten-API \u2014 Bearbeiten"],"Enable Edit Abilities":["Bearbeitungsf\u00e4higkeiten aktivieren"],"When enabled, AI clients can create new forms, update form titles, fields, and settings, duplicate forms, and modify entry statuses. When disabled, these abilities are unregistered and AI clients can only read your data.":["Wenn aktiviert, k\u00f6nnen KI-Clients neue Formulare erstellen, Formulartitel, Felder und Einstellungen aktualisieren, Formulare duplizieren und Eintragsstatus \u00e4ndern. Wenn deaktiviert, werden diese F\u00e4higkeiten abgemeldet und KI-Clients k\u00f6nnen nur Ihre Daten lesen."],"Abilities API \u2014 Delete":["F\u00e4higkeiten-API \u2014 L\u00f6schen"],"Enable Delete Abilities":["L\u00f6schf\u00e4higkeiten aktivieren"],"When enabled, AI clients can permanently delete forms and entries. Deleted data cannot be recovered. When disabled, delete abilities are unregistered and AI clients cannot remove any data.":["Wenn aktiviert, k\u00f6nnen KI-Clients Formulare und Eintr\u00e4ge dauerhaft l\u00f6schen. Gel\u00f6schte Daten k\u00f6nnen nicht wiederhergestellt werden. Wenn deaktiviert, werden L\u00f6schf\u00e4higkeiten abgemeldet und KI-Clients k\u00f6nnen keine Daten entfernen."],"MCP Server":["MCP-Server"],"Enable MCP Server":["MCP-Server aktivieren"],"Creates a dedicated SureForms MCP endpoint that AI clients like Claude can connect to. When disabled, the endpoint is removed and external AI clients cannot discover or call any SureForms abilities.":["Erstellt einen dedizierten SureForms MCP-Endpunkt, mit dem sich KI-Clients wie Claude verbinden k\u00f6nnen. Wenn er deaktiviert ist, wird der Endpunkt entfernt und externe KI-Clients k\u00f6nnen keine SureForms-Funktionen entdecken oder aufrufen."],"Learn more":["Mehr erfahren"],"MCP Adapter Required":["MCP-Adapter erforderlich"],"Google Maps":["Google Maps"],"Configure Google Maps API key for address autocomplete and map preview.":["Konfigurieren Sie den Google Maps API-Schl\u00fcssel f\u00fcr die Adressvervollst\u00e4ndigung und die Kartenansichtsvorschau."],"Help shape the future of SureForms":["Helfen Sie mit, die Zukunft von SureForms zu gestalten"],"Share how you use the plugin so we can build features that matter, fix issues faster, and make smarter decisions. ":["Teilen Sie uns mit, wie Sie das Plugin verwenden, damit wir Funktionen entwickeln k\u00f6nnen, die wichtig sind, Probleme schneller beheben und kl\u00fcgere Entscheidungen treffen k\u00f6nnen. "],"Enable Google Address Autocomplete":["Google-Adress-Autovervollst\u00e4ndigung aktivieren"],"Upgrade to the SureForms Business Plan to add Google-powered address autocomplete with interactive map preview to your forms.":["Upgrade auf den SureForms Business-Plan, um Google-gest\u00fctzte Adressvervollst\u00e4ndigung mit interaktiver Kartenansicht zu Ihren Formularen hinzuzuf\u00fcgen."],"Auto-suggest addresses as users type for faster, error-free submissions":["Adressen automatisch vorschlagen, w\u00e4hrend Benutzer tippen, f\u00fcr schnellere und fehlerfreie Eingaben"],"Show an interactive map preview with draggable pin for precise locations":["Zeige eine interaktive Kartenansicht mit verschiebbarem Pin f\u00fcr pr\u00e4zise Standorte"],"Automatically populate address fields like city, state, and postal code":["Adressfelder wie Stadt, Bundesland und Postleitzahl automatisch ausf\u00fcllen"]}}} \ No newline at end of file +{"translation-revision-date":"2024-12-13T16:14:52+00:00","generator":"WP-CLI\/2.12.0","source":"assets\/build\/settings.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"en","plural-forms":"nplurals=2; plural=(n != 1);"},"Dashboard":["Armaturenbrett"],"Settings":["Einstellungen"],"Entries":["Eintr\u00e4ge"],"Activated":["Aktiviert"],"Activate":["Aktivieren"],"Monday":["Montag"],"Forms":["Formulare"],"GitHub":["GitHub"],"General":["Allgemein"],"Other":["Andere"],"Confirm":["Best\u00e4tigen"],"Cancel":["Abbrechen"],"Install":["Installieren"],"Plugin Installation failed, Please try again later.":["Plugin-Installation fehlgeschlagen, bitte versuchen Sie es sp\u00e4ter erneut."],"Plugin activation failed, Please try again later.":["Plugin-Aktivierung fehlgeschlagen, bitte versuchen Sie es sp\u00e4ter erneut."],"Integrations":["Integrationen"],"What's New?":["Was gibt's Neues?"],"Core":["Kern"],"Unlicensed":["Ohne Lizenz"],"Connecting\u2026":["Verbinden\u2026"],"Install & Activate":["Installieren & Aktivieren"],"Send Email To":["E-Mail senden an"],"Google reCAPTCHA":["Google reCAPTCHA"],"hCaptcha":["hCaptcha"],"reCAPTCHA v2 Invisible":["reCAPTCHA v2 Unsichtbar"],"reCAPTCHA v3":["reCAPTCHA v3"],"Validations":["Validierungen"],"Spam Protection":["Spam-Schutz"],"Email Summaries":["E-Mail-Zusammenfassungen"],"Tuesday":["Dienstag"],"Wednesday":["Mittwoch"],"Thursday":["Donnerstag"],"Friday":["Freitag"],"Saturday":["Samstag"],"Sunday":["Sonntag"],"Test Email":["Test-E-Mail"],"Schedule Reports":["Berichte planen"],"IP Logging":["IP-Protokollierung"],"If this option is turned on, the user's IP address will be saved with the form data":["Wenn diese Option aktiviert ist, wird die IP-Adresse des Benutzers zusammen mit den Formulardaten gespeichert."],"%s represents the minimum selections needed. For example: \u201cMinimum 2 selections are required.\u201d":["%s repr\u00e4sentiert die minimal erforderlichen Auswahlen. Zum Beispiel: \u201eMindestens 2 Auswahlen sind erforderlich.\u201c"],"%s represents the maximum selections allowed. For example: \u201cMaximum 4 selections are allowed.\u201d":["%s repr\u00e4sentiert die maximal erlaubten Auswahlen. Zum Beispiel: \u201eMaximal 4 Auswahlen sind erlaubt.\u201c"],"%s represents the minimum choices needed. For example: \u201cMinimum 1 selection is required.\u201d":["%s repr\u00e4sentiert die minimal erforderlichen Auswahlm\u00f6glichkeiten. Zum Beispiel: \u201eMindestens 1 Auswahl ist erforderlich.\u201c"],"%s represents the maximum choices allowed. For example: \u201cMaximum 3 selections are allowed.\u201d":["%s repr\u00e4sentiert die maximal erlaubten Auswahlm\u00f6glichkeiten. Zum Beispiel: \u201eMaximal 3 Auswahlen sind erlaubt.\u201c"]," Error Message":["Fehlermeldung"],"Auto":["Auto"],"Light":["Licht"],"Dark":["Dunkel"],"Turnstile":["Drehkreuz"],"Honeypot":["Honigtopf"],"Get Keys":["Schl\u00fcssel holen"],"Documentation":["Dokumentation"],"Site Key":["Standortschl\u00fcssel"],"Secret Key":["Geheimer Schl\u00fcssel"],"Cloudflare Turnstile":["Cloudflare-Drehkreuz"],"Appearance Mode":["Erscheinungsmodus"],"Enable Honeypot Security":["Honeypot-Sicherheit aktivieren"],"Enable Honeypot Security for better spam protection":["Aktivieren Sie Honeypot-Sicherheit f\u00fcr besseren Spamschutz"],"This field cannot be left blank.":["Dieses Feld darf nicht leer gelassen werden."],"Confirmation Email Mismatch Message":["Best\u00e4tigungs-E-Mail-Unstimmigkeitsnachricht"],"%s represents the minimum input value. For example: \"Minimum value is 10.\"":["%s repr\u00e4sentiert den minimalen Eingabewert. Zum Beispiel: \"Der Mindestwert ist 10.\""],"%s represents the maximum input value. For example: \"Maximum value is 100.\"":["%s repr\u00e4sentiert den maximalen Eingabewert. Zum Beispiel: \"Der Maximalwert ist 100.\""],"OttoKit":["OttoKit"],"Connect with OttoKit":["Mit OttoKit verbinden"],"reCAPTCHA":["reCAPTCHA"],"Ready to go beyond free plan?":["Bereit, \u00fcber den kostenlosen Plan hinauszugehen?"],"Upgrade now":["Jetzt upgraden"],"and unlock the full power of SureForms!":["und die volle Kraft von SureForms freischalten!"],"Upgrade SureForms":["SureForms aktualisieren"],"Upgrade Now":["Jetzt upgraden"],"Form Validation":["Formularvalidierung"],"Required Error Messages":["Erforderliche Fehlermeldungen"],"Other Error Messages":["Andere Fehlermeldungen"],"Input Field Unique":["Eingabefeld eindeutig"],"Email Field Unique":["E-Mail-Feld eindeutig"],"Invalid URL":["Ung\u00fcltige URL"],"Phone Field Unique":["Telefonfeld eindeutig"],"Invalid Field Number Block":["Ung\u00fcltiger Feldnummernblock"],"Invalid Email":["Ung\u00fcltige E-Mail"],"Number Minimum Value":["Zahlen-Mindestwert"],"Number Maximum Value":["Zahlen Maximalwert"],"Dropdown Minimum Selections":["Dropdown Minimale Auswahlen"],"Dropdown Maximum Selections":["Dropdown Maximale Auswahlen"],"Multiple Choice Minimum Selections":["Mehrfachauswahl Mindestanzahl der Auswahlen"],"Multiple Choice Maximum Selections":["Mehrfachauswahl Maximale Auswahlm\u00f6glichkeiten"],"Input Field":["Eingabefeld"],"Email Field":["E-Mail-Feld"],"URL Field":["URL-Feld"],"Phone Field":["Telefonfeld"],"Textarea Field":["Textbereichsfeld"],"Checkbox Field":["Kontrollk\u00e4stchenfeld"],"Dropdown Field":["Dropdown-Feld"],"Multiple Choice Field":["Mehrfachauswahlfeld"],"Address Field":["Adressfeld"],"Number Field":["Zahlenfeld"],"reCAPTCHA v2":["reCAPTCHA v2"],"To enable reCAPTCHA feature on your SureForms Please enable reCAPTCHA option on your blocks setting and select version. Add google reCAPTCHA secret and site key here. reCAPTCHA will be added to your page on front-end.":["Um die reCAPTCHA-Funktion in Ihren SureForms zu aktivieren, aktivieren Sie bitte die reCAPTCHA-Option in Ihren Blockeinstellungen und w\u00e4hlen Sie die Version aus. F\u00fcgen Sie hier den Google reCAPTCHA Secret und den Site Key hinzu. reCAPTCHA wird auf der Vorderseite Ihrer Seite hinzugef\u00fcgt."],"Enter your %s here":["Geben Sie hier Ihr %s ein"],"To enable hCAPTCHA, please add your site key and secret key. Configure these settings within the individual form.":["Um hCAPTCHA zu aktivieren, f\u00fcgen Sie bitte Ihren Site-Schl\u00fcssel und Geheimschl\u00fcssel hinzu. Konfigurieren Sie diese Einstellungen innerhalb des einzelnen Formulars."],"To enable Cloudflare Turnstile, please add your site key and secret key. Configure these settings within the individual form.":["Um Cloudflare Turnstile zu aktivieren, f\u00fcgen Sie bitte Ihren Site-Schl\u00fcssel und Geheimschl\u00fcssel hinzu. Konfigurieren Sie diese Einstellungen innerhalb des einzelnen Formulars."],"Save":["Speichern"],"Anonymous Analytics":["Anonyme Analysen"],"Learn More":["Mehr erfahren"],"Admin Notification":["Administratorbenachrichtigung"],"Enable Admin Notification":["Admin-Benachrichtigung aktivieren"],"Admin notifications keep you informed about new form entries since your last visit.":["Admin-Benachrichtigungen halten Sie \u00fcber neue Formulareintr\u00e4ge seit Ihrem letzten Besuch auf dem Laufenden."],"Continue":["Fortfahren"],"Get Started":["Loslegen"],"Integration":["Integration"],"Connect Native Integrations with SureForms":["Native Integrationen mit SureForms verbinden"],"Unlock powerful integrations in the Premium plan to automate your workflows and connect SureForms directly with your favourite tools.":["Schalten Sie leistungsstarke Integrationen im Premium-Plan frei, um Ihre Arbeitsabl\u00e4ufe zu automatisieren und SureForms direkt mit Ihren Lieblingstools zu verbinden."],"Send form submissions straight to CRMs, email, and marketing platforms":["Senden Sie Formulareinsendungen direkt an CRMs, E-Mail- und Marketingplattformen"],"Automate repetitive tasks with seamless data syncing":["Automatisieren Sie repetitive Aufgaben mit nahtloser Datensynchronisierung"],"Access exclusive native integrations for faster workflows":["Zugriff auf exklusive native Integrationen f\u00fcr schnellere Arbeitsabl\u00e4ufe"],"Payments":["Zahlungen"],"Stripe account disconnected successfully.":["Stripe-Konto erfolgreich getrennt."],"Failed to create webhook.":["Fehler beim Erstellen des Webhooks."],"Failed to connect to Stripe.":["Verbindung zu Stripe fehlgeschlagen."],"Webhook":["Webhook"],"Knowledge Base":["Wissensdatenbank"],"What\u2019s New":["Was gibt's Neues"],"delete":["l\u00f6schen"],"Please type \"%s\" in the input box":["Bitte geben Sie \"%s\" in das Eingabefeld ein"],"To confirm, type \"%s\" in the box below:":["Um zu best\u00e4tigen, geben Sie \"%s\" in das Feld unten ein:"],"Type \"%s\"":["Geben Sie \"%s\" ein"],"Go to OttoKit Settings":["Gehe zu den OttoKit-Einstellungen"],"USD - US Dollar":["USD - US-Dollar"],"Payment Mode":["Zahlungsart"],"Test Mode":["Testmodus"],"Live Mode":["Live-Modus"],"General Settings":["Allgemeine Einstellungen"],"Set up email summaries, admin alerts, and data preferences to manage your forms with ease.":["Richten Sie E-Mail-Zusammenfassungen, Admin-Benachrichtigungen und Datenpr\u00e4ferenzen ein, um Ihre Formulare m\u00fchelos zu verwalten."],"Customize default error messages shown when users submit invalid or incomplete form entries.":["Passen Sie die Standardfehlermeldungen an, die angezeigt werden, wenn Benutzer ung\u00fcltige oder unvollst\u00e4ndige Formulareintr\u00e4ge \u00fcbermitteln."],"Enable spam protection for your forms using CAPTCHA services or honeypot security.":["Aktivieren Sie den Spam-Schutz f\u00fcr Ihre Formulare mithilfe von CAPTCHA-Diensten oder Honeypot-Sicherheit."],"Connect and manage your payment gateways to securely accept transactions through your forms.":["Verbinden und verwalten Sie Ihre Zahlungsgateways, um Transaktionen sicher \u00fcber Ihre Formulare zu akzeptieren."],"1% transaction and payment gateway fees apply.":["1% Transaktions- und Zahlungsgateway-Geb\u00fchren fallen an."],"2.9% transaction and payment gateway fees apply. Activate license to reduce transaction fees.":["2,9 % Transaktions- und Zahlungsgateway-Geb\u00fchren fallen an. Aktivieren Sie die Lizenz, um die Transaktionsgeb\u00fchren zu reduzieren."],"2.9% transaction and payment gateway fees apply.":["Es fallen 2,9 % Transaktions- und Zahlungs-Gateway-Geb\u00fchren an."],"Please visit %1$s, delete an unused webhook, then click below to retry.":["Bitte besuchen Sie %1$s, l\u00f6schen Sie einen ungenutzten Webhook und klicken Sie dann unten, um es erneut zu versuchen."],"SureForms could not create a webhook because your Stripe account has run out of free slots. Webhooks are needed to receive updates about payments.":["SureForms konnte keinen Webhook erstellen, da Ihr Stripe-Konto keine freien Slots mehr hat. Webhooks sind erforderlich, um Updates zu Zahlungen zu erhalten."],"Stripe Dashboard":["Stripe-Dashboard"],"Creating\u2026":["Erstellen\u2026"],"Create Webhook":["Webhook erstellen"],"Successfully connected to Stripe!":["Erfolgreich mit Stripe verbunden!"],"Invalid response from server. Please try again.":["Ung\u00fcltige Antwort vom Server. Bitte versuchen Sie es erneut."],"Failed to disconnect Stripe account.":["Trennen des Stripe-Kontos fehlgeschlagen."],"Webhook created successfully!":["Webhook erfolgreich erstellt!"],"Select Currency":["W\u00e4hrung ausw\u00e4hlen"],"Select the default currency for payment forms.":["W\u00e4hlen Sie die Standardw\u00e4hrung f\u00fcr Zahlungsformulare aus."],"Connection Status":["Verbindungsstatus"],"Disconnect Stripe Account":["Stripe-Konto trennen"],"Are you sure you want to disconnect your Stripe account? This will stop all active payments, subscriptions, and form transactions connected to this account.":["Sind Sie sicher, dass Sie Ihr Stripe-Konto trennen m\u00f6chten? Dadurch werden alle aktiven Zahlungen, Abonnements und Formulartransaktionen, die mit diesem Konto verbunden sind, gestoppt."],"Disconnect":["Trennen"],"Disconnecting\u2026":["Trennen\u2026"],"Webhook successfully connected, all Stripe events are being tracked.":["Webhook erfolgreich verbunden, alle Stripe-Ereignisse werden verfolgt."],"Connect your Stripe account to start accepting payments through your forms.":["Verbinden Sie Ihr Stripe-Konto, um Zahlungen \u00fcber Ihre Formulare zu akzeptieren."],"Connect to Stripe":["Mit Stripe verbinden"],"Securely connect to Stripe with just a few clicks to begin accepting payments! ":["Verbinden Sie sich sicher mit Stripe, um mit nur wenigen Klicks Zahlungen zu akzeptieren!"],"Payment Methods":["Zahlungsmethoden"],"Test mode allows you to process payments without real charges. Switch to Live mode for actual transactions.":["Der Testmodus erm\u00f6glicht es Ihnen, Zahlungen ohne echte Belastungen zu verarbeiten. Wechseln Sie in den Live-Modus f\u00fcr tats\u00e4chliche Transaktionen."],"General Payment Settings":["Allgemeine Zahlungseinstellungen"],"These settings apply to all payment gateways.":["Diese Einstellungen gelten f\u00fcr alle Zahlungs-Gateways."],"Stripe Settings":["Stripe-Einstellungen"],"Left ($100)":["Links ($100)"],"Right (100$)":["Richtig (100$)"],"Left Space ($ 100)":["Verbleibender Platz ($ 100)"],"Right Space (100 $)":["Rechter Raum (100 $)"],"Currency Sign Position":["Position des W\u00e4hrungszeichens"],"Select the position of the currency symbol relative to the amount.":["W\u00e4hlen Sie die Position des W\u00e4hrungssymbols relativ zum Betrag aus."],"Learn":["Lernen"],"Enable email summaries":["E-Mail-Zusammenfassungen aktivieren"],"Enable IP logging":["IP-Protokollierung aktivieren"],"Turn on Admin Notification from here.":["Aktivieren Sie hier die Admin-Benachrichtigung."],"Send entries to 100+ popular apps.":["Eintr\u00e4ge an \u00fcber 100 beliebte Apps senden."],"Build automated workflows that run instantly.":["Erstellen Sie automatisierte Workflows, die sofort ausgef\u00fchrt werden."],"Create custom app integrations using our Custom App feature.":["Erstellen Sie benutzerdefinierte App-Integrationen mit unserer benutzerdefinierten App-Funktion."],"Keep your tools in sync automatically.":["Halten Sie Ihre Werkzeuge automatisch synchron."],"This will install and activate OttoKit on your WordPress site to enable automation features.":["Dies wird OttoKit auf Ihrer WordPress-Seite installieren und aktivieren, um Automatisierungsfunktionen zu erm\u00f6glichen."],"Automate Your Forms with OttoKit":["Automatisieren Sie Ihre Formulare mit OttoKit"],"Every form submission should trigger something \u2014 a Slack alert, a CRM lead, a follow-up email, or a new row in Google Sheets.":["Jede Formular\u00fcbermittlung sollte etwas ausl\u00f6sen \u2014 eine Slack-Benachrichtigung, einen CRM-Lead, eine Follow-up-E-Mail oder eine neue Zeile in Google Sheets."],"MCP":["MCP"],"Configure AI client permissions and MCP server settings.":["Konfigurieren Sie die Berechtigungen des KI-Clients und die Einstellungen des MCP-Servers."],"View documentation":["Dokumentation anzeigen"],"Copy to clipboard":["In die Zwischenablage kopieren"],"Claude Desktop":["Claude Desktop"],"~\/Library\/Application Support\/Claude\/claude_desktop_config.json (macOS) or %APPDATA%\\Claude\\claude_desktop_config.json (Windows)":["~\/Library\/Application Support\/Claude\/claude_desktop_config.json (macOS) oder %APPDATA%\\Claude\\claude_desktop_config.json (Windows)"],"Claude Code":["Claude-Code"],".mcp.json (project) or ~\/.claude.json (global)":[".mcp.json (Projekt) oder ~\/.claude.json (global)"],"Cursor":["Cursor"],"~\/.cursor\/mcp.json":["~\/.cursor\/mcp.json"],"VS Code (Copilot)":["VS Code (Copilot)"],".vscode\/mcp.json (project) or settings.json > mcp.servers (global)":[".vscode\/mcp.json (Projekt) oder settings.json > mcp.servers (global)"],"~\/.continue\/config.yaml or config.json":["~\/.continue\/config.yaml oder config.json"],"Your client's MCP configuration file":["Die MCP-Konfigurationsdatei Ihres Kunden"],"Connect Your AI Client":["Verbinden Sie Ihren KI-Client"],"AI Client":["KI-Client"],"Create an Application Password \u2014 ":["Erstellen Sie ein Anwendungskennwort \u2014"],"Open Application Passwords":["Anwendungspassw\u00f6rter \u00f6ffnen"],"Or use this CLI command to add the server quickly (you will still need to set the environment variables):":["Oder verwenden Sie diesen CLI-Befehl, um den Server schnell hinzuzuf\u00fcgen (Sie m\u00fcssen dennoch die Umgebungsvariablen festlegen):"],"Copy the JSON config below into: ":["Kopiere die JSON-Konfiguration unten in:"],"Replace \"your-application-password\" with the password from Step 1.":["Ersetzen Sie \"your-application-password\" durch das Passwort aus Schritt 1."],"WP_API_URL \u2014 your site's MCP endpoint. WP_API_USERNAME \u2014 your WordPress username. WP_API_PASSWORD \u2014 the application password you generated.":["WP_API_URL \u2014 der MCP-Endpunkt Ihrer Website. WP_API_USERNAME \u2014 Ihr WordPress-Benutzername. WP_API_PASSWORD \u2014 das Anwendungskennwort, das Sie erstellt haben."],"View setup docs":["Einrichtungsdokumente anzeigen"],"The MCP Adapter plugin is installed but not active. Activate it to configure MCP settings.":["Das MCP Adapter-Plugin ist installiert, aber nicht aktiv. Aktivieren Sie es, um die MCP-Einstellungen zu konfigurieren."],"The MCP Adapter plugin is required to connect AI clients to your forms. Download and install it from GitHub, then activate it.":["Das MCP Adapter-Plugin ist erforderlich, um AI-Clients mit Ihren Formularen zu verbinden. Laden Sie es von GitHub herunter, installieren Sie es und aktivieren Sie es dann."],"Download the latest release from":["Laden Sie die neueste Version herunter von"],"Install the plugin via Plugins > Add New Plugin > Upload Plugin.":["Installieren Sie das Plugin \u00fcber Plugins > Neues Plugin hinzuf\u00fcgen > Plugin hochladen."],"Activate the MCP Adapter plugin.":["Aktivieren Sie das MCP Adapter-Plugin."],"Activating\u2026":["Aktivierung\u2026"],"Activate MCP Adapter":["MCP-Adapter aktivieren"],"Download MCP Adapter":["MCP-Adapter herunterladen"],"Experimental":["Experimentell"],"Enable Abilities":["F\u00e4higkeiten aktivieren"],"Register SureForms abilities with the WordPress Abilities API. When enabled, AI clients can list, read, create, edit, and delete your forms and entries. When disabled, no abilities are registered and AI clients cannot perform any actions on your forms.":["Registriere die F\u00e4higkeiten von SureForms mit der WordPress Abilities API. Wenn aktiviert, k\u00f6nnen KI-Clients Ihre Formulare und Eintr\u00e4ge auflisten, lesen, erstellen, bearbeiten und l\u00f6schen. Wenn deaktiviert, werden keine F\u00e4higkeiten registriert und KI-Clients k\u00f6nnen keine Aktionen an Ihren Formularen durchf\u00fchren."],"Abilities API \u2014 Edit":["F\u00e4higkeiten-API \u2014 Bearbeiten"],"Enable Edit Abilities":["Bearbeitungsf\u00e4higkeiten aktivieren"],"When enabled, AI clients can create new forms, update form titles, fields, and settings, duplicate forms, and modify entry statuses. When disabled, these abilities are unregistered and AI clients can only read your data.":["Wenn aktiviert, k\u00f6nnen KI-Clients neue Formulare erstellen, Formulartitel, Felder und Einstellungen aktualisieren, Formulare duplizieren und Eintragsstatus \u00e4ndern. Wenn deaktiviert, werden diese F\u00e4higkeiten abgemeldet und KI-Clients k\u00f6nnen nur Ihre Daten lesen."],"Abilities API \u2014 Delete":["F\u00e4higkeiten-API \u2014 L\u00f6schen"],"Enable Delete Abilities":["L\u00f6schf\u00e4higkeiten aktivieren"],"When enabled, AI clients can permanently delete forms and entries. Deleted data cannot be recovered. When disabled, delete abilities are unregistered and AI clients cannot remove any data.":["Wenn aktiviert, k\u00f6nnen KI-Clients Formulare und Eintr\u00e4ge dauerhaft l\u00f6schen. Gel\u00f6schte Daten k\u00f6nnen nicht wiederhergestellt werden. Wenn deaktiviert, werden L\u00f6schf\u00e4higkeiten abgemeldet und KI-Clients k\u00f6nnen keine Daten entfernen."],"MCP Server":["MCP-Server"],"Enable MCP Server":["MCP-Server aktivieren"],"Creates a dedicated SureForms MCP endpoint that AI clients like Claude can connect to. When disabled, the endpoint is removed and external AI clients cannot discover or call any SureForms abilities.":["Erstellt einen dedizierten SureForms MCP-Endpunkt, mit dem sich KI-Clients wie Claude verbinden k\u00f6nnen. Wenn er deaktiviert ist, wird der Endpunkt entfernt und externe KI-Clients k\u00f6nnen keine SureForms-Funktionen entdecken oder aufrufen."],"Learn more":["Mehr erfahren"],"MCP Adapter Required":["MCP-Adapter erforderlich"],"Google Maps":["Google Maps"],"Configure Google Maps API key for address autocomplete and map preview.":["Konfigurieren Sie den Google Maps API-Schl\u00fcssel f\u00fcr die Adressvervollst\u00e4ndigung und die Kartenansichtsvorschau."],"Help shape the future of SureForms":["Helfen Sie mit, die Zukunft von SureForms zu gestalten"],"Share how you use the plugin so we can build features that matter, fix issues faster, and make smarter decisions. ":["Teilen Sie uns mit, wie Sie das Plugin verwenden, damit wir Funktionen entwickeln k\u00f6nnen, die wichtig sind, Probleme schneller beheben und kl\u00fcgere Entscheidungen treffen k\u00f6nnen."],"Enable Google Address Autocomplete":["Google-Adress-Autovervollst\u00e4ndigung aktivieren"],"Upgrade to the SureForms Business Plan to add Google-powered address autocomplete with interactive map preview to your forms.":["Upgrade auf den SureForms Business-Plan, um Google-gest\u00fctzte Adressvervollst\u00e4ndigung mit interaktiver Kartenansicht zu Ihren Formularen hinzuzuf\u00fcgen."],"Auto-suggest addresses as users type for faster, error-free submissions":["Adressen automatisch vorschlagen, w\u00e4hrend Benutzer tippen, f\u00fcr schnellere und fehlerfreie Eingaben"],"Show an interactive map preview with draggable pin for precise locations":["Zeige eine interaktive Kartenansicht mit verschiebbarem Pin f\u00fcr pr\u00e4zise Standorte"],"Automatically populate address fields like city, state, and postal code":["Adressfelder wie Stadt, Bundesland und Postleitzahl automatisch ausf\u00fcllen"]}}} \ No newline at end of file diff --git a/languages/sureforms-de_DE.mo b/languages/sureforms-de_DE.mo index 841a43467..8361d41a6 100644 Binary files a/languages/sureforms-de_DE.mo and b/languages/sureforms-de_DE.mo differ diff --git a/languages/sureforms-de_DE.po b/languages/sureforms-de_DE.po index 45342db63..3509356fb 100644 --- a/languages/sureforms-de_DE.po +++ b/languages/sureforms-de_DE.po @@ -16,7 +16,7 @@ msgstr "" #: sureforms.php #: admin/admin.php:320 #: admin/admin.php:321 -#: admin/admin.php:1812 +#: admin/admin.php:1813 #: inc/abilities/abilities-registrar.php:133 #: inc/gutenberg-hooks.php:109 #: inc/page-builders/bricks/elements/form-widget.php:67 @@ -82,7 +82,7 @@ msgstr "Neues Formular" #: admin/admin.php:601 #: admin/admin.php:602 -#: admin/admin.php:1849 +#: admin/admin.php:1850 #: inc/global-settings/email-summary.php:225 #: assets/build/dashboard.js:172 #: assets/build/entries.js:172 @@ -118,18 +118,18 @@ msgid "Nonce verification failed." msgstr "Überprüfung des Nonce ist fehlgeschlagen." #. translators: %1$s: Opening anchor tag with URL, %2$s: Closing anchor tag, %3$s: SureForms Pro Plugin Name. -#: admin/admin.php:1441 +#: admin/admin.php:1442 #, php-format msgid "Please %1$sactivate%2$s your copy of %3$s to get new features, access support, receive update notifications, and more." msgstr "Bitte %1$saktivieren%2$s Sie Ihre Kopie von %3$s, um neue Funktionen zu erhalten, Support zu nutzen, Update-Benachrichtigungen zu erhalten und mehr." #. translators: %1$s: SureForms version, %2$s: SureForms Pro Plugin Name, %3$s: SureForms Pro Version, %4$s: Anchor tag open, %5$s: Closing anchor tag. -#: admin/admin.php:1459 +#: admin/admin.php:1460 #, php-format msgid "SureForms %1$s requires minimum %2$s %3$s to work properly. Please update to the latest version from %4$shere%5$s." msgstr "SureForms %1$s erfordert mindestens %2$s %3$s, um ordnungsgemäß zu funktionieren. Bitte aktualisieren Sie auf die neueste Version von %4$shier%5$s." -#: admin/admin.php:1848 +#: admin/admin.php:1849 #: inc/global-settings/email-summary.php:224 #: assets/build/entries.js:172 #: assets/build/payments.js:172 @@ -197,7 +197,7 @@ msgstr "Müll" msgid "Published" msgstr "Veröffentlicht" -#: admin/admin.php:1840 +#: admin/admin.php:1841 msgid "View" msgstr "Ansehen" @@ -323,10 +323,10 @@ msgstr "Installiert" msgid "You do not have permission to access this page." msgstr "Sie haben keine Berechtigung, auf diese Seite zuzugreifen." -#: admin/admin.php:1607 -#: admin/admin.php:1706 -#: admin/admin.php:1744 -#: admin/admin.php:1765 +#: admin/admin.php:1608 +#: admin/admin.php:1707 +#: admin/admin.php:1745 +#: admin/admin.php:1766 #: inc/admin-ajax.php:162 #: inc/payments/admin/admin-handler.php:638 #: inc/payments/stripe/admin-stripe-handler.php:80 @@ -339,7 +339,7 @@ msgid "Form ID is required." msgstr "Formular-ID ist erforderlich." #: inc/admin-ajax.php:182 -#: inc/form-submit.php:970 +#: inc/form-submit.php:972 msgid "Invalid form ID." msgstr "Ungültige Formular-ID." @@ -513,11 +513,11 @@ msgstr "Kontrollkästchen" msgid "Required" msgstr "Erforderlich" -#: inc/fields/dropdown-markup.php:83 +#: inc/fields/dropdown-markup.php:84 msgid "Dropdown" msgstr "Dropdown-Menü" -#: inc/fields/dropdown-markup.php:106 +#: inc/fields/dropdown-markup.php:108 #: inc/gutenberg-hooks.php:220 msgid "Select an option" msgstr "Wählen Sie eine Option" @@ -545,7 +545,7 @@ msgstr "Ich stimme zu, dass diese Website meine übermittelten Informationen spe msgid "Please verify that you are not a robot." msgstr "Bitte bestätigen Sie, dass Sie kein Roboter sind." -#: inc/fields/multichoice-markup.php:113 +#: inc/fields/multichoice-markup.php:114 msgid "Multi Choice" msgstr "Mehrfachauswahl" @@ -786,7 +786,7 @@ msgid "Site URL" msgstr "Website-URL" #: inc/smart-tags.php:111 -#: inc/smart-tags.php:142 +#: inc/smart-tags.php:143 msgid "Admin Email" msgstr "Admin-E-Mail" @@ -827,7 +827,7 @@ msgid "User Last Name" msgstr "Nachname des Benutzers" #: inc/smart-tags.php:122 -#: inc/smart-tags.php:143 +#: inc/smart-tags.php:144 msgid "User Email" msgstr "Benutzer-E-Mail" @@ -851,11 +851,11 @@ msgstr "Eingebettete Post-/Seiten-ID" msgid "Embedded Post/Page Title" msgstr "Eingebetteter Beitrag/Seitentitel" -#: inc/smart-tags.php:128 +#: inc/smart-tags.php:129 msgid "Populate by GET Param" msgstr "Durch GET-Parameter befüllen" -#: inc/smart-tags.php:129 +#: inc/smart-tags.php:130 msgid "Cookie Value" msgstr "Cookie-Wert" @@ -8838,7 +8838,7 @@ msgstr "Block im Schnellaktionsbereich neu anordnen" #: admin/admin.php:409 #: admin/admin.php:410 -#: admin/admin.php:2021 +#: admin/admin.php:2022 #: assets/build/blocks.js:172 #: assets/build/dashboard.js:172 #: assets/build/entries.js:172 @@ -9181,7 +9181,7 @@ msgstr "Zentrum" msgid "Right" msgstr "Richtig" -#: inc/form-submit.php:1147 +#: inc/form-submit.php:1149 #: assets/build/formEditor.js:172 #: assets/build/settings.js:172 msgid "Google reCAPTCHA" @@ -9191,7 +9191,7 @@ msgstr "Google reCAPTCHA" msgid "CloudFlare Turnstile" msgstr "CloudFlare Turnstile" -#: inc/form-submit.php:1151 +#: inc/form-submit.php:1153 #: assets/build/formEditor.js:172 #: assets/build/settings.js:172 msgid "hCaptcha" @@ -9469,7 +9469,7 @@ msgstr "Standortschlüssel" msgid "Secret Key" msgstr "Geheimer Schlüssel" -#: inc/form-submit.php:1155 +#: inc/form-submit.php:1157 #: assets/build/settings.js:172 msgid "Cloudflare Turnstile" msgstr "Cloudflare-Drehkreuz" @@ -10429,7 +10429,7 @@ msgstr "Fügen Sie Ihrer Website atemberaubende anpassbare Symbole hinzu." msgid "icon" msgstr "Symbol" -#: admin/admin.php:1505 +#: admin/admin.php:1506 msgid "Rate SureForms" msgstr "Bewerten Sie SureForms" @@ -10485,18 +10485,18 @@ msgstr "Notiz hinzufügen entsperren" msgid "With the SureForms Starter plan, enhance your submitted form entries by adding personalized notes for better clarity and tracking." msgstr "Mit dem SureForms Starter-Plan verbessern Sie Ihre eingereichten Formulareinträge, indem Sie personalisierte Notizen für bessere Klarheit und Nachverfolgung hinzufügen." -#: inc/form-submit.php:821 +#: inc/form-submit.php:823 msgid "Email notification passed to the sending server" msgstr "E-Mail-Benachrichtigung an den sendenden Server übermittelt" #. translators: Here, %s is the comma separated emails list. -#: inc/form-submit.php:894 +#: inc/form-submit.php:896 #, php-format msgid "Email notification recipient: %s" msgstr "E-Mail-Benachrichtigungsempfänger: %s" #. translators: Here, %1$s is the comma separated emails list and %2$s is error report ( if any ). -#: inc/form-submit.php:911 +#: inc/form-submit.php:913 #, php-format msgid "Email server was unable to send the email notification. Recipient: %1$s. Reason: %2$s" msgstr "E-Mail-Server konnte die E-Mail-Benachrichtigung nicht senden. Empfänger: %1$s. Grund: %2$s" @@ -10740,24 +10740,24 @@ msgstr "Gradient auswählen" msgid "reCAPTCHA" msgstr "reCAPTCHA" -#: inc/form-submit.php:1091 +#: inc/form-submit.php:1093 msgid "Captcha validation failed. No error code provided." msgstr "Captcha-Überprüfung fehlgeschlagen. Kein Fehlercode angegeben." -#: inc/form-submit.php:1092 +#: inc/form-submit.php:1094 msgid "Captcha validation failed." msgstr "Captcha-Überprüfung fehlgeschlagen." -#: inc/form-submit.php:1159 +#: inc/form-submit.php:1161 msgid "Unknown Captcha" msgstr "Unbekanntes Captcha" -#: inc/form-submit.php:1160 +#: inc/form-submit.php:1162 msgid "Invalid captcha type." msgstr "Ungültiger Captcha-Typ." #. translators: %s is the captcha title. -#: inc/form-submit.php:1173 +#: inc/form-submit.php:1175 #, php-format msgid "%s verification failed. Please contact your site administrator." msgstr "%s-Verifizierung fehlgeschlagen. Bitte wenden Sie sich an Ihren Website-Administrator." @@ -11274,28 +11274,28 @@ msgstr "Admin-Benachrichtigung aktivieren" msgid "Admin notifications keep you informed about new form entries since your last visit." msgstr "Admin-Benachrichtigungen halten Sie über neue Formulareinträge seit Ihrem letzten Besuch auf dem Laufenden." -#: admin/admin.php:1611 -#: admin/admin.php:1702 -#: admin/admin.php:1740 -#: admin/admin.php:1761 +#: admin/admin.php:1612 +#: admin/admin.php:1703 +#: admin/admin.php:1741 +#: admin/admin.php:1762 msgid "Unauthorized user." msgstr "Unbefugter Benutzer." #. translators: 1: opening span, 2: opening strong (inline), 3: closing strong, 4: closing span, 5: opening strong (block), 6: closing strong -#: admin/admin.php:1711 +#: admin/admin.php:1712 #, php-format msgid "%1$sGet started by %2$sbuilding your first form%3$s.%4$s%5$sExperience the power of our intuitive AI Form Builder%6$s" msgstr "%1$sBeginnen Sie damit, %2$sIhr erstes Formular zu erstellen%3$s.%4$s%5$sErleben Sie die Leistungsfähigkeit unseres intuitiven KI-Formularerstellers%6$s" -#: admin/admin.php:1722 +#: admin/admin.php:1723 msgid "SureForms is waiting for you!" msgstr "SureForms wartet auf Sie!" -#: admin/admin.php:1724 +#: admin/admin.php:1725 msgid "Build My First Form" msgstr "Erstelle mein erstes Formular" -#: admin/admin.php:1725 +#: admin/admin.php:1726 msgid "Dismiss" msgstr "Verwerfen" @@ -11315,51 +11315,51 @@ msgstr "Anmelden" msgid "Register" msgstr "Registrieren" -#: admin/admin.php:1836 +#: admin/admin.php:1837 msgid "Recent Entries" msgstr "Neueste Einträge" -#: admin/admin.php:1837 +#: admin/admin.php:1838 msgid "( Last 7 days )" msgstr "( Letzte 7 Tage )" -#: admin/admin.php:1957 +#: admin/admin.php:1958 msgid "Use Conditional Logic to show only what matters" msgstr "Verwenden Sie bedingte Logik, um nur das Wichtige anzuzeigen" -#: admin/admin.php:1958 +#: admin/admin.php:1959 msgid "Split your form into steps to keep it easy" msgstr "Teilen Sie Ihr Formular in Schritte auf, um es einfach zu halten." -#: admin/admin.php:1959 +#: admin/admin.php:1960 msgid "Let people upload files directly to your form" msgstr "Lassen Sie Personen Dateien direkt in Ihr Formular hochladen" -#: admin/admin.php:1960 +#: admin/admin.php:1961 msgid "Turn responses into downloadable PDFs automatically" msgstr "Antworten automatisch in herunterladbare PDFs umwandeln" -#: admin/admin.php:1961 +#: admin/admin.php:1962 msgid "Let users sign with a simple signature field" msgstr "Lassen Sie Benutzer mit einem einfachen Unterschriftsfeld unterschreiben" -#: admin/admin.php:1962 +#: admin/admin.php:1963 msgid "Connect your form to other tools using webhooks" msgstr "Verbinden Sie Ihr Formular mit anderen Tools über Webhooks" -#: admin/admin.php:1963 +#: admin/admin.php:1964 msgid "Use Conversational Forms for a chat-like experience" msgstr "Verwenden Sie Konversationsformulare für ein chatähnliches Erlebnis" -#: admin/admin.php:1964 +#: admin/admin.php:1965 msgid "Let users register or log in through your form" msgstr "Lassen Sie Benutzer sich über Ihr Formular registrieren oder anmelden" -#: admin/admin.php:1965 +#: admin/admin.php:1966 msgid "Build forms that create WordPress user accounts" msgstr "Erstellen Sie Formulare, die WordPress-Benutzerkonten erstellen" -#: admin/admin.php:1966 +#: admin/admin.php:1967 msgid "Add calculations to auto-total scores or prices" msgstr "Berechnungen hinzufügen, um die Punktzahlen oder Preise automatisch zu summieren" @@ -11917,6 +11917,7 @@ msgid "Unable to create ZIP file." msgstr "ZIP-Datei kann nicht erstellt werden." #: inc/entries.php:729 +#: inc/smart-tags.php:128 #: assets/build/entries.js:172 msgid "Entry ID" msgstr "Eintrags-ID" @@ -11934,7 +11935,7 @@ msgid "Invalid form data structure provided." msgstr "Ungültige Formular-Datenstruktur bereitgestellt." #: inc/fields/payment-markup.php:249 -#: inc/payments/payment-helper.php:538 +#: inc/payments/payment-helper.php:543 msgid "Subscription Plan" msgstr "Abonnementplan" @@ -12552,301 +12553,301 @@ msgstr "Hongkong-Dollar" msgid "Norwegian Krone" msgstr "Norwegische Krone" -#: inc/payments/payment-helper.php:259 +#: inc/payments/payment-helper.php:264 msgid "South Korean Won" msgstr "Südkoreanischer Won" -#: inc/payments/payment-helper.php:264 +#: inc/payments/payment-helper.php:269 msgid "Turkish Lira" msgstr "Türkische Lira" -#: inc/payments/payment-helper.php:269 +#: inc/payments/payment-helper.php:274 msgid "Russian Ruble" msgstr "Russischer Rubel" -#: inc/payments/payment-helper.php:274 +#: inc/payments/payment-helper.php:279 msgid "Indian Rupee" msgstr "Indische Rupie" -#: inc/payments/payment-helper.php:279 +#: inc/payments/payment-helper.php:284 msgid "Brazilian Real" msgstr "Brasilianischer Real" -#: inc/payments/payment-helper.php:284 +#: inc/payments/payment-helper.php:289 msgid "South African Rand" msgstr "Südafrikanischer Rand" -#: inc/payments/payment-helper.php:289 +#: inc/payments/payment-helper.php:294 msgid "UAE Dirham" msgstr "VAE-Dirham" -#: inc/payments/payment-helper.php:294 +#: inc/payments/payment-helper.php:299 msgid "Philippine Peso" msgstr "Philippinischer Peso" -#: inc/payments/payment-helper.php:299 +#: inc/payments/payment-helper.php:304 msgid "Indonesian Rupiah" msgstr "Indonesische Rupiah" -#: inc/payments/payment-helper.php:304 +#: inc/payments/payment-helper.php:309 msgid "Malaysian Ringgit" msgstr "Malaysischer Ringgit" -#: inc/payments/payment-helper.php:309 +#: inc/payments/payment-helper.php:314 msgid "Thai Baht" msgstr "Thailändischer Baht" -#: inc/payments/payment-helper.php:314 +#: inc/payments/payment-helper.php:319 msgid "Burundian Franc" msgstr "Burundischer Franc" -#: inc/payments/payment-helper.php:319 +#: inc/payments/payment-helper.php:324 msgid "Chilean Peso" msgstr "Chilenischer Peso" -#: inc/payments/payment-helper.php:324 +#: inc/payments/payment-helper.php:329 msgid "Djiboutian Franc" msgstr "Dschibuti-Franc" -#: inc/payments/payment-helper.php:329 +#: inc/payments/payment-helper.php:334 msgid "Guinean Franc" msgstr "Guinea-Franc" -#: inc/payments/payment-helper.php:334 +#: inc/payments/payment-helper.php:339 msgid "Comorian Franc" msgstr "Komorischer Franc" -#: inc/payments/payment-helper.php:339 +#: inc/payments/payment-helper.php:344 msgid "Malagasy Ariary" msgstr "Madagassischer Ariary" -#: inc/payments/payment-helper.php:344 +#: inc/payments/payment-helper.php:349 msgid "Paraguayan Guaraní" msgstr "Paraguayischer Guaraní" -#: inc/payments/payment-helper.php:349 +#: inc/payments/payment-helper.php:354 msgid "Rwandan Franc" msgstr "Ruandischer Franc" -#: inc/payments/payment-helper.php:354 +#: inc/payments/payment-helper.php:359 msgid "Ugandan Shilling" msgstr "Ugandischer Schilling" -#: inc/payments/payment-helper.php:359 +#: inc/payments/payment-helper.php:364 msgid "Vietnamese Đồng" msgstr "Vietnamesischer Đồng" -#: inc/payments/payment-helper.php:364 +#: inc/payments/payment-helper.php:369 msgid "Vanuatu Vatu" msgstr "Vanuatu Vatu" -#: inc/payments/payment-helper.php:369 +#: inc/payments/payment-helper.php:374 msgid "Central African CFA Franc" msgstr "Zentralafrikanischer CFA-Franc" -#: inc/payments/payment-helper.php:374 +#: inc/payments/payment-helper.php:379 msgid "West African CFA Franc" msgstr "Westafrikanischer CFA-Franc" -#: inc/payments/payment-helper.php:379 +#: inc/payments/payment-helper.php:384 msgid "CFP Franc" msgstr "CFP-Franc" -#: inc/payments/payment-helper.php:475 +#: inc/payments/payment-helper.php:480 msgid "An unknown error occurred. Please try again or contact the site administrator." msgstr "Ein unbekannter Fehler ist aufgetreten. Bitte versuchen Sie es erneut oder kontaktieren Sie den Website-Administrator." -#: inc/payments/payment-helper.php:477 +#: inc/payments/payment-helper.php:482 msgid "Payment is currently unavailable. Please contact the site administrator." msgstr "Zahlung ist derzeit nicht verfügbar. Bitte kontaktieren Sie den Website-Administrator." -#: inc/payments/payment-helper.php:478 +#: inc/payments/payment-helper.php:483 msgid "Payment is currently unavailable. Please contact the site administrator to configure the payment amount." msgstr "Zahlung ist derzeit nicht verfügbar. Bitte kontaktieren Sie den Website-Administrator, um den Zahlungsbetrag zu konfigurieren." -#: inc/payments/payment-helper.php:479 +#: inc/payments/payment-helper.php:484 msgid "Invalid payment amount" msgstr "Ungültiger Zahlungsbetrag" -#: inc/payments/payment-helper.php:480 +#: inc/payments/payment-helper.php:485 msgid "Payment amount must be at least {symbol}{amount}." msgstr "Der Zahlungsbetrag muss mindestens {symbol}{amount} betragen." -#: inc/payments/payment-helper.php:483 +#: inc/payments/payment-helper.php:488 msgid "Payment is currently unavailable. Please contact the site administrator to configure the customer name field." msgstr "Zahlung ist derzeit nicht verfügbar. Bitte kontaktieren Sie den Website-Administrator, um das Feld für den Kundennamen zu konfigurieren." -#: inc/payments/payment-helper.php:484 +#: inc/payments/payment-helper.php:489 msgid "Payment is currently unavailable. Please contact the site administrator to configure the customer email field." msgstr "Zahlung ist derzeit nicht verfügbar. Bitte kontaktieren Sie den Website-Administrator, um das Kunden-E-Mail-Feld zu konfigurieren." -#: inc/payments/payment-helper.php:485 +#: inc/payments/payment-helper.php:490 msgid "Please enter your name." msgstr "Bitte geben Sie Ihren Namen ein." -#: inc/payments/payment-helper.php:486 +#: inc/payments/payment-helper.php:491 msgid "Please enter your email." msgstr "Bitte geben Sie Ihre E-Mail-Adresse ein." -#: inc/payments/payment-helper.php:489 +#: inc/payments/payment-helper.php:494 msgid "Payment failed" msgstr "Zahlung fehlgeschlagen" -#: inc/payments/payment-helper.php:490 +#: inc/payments/payment-helper.php:495 msgid "Payment successful" msgstr "Zahlung erfolgreich" -#: inc/payments/payment-helper.php:494 -#: inc/payments/payment-helper.php:495 +#: inc/payments/payment-helper.php:499 +#: inc/payments/payment-helper.php:500 msgid "Your card was declined. Please try a different payment method or contact your bank." msgstr "Ihre Karte wurde abgelehnt. Bitte versuchen Sie eine andere Zahlungsmethode oder kontaktieren Sie Ihre Bank." -#: inc/payments/payment-helper.php:496 +#: inc/payments/payment-helper.php:501 msgid "Your card has insufficient funds. Please use a different payment method." msgstr "Ihre Karte hat unzureichende Mittel. Bitte verwenden Sie eine andere Zahlungsmethode." -#: inc/payments/payment-helper.php:497 +#: inc/payments/payment-helper.php:502 msgid "Your card was declined because it has been reported as lost. Please contact your bank." msgstr "Ihre Karte wurde abgelehnt, da sie als verloren gemeldet wurde. Bitte kontaktieren Sie Ihre Bank." -#: inc/payments/payment-helper.php:498 +#: inc/payments/payment-helper.php:503 msgid "Your card was declined because it has been reported as stolen. Please contact your bank." msgstr "Ihre Karte wurde abgelehnt, da sie als gestohlen gemeldet wurde. Bitte kontaktieren Sie Ihre Bank." -#: inc/payments/payment-helper.php:499 +#: inc/payments/payment-helper.php:504 msgid "Your card has expired. Please use a different payment method." msgstr "Ihre Karte ist abgelaufen. Bitte verwenden Sie eine andere Zahlungsmethode." -#: inc/payments/payment-helper.php:500 -#: inc/payments/payment-helper.php:521 +#: inc/payments/payment-helper.php:505 +#: inc/payments/payment-helper.php:526 msgid "Your card was declined. Please contact your bank for more information." msgstr "Ihre Karte wurde abgelehnt. Bitte kontaktieren Sie Ihre Bank für weitere Informationen." -#: inc/payments/payment-helper.php:501 +#: inc/payments/payment-helper.php:506 msgid "Your card was declined due to restrictions. Please contact your bank." msgstr "Ihre Karte wurde aufgrund von Einschränkungen abgelehnt. Bitte kontaktieren Sie Ihre Bank." -#: inc/payments/payment-helper.php:502 +#: inc/payments/payment-helper.php:507 msgid "Your card was declined due to a security violation. Please contact your bank." msgstr "Ihre Karte wurde aufgrund eines Sicherheitsverstoßes abgelehnt. Bitte kontaktieren Sie Ihre Bank." -#: inc/payments/payment-helper.php:503 +#: inc/payments/payment-helper.php:508 msgid "Your card does not support this type of purchase. Please use a different payment method." msgstr "Ihre Karte unterstützt diesen Kauf nicht. Bitte verwenden Sie eine andere Zahlungsmethode." -#: inc/payments/payment-helper.php:504 +#: inc/payments/payment-helper.php:509 msgid "A stop payment order has been placed on this card. Please contact your bank." msgstr "Eine Zahlungsstoppanweisung wurde für diese Karte erteilt. Bitte kontaktieren Sie Ihre Bank." -#: inc/payments/payment-helper.php:505 +#: inc/payments/payment-helper.php:510 msgid "A test card was used in a live environment. Please use a real card." msgstr "Eine Testkarte wurde in einer Live-Umgebung verwendet. Bitte verwenden Sie eine echte Karte." -#: inc/payments/payment-helper.php:506 +#: inc/payments/payment-helper.php:511 msgid "Your card has exceeded its withdrawal limit. Please contact your bank." msgstr "Ihre Karte hat das Abhebungslimit überschritten. Bitte kontaktieren Sie Ihre Bank." -#: inc/payments/payment-helper.php:507 +#: inc/payments/payment-helper.php:512 msgid "Your card's security code is incorrect. Please check and try again." msgstr "Der Sicherheitscode Ihrer Karte ist falsch. Bitte überprüfen Sie ihn und versuchen Sie es erneut." -#: inc/payments/payment-helper.php:508 +#: inc/payments/payment-helper.php:513 msgid "Your card number is incorrect. Please check and try again." msgstr "Ihre Kartennummer ist falsch. Bitte überprüfen Sie sie und versuchen Sie es erneut." -#: inc/payments/payment-helper.php:509 +#: inc/payments/payment-helper.php:514 msgid "Your card's security code is invalid. Please check and try again." msgstr "Der Sicherheitscode Ihrer Karte ist ungültig. Bitte überprüfen Sie ihn und versuchen Sie es erneut." -#: inc/payments/payment-helper.php:510 +#: inc/payments/payment-helper.php:515 msgid "Your card's expiration month is invalid. Please check and try again." msgstr "Das Ablaufdatum Ihrer Karte ist ungültig. Bitte überprüfen Sie es und versuchen Sie es erneut." -#: inc/payments/payment-helper.php:511 +#: inc/payments/payment-helper.php:516 msgid "Your card's expiration year is invalid. Please check and try again." msgstr "Das Ablaufjahr Ihrer Karte ist ungültig. Bitte überprüfen Sie es und versuchen Sie es erneut." -#: inc/payments/payment-helper.php:512 +#: inc/payments/payment-helper.php:517 msgid "Your card number is invalid. Please check and try again." msgstr "Ihre Kartennummer ist ungültig. Bitte überprüfen Sie sie und versuchen Sie es erneut." -#: inc/payments/payment-helper.php:515 +#: inc/payments/payment-helper.php:520 msgid "Your card is not supported for this transaction. Please use a different payment method." msgstr "Ihre Karte wird für diese Transaktion nicht unterstützt. Bitte verwenden Sie eine andere Zahlungsmethode." -#: inc/payments/payment-helper.php:516 +#: inc/payments/payment-helper.php:521 msgid "Your card does not support the currency used for this transaction. Please use a different payment method." msgstr "Ihre Karte unterstützt die für diese Transaktion verwendete Währung nicht. Bitte verwenden Sie eine andere Zahlungsmethode." -#: inc/payments/payment-helper.php:517 +#: inc/payments/payment-helper.php:522 msgid "A transaction with identical details was submitted recently. Please wait a moment and try again." msgstr "Eine Transaktion mit identischen Details wurde kürzlich eingereicht. Bitte warten Sie einen Moment und versuchen Sie es erneut." -#: inc/payments/payment-helper.php:518 +#: inc/payments/payment-helper.php:523 msgid "The account associated with your card is invalid. Please contact your bank." msgstr "Das Konto, das mit Ihrer Karte verknüpft ist, ist ungültig. Bitte kontaktieren Sie Ihre Bank." -#: inc/payments/payment-helper.php:519 +#: inc/payments/payment-helper.php:524 msgid "The payment amount is invalid. Please contact the site administrator." msgstr "Der Zahlungsbetrag ist ungültig. Bitte kontaktieren Sie den Website-Administrator." -#: inc/payments/payment-helper.php:522 +#: inc/payments/payment-helper.php:527 msgid "Your card information needs to be updated. Please contact your bank." msgstr "Ihre Karteninformationen müssen aktualisiert werden. Bitte kontaktieren Sie Ihre Bank." -#: inc/payments/payment-helper.php:523 +#: inc/payments/payment-helper.php:528 msgid "The card cannot be used for this transaction. Please contact your bank." msgstr "Die Karte kann für diese Transaktion nicht verwendet werden. Bitte kontaktieren Sie Ihre Bank." -#: inc/payments/payment-helper.php:524 +#: inc/payments/payment-helper.php:529 msgid "The transaction is not permitted. Please contact your bank." msgstr "Die Transaktion ist nicht erlaubt. Bitte kontaktieren Sie Ihre Bank." -#: inc/payments/payment-helper.php:525 +#: inc/payments/payment-helper.php:530 msgid "Your card requires offline PIN authentication. Please try again." msgstr "Ihre Karte erfordert eine Offline-PIN-Authentifizierung. Bitte versuchen Sie es erneut." -#: inc/payments/payment-helper.php:526 +#: inc/payments/payment-helper.php:531 msgid "Your card requires PIN authentication. Please try again." msgstr "Ihre Karte erfordert eine PIN-Authentifizierung. Bitte versuchen Sie es erneut." -#: inc/payments/payment-helper.php:527 +#: inc/payments/payment-helper.php:532 msgid "You have exceeded the maximum number of PIN attempts. Please contact your bank." msgstr "Sie haben die maximale Anzahl von PIN-Versuchen überschritten. Bitte kontaktieren Sie Ihre Bank." -#: inc/payments/payment-helper.php:528 +#: inc/payments/payment-helper.php:533 msgid "All authorizations for this card have been revoked. Please contact your bank." msgstr "Alle Autorisierungen für diese Karte wurden widerrufen. Bitte kontaktieren Sie Ihre Bank." -#: inc/payments/payment-helper.php:529 +#: inc/payments/payment-helper.php:534 msgid "The authorization for this transaction has been revoked. Please try again." msgstr "Die Autorisierung für diese Transaktion wurde widerrufen. Bitte versuchen Sie es erneut." -#: inc/payments/payment-helper.php:530 +#: inc/payments/payment-helper.php:535 msgid "This transaction is not allowed. Please contact your bank." msgstr "Diese Transaktion ist nicht erlaubt. Bitte kontaktieren Sie Ihre Bank." -#: inc/payments/payment-helper.php:532 +#: inc/payments/payment-helper.php:537 msgid "Your card was declined. Your request was in live mode, but used a known test card." msgstr "Ihre Karte wurde abgelehnt. Ihre Anfrage war im Live-Modus, aber es wurde eine bekannte Testkarte verwendet." -#: inc/payments/payment-helper.php:533 +#: inc/payments/payment-helper.php:538 msgid "Your card was declined. Your request was in test mode, but used a non test card. For a list of valid test cards, visit: https://stripe.com/docs/testing." msgstr "Ihre Karte wurde abgelehnt. Ihre Anfrage war im Testmodus, aber es wurde eine Nicht-Testkarte verwendet. Für eine Liste gültiger Testkarten besuchen Sie: https://stripe.com/docs/testing." -#: inc/payments/payment-helper.php:536 +#: inc/payments/payment-helper.php:541 msgid "SureForms Subscription" msgstr "SureForms-Abonnement" -#: inc/payments/payment-helper.php:537 +#: inc/payments/payment-helper.php:542 msgid "SureForms Payment" msgstr "SureForms Zahlung" -#: inc/payments/payment-helper.php:539 +#: inc/payments/payment-helper.php:544 msgid "SureForms Customer" msgstr "SureForms-Kunde" -#: inc/payments/payment-helper.php:559 +#: inc/payments/payment-helper.php:564 msgid "Unknown error" msgstr "Unbekannter Fehler" @@ -14977,74 +14978,74 @@ msgstr "Erstellung des doppelten Formulars fehlgeschlagen." #: inc/payments/front-end.php:97 #: inc/payments/front-end.php:298 -#: inc/payments/payment-helper.php:589 +#: inc/payments/payment-helper.php:594 msgid "Invalid form configuration." msgstr "Ungültige Formular-Konfiguration." -#: inc/payments/payment-helper.php:597 +#: inc/payments/payment-helper.php:602 msgid "Payment configuration not found for this form." msgstr "Zahlungskonfiguration für dieses Formular nicht gefunden." #. translators: 1: expected currency, 2: received currency -#: inc/payments/payment-helper.php:608 +#: inc/payments/payment-helper.php:613 #, php-format msgid "Currency mismatch: expected %1$s, received %2$s." msgstr "Währungsabweichung: erwartet %1$s, erhalten %2$s." #. translators: 1: expected amount with currency -#: inc/payments/payment-helper.php:625 +#: inc/payments/payment-helper.php:630 #, php-format msgid "Payment amount must be exactly %1$s." msgstr "Der Zahlungsbetrag muss genau %1$s betragen." #. translators: 1: minimum amount with currency -#: inc/payments/payment-helper.php:636 +#: inc/payments/payment-helper.php:641 #, php-format msgid "Payment amount must be at least %1$s." msgstr "Der Zahlungsbetrag muss mindestens %1$s betragen." -#: inc/payments/payment-helper.php:712 +#: inc/payments/payment-helper.php:717 msgid "Invalid payment verification parameters." msgstr "Ungültige Zahlungsüberprüfungsparameter." -#: inc/payments/payment-helper.php:723 +#: inc/payments/payment-helper.php:728 msgid "Payment verification failed. Invalid payment intent." msgstr "Zahlungsüberprüfung fehlgeschlagen. Ungültige Zahlungsabsicht." -#: inc/payments/payment-helper.php:809 -#: inc/payments/payment-helper.php:947 +#: inc/payments/payment-helper.php:814 +#: inc/payments/payment-helper.php:952 msgid "Variable amount field configuration not found." msgstr "Konfiguration des variablen Betragsfeldes nicht gefunden." -#: inc/payments/payment-helper.php:830 +#: inc/payments/payment-helper.php:835 msgid "No payment options are configured for this field." msgstr "Für dieses Feld sind keine Zahlungsoptionen konfiguriert." #. translators: %s: currency code -#: inc/payments/payment-helper.php:856 +#: inc/payments/payment-helper.php:861 msgid "Invalid payment amount. Please select a valid amount from the available options." msgstr "Ungültiger Zahlungsbetrag. Bitte wählen Sie einen gültigen Betrag aus den verfügbaren Optionen aus." #. translators: %1$s: expected amount, %2$s: payment amount -#: inc/payments/payment-helper.php:891 +#: inc/payments/payment-helper.php:896 msgid "Payment configuration not found." msgstr "Zahlungskonfiguration nicht gefunden." #. translators: %1$s: expected amount, %2$s: payment amount -#: inc/payments/payment-helper.php:907 -#: inc/payments/payment-helper.php:959 -#: inc/payments/payment-helper.php:995 +#: inc/payments/payment-helper.php:912 +#: inc/payments/payment-helper.php:964 +#: inc/payments/payment-helper.php:1000 #, php-format msgid "Payment amount mismatch. Expected %1$s, received %2$s." msgstr "Zahlungsbetrag stimmt nicht überein. Erwartet %1$s, erhalten %2$s." -#: inc/payments/payment-helper.php:936 -#: inc/payments/payment-helper.php:986 +#: inc/payments/payment-helper.php:941 +#: inc/payments/payment-helper.php:991 msgid "Variable amount field value is required." msgstr "Der Wert des variablen Betragsfeldes ist erforderlich." #. translators: %1$s: minimum amount, %2$s: payment amount -#: inc/payments/payment-helper.php:1007 +#: inc/payments/payment-helper.php:1012 #, php-format msgid "Payment amount below minimum. Minimum: %1$s, received %2$s." msgstr "Zahlungsbetrag unter dem Minimum. Minimum: %1$s, erhalten %2$s." @@ -15130,7 +15131,7 @@ msgstr "Zahlungsgateway nicht gefunden." msgid "Refund processing is not supported for %s gateway." msgstr "Die Rückerstattungsverarbeitung wird für das %s-Gateway nicht unterstützt." -#: inc/payments/payment-helper.php:969 +#: inc/payments/payment-helper.php:974 msgid "Number field configuration not found." msgstr "Konfiguration des Zahlenfelds nicht gefunden." @@ -15249,12 +15250,12 @@ msgid "Stripe Settings" msgstr "Stripe-Einstellungen" #. translators: %1$s: SureForms version, %2$s: SureForms Pro Plugin Name, %3$s: SureForms Pro Version. -#: admin/admin.php:1376 +#: admin/admin.php:1377 #, php-format msgid "SureForms %1$s requires minimum %2$s %3$s to work properly. Please update to the latest version." msgstr "SureForms %1$s erfordert mindestens %2$s %3$s, um ordnungsgemäß zu funktionieren. Bitte aktualisieren Sie auf die neueste Version." -#: admin/admin.php:1389 +#: admin/admin.php:1390 msgid "Update Now" msgstr "Jetzt aktualisieren" @@ -15316,40 +15317,40 @@ msgstr "Wählen Sie die Position des Währungssymbols relativ zum Betrag aus." msgid "Learn" msgstr "Lernen" -#: admin/admin.php:1502 +#: admin/admin.php:1503 msgid "Amazing! SureForms is powering your forms and submissions - let's keep growing together!" msgstr "Erstaunlich! SureForms treibt Ihre Formulare und Einsendungen an - lassen Sie uns gemeinsam weiter wachsen!" -#: admin/admin.php:1503 +#: admin/admin.php:1504 msgid "If SureForms has been helpful, would you mind taking a moment to leave a 5-star review on WordPress.org?" msgstr "Wenn SureForms hilfreich war, würden Sie sich einen Moment Zeit nehmen, um eine 5-Sterne-Bewertung auf WordPress.org zu hinterlassen?" -#: admin/admin.php:1506 -#: admin/admin.php:1550 +#: admin/admin.php:1507 +#: admin/admin.php:1551 msgid "Maybe later" msgstr "Vielleicht später" -#: admin/admin.php:1507 +#: admin/admin.php:1508 msgid "I already did" msgstr "Ich habe es bereits getan" -#: admin/admin.php:1546 +#: admin/admin.php:1547 msgid "SureForms is ready to power your forms — explore what's possible!" msgstr "SureForms ist bereit, Ihre Formulare zu unterstützen — entdecken Sie, was möglich ist!" -#: admin/admin.php:1547 +#: admin/admin.php:1548 msgid "Manage your forms, track submissions, and discover features like AI Form Builder, payment integrations, and more from the SureForms dashboard." msgstr "Verwalten Sie Ihre Formulare, verfolgen Sie Einsendungen und entdecken Sie Funktionen wie den AI Form Builder, Zahlungsintegrationen und mehr im SureForms-Dashboard." -#: admin/admin.php:1549 +#: admin/admin.php:1550 msgid "Go to Dashboard" msgstr "Zum Dashboard gehen" -#: admin/admin.php:1551 +#: admin/admin.php:1552 msgid "I already know" msgstr "Ich weiß schon" -#: admin/admin.php:1631 +#: admin/admin.php:1632 msgid "Invalid parameters." msgstr "Ungültige Parameter." @@ -15739,7 +15740,7 @@ msgstr "Dieses Formular ist noch nicht verfügbar. Schauen Sie nach der geplante #: inc/form-submit.php:99 #: inc/form-submit.php:400 #: inc/form-submit.php:445 -#: inc/form-submit.php:966 +#: inc/form-submit.php:968 #: inc/payments/front-end.php:77 #: inc/payments/front-end.php:258 #: inc/rest-api.php:98 @@ -15788,19 +15789,19 @@ msgstr "Bitte überprüfen Sie das Formular auf Fehler." msgid "Your submission was flagged as spam. Please try again." msgstr "Ihre Einsendung wurde als Spam markiert. Bitte versuchen Sie es erneut." -#: inc/form-submit.php:649 +#: inc/form-submit.php:651 msgid "Unable to submit form. Please try again." msgstr "Formular kann nicht übermittelt werden. Bitte versuchen Sie es erneut." -#: inc/form-submit.php:901 +#: inc/form-submit.php:903 msgid "No SMTP plugin detected. Please configure an SMTP plugin to enable email sending." msgstr "Kein SMTP-Plugin erkannt. Bitte konfigurieren Sie ein SMTP-Plugin, um das Senden von E-Mails zu ermöglichen." -#: inc/form-submit.php:902 +#: inc/form-submit.php:904 msgid "Email sending failed for an unknown reason." msgstr "Das Senden der E-Mail ist aus einem unbekannten Grund fehlgeschlagen." -#: inc/form-submit.php:941 +#: inc/form-submit.php:943 msgid "No emails were sent." msgstr "Es wurden keine E-Mails gesendet." @@ -15953,31 +15954,31 @@ msgstr "Zahlungen können nicht gelöscht werden. Bitte versuchen Sie es erneut. msgid "Unable to process refund. Please try again." msgstr "Rückerstattung kann nicht bearbeitet werden. Bitte versuchen Sie es erneut." -#: inc/payments/payment-helper.php:491 +#: inc/payments/payment-helper.php:496 msgid "Unable to complete payment. Please try again or contact support." msgstr "Zahlung konnte nicht abgeschlossen werden. Bitte versuchen Sie es erneut oder kontaktieren Sie den Support." -#: inc/payments/payment-helper.php:513 +#: inc/payments/payment-helper.php:518 msgid "Unable to process card. Please try again." msgstr "Karte kann nicht verarbeitet werden. Bitte versuchen Sie es erneut." -#: inc/payments/payment-helper.php:514 +#: inc/payments/payment-helper.php:519 msgid "Unable to process transaction. Please try again." msgstr "Transaktion konnte nicht verarbeitet werden. Bitte versuchen Sie es erneut." -#: inc/payments/payment-helper.php:520 +#: inc/payments/payment-helper.php:525 msgid "Unable to reach card issuer. Please try again later." msgstr "Kartenherausgeber nicht erreichbar. Bitte versuchen Sie es später erneut." -#: inc/payments/payment-helper.php:531 +#: inc/payments/payment-helper.php:536 msgid "Unable to process transaction. Please try again later." msgstr "Transaktion kann nicht verarbeitet werden. Bitte versuchen Sie es später erneut." -#: inc/payments/payment-helper.php:541 +#: inc/payments/payment-helper.php:546 msgid "Complete the form to view the amount." msgstr "Füllen Sie das Formular aus, um den Betrag anzuzeigen." -#: inc/payments/payment-helper.php:542 +#: inc/payments/payment-helper.php:547 msgid "Unable to create payment. Please contact support." msgstr "Zahlung konnte nicht erstellt werden. Bitte kontaktieren Sie den Support." @@ -16693,7 +16694,7 @@ msgid "Invalid webhook signature." msgstr "Ungültige Webhook-Signatur." #: admin/admin.php:426 -#: admin/admin.php:974 +#: admin/admin.php:975 #: assets/build/formEditor.js:172 msgid "Quizzes" msgstr "Quizze" @@ -16707,11 +16708,11 @@ msgstr "Quiz-Einträge" msgid "New" msgstr "Neu" -#: inc/form-submit.php:975 +#: inc/form-submit.php:977 msgid "Invalid form." msgstr "Ungültiges Formular." -#: inc/form-submit.php:980 +#: inc/form-submit.php:982 msgid "Too many requests. Please try again shortly." msgstr "Zu viele Anfragen. Bitte versuchen Sie es in Kürze erneut." @@ -17225,7 +17226,7 @@ msgstr "Wählen Sie dies, um ein Quiz mit bewerteten Fragen und benoteten Ergebn #: admin/admin.php:458 #: admin/admin.php:459 -#: admin/admin.php:979 +#: admin/admin.php:980 msgid "Survey Reports" msgstr "Umfrageberichte" @@ -17491,7 +17492,7 @@ msgstr "Helfen Sie mit, die Zukunft von SureForms zu gestalten" #: assets/build/settings.js:172 msgid "Share how you use the plugin so we can build features that matter, fix issues faster, and make smarter decisions. " -msgstr "Teilen Sie uns mit, wie Sie das Plugin verwenden, damit wir Funktionen entwickeln können, die wichtig sind, Probleme schneller beheben und klügere Entscheidungen treffen können. " +msgstr "Teilen Sie uns mit, wie Sie das Plugin verwenden, damit wir Funktionen entwickeln können, die wichtig sind, Probleme schneller beheben und klügere Entscheidungen treffen können." #: assets/build/settings.js:172 msgid "Enable Google Address Autocomplete" @@ -17569,6 +17570,14 @@ msgstr "Live-Ergebnisse den Befragten anzeigen" msgid "Perfect for feedback, polls, and research" msgstr "Perfekt für Feedback, Umfragen und Forschung" +#: inc/payments/payment-helper.php:259 +msgid "Polish Złoty" +msgstr "Polnischer Złoty" + +#: assets/build/blocks.js:172 +msgid "Dynamic Default Value" +msgstr "Dynamischer Standardwert" + #: inc/post-types.php:205 msgctxt "post type general name" msgid "Forms" diff --git a/languages/sureforms-es_ES-4b62e3f004dea2c587b5a3069263d994.json b/languages/sureforms-es_ES-4b62e3f004dea2c587b5a3069263d994.json index 728dc9116..370d58025 100644 --- a/languages/sureforms-es_ES-4b62e3f004dea2c587b5a3069263d994.json +++ b/languages/sureforms-es_ES-4b62e3f004dea2c587b5a3069263d994.json @@ -1 +1 @@ -{"translation-revision-date":"2024-12-13T16:34:28+00:00","generator":"WP-CLI\/2.12.0","source":"assets\/build\/blocks.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"en","plural-forms":"nplurals=2; plural=(n != 1);"},"Settings":["Configuraciones"],"Search":["Buscar"],"Fields":["Campos"],"Image":["Imagen"],"Submit":["Enviar"],"Required":["Requerido"],"Form Title":["T\u00edtulo del formulario"],"Show":["Mostrar"],"Hide":["Ocultar"],"Edit Form":["Editar formulario"],"Icon":["Icono"],"Desktop":["Escritorio"],"Medium":["Medio"],"Mobile":["M\u00f3vil"],"Repeat":["Repetir"],"Scroll":["Desplazar"],"Tablet":["Tableta"],"Basic":["B\u00e1sico"],"(no title)":["(sin t\u00edtulo)"],"Select a Form":["Selecciona un formulario"],"No forms found\u2026":["No se encontraron formularios\u2026"],"Choose":["Elegir"],"Create New":["Crear nuevo"],"Change Form":["Cambiar formulario"],"This form has been deleted or is unavailable.":["Este formulario ha sido eliminado o no est\u00e1 disponible."],"Form Settings":["Configuraci\u00f3n del formulario"],"Show Form Title on this Page":["Mostrar el t\u00edtulo del formulario en esta p\u00e1gina"],"Note: For editing SureForms, please refer to the SureForms Editor - ":["Nota: Para editar SureForms, consulte el Editor de SureForms -"],"Field preview":["Vista previa del campo"],"General":["General"],"Style":["Estilo"],"Advanced":["Avanzado"],"No tags available":["No hay etiquetas disponibles"],"Device":["Dispositivo"],"Select Shortcodes":["Seleccionar c\u00f3digos cortos"],"Page Break Label":["Etiqueta de salto de p\u00e1gina"],"Next":["Siguiente"],"Back":["Atr\u00e1s"],"Reset":["Restablecer"],"Generic tags":["Etiquetas gen\u00e9ricas"],"Pixel":["P\u00edxel"],"Em":["Em"],"Select Units":["Seleccionar unidades"],"%s units":["%s unidades"],"Margin":["Margen"],"Attributes":["Atributos"],"Input Pattern":["Patr\u00f3n de entrada"],"None":["Ninguno"],"(###) ###-####":["(###) ###-####"],"(##) ####-####":["(##) ####-####"],"27\/08\/2024":["27\/08\/2024"],"23:59:59":["23:59:59"],"27\/08\/2024 23:59:59":["27\/08\/2024 23:59:59"],"Custom":["Personalizado"],"Custom Mask":["M\u00e1scara personalizada"],"Please check the documentation to manage custom input pattern ":["Por favor, consulte la documentaci\u00f3n para gestionar el patr\u00f3n de entrada personalizado"],"here":["aqu\u00ed"],"Default Value":["Valor predeterminado"],"Error Message":["Mensaje de error"],"Help Text":["Texto de ayuda"],"Number Format":["Formato de n\u00famero"],"US Style (Eg: 9,999.99)":["Estilo estadounidense (Ej: 9,999.99)"],"EU Style (Eg: 9.999,99)":["Estilo UE (Ej: 9.999,99)"],"Minimum Value":["Valor m\u00ednimo"],"Maximum Value":["Valor m\u00e1ximo"],"Please check the Minimum and Maximum value":["Por favor, verifica el valor M\u00ednimo y M\u00e1ximo"],"Enable Email Confirmation":["Habilitar confirmaci\u00f3n de correo electr\u00f3nico"],"Checked by Default":["Marcado por defecto"],"Error message":["Mensaje de error"],"Checked by default":["Marcado por defecto"],"Please add a option props to MultiButtonsControl":["Por favor, a\u00f1ade una opci\u00f3n de propiedades a MultiButtonsControl"],"Icon Library":["Biblioteca de Iconos"],"Close":["Cerrar"],"All Icons":["Todos los iconos"],"Other":["Otro"],"No Icons Found":["No se encontraron iconos"],"Insert Icon":["Insertar icono"],"Change Icon":["Cambiar \u00edcono"],"Choose Icon":["Elegir \u00edcono"],"Confirm":["Confirmar"],"Cancel":["Cancelar"],"Processing\u2026":["Procesando\u2026"],"Select Video":["Seleccionar video"],"Change Video":["Cambiar video"],"Select Lottie Animation":["Seleccionar animaci\u00f3n Lottie"],"Change Lottie Animation":["Cambiar animaci\u00f3n Lottie"],"Upload SVG":["Subir SVG"],"Change SVG":["Cambiar SVG"],"Select Image":["Seleccionar imagen"],"Change Image":["Cambiar imagen"],"Upload SVG?":["\u00bfSubir SVG?"],"Upload SVG can be potentially risky. Are you sure?":["Subir SVG puede ser potencialmente arriesgado. \u00bfEst\u00e1s seguro?"],"Upload Anyway":["Subir de todos modos"],"Bulk Add":["Agregar en masa"],"Bulk Add Options":["Agregar Opciones en Masa"],"Enter each option on a new line.":["Ingrese cada opci\u00f3n en una nueva l\u00ednea."],"Insert Options":["Insertar opciones"],"Full Width":["Ancho completo"],"Option Type":["Tipo de opci\u00f3n"],"Edit Options":["Opciones de edici\u00f3n"],"Add New Option":["Agregar nueva opci\u00f3n"],"ADD":["A\u00d1ADIR"],"Enable Auto Country Detection":["Habilitar la detecci\u00f3n autom\u00e1tica de pa\u00eds"],"%s Width":["Ancho %s"],"Upgrade":["Actualizar"],"Clear":["Claro"],"Select Color":["Seleccionar color"],"Primary Color":["Color primario"],"Text Color":["Color del texto"],"Field Spacing":["Espaciado de campo"],"Small":["Peque\u00f1o"],"Large":["Grande"],"Left":["Izquierda"],"Center":["Centro"],"Right":["Correcto"],"Color":["Color"],"Background Color":["Color de fondo"],"Auto":["Auto"],"Default":["Predeterminado"],"Normal":["Normal"],"%":["%"],"Top":["Superior"],"Bottom":["Fondo"],"Width":["Ancho"],"Size":["Tama\u00f1o"],"EM":["EM"],"Padding":["Relleno"],"Color 1":["Color 1"],"Color 2":["Color 2"],"Type":["Tipo"],"Linear":["Lineal"],"Radial":["Radial"],"Location 1":["Ubicaci\u00f3n 1"],"Location 2":["Ubicaci\u00f3n 2"],"Angle":["\u00c1ngulo"],"Classic":["Cl\u00e1sico"],"Gradient":["Gradiente"],"Horizontal":["Horizontal"],"Vertical":["Vertical"],"Background":["Antecedentes"],"Cover":["Cubrir"],"Contain":["Contener"],"Layout":["Dise\u00f1o"],"Overlay":["Superposici\u00f3n"],"No Repeat":["No repetir"],"Overlay Opacity":["Opacidad de superposici\u00f3n"],"Conditional Logic":["L\u00f3gica condicional"],"Upgrade to the SureForms Starter Plan to create dynamic forms that adapt based on user input, offering a personalised and efficient form experience.":["Actualiza al Plan Starter de SureForms para crear formularios din\u00e1micos que se adaptan seg\u00fan la entrada del usuario, ofreciendo una experiencia de formulario personalizada y eficiente."],"Enable Conditional Logic":["Habilitar l\u00f3gica condicional"],"this field if":["este campo si"],"Configure Conditions":["Configurar condiciones"],"Premium":["Premium"],"Overlay Type":["Tipo de superposici\u00f3n"],"Image Overlay Color":["Color de superposici\u00f3n de imagen"],"Image Position":["Posici\u00f3n de la imagen"],"Attachment":["Adjunto"],"Fixed":["Fijo"],"Blend Mode":["Modo de fusi\u00f3n"],"Multiply":["Multiplicar"],"Screen":["Pantalla"],"Darken":["Oscurecer"],"Lighten":["Aligerar"],"Color Dodge":["Sobreexponer color"],"Saturation":["Saturaci\u00f3n"],"Repeat-x":["Repetir-x"],"Repeat-y":["Repetir-y"],"PX":["PX"],"Button":["Bot\u00f3n"],"Prefix Label":["Etiqueta de prefijo"],"Suffix Label":["Etiqueta de sufijo"],"Border Radius":["Radio de borde"],"Form Theme":["Tema del formulario"],"Select Gradient":["Seleccionar degradado"],"Unlock Conditional Logic Editor":["Desbloquear el Editor de L\u00f3gica Condicional"],"Rich Text Editor":["Editor de texto enriquecido"],"Read Only":["Solo lectura"],"Select Country":["Seleccionar pa\u00eds"],"Default Country":["Pa\u00eds predeterminado"],"Subscription":["Suscripci\u00f3n"],"One Time":["Una vez"],"Unique Entry":["Entrada \u00danica"],"Maximum Characters":["M\u00e1ximo de caracteres"],"Textarea Height":["Altura del \u00e1rea de texto"],"Minimum Selections":["Selecciones M\u00ednimas"],"Maximum Selections":["Selecciones M\u00e1ximas"],"Add Numeric Values to Options":["Agregar valores num\u00e9ricos a las opciones"],"Single Choice Only":["Solo una opci\u00f3n"],"Enable Dropdown Search":["Habilitar b\u00fasqueda desplegable"],"Allow Multiple":["Permitir m\u00faltiples"],"%1$s fields are required. Please configure these fields in the block settings.":["Se requieren los campos %1$s. Por favor, configure estos campos en la configuraci\u00f3n del bloque."],"%1$s field is required. Please configure this field in the block settings.":["El campo %1$s es obligatorio. Por favor, configure este campo en la configuraci\u00f3n del bloque."],"You need to configure a payment account to collect payments from this form. Please configure your payment provider to proceed.":["Necesitas configurar una cuenta de pago para recibir pagos de este formulario. Por favor, configura tu proveedor de pagos para continuar."],"Configure Payment Account":["Configurar cuenta de pago"],"This is a placeholder for the Payment block. The actual payment fields for your configured payment provider(s) will only appear when you preview or publish the form.":["Este es un marcador de posici\u00f3n para el bloque de Pago. Los campos de pago reales para su(s) proveedor(es) de pago configurado(s) solo aparecer\u00e1n cuando previsualice o publique el formulario."],"2 Payments":["2 Pagos"],"3 Payments":["3 Pagos"],"4 Payments":["4 Pagos"],"5 Payments":["5 Pagos"],"Never":["Nunca"],"Stop Subscription After":["Detener suscripci\u00f3n despu\u00e9s"],"Choose when to automatically stop the subscription":["Elige cu\u00e1ndo detener autom\u00e1ticamente la suscripci\u00f3n"],"Number of Payments":["N\u00famero de pagos"],"Enter a number between 1 to 100":["Introduce un n\u00famero entre 1 y 100"],"Form Field":["Campo de formulario"],"Payment Type":["Tipo de pago"],"Subscription Plan Name":["Nombre del Plan de Suscripci\u00f3n"],"Billing Interval":["Intervalo de facturaci\u00f3n"],"Daily":["Diario"],"Weekly":["Semanal"],"Monthly":["Mensual"],"Quarterly":["Trimestral"],"Yearly":["Anual"],"Amount Type":["Tipo de Monto"],"Fixed Amount":["Cantidad Fija"],"Dynamic Amount":["Cantidad Din\u00e1mica"],"Choose whether to charge a fixed amount or charge the amount based on user input in other form fields.":["Elija si desea cobrar una cantidad fija o cobrar la cantidad basada en la entrada del usuario en otros campos del formulario."],"Set the exact amount you want to charge. Users won\u2019t be able to change it":["Establece la cantidad exacta que deseas cobrar. Los usuarios no podr\u00e1n cambiarla"],"Choose Amount Field":["Elegir campo de cantidad"],"Select a field\u2026":["Seleccione un campo\u2026"],"Pick a field from your form like a number, dropdown, or multichoice whose value should decide the payment amount.":["Elige un campo de tu formulario como un n\u00famero, un desplegable o una opci\u00f3n m\u00faltiple cuyo valor deba decidir el monto del pago."],"Minimum Amount":["Cantidad m\u00ednima"],"Set the minimum amount users can enter (0 for no minimum)":["Establezca la cantidad m\u00ednima que los usuarios pueden ingresar (0 para sin m\u00ednimo)"],"Customer Name Field (Required)":["Campo de Nombre del Cliente (Obligatorio)"],"Customer Name Field (Optional)":["Campo de Nombre del Cliente (Opcional)"],"Select the input field that contains the customer name (Required for subscriptions)":["Seleccione el campo de entrada que contiene el nombre del cliente (Requerido para suscripciones)"],"Select the input field that contains the customer name":["Seleccione el campo de entrada que contiene el nombre del cliente"],"Customer Email Field (Required)":["Campo de correo electr\u00f3nico del cliente (obligatorio)"],"Select the email field that contains the customer email":["Seleccione el campo de correo electr\u00f3nico que contiene el correo electr\u00f3nico del cliente"],"Payment":["Pago"],"%s - Order ID":["%s - ID de pedido"],"%s - Amount":["%s - Cantidad"],"%s - Customer Email":["%s - Correo Electr\u00f3nico del Cliente"],"%s - Customer Name":["%s - Nombre del Cliente"],"%s - Status":["%s - Estado"],"Button Alignment":["Alineaci\u00f3n del bot\u00f3n"],"Placeholder":["Marcador de posici\u00f3n"],"Preselect this option":["Preselecciona esta opci\u00f3n"],"Restrict Country Codes":["Restringir c\u00f3digos de pa\u00eds"],"Restriction Type":["Tipo de restricci\u00f3n"],"Allow":["Permitir"],"Block":["Bloque"],"Select Allowed Countries":["Seleccionar pa\u00edses permitidos"],"Choose countries\u2026":["Elige pa\u00edses\u2026"],"Choose which country codes users can select in the phone number field. Leave empty to allow all country codes.":["Elija qu\u00e9 c\u00f3digos de pa\u00eds pueden seleccionar los usuarios en el campo del n\u00famero de tel\u00e9fono. Deje vac\u00edo para permitir todos los c\u00f3digos de pa\u00eds."],"Select Blocked Countries":["Seleccionar pa\u00edses bloqueados"],"These countries will be hidden from the dropdown.":["Estos pa\u00edses se ocultar\u00e1n del men\u00fa desplegable."],"Bulk Edit":["Edici\u00f3n masiva"],"Select Layout":["Seleccionar dise\u00f1o"],"Number of Columns":["N\u00famero de columnas"],"Validation Message for Duplicate":["Mensaje de validaci\u00f3n para duplicado"],"Click here to insert a form":["Haga clic aqu\u00ed para insertar un formulario"],"Inherit Form's Original Style":["Heredar el estilo original del formulario"],"Text on Primary":["Texto en Primario"],"%s - Description":["%s - Descripci\u00f3n"],"Upgrade to Unlock":["Actualiza para desbloquear"],"Custom (Premium)":["Personalizado (Premium)"],"Select a theme style for this form embed.":["Seleccione un estilo de tema para este formulario incrustado."],"Colors":["Colores"],"Advanced Styling":["Estilo Avanzado"],"Unlock Custom Styling":["Desbloquear estilo personalizado"],"Switch to Custom Mode to take full control of your form's design and spacing.":["Cambia a Modo Personalizado para tener control total sobre el dise\u00f1o y el espaciado de tu formulario."],"Full color control (buttons, fields, text)":["Control total del color (botones, campos, texto)"],"Row and column gap control":["Control de separaci\u00f3n de filas y columnas"],"Field spacing and layout precision":["Precisi\u00f3n en el espaciado y dise\u00f1o de campos"],"Complete button styling":["Estilo completo del bot\u00f3n"],"Payment Description":["Descripci\u00f3n del pago"],"Shown on payment receipts and in your payment dashboard (Stripe and PayPal). Leave blank to use the default.":["Se muestra en los recibos de pago y en su panel de pagos (Stripe y PayPal). Deje en blanco para usar el valor predeterminado."],"Slug":["Babosa"],"Auto-generated on save":["Generado autom\u00e1ticamente al guardar"],"This slug is already used by another field. It will revert to the previous value.":["Este slug ya est\u00e1 siendo utilizado por otro campo. Volver\u00e1 al valor anterior."],"Changing the slug may break form submissions, conditional logic, integrations, or any other feature currently referencing this slug. You will need to update all such references manually.":["Cambiar el slug puede romper los env\u00edos de formularios, la l\u00f3gica condicional, las integraciones o cualquier otra caracter\u00edstica que actualmente haga referencia a este slug. Necesitar\u00e1s actualizar todas esas referencias manualmente."],"Field Slug":["Identificador de campo"],"Location Services":["Servicios de ubicaci\u00f3n"],"Unlock Address Autocomplete":["Desbloquear la autocompletaci\u00f3n de direcciones"],"Upgrade to enable Google Address Autocomplete with interactive map preview, making address entry faster and more accurate for your users.":["Actualiza para habilitar la autocompletaci\u00f3n de direcciones de Google con vista previa de mapa interactivo, haciendo que la entrada de direcciones sea m\u00e1s r\u00e1pida y precisa para tus usuarios."],"Enable Google Autocomplete":["Habilitar la autocompletar de Google"],"Show Interactive Map":["Mostrar mapa interactivo"],"Payments Per Page":["Pagos por p\u00e1gina"],"Show Subscriptions Section":["Mostrar secci\u00f3n de suscripciones"],"Show a dedicated subscriptions section above payment history.":["Muestra una secci\u00f3n dedicada a suscripciones por encima del historial de pagos."],"Payment Dashboard":["Panel de Pagos"],"View your payments and manage subscriptions in a single dashboard.":["Vea sus pagos y gestione sus suscripciones en un solo panel."]}}} \ No newline at end of file +{"translation-revision-date":"2024-12-13T16:34:28+00:00","generator":"WP-CLI\/2.12.0","source":"assets\/build\/blocks.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"en","plural-forms":"nplurals=2; plural=(n != 1);"},"Settings":["Configuraciones"],"Search":["Buscar"],"Fields":["Campos"],"Image":["Imagen"],"Submit":["Enviar"],"Required":["Requerido"],"Form Title":["T\u00edtulo del formulario"],"Show":["Mostrar"],"Hide":["Ocultar"],"Edit Form":["Editar formulario"],"Icon":["Icono"],"Desktop":["Escritorio"],"Medium":["Medio"],"Mobile":["M\u00f3vil"],"Repeat":["Repetir"],"Scroll":["Desplazar"],"Tablet":["Tableta"],"Basic":["B\u00e1sico"],"(no title)":["(sin t\u00edtulo)"],"Select a Form":["Selecciona un formulario"],"No forms found\u2026":["No se encontraron formularios\u2026"],"Choose":["Elegir"],"Create New":["Crear nuevo"],"Change Form":["Cambiar formulario"],"This form has been deleted or is unavailable.":["Este formulario ha sido eliminado o no est\u00e1 disponible."],"Form Settings":["Configuraci\u00f3n del formulario"],"Show Form Title on this Page":["Mostrar el t\u00edtulo del formulario en esta p\u00e1gina"],"Note: For editing SureForms, please refer to the SureForms Editor - ":["Nota: Para editar SureForms, consulte el Editor de SureForms -"],"Field preview":["Vista previa del campo"],"General":["General"],"Style":["Estilo"],"Advanced":["Avanzado"],"No tags available":["No hay etiquetas disponibles"],"Device":["Dispositivo"],"Select Shortcodes":["Seleccionar c\u00f3digos cortos"],"Page Break Label":["Etiqueta de salto de p\u00e1gina"],"Next":["Siguiente"],"Back":["Atr\u00e1s"],"Reset":["Restablecer"],"Generic tags":["Etiquetas gen\u00e9ricas"],"Pixel":["P\u00edxel"],"Em":["Em"],"Select Units":["Seleccionar unidades"],"%s units":["%s unidades"],"Margin":["Margen"],"Attributes":["Atributos"],"Input Pattern":["Patr\u00f3n de entrada"],"None":["Ninguno"],"(###) ###-####":["(###) ###-####"],"(##) ####-####":["(##) ####-####"],"27\/08\/2024":["27\/08\/2024"],"23:59:59":["23:59:59"],"27\/08\/2024 23:59:59":["27\/08\/2024 23:59:59"],"Custom":["Personalizado"],"Custom Mask":["M\u00e1scara personalizada"],"Please check the documentation to manage custom input pattern ":["Por favor, consulte la documentaci\u00f3n para gestionar el patr\u00f3n de entrada personalizado"],"here":["aqu\u00ed"],"Default Value":["Valor predeterminado"],"Error Message":["Mensaje de error"],"Help Text":["Texto de ayuda"],"Number Format":["Formato de n\u00famero"],"US Style (Eg: 9,999.99)":["Estilo estadounidense (Ej: 9,999.99)"],"EU Style (Eg: 9.999,99)":["Estilo UE (Ej: 9.999,99)"],"Minimum Value":["Valor m\u00ednimo"],"Maximum Value":["Valor m\u00e1ximo"],"Please check the Minimum and Maximum value":["Por favor, verifica el valor M\u00ednimo y M\u00e1ximo"],"Enable Email Confirmation":["Habilitar confirmaci\u00f3n de correo electr\u00f3nico"],"Checked by Default":["Marcado por defecto"],"Error message":["Mensaje de error"],"Checked by default":["Marcado por defecto"],"Please add a option props to MultiButtonsControl":["Por favor, a\u00f1ade una opci\u00f3n de propiedades a MultiButtonsControl"],"Icon Library":["Biblioteca de Iconos"],"Close":["Cerrar"],"All Icons":["Todos los iconos"],"Other":["Otro"],"No Icons Found":["No se encontraron iconos"],"Insert Icon":["Insertar icono"],"Change Icon":["Cambiar \u00edcono"],"Choose Icon":["Elegir \u00edcono"],"Confirm":["Confirmar"],"Cancel":["Cancelar"],"Processing\u2026":["Procesando\u2026"],"Select Video":["Seleccionar video"],"Change Video":["Cambiar video"],"Select Lottie Animation":["Seleccionar animaci\u00f3n Lottie"],"Change Lottie Animation":["Cambiar animaci\u00f3n Lottie"],"Upload SVG":["Subir SVG"],"Change SVG":["Cambiar SVG"],"Select Image":["Seleccionar imagen"],"Change Image":["Cambiar imagen"],"Upload SVG?":["\u00bfSubir SVG?"],"Upload SVG can be potentially risky. Are you sure?":["Subir SVG puede ser potencialmente arriesgado. \u00bfEst\u00e1s seguro?"],"Upload Anyway":["Subir de todos modos"],"Bulk Add":["Agregar en masa"],"Bulk Add Options":["Agregar Opciones en Masa"],"Enter each option on a new line.":["Ingrese cada opci\u00f3n en una nueva l\u00ednea."],"Insert Options":["Insertar opciones"],"Full Width":["Ancho completo"],"Option Type":["Tipo de opci\u00f3n"],"Edit Options":["Opciones de edici\u00f3n"],"Add New Option":["Agregar nueva opci\u00f3n"],"ADD":["A\u00d1ADIR"],"Enable Auto Country Detection":["Habilitar la detecci\u00f3n autom\u00e1tica de pa\u00eds"],"%s Width":["Ancho %s"],"Upgrade":["Actualizar"],"Clear":["Claro"],"Select Color":["Seleccionar color"],"Primary Color":["Color primario"],"Text Color":["Color del texto"],"Field Spacing":["Espaciado de campo"],"Small":["Peque\u00f1o"],"Large":["Grande"],"Left":["Izquierda"],"Center":["Centro"],"Right":["Correcto"],"Color":["Color"],"Background Color":["Color de fondo"],"Auto":["Auto"],"Default":["Predeterminado"],"Normal":["Normal"],"%":["%"],"Top":["Superior"],"Bottom":["Fondo"],"Width":["Ancho"],"Size":["Tama\u00f1o"],"EM":["EM"],"Padding":["Relleno"],"Color 1":["Color 1"],"Color 2":["Color 2"],"Type":["Tipo"],"Linear":["Lineal"],"Radial":["Radial"],"Location 1":["Ubicaci\u00f3n 1"],"Location 2":["Ubicaci\u00f3n 2"],"Angle":["\u00c1ngulo"],"Classic":["Cl\u00e1sico"],"Gradient":["Gradiente"],"Horizontal":["Horizontal"],"Vertical":["Vertical"],"Background":["Antecedentes"],"Cover":["Cubrir"],"Contain":["Contener"],"Layout":["Dise\u00f1o"],"Overlay":["Superposici\u00f3n"],"No Repeat":["No repetir"],"Overlay Opacity":["Opacidad de superposici\u00f3n"],"Conditional Logic":["L\u00f3gica condicional"],"Upgrade to the SureForms Starter Plan to create dynamic forms that adapt based on user input, offering a personalised and efficient form experience.":["Actualiza al Plan Starter de SureForms para crear formularios din\u00e1micos que se adaptan seg\u00fan la entrada del usuario, ofreciendo una experiencia de formulario personalizada y eficiente."],"Enable Conditional Logic":["Habilitar l\u00f3gica condicional"],"this field if":["este campo si"],"Configure Conditions":["Configurar condiciones"],"Premium":["Premium"],"Overlay Type":["Tipo de superposici\u00f3n"],"Image Overlay Color":["Color de superposici\u00f3n de imagen"],"Image Position":["Posici\u00f3n de la imagen"],"Attachment":["Adjunto"],"Fixed":["Fijo"],"Blend Mode":["Modo de fusi\u00f3n"],"Multiply":["Multiplicar"],"Screen":["Pantalla"],"Darken":["Oscurecer"],"Lighten":["Aligerar"],"Color Dodge":["Sobreexponer color"],"Saturation":["Saturaci\u00f3n"],"Repeat-x":["Repetir-x"],"Repeat-y":["Repetir-y"],"PX":["PX"],"Button":["Bot\u00f3n"],"Prefix Label":["Etiqueta de prefijo"],"Suffix Label":["Etiqueta de sufijo"],"Border Radius":["Radio de borde"],"Form Theme":["Tema del formulario"],"Select Gradient":["Seleccionar degradado"],"Unlock Conditional Logic Editor":["Desbloquear el Editor de L\u00f3gica Condicional"],"Rich Text Editor":["Editor de texto enriquecido"],"Read Only":["Solo lectura"],"Select Country":["Seleccionar pa\u00eds"],"Default Country":["Pa\u00eds predeterminado"],"Subscription":["Suscripci\u00f3n"],"One Time":["Una vez"],"Unique Entry":["Entrada \u00danica"],"Maximum Characters":["M\u00e1ximo de caracteres"],"Textarea Height":["Altura del \u00e1rea de texto"],"Minimum Selections":["Selecciones M\u00ednimas"],"Maximum Selections":["Selecciones M\u00e1ximas"],"Add Numeric Values to Options":["Agregar valores num\u00e9ricos a las opciones"],"Single Choice Only":["Solo una opci\u00f3n"],"Enable Dropdown Search":["Habilitar b\u00fasqueda desplegable"],"Allow Multiple":["Permitir m\u00faltiples"],"%1$s fields are required. Please configure these fields in the block settings.":["Se requieren los campos %1$s. Por favor, configure estos campos en la configuraci\u00f3n del bloque."],"%1$s field is required. Please configure this field in the block settings.":["El campo %1$s es obligatorio. Por favor, configure este campo en la configuraci\u00f3n del bloque."],"You need to configure a payment account to collect payments from this form. Please configure your payment provider to proceed.":["Necesitas configurar una cuenta de pago para recibir pagos de este formulario. Por favor, configura tu proveedor de pagos para continuar."],"Configure Payment Account":["Configurar cuenta de pago"],"This is a placeholder for the Payment block. The actual payment fields for your configured payment provider(s) will only appear when you preview or publish the form.":["Este es un marcador de posici\u00f3n para el bloque de Pago. Los campos de pago reales para su(s) proveedor(es) de pago configurado(s) solo aparecer\u00e1n cuando previsualice o publique el formulario."],"2 Payments":["2 Pagos"],"3 Payments":["3 Pagos"],"4 Payments":["4 Pagos"],"5 Payments":["5 Pagos"],"Never":["Nunca"],"Stop Subscription After":["Detener suscripci\u00f3n despu\u00e9s"],"Choose when to automatically stop the subscription":["Elige cu\u00e1ndo detener autom\u00e1ticamente la suscripci\u00f3n"],"Number of Payments":["N\u00famero de pagos"],"Enter a number between 1 to 100":["Introduce un n\u00famero entre 1 y 100"],"Form Field":["Campo de formulario"],"Payment Type":["Tipo de pago"],"Subscription Plan Name":["Nombre del Plan de Suscripci\u00f3n"],"Billing Interval":["Intervalo de facturaci\u00f3n"],"Daily":["Diario"],"Weekly":["Semanal"],"Monthly":["Mensual"],"Quarterly":["Trimestral"],"Yearly":["Anual"],"Amount Type":["Tipo de Monto"],"Fixed Amount":["Cantidad Fija"],"Dynamic Amount":["Cantidad Din\u00e1mica"],"Choose whether to charge a fixed amount or charge the amount based on user input in other form fields.":["Elija si desea cobrar una cantidad fija o cobrar la cantidad basada en la entrada del usuario en otros campos del formulario."],"Set the exact amount you want to charge. Users won\u2019t be able to change it":["Establece la cantidad exacta que deseas cobrar. Los usuarios no podr\u00e1n cambiarla"],"Choose Amount Field":["Elegir campo de cantidad"],"Select a field\u2026":["Seleccione un campo\u2026"],"Pick a field from your form like a number, dropdown, or multichoice whose value should decide the payment amount.":["Elige un campo de tu formulario como un n\u00famero, un desplegable o una opci\u00f3n m\u00faltiple cuyo valor deba decidir el monto del pago."],"Minimum Amount":["Cantidad m\u00ednima"],"Set the minimum amount users can enter (0 for no minimum)":["Establezca la cantidad m\u00ednima que los usuarios pueden ingresar (0 para sin m\u00ednimo)"],"Customer Name Field (Required)":["Campo de Nombre del Cliente (Obligatorio)"],"Customer Name Field (Optional)":["Campo de Nombre del Cliente (Opcional)"],"Select the input field that contains the customer name (Required for subscriptions)":["Seleccione el campo de entrada que contiene el nombre del cliente (Requerido para suscripciones)"],"Select the input field that contains the customer name":["Seleccione el campo de entrada que contiene el nombre del cliente"],"Customer Email Field (Required)":["Campo de correo electr\u00f3nico del cliente (obligatorio)"],"Select the email field that contains the customer email":["Seleccione el campo de correo electr\u00f3nico que contiene el correo electr\u00f3nico del cliente"],"Payment":["Pago"],"%s - Order ID":["%s - ID de pedido"],"%s - Amount":["%s - Cantidad"],"%s - Customer Email":["%s - Correo Electr\u00f3nico del Cliente"],"%s - Customer Name":["%s - Nombre del Cliente"],"%s - Status":["%s - Estado"],"Button Alignment":["Alineaci\u00f3n del bot\u00f3n"],"Placeholder":["Marcador de posici\u00f3n"],"Preselect this option":["Preselecciona esta opci\u00f3n"],"Restrict Country Codes":["Restringir c\u00f3digos de pa\u00eds"],"Restriction Type":["Tipo de restricci\u00f3n"],"Allow":["Permitir"],"Block":["Bloque"],"Select Allowed Countries":["Seleccionar pa\u00edses permitidos"],"Choose countries\u2026":["Elige pa\u00edses\u2026"],"Choose which country codes users can select in the phone number field. Leave empty to allow all country codes.":["Elija qu\u00e9 c\u00f3digos de pa\u00eds pueden seleccionar los usuarios en el campo del n\u00famero de tel\u00e9fono. Deje vac\u00edo para permitir todos los c\u00f3digos de pa\u00eds."],"Select Blocked Countries":["Seleccionar pa\u00edses bloqueados"],"These countries will be hidden from the dropdown.":["Estos pa\u00edses se ocultar\u00e1n del men\u00fa desplegable."],"Bulk Edit":["Edici\u00f3n masiva"],"Select Layout":["Seleccionar dise\u00f1o"],"Number of Columns":["N\u00famero de columnas"],"Validation Message for Duplicate":["Mensaje de validaci\u00f3n para duplicado"],"Click here to insert a form":["Haga clic aqu\u00ed para insertar un formulario"],"Inherit Form's Original Style":["Heredar el estilo original del formulario"],"Text on Primary":["Texto en Primario"],"%s - Description":["%s - Descripci\u00f3n"],"Upgrade to Unlock":["Actualiza para desbloquear"],"Custom (Premium)":["Personalizado (Premium)"],"Select a theme style for this form embed.":["Seleccione un estilo de tema para este formulario incrustado."],"Colors":["Colores"],"Advanced Styling":["Estilo Avanzado"],"Unlock Custom Styling":["Desbloquear estilo personalizado"],"Switch to Custom Mode to take full control of your form's design and spacing.":["Cambia a Modo Personalizado para tener control total sobre el dise\u00f1o y el espaciado de tu formulario."],"Full color control (buttons, fields, text)":["Control total del color (botones, campos, texto)"],"Row and column gap control":["Control de separaci\u00f3n de filas y columnas"],"Field spacing and layout precision":["Precisi\u00f3n en el espaciado y dise\u00f1o de campos"],"Complete button styling":["Estilo completo del bot\u00f3n"],"Payment Description":["Descripci\u00f3n del pago"],"Shown on payment receipts and in your payment dashboard (Stripe and PayPal). Leave blank to use the default.":["Se muestra en los recibos de pago y en su panel de pagos (Stripe y PayPal). Deje en blanco para usar el valor predeterminado."],"Slug":["Babosa"],"Auto-generated on save":["Generado autom\u00e1ticamente al guardar"],"This slug is already used by another field. It will revert to the previous value.":["Este slug ya est\u00e1 siendo utilizado por otro campo. Volver\u00e1 al valor anterior."],"Changing the slug may break form submissions, conditional logic, integrations, or any other feature currently referencing this slug. You will need to update all such references manually.":["Cambiar el slug puede romper los env\u00edos de formularios, la l\u00f3gica condicional, las integraciones o cualquier otra caracter\u00edstica que actualmente haga referencia a este slug. Necesitar\u00e1s actualizar todas esas referencias manualmente."],"Field Slug":["Identificador de campo"],"Location Services":["Servicios de ubicaci\u00f3n"],"Unlock Address Autocomplete":["Desbloquear la autocompletaci\u00f3n de direcciones"],"Upgrade to enable Google Address Autocomplete with interactive map preview, making address entry faster and more accurate for your users.":["Actualiza para habilitar la autocompletaci\u00f3n de direcciones de Google con vista previa de mapa interactivo, haciendo que la entrada de direcciones sea m\u00e1s r\u00e1pida y precisa para tus usuarios."],"Enable Google Autocomplete":["Habilitar la autocompletar de Google"],"Show Interactive Map":["Mostrar mapa interactivo"],"Payments Per Page":["Pagos por p\u00e1gina"],"Show Subscriptions Section":["Mostrar secci\u00f3n de suscripciones"],"Show a dedicated subscriptions section above payment history.":["Muestra una secci\u00f3n dedicada a suscripciones por encima del historial de pagos."],"Payment Dashboard":["Panel de Pagos"],"View your payments and manage subscriptions in a single dashboard.":["Vea sus pagos y gestione sus suscripciones en un solo panel."],"Dynamic Default Value":["Valor Predeterminado Din\u00e1mico"]}}} \ No newline at end of file diff --git a/languages/sureforms-es_ES-51635fe6489fc8288d603fe596c755ca.json b/languages/sureforms-es_ES-51635fe6489fc8288d603fe596c755ca.json index 94316092f..f9aa74480 100644 --- a/languages/sureforms-es_ES-51635fe6489fc8288d603fe596c755ca.json +++ b/languages/sureforms-es_ES-51635fe6489fc8288d603fe596c755ca.json @@ -1 +1 @@ -{"translation-revision-date":"2024-12-13T16:34:28+00:00","generator":"WP-CLI\/2.12.0","source":"assets\/build\/settings.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"en","plural-forms":"nplurals=2; plural=(n != 1);"},"Dashboard":["Tablero"],"Settings":["Configuraciones"],"Entries":["Entradas"],"Activated":["Activado"],"Activate":["Activar"],"Monday":["Lunes"],"Forms":["Formularios"],"GitHub":["GitHub"],"General":["General"],"Other":["Otro"],"Confirm":["Confirmar"],"Cancel":["Cancelar"],"Install":["Instalar"],"Plugin Installation failed, Please try again later.":["La instalaci\u00f3n del complemento fall\u00f3, por favor intente de nuevo m\u00e1s tarde."],"Plugin activation failed, Please try again later.":["La activaci\u00f3n del complemento fall\u00f3, por favor intente de nuevo m\u00e1s tarde."],"Integrations":["Integraciones"],"What's New?":["\u00bfQu\u00e9 hay de nuevo?"],"Core":["N\u00facleo"],"Unlicensed":["Sin licencia"],"Connecting\u2026":["Conectando\u2026"],"Install & Activate":["Instalar y activar"],"Send Email To":["Enviar correo electr\u00f3nico a"],"Google reCAPTCHA":["Google reCAPTCHA"],"hCaptcha":["hCaptcha"],"reCAPTCHA v2 Invisible":["reCAPTCHA v2 Invisible"],"reCAPTCHA v3":["reCAPTCHA v3"],"Validations":["Validaciones"],"Spam Protection":["Protecci\u00f3n contra el spam"],"Email Summaries":["Res\u00famenes de correo electr\u00f3nico"],"Tuesday":["Martes"],"Wednesday":["Mi\u00e9rcoles"],"Thursday":["Jueves"],"Friday":["Viernes"],"Saturday":["S\u00e1bado"],"Sunday":["Domingo"],"Test Email":["Correo de prueba"],"Schedule Reports":["Programar informes"],"IP Logging":["Registro de IP"],"If this option is turned on, the user's IP address will be saved with the form data":["Si esta opci\u00f3n est\u00e1 activada, la direcci\u00f3n IP del usuario se guardar\u00e1 con los datos del formulario"],"%s represents the minimum selections needed. For example: \u201cMinimum 2 selections are required.\u201d":["%s representa las selecciones m\u00ednimas necesarias. Por ejemplo: \u201cSe requieren un m\u00ednimo de 2 selecciones.\u201d"],"%s represents the maximum selections allowed. For example: \u201cMaximum 4 selections are allowed.\u201d":["%s representa el m\u00e1ximo de selecciones permitidas. Por ejemplo: \u201cSe permiten un m\u00e1ximo de 4 selecciones.\u201d"],"%s represents the minimum choices needed. For example: \u201cMinimum 1 selection is required.\u201d":["%s representa las opciones m\u00ednimas necesarias. Por ejemplo: \"Se requiere un m\u00ednimo de 1 selecci\u00f3n.\""],"%s represents the maximum choices allowed. For example: \u201cMaximum 3 selections are allowed.\u201d":["%s representa las opciones m\u00e1ximas permitidas. Por ejemplo: \"Se permiten un m\u00e1ximo de 3 selecciones.\""]," Error Message":["Mensaje de error"],"Auto":["Auto"],"Light":["Luz"],"Dark":["Oscuro"],"Turnstile":["Torniquete"],"Honeypot":["Honeypot"],"Get Keys":["Obtener llaves"],"Documentation":["Documentaci\u00f3n"],"Site Key":["Clave del sitio"],"Secret Key":["Clave secreta"],"Cloudflare Turnstile":["Cloudflare Turnstile"],"Appearance Mode":["Modo de apariencia"],"Enable Honeypot Security":["Habilitar la seguridad Honeypot"],"Enable Honeypot Security for better spam protection":["Habilitar la seguridad Honeypot para una mejor protecci\u00f3n contra el spam"],"This field cannot be left blank.":["Este campo no puede dejarse en blanco."],"Confirmation Email Mismatch Message":["Mensaje de discrepancia de correo electr\u00f3nico de confirmaci\u00f3n"],"%s represents the minimum input value. For example: \"Minimum value is 10.\"":["%s representa el valor m\u00ednimo de entrada. Por ejemplo: \"El valor m\u00ednimo es 10.\""],"%s represents the maximum input value. For example: \"Maximum value is 100.\"":["%s representa el valor m\u00e1ximo de entrada. Por ejemplo: \"El valor m\u00e1ximo es 100.\""],"OttoKit":["OttoKit"],"Connect with OttoKit":["Con\u00e9ctate con OttoKit"],"reCAPTCHA":["reCAPTCHA"],"Ready to go beyond free plan?":["\u00bfListo para ir m\u00e1s all\u00e1 del plan gratuito?"],"Upgrade now":["Actualiza ahora"],"and unlock the full power of SureForms!":["y desbloquea todo el poder de SureForms!"],"Upgrade SureForms":["Actualizar SureForms"],"Upgrade Now":["Actualiza ahora"],"Form Validation":["Validaci\u00f3n de formulario"],"Required Error Messages":["Mensajes de error requeridos"],"Other Error Messages":["Otros mensajes de error"],"Input Field Unique":["Campo de entrada \u00fanico"],"Email Field Unique":["Campo de correo electr\u00f3nico \u00fanico"],"Invalid URL":["URL no v\u00e1lida"],"Phone Field Unique":["Campo de Tel\u00e9fono \u00danico"],"Invalid Field Number Block":["Bloque de N\u00famero de Campo Inv\u00e1lido"],"Invalid Email":["Correo electr\u00f3nico no v\u00e1lido"],"Number Minimum Value":["Valor M\u00ednimo del N\u00famero"],"Number Maximum Value":["Valor M\u00e1ximo del N\u00famero"],"Dropdown Minimum Selections":["M\u00ednimo de selecciones en el men\u00fa desplegable"],"Dropdown Maximum Selections":["Selecciones M\u00e1ximas del Desplegable"],"Multiple Choice Minimum Selections":["M\u00faltiples opciones de selecci\u00f3n m\u00ednima"],"Multiple Choice Maximum Selections":["Selecciones M\u00faltiples de Opci\u00f3n M\u00faltiple"],"Input Field":["Campo de entrada"],"Email Field":["Campo de correo electr\u00f3nico"],"URL Field":["Campo de URL"],"Phone Field":["Campo de Tel\u00e9fono"],"Textarea Field":["Campo de \u00e1rea de texto"],"Checkbox Field":["Campo de casilla de verificaci\u00f3n"],"Dropdown Field":["Campo desplegable"],"Multiple Choice Field":["Campo de opci\u00f3n m\u00faltiple"],"Address Field":["Campo de direcci\u00f3n"],"Number Field":["Campo num\u00e9rico"],"reCAPTCHA v2":["reCAPTCHA v2"],"To enable reCAPTCHA feature on your SureForms Please enable reCAPTCHA option on your blocks setting and select version. Add google reCAPTCHA secret and site key here. reCAPTCHA will be added to your page on front-end.":["Para habilitar la funci\u00f3n reCAPTCHA en sus SureForms, por favor habilite la opci\u00f3n reCAPTCHA en la configuraci\u00f3n de sus bloques y seleccione la versi\u00f3n. Agregue aqu\u00ed la clave secreta y la clave del sitio de Google reCAPTCHA. reCAPTCHA se a\u00f1adir\u00e1 a su p\u00e1gina en el front-end."],"Enter your %s here":["Introduce tu %s aqu\u00ed"],"To enable hCAPTCHA, please add your site key and secret key. Configure these settings within the individual form.":["Para habilitar hCAPTCHA, por favor a\u00f1ade tu clave del sitio y clave secreta. Configura estos ajustes dentro del formulario individual."],"To enable Cloudflare Turnstile, please add your site key and secret key. Configure these settings within the individual form.":["Para habilitar Cloudflare Turnstile, por favor a\u00f1ade tu clave de sitio y clave secreta. Configura estos ajustes dentro del formulario individual."],"Save":["Guardar"],"Anonymous Analytics":["Anal\u00edtica An\u00f3nima"],"Learn More":["Aprende m\u00e1s"],"Admin Notification":["Notificaci\u00f3n de administrador"],"Enable Admin Notification":["Habilitar notificaci\u00f3n de administrador"],"Admin notifications keep you informed about new form entries since your last visit.":["Las notificaciones de administrador te mantienen informado sobre nuevas entradas de formularios desde tu \u00faltima visita."],"Continue":["Continuar"],"Get Started":["Comenzar"],"Integration":["Integraci\u00f3n"],"Connect Native Integrations with SureForms":["Conecta integraciones nativas con SureForms"],"Unlock powerful integrations in the Premium plan to automate your workflows and connect SureForms directly with your favourite tools.":["Desbloquea potentes integraciones en el plan Premium para automatizar tus flujos de trabajo y conectar SureForms directamente con tus herramientas favoritas."],"Send form submissions straight to CRMs, email, and marketing platforms":["Env\u00eda las presentaciones de formularios directamente a los CRM, correo electr\u00f3nico y plataformas de marketing"],"Automate repetitive tasks with seamless data syncing":["Automatiza tareas repetitivas con una sincronizaci\u00f3n de datos sin problemas"],"Access exclusive native integrations for faster workflows":["Accede a integraciones nativas exclusivas para flujos de trabajo m\u00e1s r\u00e1pidos"],"Payments":["Pagos"],"Stripe account disconnected successfully.":["Cuenta de Stripe desconectada con \u00e9xito."],"Failed to create webhook.":["Error al crear el webhook."],"Failed to connect to Stripe.":["Error al conectar con Stripe."],"Webhook":["Webhook"],"Knowledge Base":["Base de Conocimientos"],"What\u2019s New":["Qu\u00e9 hay de nuevo"],"delete":["eliminar"],"Please type \"%s\" in the input box":["Por favor, escribe \"%s\" en el cuadro de entrada"],"To confirm, type \"%s\" in the box below:":["Para confirmar, escriba \"%s\" en el cuadro de abajo:"],"Type \"%s\"":["Escribe \"%s\""],"Go to OttoKit Settings":["Ve a la configuraci\u00f3n de OttoKit"],"USD - US Dollar":["USD - D\u00f3lar estadounidense"],"Payment Mode":["Modo de pago"],"Test Mode":["Modo de prueba"],"Live Mode":["Modo en vivo"],"General Settings":["Configuraci\u00f3n general"],"Set up email summaries, admin alerts, and data preferences to manage your forms with ease.":["Configure res\u00famenes de correo electr\u00f3nico, alertas de administrador y preferencias de datos para gestionar tus formularios con facilidad."],"Customize default error messages shown when users submit invalid or incomplete form entries.":["Personaliza los mensajes de error predeterminados que se muestran cuando los usuarios env\u00edan entradas de formulario inv\u00e1lidas o incompletas."],"Enable spam protection for your forms using CAPTCHA services or honeypot security.":["Habilita la protecci\u00f3n contra spam para tus formularios utilizando servicios CAPTCHA o seguridad honeypot."],"Connect and manage your payment gateways to securely accept transactions through your forms.":["Conecta y gestiona tus pasarelas de pago para aceptar transacciones de forma segura a trav\u00e9s de tus formularios."],"1% transaction and payment gateway fees apply.":["Se aplican tarifas del 1% por transacciones y pasarelas de pago."],"2.9% transaction and payment gateway fees apply. Activate license to reduce transaction fees.":["Se aplican tarifas de transacci\u00f3n y de pasarela de pago del 2.9%. Activa la licencia para reducir las tarifas de transacci\u00f3n."],"2.9% transaction and payment gateway fees apply.":["Se aplican tarifas del 2.9% por transacciones y pasarelas de pago."],"Please visit %1$s, delete an unused webhook, then click below to retry.":["Por favor, visita %1$s, elimina un webhook no utilizado, luego haz clic abajo para reintentar."],"SureForms could not create a webhook because your Stripe account has run out of free slots. Webhooks are needed to receive updates about payments.":["SureForms no pudo crear un webhook porque tu cuenta de Stripe se ha quedado sin espacios libres. Los webhooks son necesarios para recibir actualizaciones sobre los pagos."],"Stripe Dashboard":["Panel de control de Stripe"],"Creating\u2026":["Creando\u2026"],"Create Webhook":["Crear Webhook"],"Successfully connected to Stripe!":["\u00a1Conectado exitosamente a Stripe!"],"Invalid response from server. Please try again.":["Respuesta inv\u00e1lida del servidor. Por favor, int\u00e9ntelo de nuevo."],"Failed to disconnect Stripe account.":["Error al desconectar la cuenta de Stripe."],"Webhook created successfully!":["\u00a1Webhook creado con \u00e9xito!"],"Select Currency":["Seleccionar moneda"],"Select the default currency for payment forms.":["Seleccione la moneda predeterminada para los formularios de pago."],"Connection Status":["Estado de la conexi\u00f3n"],"Disconnect Stripe Account":["Desconectar cuenta de Stripe"],"Are you sure you want to disconnect your Stripe account? This will stop all active payments, subscriptions, and form transactions connected to this account.":["\u00bfEst\u00e1 seguro de que desea desconectar su cuenta de Stripe? Esto detendr\u00e1 todos los pagos activos, suscripciones y transacciones de formularios conectados a esta cuenta."],"Disconnect":["Desconectar"],"Disconnecting\u2026":["Desconectando\u2026"],"Webhook successfully connected, all Stripe events are being tracked.":["Webhook conectado con \u00e9xito, todos los eventos de Stripe est\u00e1n siendo rastreados."],"Connect your Stripe account to start accepting payments through your forms.":["Conecta tu cuenta de Stripe para comenzar a aceptar pagos a trav\u00e9s de tus formularios."],"Connect to Stripe":["Conectar a Stripe"],"Securely connect to Stripe with just a few clicks to begin accepting payments! ":["Con\u00e9ctate de forma segura a Stripe con solo unos clics para comenzar a aceptar pagos."],"Payment Methods":["M\u00e9todos de pago"],"Test mode allows you to process payments without real charges. Switch to Live mode for actual transactions.":["El modo de prueba te permite procesar pagos sin cargos reales. Cambia al modo en vivo para transacciones reales."],"General Payment Settings":["Configuraci\u00f3n General de Pagos"],"These settings apply to all payment gateways.":["Estos ajustes se aplican a todas las pasarelas de pago."],"Stripe Settings":["Configuraci\u00f3n de Stripe"],"Left ($100)":["Izquierda ($100)"],"Right (100$)":["Correcto (100$)"],"Left Space ($ 100)":["Espacio Izquierdo ($ 100)"],"Right Space (100 $)":["Espacio Derecho (100 $)"],"Currency Sign Position":["Posici\u00f3n del signo de moneda"],"Select the position of the currency symbol relative to the amount.":["Seleccione la posici\u00f3n del s\u00edmbolo de moneda en relaci\u00f3n con la cantidad."],"Learn":["Aprender"],"Enable email summaries":["Habilitar res\u00famenes de correo electr\u00f3nico"],"Enable IP logging":["Habilitar el registro de IP"],"Turn on Admin Notification from here.":["Activa la notificaci\u00f3n de administrador desde aqu\u00ed."],"Send entries to 100+ popular apps.":["Env\u00eda entradas a m\u00e1s de 100 aplicaciones populares."],"Build automated workflows that run instantly.":["Crea flujos de trabajo automatizados que se ejecutan al instante."],"Create custom app integrations using our Custom App feature.":["Crea integraciones de aplicaciones personalizadas utilizando nuestra funci\u00f3n de Aplicaci\u00f3n Personalizada."],"Keep your tools in sync automatically.":["Mant\u00e9n tus herramientas sincronizadas autom\u00e1ticamente."],"This will install and activate OttoKit on your WordPress site to enable automation features.":["Esto instalar\u00e1 y activar\u00e1 OttoKit en su sitio de WordPress para habilitar funciones de automatizaci\u00f3n."],"Automate Your Forms with OttoKit":["Automatiza tus formularios con OttoKit"],"Every form submission should trigger something \u2014 a Slack alert, a CRM lead, a follow-up email, or a new row in Google Sheets.":["Cada env\u00edo de formulario deber\u00eda activar algo: una alerta de Slack, un cliente potencial en el CRM, un correo electr\u00f3nico de seguimiento o una nueva fila en Google Sheets."],"MCP":["MCP"],"Configure AI client permissions and MCP server settings.":["Configura los permisos del cliente de IA y la configuraci\u00f3n del servidor MCP."],"View documentation":["Ver documentaci\u00f3n"],"Copy to clipboard":["Copiar al portapapeles"],"Claude Desktop":["Escritorio Claude"],"~\/Library\/Application Support\/Claude\/claude_desktop_config.json (macOS) or %APPDATA%\\Claude\\claude_desktop_config.json (Windows)":["~\/Library\/Application Support\/Claude\/claude_desktop_config.json (macOS) o %APPDATA%\\Claude\\claude_desktop_config.json (Windows)"],"Claude Code":["C\u00f3digo Claude"],".mcp.json (project) or ~\/.claude.json (global)":[".mcp.json (proyecto) o ~\/.claude.json (global)"],"Cursor":["Cursor"],"~\/.cursor\/mcp.json":["~\/.cursor\/mcp.json"],"VS Code (Copilot)":["VS Code (Copilot)"],".vscode\/mcp.json (project) or settings.json > mcp.servers (global)":[".vscode\/mcp.json (proyecto) o settings.json > mcp.servers (global)"],"~\/.continue\/config.yaml or config.json":["~\/.continue\/config.yaml o config.json"],"Your client's MCP configuration file":["El archivo de configuraci\u00f3n MCP de su cliente"],"Connect Your AI Client":["Conecta tu cliente de IA"],"AI Client":["Cliente de IA"],"Create an Application Password \u2014 ":["Crear una Contrase\u00f1a de Aplicaci\u00f3n \u2014"],"Open Application Passwords":["Abrir contrase\u00f1as de aplicaciones"],"Or use this CLI command to add the server quickly (you will still need to set the environment variables):":["O utiliza este comando CLI para a\u00f1adir el servidor r\u00e1pidamente (a\u00fan necesitar\u00e1s configurar las variables de entorno):"],"Copy the JSON config below into: ":["Copie la configuraci\u00f3n JSON a continuaci\u00f3n en:"],"Replace \"your-application-password\" with the password from Step 1.":["Reemplace \"your-application-password\" con la contrase\u00f1a del Paso 1."],"WP_API_URL \u2014 your site's MCP endpoint. WP_API_USERNAME \u2014 your WordPress username. WP_API_PASSWORD \u2014 the application password you generated.":["WP_API_URL \u2014 el punto final MCP de tu sitio. WP_API_USERNAME \u2014 tu nombre de usuario de WordPress. WP_API_PASSWORD \u2014 la contrase\u00f1a de la aplicaci\u00f3n que generaste."],"View setup docs":["Ver documentos de configuraci\u00f3n"],"The MCP Adapter plugin is installed but not active. Activate it to configure MCP settings.":["El complemento MCP Adapter est\u00e1 instalado pero no activo. Act\u00edvalo para configurar los ajustes de MCP."],"The MCP Adapter plugin is required to connect AI clients to your forms. Download and install it from GitHub, then activate it.":["El complemento MCP Adapter es necesario para conectar clientes de IA a tus formularios. Desc\u00e1rgalo e inst\u00e1lalo desde GitHub, luego act\u00edvalo."],"Download the latest release from":["Descarga la \u00faltima versi\u00f3n desde"],"Install the plugin via Plugins > Add New Plugin > Upload Plugin.":["Instala el complemento a trav\u00e9s de Complementos > A\u00f1adir nuevo complemento > Subir complemento."],"Activate the MCP Adapter plugin.":["Activa el complemento del adaptador MCP."],"Activating\u2026":["Activando\u2026"],"Activate MCP Adapter":["Activar adaptador MCP"],"Download MCP Adapter":["Descargar el adaptador MCP"],"Experimental":["Experimental"],"Enable Abilities":["Habilitar habilidades"],"Register SureForms abilities with the WordPress Abilities API. When enabled, AI clients can list, read, create, edit, and delete your forms and entries. When disabled, no abilities are registered and AI clients cannot perform any actions on your forms.":["Registra las habilidades de SureForms con la API de Habilidades de WordPress. Cuando est\u00e1 habilitado, los clientes de IA pueden listar, leer, crear, editar y eliminar tus formularios y entradas. Cuando est\u00e1 deshabilitado, no se registran habilidades y los clientes de IA no pueden realizar ninguna acci\u00f3n en tus formularios."],"Abilities API \u2014 Edit":["API de habilidades \u2014 Editar"],"Enable Edit Abilities":["Habilitar habilidades de edici\u00f3n"],"When enabled, AI clients can create new forms, update form titles, fields, and settings, duplicate forms, and modify entry statuses. When disabled, these abilities are unregistered and AI clients can only read your data.":["Cuando est\u00e1 habilitado, los clientes de IA pueden crear nuevos formularios, actualizar t\u00edtulos de formularios, campos y configuraciones, duplicar formularios y modificar los estados de las entradas. Cuando est\u00e1 deshabilitado, estas habilidades se desregistran y los clientes de IA solo pueden leer sus datos."],"Abilities API \u2014 Delete":["API de habilidades \u2014 Eliminar"],"Enable Delete Abilities":["Habilitar habilidades de eliminaci\u00f3n"],"When enabled, AI clients can permanently delete forms and entries. Deleted data cannot be recovered. When disabled, delete abilities are unregistered and AI clients cannot remove any data.":["Cuando est\u00e1 habilitado, los clientes de IA pueden eliminar permanentemente formularios y entradas. Los datos eliminados no se pueden recuperar. Cuando est\u00e1 deshabilitado, las capacidades de eliminaci\u00f3n se desregistran y los clientes de IA no pueden eliminar ning\u00fan dato."],"MCP Server":["Servidor MCP"],"Enable MCP Server":["Habilitar servidor MCP"],"Creates a dedicated SureForms MCP endpoint that AI clients like Claude can connect to. When disabled, the endpoint is removed and external AI clients cannot discover or call any SureForms abilities.":["Crea un punto final dedicado de SureForms MCP al que los clientes de IA como Claude pueden conectarse. Cuando est\u00e1 deshabilitado, el punto final se elimina y los clientes de IA externos no pueden descubrir ni llamar a ninguna capacidad de SureForms."],"Learn more":["Aprende m\u00e1s"],"MCP Adapter Required":["Adaptador MCP Requerido"],"Google Maps":["Google Maps"],"Configure Google Maps API key for address autocomplete and map preview.":["Configura la clave de la API de Google Maps para la autocompletaci\u00f3n de direcciones y la vista previa del mapa."],"Help shape the future of SureForms":["Ayuda a dar forma al futuro de SureForms"],"Share how you use the plugin so we can build features that matter, fix issues faster, and make smarter decisions. ":["Comparte c\u00f3mo usas el complemento para que podamos desarrollar funciones que importen, solucionar problemas m\u00e1s r\u00e1pido y tomar decisiones m\u00e1s inteligentes. "],"Enable Google Address Autocomplete":["Habilitar la autocompletar de direcciones de Google"],"Upgrade to the SureForms Business Plan to add Google-powered address autocomplete with interactive map preview to your forms.":["Actualiza al Plan de Negocios de SureForms para agregar la autocompletaci\u00f3n de direcciones impulsada por Google con vista previa de mapa interactivo a tus formularios."],"Auto-suggest addresses as users type for faster, error-free submissions":["Sugerir direcciones autom\u00e1ticamente mientras los usuarios escriben para env\u00edos m\u00e1s r\u00e1pidos y sin errores"],"Show an interactive map preview with draggable pin for precise locations":["Muestra una vista previa de mapa interactivo con un marcador arrastrable para ubicaciones precisas"],"Automatically populate address fields like city, state, and postal code":["Rellenar autom\u00e1ticamente campos de direcci\u00f3n como ciudad, estado y c\u00f3digo postal"]}}} \ No newline at end of file +{"translation-revision-date":"2024-12-13T16:34:28+00:00","generator":"WP-CLI\/2.12.0","source":"assets\/build\/settings.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"en","plural-forms":"nplurals=2; plural=(n != 1);"},"Dashboard":["Tablero"],"Settings":["Configuraciones"],"Entries":["Entradas"],"Activated":["Activado"],"Activate":["Activar"],"Monday":["Lunes"],"Forms":["Formularios"],"GitHub":["GitHub"],"General":["General"],"Other":["Otro"],"Confirm":["Confirmar"],"Cancel":["Cancelar"],"Install":["Instalar"],"Plugin Installation failed, Please try again later.":["La instalaci\u00f3n del complemento fall\u00f3, por favor intente de nuevo m\u00e1s tarde."],"Plugin activation failed, Please try again later.":["La activaci\u00f3n del complemento fall\u00f3, por favor intente de nuevo m\u00e1s tarde."],"Integrations":["Integraciones"],"What's New?":["\u00bfQu\u00e9 hay de nuevo?"],"Core":["N\u00facleo"],"Unlicensed":["Sin licencia"],"Connecting\u2026":["Conectando\u2026"],"Install & Activate":["Instalar y activar"],"Send Email To":["Enviar correo electr\u00f3nico a"],"Google reCAPTCHA":["Google reCAPTCHA"],"hCaptcha":["hCaptcha"],"reCAPTCHA v2 Invisible":["reCAPTCHA v2 Invisible"],"reCAPTCHA v3":["reCAPTCHA v3"],"Validations":["Validaciones"],"Spam Protection":["Protecci\u00f3n contra el spam"],"Email Summaries":["Res\u00famenes de correo electr\u00f3nico"],"Tuesday":["Martes"],"Wednesday":["Mi\u00e9rcoles"],"Thursday":["Jueves"],"Friday":["Viernes"],"Saturday":["S\u00e1bado"],"Sunday":["Domingo"],"Test Email":["Correo de prueba"],"Schedule Reports":["Programar informes"],"IP Logging":["Registro de IP"],"If this option is turned on, the user's IP address will be saved with the form data":["Si esta opci\u00f3n est\u00e1 activada, la direcci\u00f3n IP del usuario se guardar\u00e1 con los datos del formulario"],"%s represents the minimum selections needed. For example: \u201cMinimum 2 selections are required.\u201d":["%s representa las selecciones m\u00ednimas necesarias. Por ejemplo: \u201cSe requieren un m\u00ednimo de 2 selecciones.\u201d"],"%s represents the maximum selections allowed. For example: \u201cMaximum 4 selections are allowed.\u201d":["%s representa el m\u00e1ximo de selecciones permitidas. Por ejemplo: \u201cSe permiten un m\u00e1ximo de 4 selecciones.\u201d"],"%s represents the minimum choices needed. For example: \u201cMinimum 1 selection is required.\u201d":["%s representa las opciones m\u00ednimas necesarias. Por ejemplo: \"Se requiere un m\u00ednimo de 1 selecci\u00f3n.\""],"%s represents the maximum choices allowed. For example: \u201cMaximum 3 selections are allowed.\u201d":["%s representa las opciones m\u00e1ximas permitidas. Por ejemplo: \"Se permiten un m\u00e1ximo de 3 selecciones.\""]," Error Message":["Mensaje de error"],"Auto":["Auto"],"Light":["Luz"],"Dark":["Oscuro"],"Turnstile":["Torniquete"],"Honeypot":["Honeypot"],"Get Keys":["Obtener llaves"],"Documentation":["Documentaci\u00f3n"],"Site Key":["Clave del sitio"],"Secret Key":["Clave secreta"],"Cloudflare Turnstile":["Cloudflare Turnstile"],"Appearance Mode":["Modo de apariencia"],"Enable Honeypot Security":["Habilitar la seguridad Honeypot"],"Enable Honeypot Security for better spam protection":["Habilitar la seguridad Honeypot para una mejor protecci\u00f3n contra el spam"],"This field cannot be left blank.":["Este campo no puede dejarse en blanco."],"Confirmation Email Mismatch Message":["Mensaje de discrepancia de correo electr\u00f3nico de confirmaci\u00f3n"],"%s represents the minimum input value. For example: \"Minimum value is 10.\"":["%s representa el valor m\u00ednimo de entrada. Por ejemplo: \"El valor m\u00ednimo es 10.\""],"%s represents the maximum input value. For example: \"Maximum value is 100.\"":["%s representa el valor m\u00e1ximo de entrada. Por ejemplo: \"El valor m\u00e1ximo es 100.\""],"OttoKit":["OttoKit"],"Connect with OttoKit":["Con\u00e9ctate con OttoKit"],"reCAPTCHA":["reCAPTCHA"],"Ready to go beyond free plan?":["\u00bfListo para ir m\u00e1s all\u00e1 del plan gratuito?"],"Upgrade now":["Actualiza ahora"],"and unlock the full power of SureForms!":["y desbloquea todo el poder de SureForms!"],"Upgrade SureForms":["Actualizar SureForms"],"Upgrade Now":["Actualiza ahora"],"Form Validation":["Validaci\u00f3n de formulario"],"Required Error Messages":["Mensajes de error requeridos"],"Other Error Messages":["Otros mensajes de error"],"Input Field Unique":["Campo de entrada \u00fanico"],"Email Field Unique":["Campo de correo electr\u00f3nico \u00fanico"],"Invalid URL":["URL no v\u00e1lida"],"Phone Field Unique":["Campo de Tel\u00e9fono \u00danico"],"Invalid Field Number Block":["Bloque de N\u00famero de Campo Inv\u00e1lido"],"Invalid Email":["Correo electr\u00f3nico no v\u00e1lido"],"Number Minimum Value":["Valor M\u00ednimo del N\u00famero"],"Number Maximum Value":["Valor M\u00e1ximo del N\u00famero"],"Dropdown Minimum Selections":["M\u00ednimo de selecciones en el men\u00fa desplegable"],"Dropdown Maximum Selections":["Selecciones M\u00e1ximas del Desplegable"],"Multiple Choice Minimum Selections":["M\u00faltiples opciones de selecci\u00f3n m\u00ednima"],"Multiple Choice Maximum Selections":["Selecciones M\u00faltiples de Opci\u00f3n M\u00faltiple"],"Input Field":["Campo de entrada"],"Email Field":["Campo de correo electr\u00f3nico"],"URL Field":["Campo de URL"],"Phone Field":["Campo de Tel\u00e9fono"],"Textarea Field":["Campo de \u00e1rea de texto"],"Checkbox Field":["Campo de casilla de verificaci\u00f3n"],"Dropdown Field":["Campo desplegable"],"Multiple Choice Field":["Campo de opci\u00f3n m\u00faltiple"],"Address Field":["Campo de direcci\u00f3n"],"Number Field":["Campo num\u00e9rico"],"reCAPTCHA v2":["reCAPTCHA v2"],"To enable reCAPTCHA feature on your SureForms Please enable reCAPTCHA option on your blocks setting and select version. Add google reCAPTCHA secret and site key here. reCAPTCHA will be added to your page on front-end.":["Para habilitar la funci\u00f3n reCAPTCHA en sus SureForms, por favor habilite la opci\u00f3n reCAPTCHA en la configuraci\u00f3n de sus bloques y seleccione la versi\u00f3n. Agregue aqu\u00ed la clave secreta y la clave del sitio de Google reCAPTCHA. reCAPTCHA se a\u00f1adir\u00e1 a su p\u00e1gina en el front-end."],"Enter your %s here":["Introduce tu %s aqu\u00ed"],"To enable hCAPTCHA, please add your site key and secret key. Configure these settings within the individual form.":["Para habilitar hCAPTCHA, por favor a\u00f1ade tu clave del sitio y clave secreta. Configura estos ajustes dentro del formulario individual."],"To enable Cloudflare Turnstile, please add your site key and secret key. Configure these settings within the individual form.":["Para habilitar Cloudflare Turnstile, por favor a\u00f1ade tu clave de sitio y clave secreta. Configura estos ajustes dentro del formulario individual."],"Save":["Guardar"],"Anonymous Analytics":["Anal\u00edtica An\u00f3nima"],"Learn More":["Aprende m\u00e1s"],"Admin Notification":["Notificaci\u00f3n de administrador"],"Enable Admin Notification":["Habilitar notificaci\u00f3n de administrador"],"Admin notifications keep you informed about new form entries since your last visit.":["Las notificaciones de administrador te mantienen informado sobre nuevas entradas de formularios desde tu \u00faltima visita."],"Continue":["Continuar"],"Get Started":["Comenzar"],"Integration":["Integraci\u00f3n"],"Connect Native Integrations with SureForms":["Conecta integraciones nativas con SureForms"],"Unlock powerful integrations in the Premium plan to automate your workflows and connect SureForms directly with your favourite tools.":["Desbloquea potentes integraciones en el plan Premium para automatizar tus flujos de trabajo y conectar SureForms directamente con tus herramientas favoritas."],"Send form submissions straight to CRMs, email, and marketing platforms":["Env\u00eda las presentaciones de formularios directamente a los CRM, correo electr\u00f3nico y plataformas de marketing"],"Automate repetitive tasks with seamless data syncing":["Automatiza tareas repetitivas con una sincronizaci\u00f3n de datos sin problemas"],"Access exclusive native integrations for faster workflows":["Accede a integraciones nativas exclusivas para flujos de trabajo m\u00e1s r\u00e1pidos"],"Payments":["Pagos"],"Stripe account disconnected successfully.":["Cuenta de Stripe desconectada con \u00e9xito."],"Failed to create webhook.":["Error al crear el webhook."],"Failed to connect to Stripe.":["Error al conectar con Stripe."],"Webhook":["Webhook"],"Knowledge Base":["Base de Conocimientos"],"What\u2019s New":["Qu\u00e9 hay de nuevo"],"delete":["eliminar"],"Please type \"%s\" in the input box":["Por favor, escribe \"%s\" en el cuadro de entrada"],"To confirm, type \"%s\" in the box below:":["Para confirmar, escriba \"%s\" en el cuadro de abajo:"],"Type \"%s\"":["Escribe \"%s\""],"Go to OttoKit Settings":["Ve a la configuraci\u00f3n de OttoKit"],"USD - US Dollar":["USD - D\u00f3lar estadounidense"],"Payment Mode":["Modo de pago"],"Test Mode":["Modo de prueba"],"Live Mode":["Modo en vivo"],"General Settings":["Configuraci\u00f3n general"],"Set up email summaries, admin alerts, and data preferences to manage your forms with ease.":["Configure res\u00famenes de correo electr\u00f3nico, alertas de administrador y preferencias de datos para gestionar tus formularios con facilidad."],"Customize default error messages shown when users submit invalid or incomplete form entries.":["Personaliza los mensajes de error predeterminados que se muestran cuando los usuarios env\u00edan entradas de formulario inv\u00e1lidas o incompletas."],"Enable spam protection for your forms using CAPTCHA services or honeypot security.":["Habilita la protecci\u00f3n contra spam para tus formularios utilizando servicios CAPTCHA o seguridad honeypot."],"Connect and manage your payment gateways to securely accept transactions through your forms.":["Conecta y gestiona tus pasarelas de pago para aceptar transacciones de forma segura a trav\u00e9s de tus formularios."],"1% transaction and payment gateway fees apply.":["Se aplican tarifas del 1% por transacciones y pasarelas de pago."],"2.9% transaction and payment gateway fees apply. Activate license to reduce transaction fees.":["Se aplican tarifas de transacci\u00f3n y de pasarela de pago del 2.9%. Activa la licencia para reducir las tarifas de transacci\u00f3n."],"2.9% transaction and payment gateway fees apply.":["Se aplican tarifas del 2.9% por transacciones y pasarelas de pago."],"Please visit %1$s, delete an unused webhook, then click below to retry.":["Por favor, visita %1$s, elimina un webhook no utilizado, luego haz clic abajo para reintentar."],"SureForms could not create a webhook because your Stripe account has run out of free slots. Webhooks are needed to receive updates about payments.":["SureForms no pudo crear un webhook porque tu cuenta de Stripe se ha quedado sin espacios libres. Los webhooks son necesarios para recibir actualizaciones sobre los pagos."],"Stripe Dashboard":["Panel de control de Stripe"],"Creating\u2026":["Creando\u2026"],"Create Webhook":["Crear Webhook"],"Successfully connected to Stripe!":["\u00a1Conectado exitosamente a Stripe!"],"Invalid response from server. Please try again.":["Respuesta inv\u00e1lida del servidor. Por favor, int\u00e9ntelo de nuevo."],"Failed to disconnect Stripe account.":["Error al desconectar la cuenta de Stripe."],"Webhook created successfully!":["\u00a1Webhook creado con \u00e9xito!"],"Select Currency":["Seleccionar moneda"],"Select the default currency for payment forms.":["Seleccione la moneda predeterminada para los formularios de pago."],"Connection Status":["Estado de la conexi\u00f3n"],"Disconnect Stripe Account":["Desconectar cuenta de Stripe"],"Are you sure you want to disconnect your Stripe account? This will stop all active payments, subscriptions, and form transactions connected to this account.":["\u00bfEst\u00e1 seguro de que desea desconectar su cuenta de Stripe? Esto detendr\u00e1 todos los pagos activos, suscripciones y transacciones de formularios conectados a esta cuenta."],"Disconnect":["Desconectar"],"Disconnecting\u2026":["Desconectando\u2026"],"Webhook successfully connected, all Stripe events are being tracked.":["Webhook conectado con \u00e9xito, todos los eventos de Stripe est\u00e1n siendo rastreados."],"Connect your Stripe account to start accepting payments through your forms.":["Conecta tu cuenta de Stripe para comenzar a aceptar pagos a trav\u00e9s de tus formularios."],"Connect to Stripe":["Conectar a Stripe"],"Securely connect to Stripe with just a few clicks to begin accepting payments! ":["Con\u00e9ctate de forma segura a Stripe con solo unos clics para comenzar a aceptar pagos."],"Payment Methods":["M\u00e9todos de pago"],"Test mode allows you to process payments without real charges. Switch to Live mode for actual transactions.":["El modo de prueba te permite procesar pagos sin cargos reales. Cambia al modo en vivo para transacciones reales."],"General Payment Settings":["Configuraci\u00f3n General de Pagos"],"These settings apply to all payment gateways.":["Estos ajustes se aplican a todas las pasarelas de pago."],"Stripe Settings":["Configuraci\u00f3n de Stripe"],"Left ($100)":["Izquierda ($100)"],"Right (100$)":["Correcto (100$)"],"Left Space ($ 100)":["Espacio Izquierdo ($ 100)"],"Right Space (100 $)":["Espacio Derecho (100 $)"],"Currency Sign Position":["Posici\u00f3n del signo de moneda"],"Select the position of the currency symbol relative to the amount.":["Seleccione la posici\u00f3n del s\u00edmbolo de moneda en relaci\u00f3n con la cantidad."],"Learn":["Aprender"],"Enable email summaries":["Habilitar res\u00famenes de correo electr\u00f3nico"],"Enable IP logging":["Habilitar el registro de IP"],"Turn on Admin Notification from here.":["Activa la notificaci\u00f3n de administrador desde aqu\u00ed."],"Send entries to 100+ popular apps.":["Env\u00eda entradas a m\u00e1s de 100 aplicaciones populares."],"Build automated workflows that run instantly.":["Crea flujos de trabajo automatizados que se ejecutan al instante."],"Create custom app integrations using our Custom App feature.":["Crea integraciones de aplicaciones personalizadas utilizando nuestra funci\u00f3n de Aplicaci\u00f3n Personalizada."],"Keep your tools in sync automatically.":["Mant\u00e9n tus herramientas sincronizadas autom\u00e1ticamente."],"This will install and activate OttoKit on your WordPress site to enable automation features.":["Esto instalar\u00e1 y activar\u00e1 OttoKit en su sitio de WordPress para habilitar funciones de automatizaci\u00f3n."],"Automate Your Forms with OttoKit":["Automatiza tus formularios con OttoKit"],"Every form submission should trigger something \u2014 a Slack alert, a CRM lead, a follow-up email, or a new row in Google Sheets.":["Cada env\u00edo de formulario deber\u00eda activar algo: una alerta de Slack, un cliente potencial en el CRM, un correo electr\u00f3nico de seguimiento o una nueva fila en Google Sheets."],"MCP":["MCP"],"Configure AI client permissions and MCP server settings.":["Configura los permisos del cliente de IA y la configuraci\u00f3n del servidor MCP."],"View documentation":["Ver documentaci\u00f3n"],"Copy to clipboard":["Copiar al portapapeles"],"Claude Desktop":["Escritorio Claude"],"~\/Library\/Application Support\/Claude\/claude_desktop_config.json (macOS) or %APPDATA%\\Claude\\claude_desktop_config.json (Windows)":["~\/Library\/Application Support\/Claude\/claude_desktop_config.json (macOS) o %APPDATA%\\Claude\\claude_desktop_config.json (Windows)"],"Claude Code":["C\u00f3digo Claude"],".mcp.json (project) or ~\/.claude.json (global)":[".mcp.json (proyecto) o ~\/.claude.json (global)"],"Cursor":["Cursor"],"~\/.cursor\/mcp.json":["~\/.cursor\/mcp.json"],"VS Code (Copilot)":["VS Code (Copilot)"],".vscode\/mcp.json (project) or settings.json > mcp.servers (global)":[".vscode\/mcp.json (proyecto) o settings.json > mcp.servers (global)"],"~\/.continue\/config.yaml or config.json":["~\/.continue\/config.yaml o config.json"],"Your client's MCP configuration file":["El archivo de configuraci\u00f3n MCP de su cliente"],"Connect Your AI Client":["Conecta tu cliente de IA"],"AI Client":["Cliente de IA"],"Create an Application Password \u2014 ":["Crear una Contrase\u00f1a de Aplicaci\u00f3n \u2014"],"Open Application Passwords":["Abrir contrase\u00f1as de aplicaciones"],"Or use this CLI command to add the server quickly (you will still need to set the environment variables):":["O utiliza este comando CLI para a\u00f1adir el servidor r\u00e1pidamente (a\u00fan necesitar\u00e1s configurar las variables de entorno):"],"Copy the JSON config below into: ":["Copie la configuraci\u00f3n JSON a continuaci\u00f3n en:"],"Replace \"your-application-password\" with the password from Step 1.":["Reemplace \"your-application-password\" con la contrase\u00f1a del Paso 1."],"WP_API_URL \u2014 your site's MCP endpoint. WP_API_USERNAME \u2014 your WordPress username. WP_API_PASSWORD \u2014 the application password you generated.":["WP_API_URL \u2014 el punto final MCP de tu sitio. WP_API_USERNAME \u2014 tu nombre de usuario de WordPress. WP_API_PASSWORD \u2014 la contrase\u00f1a de la aplicaci\u00f3n que generaste."],"View setup docs":["Ver documentos de configuraci\u00f3n"],"The MCP Adapter plugin is installed but not active. Activate it to configure MCP settings.":["El complemento MCP Adapter est\u00e1 instalado pero no activo. Act\u00edvalo para configurar los ajustes de MCP."],"The MCP Adapter plugin is required to connect AI clients to your forms. Download and install it from GitHub, then activate it.":["El complemento MCP Adapter es necesario para conectar clientes de IA a tus formularios. Desc\u00e1rgalo e inst\u00e1lalo desde GitHub, luego act\u00edvalo."],"Download the latest release from":["Descarga la \u00faltima versi\u00f3n desde"],"Install the plugin via Plugins > Add New Plugin > Upload Plugin.":["Instala el complemento a trav\u00e9s de Complementos > A\u00f1adir nuevo complemento > Subir complemento."],"Activate the MCP Adapter plugin.":["Activa el complemento del adaptador MCP."],"Activating\u2026":["Activando\u2026"],"Activate MCP Adapter":["Activar adaptador MCP"],"Download MCP Adapter":["Descargar el adaptador MCP"],"Experimental":["Experimental"],"Enable Abilities":["Habilitar habilidades"],"Register SureForms abilities with the WordPress Abilities API. When enabled, AI clients can list, read, create, edit, and delete your forms and entries. When disabled, no abilities are registered and AI clients cannot perform any actions on your forms.":["Registra las habilidades de SureForms con la API de Habilidades de WordPress. Cuando est\u00e1 habilitado, los clientes de IA pueden listar, leer, crear, editar y eliminar tus formularios y entradas. Cuando est\u00e1 deshabilitado, no se registran habilidades y los clientes de IA no pueden realizar ninguna acci\u00f3n en tus formularios."],"Abilities API \u2014 Edit":["API de habilidades \u2014 Editar"],"Enable Edit Abilities":["Habilitar habilidades de edici\u00f3n"],"When enabled, AI clients can create new forms, update form titles, fields, and settings, duplicate forms, and modify entry statuses. When disabled, these abilities are unregistered and AI clients can only read your data.":["Cuando est\u00e1 habilitado, los clientes de IA pueden crear nuevos formularios, actualizar t\u00edtulos de formularios, campos y configuraciones, duplicar formularios y modificar los estados de las entradas. Cuando est\u00e1 deshabilitado, estas habilidades se desregistran y los clientes de IA solo pueden leer sus datos."],"Abilities API \u2014 Delete":["API de habilidades \u2014 Eliminar"],"Enable Delete Abilities":["Habilitar habilidades de eliminaci\u00f3n"],"When enabled, AI clients can permanently delete forms and entries. Deleted data cannot be recovered. When disabled, delete abilities are unregistered and AI clients cannot remove any data.":["Cuando est\u00e1 habilitado, los clientes de IA pueden eliminar permanentemente formularios y entradas. Los datos eliminados no se pueden recuperar. Cuando est\u00e1 deshabilitado, las capacidades de eliminaci\u00f3n se desregistran y los clientes de IA no pueden eliminar ning\u00fan dato."],"MCP Server":["Servidor MCP"],"Enable MCP Server":["Habilitar servidor MCP"],"Creates a dedicated SureForms MCP endpoint that AI clients like Claude can connect to. When disabled, the endpoint is removed and external AI clients cannot discover or call any SureForms abilities.":["Crea un punto final dedicado de SureForms MCP al que los clientes de IA como Claude pueden conectarse. Cuando est\u00e1 deshabilitado, el punto final se elimina y los clientes de IA externos no pueden descubrir ni llamar a ninguna capacidad de SureForms."],"Learn more":["Aprende m\u00e1s"],"MCP Adapter Required":["Adaptador MCP Requerido"],"Google Maps":["Google Maps"],"Configure Google Maps API key for address autocomplete and map preview.":["Configura la clave de la API de Google Maps para la autocompletaci\u00f3n de direcciones y la vista previa del mapa."],"Help shape the future of SureForms":["Ayuda a dar forma al futuro de SureForms"],"Share how you use the plugin so we can build features that matter, fix issues faster, and make smarter decisions. ":["Comparte c\u00f3mo usas el complemento para que podamos desarrollar funciones que importen, solucionar problemas m\u00e1s r\u00e1pido y tomar decisiones m\u00e1s inteligentes."],"Enable Google Address Autocomplete":["Habilitar la autocompletar de direcciones de Google"],"Upgrade to the SureForms Business Plan to add Google-powered address autocomplete with interactive map preview to your forms.":["Actualiza al Plan de Negocios de SureForms para agregar la autocompletaci\u00f3n de direcciones impulsada por Google con vista previa de mapa interactivo a tus formularios."],"Auto-suggest addresses as users type for faster, error-free submissions":["Sugerir direcciones autom\u00e1ticamente mientras los usuarios escriben para env\u00edos m\u00e1s r\u00e1pidos y sin errores"],"Show an interactive map preview with draggable pin for precise locations":["Muestra una vista previa de mapa interactivo con un marcador arrastrable para ubicaciones precisas"],"Automatically populate address fields like city, state, and postal code":["Rellenar autom\u00e1ticamente campos de direcci\u00f3n como ciudad, estado y c\u00f3digo postal"]}}} \ No newline at end of file diff --git a/languages/sureforms-es_ES.mo b/languages/sureforms-es_ES.mo index b3cd3da33..0a90dd027 100644 Binary files a/languages/sureforms-es_ES.mo and b/languages/sureforms-es_ES.mo differ diff --git a/languages/sureforms-es_ES.po b/languages/sureforms-es_ES.po index 9cc3087c1..0d8d897bd 100644 --- a/languages/sureforms-es_ES.po +++ b/languages/sureforms-es_ES.po @@ -16,7 +16,7 @@ msgstr "" #: sureforms.php #: admin/admin.php:320 #: admin/admin.php:321 -#: admin/admin.php:1812 +#: admin/admin.php:1813 #: inc/abilities/abilities-registrar.php:133 #: inc/gutenberg-hooks.php:109 #: inc/page-builders/bricks/elements/form-widget.php:67 @@ -82,7 +82,7 @@ msgstr "Nuevo formulario" #: admin/admin.php:601 #: admin/admin.php:602 -#: admin/admin.php:1849 +#: admin/admin.php:1850 #: inc/global-settings/email-summary.php:225 #: assets/build/dashboard.js:172 #: assets/build/entries.js:172 @@ -118,18 +118,18 @@ msgid "Nonce verification failed." msgstr "La verificación del nonce falló." #. translators: %1$s: Opening anchor tag with URL, %2$s: Closing anchor tag, %3$s: SureForms Pro Plugin Name. -#: admin/admin.php:1441 +#: admin/admin.php:1442 #, php-format msgid "Please %1$sactivate%2$s your copy of %3$s to get new features, access support, receive update notifications, and more." msgstr "Por favor, %1$sactiva%2$s tu copia de %3$s para obtener nuevas funciones, acceder al soporte, recibir notificaciones de actualizaciones y más." #. translators: %1$s: SureForms version, %2$s: SureForms Pro Plugin Name, %3$s: SureForms Pro Version, %4$s: Anchor tag open, %5$s: Closing anchor tag. -#: admin/admin.php:1459 +#: admin/admin.php:1460 #, php-format msgid "SureForms %1$s requires minimum %2$s %3$s to work properly. Please update to the latest version from %4$shere%5$s." msgstr "SureForms %1$s requiere un mínimo de %2$s %3$s para funcionar correctamente. Por favor, actualice a la última versión desde %4$saquí%5$s." -#: admin/admin.php:1848 +#: admin/admin.php:1849 #: inc/global-settings/email-summary.php:224 #: assets/build/entries.js:172 #: assets/build/payments.js:172 @@ -197,7 +197,7 @@ msgstr "Basura" msgid "Published" msgstr "Publicado" -#: admin/admin.php:1840 +#: admin/admin.php:1841 msgid "View" msgstr "Ver" @@ -323,10 +323,10 @@ msgstr "Instalado" msgid "You do not have permission to access this page." msgstr "No tienes permiso para acceder a esta página." -#: admin/admin.php:1607 -#: admin/admin.php:1706 -#: admin/admin.php:1744 -#: admin/admin.php:1765 +#: admin/admin.php:1608 +#: admin/admin.php:1707 +#: admin/admin.php:1745 +#: admin/admin.php:1766 #: inc/admin-ajax.php:162 #: inc/payments/admin/admin-handler.php:638 #: inc/payments/stripe/admin-stripe-handler.php:80 @@ -339,7 +339,7 @@ msgid "Form ID is required." msgstr "Se requiere el ID del formulario." #: inc/admin-ajax.php:182 -#: inc/form-submit.php:970 +#: inc/form-submit.php:972 msgid "Invalid form ID." msgstr "ID de formulario no válido." @@ -513,11 +513,11 @@ msgstr "Casilla de verificación" msgid "Required" msgstr "Requerido" -#: inc/fields/dropdown-markup.php:83 +#: inc/fields/dropdown-markup.php:84 msgid "Dropdown" msgstr "Desplegable" -#: inc/fields/dropdown-markup.php:106 +#: inc/fields/dropdown-markup.php:108 #: inc/gutenberg-hooks.php:220 msgid "Select an option" msgstr "Selecciona una opción" @@ -545,7 +545,7 @@ msgstr "Doy mi consentimiento para que este sitio web almacene la información q msgid "Please verify that you are not a robot." msgstr "Por favor, verifica que no eres un robot." -#: inc/fields/multichoice-markup.php:113 +#: inc/fields/multichoice-markup.php:114 msgid "Multi Choice" msgstr "Opción Múltiple" @@ -786,7 +786,7 @@ msgid "Site URL" msgstr "URL del sitio" #: inc/smart-tags.php:111 -#: inc/smart-tags.php:142 +#: inc/smart-tags.php:143 msgid "Admin Email" msgstr "Correo electrónico del administrador" @@ -827,7 +827,7 @@ msgid "User Last Name" msgstr "Apellido del usuario" #: inc/smart-tags.php:122 -#: inc/smart-tags.php:143 +#: inc/smart-tags.php:144 msgid "User Email" msgstr "Correo electrónico del usuario" @@ -851,11 +851,11 @@ msgstr "ID de publicación/página incrustada" msgid "Embedded Post/Page Title" msgstr "Título de la Publicación/Página Incrustada" -#: inc/smart-tags.php:128 +#: inc/smart-tags.php:129 msgid "Populate by GET Param" msgstr "Rellenar por parámetro GET" -#: inc/smart-tags.php:129 +#: inc/smart-tags.php:130 msgid "Cookie Value" msgstr "Valor de la cookie" @@ -8838,7 +8838,7 @@ msgstr "Reorganizar bloque dentro de la Barra de Acción Rápida" #: admin/admin.php:409 #: admin/admin.php:410 -#: admin/admin.php:2021 +#: admin/admin.php:2022 #: assets/build/blocks.js:172 #: assets/build/dashboard.js:172 #: assets/build/entries.js:172 @@ -9181,7 +9181,7 @@ msgstr "Centro" msgid "Right" msgstr "Correcto" -#: inc/form-submit.php:1147 +#: inc/form-submit.php:1149 #: assets/build/formEditor.js:172 #: assets/build/settings.js:172 msgid "Google reCAPTCHA" @@ -9191,7 +9191,7 @@ msgstr "Google reCAPTCHA" msgid "CloudFlare Turnstile" msgstr "CloudFlare Turnstile" -#: inc/form-submit.php:1151 +#: inc/form-submit.php:1153 #: assets/build/formEditor.js:172 #: assets/build/settings.js:172 msgid "hCaptcha" @@ -9469,7 +9469,7 @@ msgstr "Clave del sitio" msgid "Secret Key" msgstr "Clave secreta" -#: inc/form-submit.php:1155 +#: inc/form-submit.php:1157 #: assets/build/settings.js:172 msgid "Cloudflare Turnstile" msgstr "Cloudflare Turnstile" @@ -10429,7 +10429,7 @@ msgstr "Agrega impresionantes iconos personalizables a tu sitio web." msgid "icon" msgstr "icono" -#: admin/admin.php:1505 +#: admin/admin.php:1506 msgid "Rate SureForms" msgstr "Califica SureForms" @@ -10485,18 +10485,18 @@ msgstr "Desbloquear Añadir Nota" msgid "With the SureForms Starter plan, enhance your submitted form entries by adding personalized notes for better clarity and tracking." msgstr "Con el plan SureForms Starter, mejora tus entradas de formulario enviadas añadiendo notas personalizadas para una mejor claridad y seguimiento." -#: inc/form-submit.php:821 +#: inc/form-submit.php:823 msgid "Email notification passed to the sending server" msgstr "Notificación de correo electrónico pasada al servidor de envío" #. translators: Here, %s is the comma separated emails list. -#: inc/form-submit.php:894 +#: inc/form-submit.php:896 #, php-format msgid "Email notification recipient: %s" msgstr "Destinatario de la notificación por correo electrónico: %s" #. translators: Here, %1$s is the comma separated emails list and %2$s is error report ( if any ). -#: inc/form-submit.php:911 +#: inc/form-submit.php:913 #, php-format msgid "Email server was unable to send the email notification. Recipient: %1$s. Reason: %2$s" msgstr "El servidor de correo no pudo enviar la notificación por correo electrónico. Destinatario: %1$s. Razón: %2$s" @@ -10740,24 +10740,24 @@ msgstr "Seleccionar degradado" msgid "reCAPTCHA" msgstr "reCAPTCHA" -#: inc/form-submit.php:1091 +#: inc/form-submit.php:1093 msgid "Captcha validation failed. No error code provided." msgstr "La validación del captcha falló. No se proporcionó un código de error." -#: inc/form-submit.php:1092 +#: inc/form-submit.php:1094 msgid "Captcha validation failed." msgstr "La validación del captcha falló." -#: inc/form-submit.php:1159 +#: inc/form-submit.php:1161 msgid "Unknown Captcha" msgstr "Captcha desconocido" -#: inc/form-submit.php:1160 +#: inc/form-submit.php:1162 msgid "Invalid captcha type." msgstr "Tipo de captcha no válido." #. translators: %s is the captcha title. -#: inc/form-submit.php:1173 +#: inc/form-submit.php:1175 #, php-format msgid "%s verification failed. Please contact your site administrator." msgstr "La verificación de %s falló. Por favor, contacte a su administrador del sitio." @@ -11274,28 +11274,28 @@ msgstr "Habilitar notificación de administrador" msgid "Admin notifications keep you informed about new form entries since your last visit." msgstr "Las notificaciones de administrador te mantienen informado sobre nuevas entradas de formularios desde tu última visita." -#: admin/admin.php:1611 -#: admin/admin.php:1702 -#: admin/admin.php:1740 -#: admin/admin.php:1761 +#: admin/admin.php:1612 +#: admin/admin.php:1703 +#: admin/admin.php:1741 +#: admin/admin.php:1762 msgid "Unauthorized user." msgstr "Usuario no autorizado." #. translators: 1: opening span, 2: opening strong (inline), 3: closing strong, 4: closing span, 5: opening strong (block), 6: closing strong -#: admin/admin.php:1711 +#: admin/admin.php:1712 #, php-format msgid "%1$sGet started by %2$sbuilding your first form%3$s.%4$s%5$sExperience the power of our intuitive AI Form Builder%6$s" msgstr "%1$sComienza %2$screando tu primer formulario%3$s.%4$s%5$sExperimenta el poder de nuestro intuitivo Creador de Formularios AI%6$s" -#: admin/admin.php:1722 +#: admin/admin.php:1723 msgid "SureForms is waiting for you!" msgstr "¡SureForms te está esperando!" -#: admin/admin.php:1724 +#: admin/admin.php:1725 msgid "Build My First Form" msgstr "Construir mi primer formulario" -#: admin/admin.php:1725 +#: admin/admin.php:1726 msgid "Dismiss" msgstr "Descartar" @@ -11315,51 +11315,51 @@ msgstr "Iniciar sesión" msgid "Register" msgstr "Registrar" -#: admin/admin.php:1836 +#: admin/admin.php:1837 msgid "Recent Entries" msgstr "Entradas Recientes" -#: admin/admin.php:1837 +#: admin/admin.php:1838 msgid "( Last 7 days )" msgstr "( Últimos 7 días )" -#: admin/admin.php:1957 +#: admin/admin.php:1958 msgid "Use Conditional Logic to show only what matters" msgstr "Usa lógica condicional para mostrar solo lo que importa" -#: admin/admin.php:1958 +#: admin/admin.php:1959 msgid "Split your form into steps to keep it easy" msgstr "Divide tu formulario en pasos para mantenerlo sencillo" -#: admin/admin.php:1959 +#: admin/admin.php:1960 msgid "Let people upload files directly to your form" msgstr "Permite que las personas suban archivos directamente a tu formulario" -#: admin/admin.php:1960 +#: admin/admin.php:1961 msgid "Turn responses into downloadable PDFs automatically" msgstr "Convierte las respuestas en PDFs descargables automáticamente" -#: admin/admin.php:1961 +#: admin/admin.php:1962 msgid "Let users sign with a simple signature field" msgstr "Permitir que los usuarios firmen con un campo de firma simple" -#: admin/admin.php:1962 +#: admin/admin.php:1963 msgid "Connect your form to other tools using webhooks" msgstr "Conecta tu formulario a otras herramientas usando webhooks" -#: admin/admin.php:1963 +#: admin/admin.php:1964 msgid "Use Conversational Forms for a chat-like experience" msgstr "Utiliza Formularios Conversacionales para una experiencia similar a un chat" -#: admin/admin.php:1964 +#: admin/admin.php:1965 msgid "Let users register or log in through your form" msgstr "Permitir a los usuarios registrarse o iniciar sesión a través de su formulario" -#: admin/admin.php:1965 +#: admin/admin.php:1966 msgid "Build forms that create WordPress user accounts" msgstr "Crear formularios que generen cuentas de usuario de WordPress" -#: admin/admin.php:1966 +#: admin/admin.php:1967 msgid "Add calculations to auto-total scores or prices" msgstr "Agrega cálculos para totalizar automáticamente las puntuaciones o precios" @@ -11917,6 +11917,7 @@ msgid "Unable to create ZIP file." msgstr "No se puede crear el archivo ZIP." #: inc/entries.php:729 +#: inc/smart-tags.php:128 #: assets/build/entries.js:172 msgid "Entry ID" msgstr "ID de entrada" @@ -11934,7 +11935,7 @@ msgid "Invalid form data structure provided." msgstr "Estructura de datos del formulario no válida proporcionada." #: inc/fields/payment-markup.php:249 -#: inc/payments/payment-helper.php:538 +#: inc/payments/payment-helper.php:543 msgid "Subscription Plan" msgstr "Plan de suscripción" @@ -12552,301 +12553,301 @@ msgstr "Dólar de Hong Kong" msgid "Norwegian Krone" msgstr "Corona noruega" -#: inc/payments/payment-helper.php:259 +#: inc/payments/payment-helper.php:264 msgid "South Korean Won" msgstr "Won surcoreano" -#: inc/payments/payment-helper.php:264 +#: inc/payments/payment-helper.php:269 msgid "Turkish Lira" msgstr "Lira turca" -#: inc/payments/payment-helper.php:269 +#: inc/payments/payment-helper.php:274 msgid "Russian Ruble" msgstr "Rublo ruso" -#: inc/payments/payment-helper.php:274 +#: inc/payments/payment-helper.php:279 msgid "Indian Rupee" msgstr "Rupia india" -#: inc/payments/payment-helper.php:279 +#: inc/payments/payment-helper.php:284 msgid "Brazilian Real" msgstr "Real brasileño" -#: inc/payments/payment-helper.php:284 +#: inc/payments/payment-helper.php:289 msgid "South African Rand" msgstr "Rand sudafricano" -#: inc/payments/payment-helper.php:289 +#: inc/payments/payment-helper.php:294 msgid "UAE Dirham" msgstr "Dirham de los EAU" -#: inc/payments/payment-helper.php:294 +#: inc/payments/payment-helper.php:299 msgid "Philippine Peso" msgstr "Peso filipino" -#: inc/payments/payment-helper.php:299 +#: inc/payments/payment-helper.php:304 msgid "Indonesian Rupiah" msgstr "Rupia indonesia" -#: inc/payments/payment-helper.php:304 +#: inc/payments/payment-helper.php:309 msgid "Malaysian Ringgit" msgstr "Ringgit malayo" -#: inc/payments/payment-helper.php:309 +#: inc/payments/payment-helper.php:314 msgid "Thai Baht" msgstr "Baht tailandés" -#: inc/payments/payment-helper.php:314 +#: inc/payments/payment-helper.php:319 msgid "Burundian Franc" msgstr "Franco de Burundi" -#: inc/payments/payment-helper.php:319 +#: inc/payments/payment-helper.php:324 msgid "Chilean Peso" msgstr "Peso chileno" -#: inc/payments/payment-helper.php:324 +#: inc/payments/payment-helper.php:329 msgid "Djiboutian Franc" msgstr "Franco de Yibuti" -#: inc/payments/payment-helper.php:329 +#: inc/payments/payment-helper.php:334 msgid "Guinean Franc" msgstr "Franco guineano" -#: inc/payments/payment-helper.php:334 +#: inc/payments/payment-helper.php:339 msgid "Comorian Franc" msgstr "Franco Comorense" -#: inc/payments/payment-helper.php:339 +#: inc/payments/payment-helper.php:344 msgid "Malagasy Ariary" msgstr "Ariary malgache" -#: inc/payments/payment-helper.php:344 +#: inc/payments/payment-helper.php:349 msgid "Paraguayan Guaraní" msgstr "Guaraní paraguayo" -#: inc/payments/payment-helper.php:349 +#: inc/payments/payment-helper.php:354 msgid "Rwandan Franc" msgstr "Franco ruandés" -#: inc/payments/payment-helper.php:354 +#: inc/payments/payment-helper.php:359 msgid "Ugandan Shilling" msgstr "Chelín ugandés" -#: inc/payments/payment-helper.php:359 +#: inc/payments/payment-helper.php:364 msgid "Vietnamese Đồng" msgstr "Dong vietnamita" -#: inc/payments/payment-helper.php:364 +#: inc/payments/payment-helper.php:369 msgid "Vanuatu Vatu" msgstr "Vatu de Vanuatu" -#: inc/payments/payment-helper.php:369 +#: inc/payments/payment-helper.php:374 msgid "Central African CFA Franc" msgstr "Franco CFA de África Central" -#: inc/payments/payment-helper.php:374 +#: inc/payments/payment-helper.php:379 msgid "West African CFA Franc" msgstr "Franco CFA de África Occidental" -#: inc/payments/payment-helper.php:379 +#: inc/payments/payment-helper.php:384 msgid "CFP Franc" msgstr "Franco CFP" -#: inc/payments/payment-helper.php:475 +#: inc/payments/payment-helper.php:480 msgid "An unknown error occurred. Please try again or contact the site administrator." msgstr "Ocurrió un error desconocido. Por favor, inténtelo de nuevo o contacte al administrador del sitio." -#: inc/payments/payment-helper.php:477 +#: inc/payments/payment-helper.php:482 msgid "Payment is currently unavailable. Please contact the site administrator." msgstr "El pago no está disponible actualmente. Por favor, contacte al administrador del sitio." -#: inc/payments/payment-helper.php:478 +#: inc/payments/payment-helper.php:483 msgid "Payment is currently unavailable. Please contact the site administrator to configure the payment amount." msgstr "El pago no está disponible actualmente. Por favor, contacte al administrador del sitio para configurar el monto del pago." -#: inc/payments/payment-helper.php:479 +#: inc/payments/payment-helper.php:484 msgid "Invalid payment amount" msgstr "Monto de pago no válido" -#: inc/payments/payment-helper.php:480 +#: inc/payments/payment-helper.php:485 msgid "Payment amount must be at least {symbol}{amount}." msgstr "El monto del pago debe ser al menos {symbol}{amount}." -#: inc/payments/payment-helper.php:483 +#: inc/payments/payment-helper.php:488 msgid "Payment is currently unavailable. Please contact the site administrator to configure the customer name field." msgstr "El pago no está disponible actualmente. Por favor, contacte al administrador del sitio para configurar el campo del nombre del cliente." -#: inc/payments/payment-helper.php:484 +#: inc/payments/payment-helper.php:489 msgid "Payment is currently unavailable. Please contact the site administrator to configure the customer email field." msgstr "El pago no está disponible actualmente. Por favor, contacte al administrador del sitio para configurar el campo de correo electrónico del cliente." -#: inc/payments/payment-helper.php:485 +#: inc/payments/payment-helper.php:490 msgid "Please enter your name." msgstr "Por favor, introduzca su nombre." -#: inc/payments/payment-helper.php:486 +#: inc/payments/payment-helper.php:491 msgid "Please enter your email." msgstr "Por favor, introduce tu correo electrónico." -#: inc/payments/payment-helper.php:489 +#: inc/payments/payment-helper.php:494 msgid "Payment failed" msgstr "Pago fallido" -#: inc/payments/payment-helper.php:490 +#: inc/payments/payment-helper.php:495 msgid "Payment successful" msgstr "Pago exitoso" -#: inc/payments/payment-helper.php:494 -#: inc/payments/payment-helper.php:495 +#: inc/payments/payment-helper.php:499 +#: inc/payments/payment-helper.php:500 msgid "Your card was declined. Please try a different payment method or contact your bank." msgstr "Su tarjeta fue rechazada. Por favor, intente con otro método de pago o contacte a su banco." -#: inc/payments/payment-helper.php:496 +#: inc/payments/payment-helper.php:501 msgid "Your card has insufficient funds. Please use a different payment method." msgstr "Su tarjeta no tiene fondos suficientes. Por favor, use un método de pago diferente." -#: inc/payments/payment-helper.php:497 +#: inc/payments/payment-helper.php:502 msgid "Your card was declined because it has been reported as lost. Please contact your bank." msgstr "Su tarjeta fue rechazada porque ha sido reportada como perdida. Por favor, contacte a su banco." -#: inc/payments/payment-helper.php:498 +#: inc/payments/payment-helper.php:503 msgid "Your card was declined because it has been reported as stolen. Please contact your bank." msgstr "Su tarjeta fue rechazada porque ha sido reportada como robada. Por favor, contacte a su banco." -#: inc/payments/payment-helper.php:499 +#: inc/payments/payment-helper.php:504 msgid "Your card has expired. Please use a different payment method." msgstr "Su tarjeta ha expirado. Por favor, utilice un método de pago diferente." -#: inc/payments/payment-helper.php:500 -#: inc/payments/payment-helper.php:521 +#: inc/payments/payment-helper.php:505 +#: inc/payments/payment-helper.php:526 msgid "Your card was declined. Please contact your bank for more information." msgstr "Su tarjeta fue rechazada. Por favor, contacte a su banco para más información." -#: inc/payments/payment-helper.php:501 +#: inc/payments/payment-helper.php:506 msgid "Your card was declined due to restrictions. Please contact your bank." msgstr "Su tarjeta fue rechazada debido a restricciones. Por favor, contacte a su banco." -#: inc/payments/payment-helper.php:502 +#: inc/payments/payment-helper.php:507 msgid "Your card was declined due to a security violation. Please contact your bank." msgstr "Su tarjeta fue rechazada debido a una violación de seguridad. Por favor, contacte a su banco." -#: inc/payments/payment-helper.php:503 +#: inc/payments/payment-helper.php:508 msgid "Your card does not support this type of purchase. Please use a different payment method." msgstr "Su tarjeta no admite este tipo de compra. Por favor, utilice un método de pago diferente." -#: inc/payments/payment-helper.php:504 +#: inc/payments/payment-helper.php:509 msgid "A stop payment order has been placed on this card. Please contact your bank." msgstr "Se ha realizado una orden de detención de pago en esta tarjeta. Por favor, contacte a su banco." -#: inc/payments/payment-helper.php:505 +#: inc/payments/payment-helper.php:510 msgid "A test card was used in a live environment. Please use a real card." msgstr "Se utilizó una tarjeta de prueba en un entorno en vivo. Por favor, use una tarjeta real." -#: inc/payments/payment-helper.php:506 +#: inc/payments/payment-helper.php:511 msgid "Your card has exceeded its withdrawal limit. Please contact your bank." msgstr "Su tarjeta ha excedido su límite de retiro. Por favor, contacte a su banco." -#: inc/payments/payment-helper.php:507 +#: inc/payments/payment-helper.php:512 msgid "Your card's security code is incorrect. Please check and try again." msgstr "El código de seguridad de su tarjeta es incorrecto. Por favor, verifique e intente de nuevo." -#: inc/payments/payment-helper.php:508 +#: inc/payments/payment-helper.php:513 msgid "Your card number is incorrect. Please check and try again." msgstr "Su número de tarjeta es incorrecto. Por favor, verifíquelo e inténtelo de nuevo." -#: inc/payments/payment-helper.php:509 +#: inc/payments/payment-helper.php:514 msgid "Your card's security code is invalid. Please check and try again." msgstr "El código de seguridad de su tarjeta no es válido. Por favor, verifíquelo e inténtelo de nuevo." -#: inc/payments/payment-helper.php:510 +#: inc/payments/payment-helper.php:515 msgid "Your card's expiration month is invalid. Please check and try again." msgstr "El mes de vencimiento de su tarjeta no es válido. Por favor, verifique e intente de nuevo." -#: inc/payments/payment-helper.php:511 +#: inc/payments/payment-helper.php:516 msgid "Your card's expiration year is invalid. Please check and try again." msgstr "El año de vencimiento de su tarjeta no es válido. Por favor, verifique e intente de nuevo." -#: inc/payments/payment-helper.php:512 +#: inc/payments/payment-helper.php:517 msgid "Your card number is invalid. Please check and try again." msgstr "Su número de tarjeta no es válido. Por favor, verifique e intente de nuevo." -#: inc/payments/payment-helper.php:515 +#: inc/payments/payment-helper.php:520 msgid "Your card is not supported for this transaction. Please use a different payment method." msgstr "Su tarjeta no es compatible con esta transacción. Por favor, utilice un método de pago diferente." -#: inc/payments/payment-helper.php:516 +#: inc/payments/payment-helper.php:521 msgid "Your card does not support the currency used for this transaction. Please use a different payment method." msgstr "Su tarjeta no admite la moneda utilizada para esta transacción. Por favor, utilice un método de pago diferente." -#: inc/payments/payment-helper.php:517 +#: inc/payments/payment-helper.php:522 msgid "A transaction with identical details was submitted recently. Please wait a moment and try again." msgstr "Una transacción con detalles idénticos fue enviada recientemente. Por favor, espere un momento y vuelva a intentarlo." -#: inc/payments/payment-helper.php:518 +#: inc/payments/payment-helper.php:523 msgid "The account associated with your card is invalid. Please contact your bank." msgstr "La cuenta asociada con su tarjeta no es válida. Por favor, contacte a su banco." -#: inc/payments/payment-helper.php:519 +#: inc/payments/payment-helper.php:524 msgid "The payment amount is invalid. Please contact the site administrator." msgstr "El monto del pago no es válido. Por favor, contacte al administrador del sitio." -#: inc/payments/payment-helper.php:522 +#: inc/payments/payment-helper.php:527 msgid "Your card information needs to be updated. Please contact your bank." msgstr "La información de su tarjeta necesita ser actualizada. Por favor, contacte a su banco." -#: inc/payments/payment-helper.php:523 +#: inc/payments/payment-helper.php:528 msgid "The card cannot be used for this transaction. Please contact your bank." msgstr "La tarjeta no se puede usar para esta transacción. Por favor, contacte a su banco." -#: inc/payments/payment-helper.php:524 +#: inc/payments/payment-helper.php:529 msgid "The transaction is not permitted. Please contact your bank." msgstr "La transacción no está permitida. Por favor, contacte a su banco." -#: inc/payments/payment-helper.php:525 +#: inc/payments/payment-helper.php:530 msgid "Your card requires offline PIN authentication. Please try again." msgstr "Su tarjeta requiere autenticación de PIN offline. Por favor, inténtelo de nuevo." -#: inc/payments/payment-helper.php:526 +#: inc/payments/payment-helper.php:531 msgid "Your card requires PIN authentication. Please try again." msgstr "Su tarjeta requiere autenticación con PIN. Por favor, inténtelo de nuevo." -#: inc/payments/payment-helper.php:527 +#: inc/payments/payment-helper.php:532 msgid "You have exceeded the maximum number of PIN attempts. Please contact your bank." msgstr "Ha superado el número máximo de intentos de PIN. Por favor, contacte con su banco." -#: inc/payments/payment-helper.php:528 +#: inc/payments/payment-helper.php:533 msgid "All authorizations for this card have been revoked. Please contact your bank." msgstr "Todas las autorizaciones para esta tarjeta han sido revocadas. Por favor, contacte con su banco." -#: inc/payments/payment-helper.php:529 +#: inc/payments/payment-helper.php:534 msgid "The authorization for this transaction has been revoked. Please try again." msgstr "La autorización para esta transacción ha sido revocada. Por favor, inténtelo de nuevo." -#: inc/payments/payment-helper.php:530 +#: inc/payments/payment-helper.php:535 msgid "This transaction is not allowed. Please contact your bank." msgstr "Esta transacción no está permitida. Por favor, contacte a su banco." -#: inc/payments/payment-helper.php:532 +#: inc/payments/payment-helper.php:537 msgid "Your card was declined. Your request was in live mode, but used a known test card." msgstr "Su tarjeta fue rechazada. Su solicitud estaba en modo en vivo, pero usó una tarjeta de prueba conocida." -#: inc/payments/payment-helper.php:533 +#: inc/payments/payment-helper.php:538 msgid "Your card was declined. Your request was in test mode, but used a non test card. For a list of valid test cards, visit: https://stripe.com/docs/testing." msgstr "Su tarjeta fue rechazada. Su solicitud estaba en modo de prueba, pero utilizó una tarjeta que no es de prueba. Para obtener una lista de tarjetas de prueba válidas, visite: https://stripe.com/docs/testing." -#: inc/payments/payment-helper.php:536 +#: inc/payments/payment-helper.php:541 msgid "SureForms Subscription" msgstr "Suscripción a SureForms" -#: inc/payments/payment-helper.php:537 +#: inc/payments/payment-helper.php:542 msgid "SureForms Payment" msgstr "Pago de SureForms" -#: inc/payments/payment-helper.php:539 +#: inc/payments/payment-helper.php:544 msgid "SureForms Customer" msgstr "Cliente de SureForms" -#: inc/payments/payment-helper.php:559 +#: inc/payments/payment-helper.php:564 msgid "Unknown error" msgstr "Error desconocido" @@ -14977,74 +14978,74 @@ msgstr "Error al crear un formulario duplicado." #: inc/payments/front-end.php:97 #: inc/payments/front-end.php:298 -#: inc/payments/payment-helper.php:589 +#: inc/payments/payment-helper.php:594 msgid "Invalid form configuration." msgstr "Configuración de formulario no válida." -#: inc/payments/payment-helper.php:597 +#: inc/payments/payment-helper.php:602 msgid "Payment configuration not found for this form." msgstr "No se encontró la configuración de pago para este formulario." #. translators: 1: expected currency, 2: received currency -#: inc/payments/payment-helper.php:608 +#: inc/payments/payment-helper.php:613 #, php-format msgid "Currency mismatch: expected %1$s, received %2$s." msgstr "Desajuste de moneda: se esperaba %1$s, se recibió %2$s." #. translators: 1: expected amount with currency -#: inc/payments/payment-helper.php:625 +#: inc/payments/payment-helper.php:630 #, php-format msgid "Payment amount must be exactly %1$s." msgstr "El monto del pago debe ser exactamente %1$s." #. translators: 1: minimum amount with currency -#: inc/payments/payment-helper.php:636 +#: inc/payments/payment-helper.php:641 #, php-format msgid "Payment amount must be at least %1$s." msgstr "El monto del pago debe ser al menos %1$s." -#: inc/payments/payment-helper.php:712 +#: inc/payments/payment-helper.php:717 msgid "Invalid payment verification parameters." msgstr "Parámetros de verificación de pago no válidos." -#: inc/payments/payment-helper.php:723 +#: inc/payments/payment-helper.php:728 msgid "Payment verification failed. Invalid payment intent." msgstr "La verificación del pago falló. Intención de pago no válida." -#: inc/payments/payment-helper.php:809 -#: inc/payments/payment-helper.php:947 +#: inc/payments/payment-helper.php:814 +#: inc/payments/payment-helper.php:952 msgid "Variable amount field configuration not found." msgstr "No se encontró la configuración del campo de cantidad variable." -#: inc/payments/payment-helper.php:830 +#: inc/payments/payment-helper.php:835 msgid "No payment options are configured for this field." msgstr "No hay opciones de pago configuradas para este campo." #. translators: %s: currency code -#: inc/payments/payment-helper.php:856 +#: inc/payments/payment-helper.php:861 msgid "Invalid payment amount. Please select a valid amount from the available options." msgstr "Monto de pago no válido. Por favor, seleccione un monto válido de las opciones disponibles." #. translators: %1$s: expected amount, %2$s: payment amount -#: inc/payments/payment-helper.php:891 +#: inc/payments/payment-helper.php:896 msgid "Payment configuration not found." msgstr "Configuración de pago no encontrada." #. translators: %1$s: expected amount, %2$s: payment amount -#: inc/payments/payment-helper.php:907 -#: inc/payments/payment-helper.php:959 -#: inc/payments/payment-helper.php:995 +#: inc/payments/payment-helper.php:912 +#: inc/payments/payment-helper.php:964 +#: inc/payments/payment-helper.php:1000 #, php-format msgid "Payment amount mismatch. Expected %1$s, received %2$s." msgstr "Desajuste en el monto del pago. Se esperaba %1$s, se recibió %2$s." -#: inc/payments/payment-helper.php:936 -#: inc/payments/payment-helper.php:986 +#: inc/payments/payment-helper.php:941 +#: inc/payments/payment-helper.php:991 msgid "Variable amount field value is required." msgstr "Se requiere el valor del campo de cantidad variable." #. translators: %1$s: minimum amount, %2$s: payment amount -#: inc/payments/payment-helper.php:1007 +#: inc/payments/payment-helper.php:1012 #, php-format msgid "Payment amount below minimum. Minimum: %1$s, received %2$s." msgstr "Importe del pago por debajo del mínimo. Mínimo: %1$s, recibido %2$s." @@ -15130,7 +15131,7 @@ msgstr "Pasarela de pago no encontrada." msgid "Refund processing is not supported for %s gateway." msgstr "El procesamiento de reembolsos no es compatible con la pasarela %s." -#: inc/payments/payment-helper.php:969 +#: inc/payments/payment-helper.php:974 msgid "Number field configuration not found." msgstr "No se encontró la configuración del campo numérico." @@ -15249,12 +15250,12 @@ msgid "Stripe Settings" msgstr "Configuración de Stripe" #. translators: %1$s: SureForms version, %2$s: SureForms Pro Plugin Name, %3$s: SureForms Pro Version. -#: admin/admin.php:1376 +#: admin/admin.php:1377 #, php-format msgid "SureForms %1$s requires minimum %2$s %3$s to work properly. Please update to the latest version." msgstr "SureForms %1$s requiere un mínimo de %2$s %3$s para funcionar correctamente. Por favor, actualice a la última versión." -#: admin/admin.php:1389 +#: admin/admin.php:1390 msgid "Update Now" msgstr "Actualizar ahora" @@ -15316,40 +15317,40 @@ msgstr "Seleccione la posición del símbolo de moneda en relación con la canti msgid "Learn" msgstr "Aprender" -#: admin/admin.php:1502 +#: admin/admin.php:1503 msgid "Amazing! SureForms is powering your forms and submissions - let's keep growing together!" msgstr "¡Increíble! SureForms está impulsando tus formularios y envíos - ¡sigamos creciendo juntos!" -#: admin/admin.php:1503 +#: admin/admin.php:1504 msgid "If SureForms has been helpful, would you mind taking a moment to leave a 5-star review on WordPress.org?" msgstr "Si SureForms ha sido útil, ¿te importaría tomarte un momento para dejar una reseña de 5 estrellas en WordPress.org?" -#: admin/admin.php:1506 -#: admin/admin.php:1550 +#: admin/admin.php:1507 +#: admin/admin.php:1551 msgid "Maybe later" msgstr "Quizás más tarde" -#: admin/admin.php:1507 +#: admin/admin.php:1508 msgid "I already did" msgstr "Ya lo hice" -#: admin/admin.php:1546 +#: admin/admin.php:1547 msgid "SureForms is ready to power your forms — explore what's possible!" msgstr "SureForms está listo para potenciar tus formularios — ¡explora lo que es posible!" -#: admin/admin.php:1547 +#: admin/admin.php:1548 msgid "Manage your forms, track submissions, and discover features like AI Form Builder, payment integrations, and more from the SureForms dashboard." msgstr "Administra tus formularios, realiza un seguimiento de las presentaciones y descubre funciones como el Creador de Formularios con IA, integraciones de pago y más desde el panel de SureForms." -#: admin/admin.php:1549 +#: admin/admin.php:1550 msgid "Go to Dashboard" msgstr "Ir al panel de control" -#: admin/admin.php:1551 +#: admin/admin.php:1552 msgid "I already know" msgstr "Ya lo sé" -#: admin/admin.php:1631 +#: admin/admin.php:1632 msgid "Invalid parameters." msgstr "Parámetros no válidos." @@ -15739,7 +15740,7 @@ msgstr "Este formulario aún no está disponible. Vuelve a consultar después de #: inc/form-submit.php:99 #: inc/form-submit.php:400 #: inc/form-submit.php:445 -#: inc/form-submit.php:966 +#: inc/form-submit.php:968 #: inc/payments/front-end.php:77 #: inc/payments/front-end.php:258 #: inc/rest-api.php:98 @@ -15788,19 +15789,19 @@ msgstr "Por favor, revise el formulario en busca de errores." msgid "Your submission was flagged as spam. Please try again." msgstr "Tu envío fue marcado como spam. Por favor, inténtalo de nuevo." -#: inc/form-submit.php:649 +#: inc/form-submit.php:651 msgid "Unable to submit form. Please try again." msgstr "No se puede enviar el formulario. Por favor, inténtelo de nuevo." -#: inc/form-submit.php:901 +#: inc/form-submit.php:903 msgid "No SMTP plugin detected. Please configure an SMTP plugin to enable email sending." msgstr "No se detectó ningún complemento SMTP. Por favor, configure un complemento SMTP para habilitar el envío de correos electrónicos." -#: inc/form-submit.php:902 +#: inc/form-submit.php:904 msgid "Email sending failed for an unknown reason." msgstr "El envío del correo electrónico falló por una razón desconocida." -#: inc/form-submit.php:941 +#: inc/form-submit.php:943 msgid "No emails were sent." msgstr "No se enviaron correos electrónicos." @@ -15953,31 +15954,31 @@ msgstr "No se pueden eliminar los pagos. Por favor, inténtelo de nuevo." msgid "Unable to process refund. Please try again." msgstr "No se puede procesar el reembolso. Por favor, inténtelo de nuevo." -#: inc/payments/payment-helper.php:491 +#: inc/payments/payment-helper.php:496 msgid "Unable to complete payment. Please try again or contact support." msgstr "No se pudo completar el pago. Por favor, inténtelo de nuevo o contacte con el soporte." -#: inc/payments/payment-helper.php:513 +#: inc/payments/payment-helper.php:518 msgid "Unable to process card. Please try again." msgstr "No se puede procesar la tarjeta. Por favor, inténtelo de nuevo." -#: inc/payments/payment-helper.php:514 +#: inc/payments/payment-helper.php:519 msgid "Unable to process transaction. Please try again." msgstr "No se puede procesar la transacción. Por favor, inténtelo de nuevo." -#: inc/payments/payment-helper.php:520 +#: inc/payments/payment-helper.php:525 msgid "Unable to reach card issuer. Please try again later." msgstr "No se puede contactar al emisor de la tarjeta. Por favor, inténtelo de nuevo más tarde." -#: inc/payments/payment-helper.php:531 +#: inc/payments/payment-helper.php:536 msgid "Unable to process transaction. Please try again later." msgstr "No se puede procesar la transacción. Por favor, inténtelo de nuevo más tarde." -#: inc/payments/payment-helper.php:541 +#: inc/payments/payment-helper.php:546 msgid "Complete the form to view the amount." msgstr "Complete el formulario para ver el monto." -#: inc/payments/payment-helper.php:542 +#: inc/payments/payment-helper.php:547 msgid "Unable to create payment. Please contact support." msgstr "No se puede crear el pago. Por favor, contacte con el soporte." @@ -16693,7 +16694,7 @@ msgid "Invalid webhook signature." msgstr "Firma de webhook no válida." #: admin/admin.php:426 -#: admin/admin.php:974 +#: admin/admin.php:975 #: assets/build/formEditor.js:172 msgid "Quizzes" msgstr "Cuestionarios" @@ -16707,11 +16708,11 @@ msgstr "Entradas del cuestionario" msgid "New" msgstr "Nuevo" -#: inc/form-submit.php:975 +#: inc/form-submit.php:977 msgid "Invalid form." msgstr "Formulario no válido." -#: inc/form-submit.php:980 +#: inc/form-submit.php:982 msgid "Too many requests. Please try again shortly." msgstr "Demasiadas solicitudes. Por favor, inténtelo de nuevo en breve." @@ -17225,7 +17226,7 @@ msgstr "Selecciona esto para crear un cuestionario con preguntas puntuadas y res #: admin/admin.php:458 #: admin/admin.php:459 -#: admin/admin.php:979 +#: admin/admin.php:980 msgid "Survey Reports" msgstr "Informes de encuestas" @@ -17491,7 +17492,7 @@ msgstr "Ayuda a dar forma al futuro de SureForms" #: assets/build/settings.js:172 msgid "Share how you use the plugin so we can build features that matter, fix issues faster, and make smarter decisions. " -msgstr "Comparte cómo usas el complemento para que podamos desarrollar funciones que importen, solucionar problemas más rápido y tomar decisiones más inteligentes. " +msgstr "Comparte cómo usas el complemento para que podamos desarrollar funciones que importen, solucionar problemas más rápido y tomar decisiones más inteligentes." #: assets/build/settings.js:172 msgid "Enable Google Address Autocomplete" @@ -17569,6 +17570,14 @@ msgstr "Mostrar resultados en vivo a los encuestados" msgid "Perfect for feedback, polls, and research" msgstr "Perfecto para comentarios, encuestas e investigación" +#: inc/payments/payment-helper.php:259 +msgid "Polish Złoty" +msgstr "Złoty polaco" + +#: assets/build/blocks.js:172 +msgid "Dynamic Default Value" +msgstr "Valor Predeterminado Dinámico" + #: inc/post-types.php:205 msgctxt "post type general name" msgid "Forms" diff --git a/languages/sureforms-fr_FR-4b62e3f004dea2c587b5a3069263d994.json b/languages/sureforms-fr_FR-4b62e3f004dea2c587b5a3069263d994.json index 94578c01d..5d8afb8cf 100644 --- a/languages/sureforms-fr_FR-4b62e3f004dea2c587b5a3069263d994.json +++ b/languages/sureforms-fr_FR-4b62e3f004dea2c587b5a3069263d994.json @@ -1 +1 @@ -{"translation-revision-date":"2024-12-13T13:12:49+00:00","generator":"WP-CLI\/2.12.0","source":"assets\/build\/blocks.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"en","plural-forms":"nplurals=2; plural=(n != 1);"},"Settings":["Param\u00e8tres"],"Search":["Recherche"],"Fields":["Champs"],"Image":["Image"],"Submit":["Soumettre"],"Required":["Requis"],"Form Title":["Titre du formulaire"],"Show":["Afficher"],"Hide":["Cacher"],"Edit Form":["Modifier le formulaire"],"Icon":["Ic\u00f4ne"],"Desktop":["Bureau"],"Medium":["Moyen"],"Mobile":["Mobile"],"Repeat":["R\u00e9p\u00e9ter"],"Scroll":["Faire d\u00e9filer"],"Tablet":["Tablette"],"Basic":["De base"],"(no title)":["(pas de titre)"],"Select a Form":["S\u00e9lectionnez un formulaire"],"No forms found\u2026":["Aucun formulaire trouv\u00e9\u2026"],"Choose":["Choisissez"],"Create New":["Cr\u00e9er Nouveau"],"Change Form":["Changer de formulaire"],"This form has been deleted or is unavailable.":["Ce formulaire a \u00e9t\u00e9 supprim\u00e9 ou est indisponible."],"Form Settings":["Param\u00e8tres du formulaire"],"Show Form Title on this Page":["Afficher le titre du formulaire sur cette page"],"Note: For editing SureForms, please refer to the SureForms Editor - ":["Remarque : Pour modifier les SureForms, veuillez vous r\u00e9f\u00e9rer \u00e0 l'\u00e9diteur SureForms -"],"Field preview":["Aper\u00e7u du champ"],"General":["G\u00e9n\u00e9ral"],"Style":["Style"],"Advanced":["Avanc\u00e9"],"No tags available":["Aucune \u00e9tiquette disponible"],"Device":["Appareil"],"Select Shortcodes":["S\u00e9lectionner les codes courts"],"Page Break Label":["\u00c9tiquette de saut de page"],"Next":["Suivant"],"Back":["Retour"],"Reset":["R\u00e9initialiser"],"Generic tags":["Balises g\u00e9n\u00e9riques"],"Pixel":["Pixel"],"Em":["Em"],"Select Units":["S\u00e9lectionner les unit\u00e9s"],"%s units":["%s unit\u00e9s"],"Margin":["Marge"],"Attributes":["Attributs"],"Input Pattern":["Mod\u00e8le d'entr\u00e9e"],"None":["Aucun"],"(###) ###-####":["(###) ###-####"],"(##) ####-####":["(##) ####-####"],"27\/08\/2024":["27\/08\/2024"],"23:59:59":["23:59:59"],"27\/08\/2024 23:59:59":["27\/08\/2024 23:59:59"],"Custom":["Personnalis\u00e9"],"Custom Mask":["Masque personnalis\u00e9"],"Please check the documentation to manage custom input pattern ":["Veuillez consulter la documentation pour g\u00e9rer le mod\u00e8le d'entr\u00e9e personnalis\u00e9"],"here":["ici"],"Default Value":["Valeur par d\u00e9faut"],"Error Message":["Message d'erreur"],"Help Text":["Texte d'aide"],"Number Format":["Format de nombre"],"US Style (Eg: 9,999.99)":["Style am\u00e9ricain (Ex : 9 999,99)"],"EU Style (Eg: 9.999,99)":["Style UE (Ex : 9.999,99)"],"Minimum Value":["Valeur minimale"],"Maximum Value":["Valeur maximale"],"Please check the Minimum and Maximum value":["Veuillez v\u00e9rifier la valeur minimale et maximale"],"Enable Email Confirmation":["Activer la confirmation par e-mail"],"Checked by Default":["Coch\u00e9 par d\u00e9faut"],"Error message":["Message d'erreur"],"Checked by default":["Coch\u00e9 par d\u00e9faut"],"Please add a option props to MultiButtonsControl":["Veuillez ajouter une option props \u00e0 MultiButtonsControl"],"Icon Library":["Biblioth\u00e8que d'ic\u00f4nes"],"Close":["Fermer"],"All Icons":["Toutes les ic\u00f4nes"],"Other":["Autre"],"No Icons Found":["Aucune ic\u00f4ne trouv\u00e9e"],"Insert Icon":["Ins\u00e9rer une ic\u00f4ne"],"Change Icon":["Changer l'ic\u00f4ne"],"Choose Icon":["Choisir une ic\u00f4ne"],"Confirm":["Confirmer"],"Cancel":["Annuler"],"Processing\u2026":["Traitement\u2026"],"Select Video":["S\u00e9lectionner la vid\u00e9o"],"Change Video":["Changer la vid\u00e9o"],"Select Lottie Animation":["S\u00e9lectionner l'animation Lottie"],"Change Lottie Animation":["Changer l'animation Lottie"],"Upload SVG":["T\u00e9l\u00e9charger SVG"],"Change SVG":["Modifier SVG"],"Select Image":["S\u00e9lectionner l'image"],"Change Image":["Changer l'image"],"Upload SVG?":["T\u00e9l\u00e9charger le SVG ?"],"Upload SVG can be potentially risky. Are you sure?":["T\u00e9l\u00e9charger un SVG peut \u00eatre potentiellement risqu\u00e9. \u00cates-vous s\u00fbr ?"],"Upload Anyway":["T\u00e9l\u00e9charger quand m\u00eame"],"Bulk Add":["Ajout en masse"],"Bulk Add Options":["Ajouter des options en masse"],"Enter each option on a new line.":["Entrez chaque option sur une nouvelle ligne."],"Insert Options":["Options d'insertion"],"Full Width":["Pleine largeur"],"Option Type":["Type d'option"],"Edit Options":["Modifier les options"],"Add New Option":["Ajouter une nouvelle option"],"ADD":["AJOUTER"],"Enable Auto Country Detection":["Activer la d\u00e9tection automatique du pays"],"%s Width":["Largeur %s"],"Upgrade":["Mise \u00e0 niveau"],"Clear":["Clair"],"Select Color":["S\u00e9lectionner la couleur"],"Primary Color":["Couleur primaire"],"Text Color":["Couleur du texte"],"Field Spacing":["Espacement des champs"],"Small":["Petit"],"Large":["Grand"],"Left":["Gauche"],"Center":["Centre"],"Right":["D'accord"],"Color":["Couleur"],"Background Color":["Couleur de fond"],"Auto":["Auto"],"Default":["Par d\u00e9faut"],"Normal":["Normal"],"%":["%"],"Top":["Haut"],"Bottom":["Bas"],"Width":["Largeur"],"Size":["Taille"],"EM":["EM"],"Padding":["Rembourrage"],"Color 1":["Couleur 1"],"Color 2":["Couleur 2"],"Type":["Type"],"Linear":["Lin\u00e9aire"],"Radial":["Radial"],"Location 1":["Emplacement 1"],"Location 2":["Emplacement 2"],"Angle":["Angle"],"Classic":["Classique"],"Gradient":["Gradient"],"Horizontal":["Horizontal"],"Vertical":["Vertical"],"Background":["Contexte"],"Cover":["Couvrir"],"Contain":["Contenir"],"Layout":["Mise en page"],"Overlay":["Superposition"],"No Repeat":["Pas de r\u00e9p\u00e9tition"],"Overlay Opacity":["Opacit\u00e9 de superposition"],"Conditional Logic":["Logique conditionnelle"],"Upgrade to the SureForms Starter Plan to create dynamic forms that adapt based on user input, offering a personalised and efficient form experience.":["Passez au plan de d\u00e9marrage SureForms pour cr\u00e9er des formulaires dynamiques qui s'adaptent en fonction des saisies de l'utilisateur, offrant une exp\u00e9rience de formulaire personnalis\u00e9e et efficace."],"Enable Conditional Logic":["Activer la logique conditionnelle"],"this field if":["ce champ si"],"Configure Conditions":["Configurer les conditions"],"Premium":["Premium"],"Overlay Type":["Type de superposition"],"Image Overlay Color":["Couleur de superposition d'image"],"Image Position":["Position de l'image"],"Attachment":["Pi\u00e8ce jointe"],"Fixed":["Fix\u00e9"],"Blend Mode":["Mode de fusion"],"Multiply":["Multiplier"],"Screen":["\u00c9cran"],"Darken":["Assombrir"],"Lighten":["All\u00e9ger"],"Color Dodge":["Superposition de couleurs"],"Saturation":["Saturation"],"Repeat-x":["R\u00e9p\u00e9ter-x"],"Repeat-y":["R\u00e9p\u00e8te-y"],"PX":["PX"],"Button":["Bouton"],"Prefix Label":["\u00c9tiquette de pr\u00e9fixe"],"Suffix Label":["\u00c9tiquette de suffixe"],"Border Radius":["Rayon de bordure"],"Form Theme":["Th\u00e8me du formulaire"],"Select Gradient":["S\u00e9lectionner le d\u00e9grad\u00e9"],"Unlock Conditional Logic Editor":["D\u00e9verrouiller l'\u00e9diteur de logique conditionnelle"],"Rich Text Editor":["\u00c9diteur de texte enrichi"],"Read Only":["Lecture seule"],"Select Country":["S\u00e9lectionner le pays"],"Default Country":["Pays par d\u00e9faut"],"Subscription":["Abonnement"],"One Time":["Une fois"],"Unique Entry":["Entr\u00e9e unique"],"Maximum Characters":["Caract\u00e8res maximum"],"Textarea Height":["Hauteur de la zone de texte"],"Minimum Selections":["S\u00e9lections minimales"],"Maximum Selections":["S\u00e9lections maximales"],"Add Numeric Values to Options":["Ajouter des valeurs num\u00e9riques aux options"],"Single Choice Only":["Choix unique seulement"],"Enable Dropdown Search":["Activer la recherche d\u00e9roulante"],"Allow Multiple":["Autoriser plusieurs"],"%1$s fields are required. Please configure these fields in the block settings.":["Les champs %1$s sont obligatoires. Veuillez configurer ces champs dans les param\u00e8tres du bloc."],"%1$s field is required. Please configure this field in the block settings.":["Le champ %1$s est requis. Veuillez configurer ce champ dans les param\u00e8tres du bloc."],"You need to configure a payment account to collect payments from this form. Please configure your payment provider to proceed.":["Vous devez configurer un compte de paiement pour collecter les paiements \u00e0 partir de ce formulaire. Veuillez configurer votre fournisseur de paiement pour continuer."],"Configure Payment Account":["Configurer le compte de paiement"],"This is a placeholder for the Payment block. The actual payment fields for your configured payment provider(s) will only appear when you preview or publish the form.":["Ceci est un espace r\u00e9serv\u00e9 pour le bloc de paiement. Les champs de paiement r\u00e9els pour votre ou vos fournisseurs de paiement configur\u00e9s n'appara\u00eetront que lorsque vous pr\u00e9visualiserez ou publierez le formulaire."],"2 Payments":["2 Paiements"],"3 Payments":["3 Paiements"],"4 Payments":["4 Paiements"],"5 Payments":["5 Paiements"],"Never":["Jamais"],"Stop Subscription After":["Arr\u00eater l'abonnement apr\u00e8s"],"Choose when to automatically stop the subscription":["Choisissez quand arr\u00eater automatiquement l'abonnement"],"Number of Payments":["Nombre de paiements"],"Enter a number between 1 to 100":["Entrez un nombre entre 1 et 100"],"Form Field":["Champ de formulaire"],"Payment Type":["Type de paiement"],"Subscription Plan Name":["Nom du plan d'abonnement"],"Billing Interval":["Intervalle de facturation"],"Daily":["Quotidien"],"Weekly":["Hebdomadaire"],"Monthly":["Mensuel"],"Quarterly":["Trimestriel"],"Yearly":["Annuel"],"Amount Type":["Type de montant"],"Fixed Amount":["Montant fixe"],"Dynamic Amount":["Montant Dynamique"],"Choose whether to charge a fixed amount or charge the amount based on user input in other form fields.":["Choisissez de facturer un montant fixe ou de facturer le montant en fonction des saisies de l'utilisateur dans d'autres champs de formulaire."],"Set the exact amount you want to charge. Users won\u2019t be able to change it":["D\u00e9finissez le montant exact que vous souhaitez facturer. Les utilisateurs ne pourront pas le modifier"],"Choose Amount Field":["Choisissez le champ Montant"],"Select a field\u2026":["S\u00e9lectionnez un champ\u2026"],"Pick a field from your form like a number, dropdown, or multichoice whose value should decide the payment amount.":["Choisissez un champ de votre formulaire, tel qu'un nombre, une liste d\u00e9roulante ou un choix multiple, dont la valeur doit d\u00e9terminer le montant du paiement."],"Minimum Amount":["Montant minimum"],"Set the minimum amount users can enter (0 for no minimum)":["D\u00e9finissez le montant minimum que les utilisateurs peuvent entrer (0 pour aucun minimum)"],"Customer Name Field (Required)":["Champ Nom du client (Obligatoire)"],"Customer Name Field (Optional)":["Champ Nom du Client (Facultatif)"],"Select the input field that contains the customer name (Required for subscriptions)":["S\u00e9lectionnez le champ de saisie qui contient le nom du client (Requis pour les abonnements)"],"Select the input field that contains the customer name":["S\u00e9lectionnez le champ de saisie qui contient le nom du client"],"Customer Email Field (Required)":["Champ d'email du client (Obligatoire)"],"Select the email field that contains the customer email":["S\u00e9lectionnez le champ de courriel qui contient l'email du client"],"Payment":["Paiement"],"%s - Order ID":["%s - ID de commande"],"%s - Amount":["%s - Montant"],"%s - Customer Email":["%s - Email du client"],"%s - Customer Name":["%s - Nom du client"],"%s - Status":["%s - Statut"],"Button Alignment":["Alignement du bouton"],"Placeholder":["Espace r\u00e9serv\u00e9"],"Preselect this option":["Pr\u00e9s\u00e9lectionnez cette option"],"Restrict Country Codes":["Restreindre les codes pays"],"Restriction Type":["Type de restriction"],"Allow":["Autoriser"],"Block":["Bloquer"],"Select Allowed Countries":["S\u00e9lectionner les pays autoris\u00e9s"],"Choose countries\u2026":["Choisissez des pays\u2026"],"Choose which country codes users can select in the phone number field. Leave empty to allow all country codes.":["Choisissez les indicatifs de pays que les utilisateurs peuvent s\u00e9lectionner dans le champ du num\u00e9ro de t\u00e9l\u00e9phone. Laissez vide pour autoriser tous les indicatifs de pays."],"Select Blocked Countries":["S\u00e9lectionner les pays bloqu\u00e9s"],"These countries will be hidden from the dropdown.":["Ces pays seront masqu\u00e9s dans le menu d\u00e9roulant."],"Bulk Edit":["Modification en masse"],"Select Layout":["S\u00e9lectionner la disposition"],"Number of Columns":["Nombre de colonnes"],"Validation Message for Duplicate":["Message de validation pour doublon"],"Click here to insert a form":["Cliquez ici pour ins\u00e9rer un formulaire"],"Inherit Form's Original Style":["H\u00e9riter du style original du formulaire"],"Text on Primary":["Texte sur Principal"],"%s - Description":["%s - Description"],"Upgrade to Unlock":["Mettez \u00e0 niveau pour d\u00e9bloquer"],"Custom (Premium)":["Personnalis\u00e9 (Premium)"],"Select a theme style for this form embed.":["S\u00e9lectionnez un style de th\u00e8me pour cette int\u00e9gration de formulaire."],"Colors":["Couleurs"],"Advanced Styling":["Style avanc\u00e9"],"Unlock Custom Styling":["D\u00e9verrouiller le style personnalis\u00e9"],"Switch to Custom Mode to take full control of your form's design and spacing.":["Passez en mode personnalis\u00e9 pour prendre le contr\u00f4le total de la conception et de l'espacement de votre formulaire."],"Full color control (buttons, fields, text)":["Contr\u00f4le complet des couleurs (boutons, champs, texte)"],"Row and column gap control":["Contr\u00f4le de l'espacement des lignes et des colonnes"],"Field spacing and layout precision":["Pr\u00e9cision de l'espacement et de la disposition des champs"],"Complete button styling":["Style complet du bouton"],"Payment Description":["Description du paiement"],"Shown on payment receipts and in your payment dashboard (Stripe and PayPal). Leave blank to use the default.":["Affich\u00e9 sur les re\u00e7us de paiement et dans votre tableau de bord de paiement (Stripe et PayPal). Laissez vide pour utiliser la valeur par d\u00e9faut."],"Slug":["Limace"],"Auto-generated on save":["G\u00e9n\u00e9r\u00e9 automatiquement lors de l'enregistrement"],"This slug is already used by another field. It will revert to the previous value.":["Ce slug est d\u00e9j\u00e0 utilis\u00e9 par un autre champ. Il reviendra \u00e0 la valeur pr\u00e9c\u00e9dente."],"Changing the slug may break form submissions, conditional logic, integrations, or any other feature currently referencing this slug. You will need to update all such references manually.":["Changer le slug peut perturber les soumissions de formulaires, la logique conditionnelle, les int\u00e9grations ou toute autre fonctionnalit\u00e9 se r\u00e9f\u00e9rant actuellement \u00e0 ce slug. Vous devrez mettre \u00e0 jour manuellement toutes ces r\u00e9f\u00e9rences."],"Field Slug":["Slug de champ"],"Location Services":["Services de localisation"],"Unlock Address Autocomplete":["D\u00e9verrouiller la saisie semi-automatique de l'adresse"],"Upgrade to enable Google Address Autocomplete with interactive map preview, making address entry faster and more accurate for your users.":["Mettez \u00e0 niveau pour activer la saisie semi-automatique des adresses Google avec aper\u00e7u interactif de la carte, rendant la saisie des adresses plus rapide et plus pr\u00e9cise pour vos utilisateurs."],"Enable Google Autocomplete":["Activer la saisie semi-automatique de Google"],"Show Interactive Map":["Afficher la carte interactive"],"Payments Per Page":["Paiements par page"],"Show Subscriptions Section":["Afficher la section des abonnements"],"Show a dedicated subscriptions section above payment history.":["Afficher une section d\u00e9di\u00e9e aux abonnements au-dessus de l'historique des paiements."],"Payment Dashboard":["Tableau de bord des paiements"],"View your payments and manage subscriptions in a single dashboard.":["Consultez vos paiements et g\u00e9rez vos abonnements dans un tableau de bord unique."]}}} \ No newline at end of file +{"translation-revision-date":"2024-12-13T13:12:49+00:00","generator":"WP-CLI\/2.12.0","source":"assets\/build\/blocks.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"en","plural-forms":"nplurals=2; plural=(n != 1);"},"Settings":["Param\u00e8tres"],"Search":["Recherche"],"Fields":["Champs"],"Image":["Image"],"Submit":["Soumettre"],"Required":["Requis"],"Form Title":["Titre du formulaire"],"Show":["Afficher"],"Hide":["Cacher"],"Edit Form":["Modifier le formulaire"],"Icon":["Ic\u00f4ne"],"Desktop":["Bureau"],"Medium":["Moyen"],"Mobile":["Mobile"],"Repeat":["R\u00e9p\u00e9ter"],"Scroll":["Faire d\u00e9filer"],"Tablet":["Tablette"],"Basic":["De base"],"(no title)":["(pas de titre)"],"Select a Form":["S\u00e9lectionnez un formulaire"],"No forms found\u2026":["Aucun formulaire trouv\u00e9\u2026"],"Choose":["Choisissez"],"Create New":["Cr\u00e9er Nouveau"],"Change Form":["Changer de formulaire"],"This form has been deleted or is unavailable.":["Ce formulaire a \u00e9t\u00e9 supprim\u00e9 ou est indisponible."],"Form Settings":["Param\u00e8tres du formulaire"],"Show Form Title on this Page":["Afficher le titre du formulaire sur cette page"],"Note: For editing SureForms, please refer to the SureForms Editor - ":["Remarque : Pour modifier les SureForms, veuillez vous r\u00e9f\u00e9rer \u00e0 l'\u00e9diteur SureForms -"],"Field preview":["Aper\u00e7u du champ"],"General":["G\u00e9n\u00e9ral"],"Style":["Style"],"Advanced":["Avanc\u00e9"],"No tags available":["Aucune \u00e9tiquette disponible"],"Device":["Appareil"],"Select Shortcodes":["S\u00e9lectionner les codes courts"],"Page Break Label":["\u00c9tiquette de saut de page"],"Next":["Suivant"],"Back":["Retour"],"Reset":["R\u00e9initialiser"],"Generic tags":["Balises g\u00e9n\u00e9riques"],"Pixel":["Pixel"],"Em":["Em"],"Select Units":["S\u00e9lectionner les unit\u00e9s"],"%s units":["%s unit\u00e9s"],"Margin":["Marge"],"Attributes":["Attributs"],"Input Pattern":["Mod\u00e8le d'entr\u00e9e"],"None":["Aucun"],"(###) ###-####":["(###) ###-####"],"(##) ####-####":["(##) ####-####"],"27\/08\/2024":["27\/08\/2024"],"23:59:59":["23:59:59"],"27\/08\/2024 23:59:59":["27\/08\/2024 23:59:59"],"Custom":["Personnalis\u00e9"],"Custom Mask":["Masque personnalis\u00e9"],"Please check the documentation to manage custom input pattern ":["Veuillez consulter la documentation pour g\u00e9rer le mod\u00e8le d'entr\u00e9e personnalis\u00e9"],"here":["ici"],"Default Value":["Valeur par d\u00e9faut"],"Error Message":["Message d'erreur"],"Help Text":["Texte d'aide"],"Number Format":["Format de nombre"],"US Style (Eg: 9,999.99)":["Style am\u00e9ricain (Ex : 9 999,99)"],"EU Style (Eg: 9.999,99)":["Style UE (Ex : 9.999,99)"],"Minimum Value":["Valeur minimale"],"Maximum Value":["Valeur maximale"],"Please check the Minimum and Maximum value":["Veuillez v\u00e9rifier la valeur minimale et maximale"],"Enable Email Confirmation":["Activer la confirmation par e-mail"],"Checked by Default":["Coch\u00e9 par d\u00e9faut"],"Error message":["Message d'erreur"],"Checked by default":["Coch\u00e9 par d\u00e9faut"],"Please add a option props to MultiButtonsControl":["Veuillez ajouter une option props \u00e0 MultiButtonsControl"],"Icon Library":["Biblioth\u00e8que d'ic\u00f4nes"],"Close":["Fermer"],"All Icons":["Toutes les ic\u00f4nes"],"Other":["Autre"],"No Icons Found":["Aucune ic\u00f4ne trouv\u00e9e"],"Insert Icon":["Ins\u00e9rer une ic\u00f4ne"],"Change Icon":["Changer l'ic\u00f4ne"],"Choose Icon":["Choisir une ic\u00f4ne"],"Confirm":["Confirmer"],"Cancel":["Annuler"],"Processing\u2026":["Traitement\u2026"],"Select Video":["S\u00e9lectionner la vid\u00e9o"],"Change Video":["Changer la vid\u00e9o"],"Select Lottie Animation":["S\u00e9lectionner l'animation Lottie"],"Change Lottie Animation":["Changer l'animation Lottie"],"Upload SVG":["T\u00e9l\u00e9charger SVG"],"Change SVG":["Modifier SVG"],"Select Image":["S\u00e9lectionner l'image"],"Change Image":["Changer l'image"],"Upload SVG?":["T\u00e9l\u00e9charger le SVG ?"],"Upload SVG can be potentially risky. Are you sure?":["T\u00e9l\u00e9charger un SVG peut \u00eatre potentiellement risqu\u00e9. \u00cates-vous s\u00fbr ?"],"Upload Anyway":["T\u00e9l\u00e9charger quand m\u00eame"],"Bulk Add":["Ajout en masse"],"Bulk Add Options":["Ajouter des options en masse"],"Enter each option on a new line.":["Entrez chaque option sur une nouvelle ligne."],"Insert Options":["Options d'insertion"],"Full Width":["Pleine largeur"],"Option Type":["Type d'option"],"Edit Options":["Modifier les options"],"Add New Option":["Ajouter une nouvelle option"],"ADD":["AJOUTER"],"Enable Auto Country Detection":["Activer la d\u00e9tection automatique du pays"],"%s Width":["Largeur %s"],"Upgrade":["Mise \u00e0 niveau"],"Clear":["Clair"],"Select Color":["S\u00e9lectionner la couleur"],"Primary Color":["Couleur primaire"],"Text Color":["Couleur du texte"],"Field Spacing":["Espacement des champs"],"Small":["Petit"],"Large":["Grand"],"Left":["Gauche"],"Center":["Centre"],"Right":["D'accord"],"Color":["Couleur"],"Background Color":["Couleur de fond"],"Auto":["Auto"],"Default":["Par d\u00e9faut"],"Normal":["Normal"],"%":["%"],"Top":["Haut"],"Bottom":["Bas"],"Width":["Largeur"],"Size":["Taille"],"EM":["EM"],"Padding":["Rembourrage"],"Color 1":["Couleur 1"],"Color 2":["Couleur 2"],"Type":["Type"],"Linear":["Lin\u00e9aire"],"Radial":["Radial"],"Location 1":["Emplacement 1"],"Location 2":["Emplacement 2"],"Angle":["Angle"],"Classic":["Classique"],"Gradient":["Gradient"],"Horizontal":["Horizontal"],"Vertical":["Vertical"],"Background":["Contexte"],"Cover":["Couvrir"],"Contain":["Contenir"],"Layout":["Mise en page"],"Overlay":["Superposition"],"No Repeat":["Pas de r\u00e9p\u00e9tition"],"Overlay Opacity":["Opacit\u00e9 de superposition"],"Conditional Logic":["Logique conditionnelle"],"Upgrade to the SureForms Starter Plan to create dynamic forms that adapt based on user input, offering a personalised and efficient form experience.":["Passez au plan de d\u00e9marrage SureForms pour cr\u00e9er des formulaires dynamiques qui s'adaptent en fonction des saisies de l'utilisateur, offrant une exp\u00e9rience de formulaire personnalis\u00e9e et efficace."],"Enable Conditional Logic":["Activer la logique conditionnelle"],"this field if":["ce champ si"],"Configure Conditions":["Configurer les conditions"],"Premium":["Premium"],"Overlay Type":["Type de superposition"],"Image Overlay Color":["Couleur de superposition d'image"],"Image Position":["Position de l'image"],"Attachment":["Pi\u00e8ce jointe"],"Fixed":["Fix\u00e9"],"Blend Mode":["Mode de fusion"],"Multiply":["Multiplier"],"Screen":["\u00c9cran"],"Darken":["Assombrir"],"Lighten":["All\u00e9ger"],"Color Dodge":["Superposition de couleurs"],"Saturation":["Saturation"],"Repeat-x":["R\u00e9p\u00e9ter-x"],"Repeat-y":["R\u00e9p\u00e8te-y"],"PX":["PX"],"Button":["Bouton"],"Prefix Label":["\u00c9tiquette de pr\u00e9fixe"],"Suffix Label":["\u00c9tiquette de suffixe"],"Border Radius":["Rayon de bordure"],"Form Theme":["Th\u00e8me du formulaire"],"Select Gradient":["S\u00e9lectionner le d\u00e9grad\u00e9"],"Unlock Conditional Logic Editor":["D\u00e9verrouiller l'\u00e9diteur de logique conditionnelle"],"Rich Text Editor":["\u00c9diteur de texte enrichi"],"Read Only":["Lecture seule"],"Select Country":["S\u00e9lectionner le pays"],"Default Country":["Pays par d\u00e9faut"],"Subscription":["Abonnement"],"One Time":["Une fois"],"Unique Entry":["Entr\u00e9e unique"],"Maximum Characters":["Caract\u00e8res maximum"],"Textarea Height":["Hauteur de la zone de texte"],"Minimum Selections":["S\u00e9lections minimales"],"Maximum Selections":["S\u00e9lections maximales"],"Add Numeric Values to Options":["Ajouter des valeurs num\u00e9riques aux options"],"Single Choice Only":["Choix unique seulement"],"Enable Dropdown Search":["Activer la recherche d\u00e9roulante"],"Allow Multiple":["Autoriser plusieurs"],"%1$s fields are required. Please configure these fields in the block settings.":["Les champs %1$s sont obligatoires. Veuillez configurer ces champs dans les param\u00e8tres du bloc."],"%1$s field is required. Please configure this field in the block settings.":["Le champ %1$s est requis. Veuillez configurer ce champ dans les param\u00e8tres du bloc."],"You need to configure a payment account to collect payments from this form. Please configure your payment provider to proceed.":["Vous devez configurer un compte de paiement pour collecter les paiements \u00e0 partir de ce formulaire. Veuillez configurer votre fournisseur de paiement pour continuer."],"Configure Payment Account":["Configurer le compte de paiement"],"This is a placeholder for the Payment block. The actual payment fields for your configured payment provider(s) will only appear when you preview or publish the form.":["Ceci est un espace r\u00e9serv\u00e9 pour le bloc de paiement. Les champs de paiement r\u00e9els pour votre ou vos fournisseurs de paiement configur\u00e9s n'appara\u00eetront que lorsque vous pr\u00e9visualiserez ou publierez le formulaire."],"2 Payments":["2 Paiements"],"3 Payments":["3 Paiements"],"4 Payments":["4 Paiements"],"5 Payments":["5 Paiements"],"Never":["Jamais"],"Stop Subscription After":["Arr\u00eater l'abonnement apr\u00e8s"],"Choose when to automatically stop the subscription":["Choisissez quand arr\u00eater automatiquement l'abonnement"],"Number of Payments":["Nombre de paiements"],"Enter a number between 1 to 100":["Entrez un nombre entre 1 et 100"],"Form Field":["Champ de formulaire"],"Payment Type":["Type de paiement"],"Subscription Plan Name":["Nom du plan d'abonnement"],"Billing Interval":["Intervalle de facturation"],"Daily":["Quotidien"],"Weekly":["Hebdomadaire"],"Monthly":["Mensuel"],"Quarterly":["Trimestriel"],"Yearly":["Annuel"],"Amount Type":["Type de montant"],"Fixed Amount":["Montant fixe"],"Dynamic Amount":["Montant Dynamique"],"Choose whether to charge a fixed amount or charge the amount based on user input in other form fields.":["Choisissez de facturer un montant fixe ou de facturer le montant en fonction des saisies de l'utilisateur dans d'autres champs de formulaire."],"Set the exact amount you want to charge. Users won\u2019t be able to change it":["D\u00e9finissez le montant exact que vous souhaitez facturer. Les utilisateurs ne pourront pas le modifier"],"Choose Amount Field":["Choisissez le champ Montant"],"Select a field\u2026":["S\u00e9lectionnez un champ\u2026"],"Pick a field from your form like a number, dropdown, or multichoice whose value should decide the payment amount.":["Choisissez un champ de votre formulaire, tel qu'un nombre, une liste d\u00e9roulante ou un choix multiple, dont la valeur doit d\u00e9terminer le montant du paiement."],"Minimum Amount":["Montant minimum"],"Set the minimum amount users can enter (0 for no minimum)":["D\u00e9finissez le montant minimum que les utilisateurs peuvent entrer (0 pour aucun minimum)"],"Customer Name Field (Required)":["Champ Nom du client (Obligatoire)"],"Customer Name Field (Optional)":["Champ Nom du Client (Facultatif)"],"Select the input field that contains the customer name (Required for subscriptions)":["S\u00e9lectionnez le champ de saisie qui contient le nom du client (Requis pour les abonnements)"],"Select the input field that contains the customer name":["S\u00e9lectionnez le champ de saisie qui contient le nom du client"],"Customer Email Field (Required)":["Champ d'email du client (Obligatoire)"],"Select the email field that contains the customer email":["S\u00e9lectionnez le champ de courriel qui contient l'email du client"],"Payment":["Paiement"],"%s - Order ID":["%s - ID de commande"],"%s - Amount":["%s - Montant"],"%s - Customer Email":["%s - Email du client"],"%s - Customer Name":["%s - Nom du client"],"%s - Status":["%s - Statut"],"Button Alignment":["Alignement du bouton"],"Placeholder":["Espace r\u00e9serv\u00e9"],"Preselect this option":["Pr\u00e9s\u00e9lectionnez cette option"],"Restrict Country Codes":["Restreindre les codes pays"],"Restriction Type":["Type de restriction"],"Allow":["Autoriser"],"Block":["Bloquer"],"Select Allowed Countries":["S\u00e9lectionner les pays autoris\u00e9s"],"Choose countries\u2026":["Choisissez des pays\u2026"],"Choose which country codes users can select in the phone number field. Leave empty to allow all country codes.":["Choisissez les indicatifs de pays que les utilisateurs peuvent s\u00e9lectionner dans le champ du num\u00e9ro de t\u00e9l\u00e9phone. Laissez vide pour autoriser tous les indicatifs de pays."],"Select Blocked Countries":["S\u00e9lectionner les pays bloqu\u00e9s"],"These countries will be hidden from the dropdown.":["Ces pays seront masqu\u00e9s dans le menu d\u00e9roulant."],"Bulk Edit":["Modification en masse"],"Select Layout":["S\u00e9lectionner la disposition"],"Number of Columns":["Nombre de colonnes"],"Validation Message for Duplicate":["Message de validation pour doublon"],"Click here to insert a form":["Cliquez ici pour ins\u00e9rer un formulaire"],"Inherit Form's Original Style":["H\u00e9riter du style original du formulaire"],"Text on Primary":["Texte sur Principal"],"%s - Description":["%s - Description"],"Upgrade to Unlock":["Mettez \u00e0 niveau pour d\u00e9bloquer"],"Custom (Premium)":["Personnalis\u00e9 (Premium)"],"Select a theme style for this form embed.":["S\u00e9lectionnez un style de th\u00e8me pour cette int\u00e9gration de formulaire."],"Colors":["Couleurs"],"Advanced Styling":["Style avanc\u00e9"],"Unlock Custom Styling":["D\u00e9verrouiller le style personnalis\u00e9"],"Switch to Custom Mode to take full control of your form's design and spacing.":["Passez en mode personnalis\u00e9 pour prendre le contr\u00f4le total de la conception et de l'espacement de votre formulaire."],"Full color control (buttons, fields, text)":["Contr\u00f4le complet des couleurs (boutons, champs, texte)"],"Row and column gap control":["Contr\u00f4le de l'espacement des lignes et des colonnes"],"Field spacing and layout precision":["Pr\u00e9cision de l'espacement et de la disposition des champs"],"Complete button styling":["Style complet du bouton"],"Payment Description":["Description du paiement"],"Shown on payment receipts and in your payment dashboard (Stripe and PayPal). Leave blank to use the default.":["Affich\u00e9 sur les re\u00e7us de paiement et dans votre tableau de bord de paiement (Stripe et PayPal). Laissez vide pour utiliser la valeur par d\u00e9faut."],"Slug":["Limace"],"Auto-generated on save":["G\u00e9n\u00e9r\u00e9 automatiquement lors de l'enregistrement"],"This slug is already used by another field. It will revert to the previous value.":["Ce slug est d\u00e9j\u00e0 utilis\u00e9 par un autre champ. Il reviendra \u00e0 la valeur pr\u00e9c\u00e9dente."],"Changing the slug may break form submissions, conditional logic, integrations, or any other feature currently referencing this slug. You will need to update all such references manually.":["Changer le slug peut perturber les soumissions de formulaires, la logique conditionnelle, les int\u00e9grations ou toute autre fonctionnalit\u00e9 se r\u00e9f\u00e9rant actuellement \u00e0 ce slug. Vous devrez mettre \u00e0 jour manuellement toutes ces r\u00e9f\u00e9rences."],"Field Slug":["Slug de champ"],"Location Services":["Services de localisation"],"Unlock Address Autocomplete":["D\u00e9verrouiller la saisie semi-automatique de l'adresse"],"Upgrade to enable Google Address Autocomplete with interactive map preview, making address entry faster and more accurate for your users.":["Mettez \u00e0 niveau pour activer la saisie semi-automatique des adresses Google avec aper\u00e7u interactif de la carte, rendant la saisie des adresses plus rapide et plus pr\u00e9cise pour vos utilisateurs."],"Enable Google Autocomplete":["Activer la saisie semi-automatique de Google"],"Show Interactive Map":["Afficher la carte interactive"],"Payments Per Page":["Paiements par page"],"Show Subscriptions Section":["Afficher la section des abonnements"],"Show a dedicated subscriptions section above payment history.":["Afficher une section d\u00e9di\u00e9e aux abonnements au-dessus de l'historique des paiements."],"Payment Dashboard":["Tableau de bord des paiements"],"View your payments and manage subscriptions in a single dashboard.":["Consultez vos paiements et g\u00e9rez vos abonnements dans un tableau de bord unique."],"Dynamic Default Value":["Valeur par d\u00e9faut dynamique"]}}} \ No newline at end of file diff --git a/languages/sureforms-fr_FR-51635fe6489fc8288d603fe596c755ca.json b/languages/sureforms-fr_FR-51635fe6489fc8288d603fe596c755ca.json index d63ba17c2..cd083b3cf 100644 --- a/languages/sureforms-fr_FR-51635fe6489fc8288d603fe596c755ca.json +++ b/languages/sureforms-fr_FR-51635fe6489fc8288d603fe596c755ca.json @@ -1 +1 @@ -{"translation-revision-date":"2024-12-13T13:12:49+00:00","generator":"WP-CLI\/2.12.0","source":"assets\/build\/settings.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"en","plural-forms":"nplurals=2; plural=(n != 1);"},"Dashboard":["Tableau de bord"],"Settings":["Param\u00e8tres"],"Entries":["Entr\u00e9es"],"Activated":["Activ\u00e9"],"Activate":["Activer"],"Monday":["Lundi"],"Forms":["Formulaires"],"GitHub":["GitHub"],"General":["G\u00e9n\u00e9ral"],"Other":["Autre"],"Confirm":["Confirmer"],"Cancel":["Annuler"],"Install":["Installer"],"Plugin Installation failed, Please try again later.":["L'installation du plugin a \u00e9chou\u00e9, veuillez r\u00e9essayer plus tard."],"Plugin activation failed, Please try again later.":["L'activation du plugin a \u00e9chou\u00e9, veuillez r\u00e9essayer plus tard."],"Integrations":["Int\u00e9grations"],"What's New?":["Quoi de neuf ?"],"Core":["C\u0153ur"],"Unlicensed":["Sans licence"],"Connecting\u2026":["Connexion\u2026"],"Install & Activate":["Installer et activer"],"Send Email To":["Envoyer un e-mail \u00e0"],"Google reCAPTCHA":["Google reCAPTCHA"],"hCaptcha":["hCaptcha"],"reCAPTCHA v2 Invisible":["reCAPTCHA v2 Invisible"],"reCAPTCHA v3":["reCAPTCHA v3"],"Validations":["Validations"],"Spam Protection":["Protection contre le spam"],"If this option is turned on, the user's IP address will be saved with the form data":["Si cette option est activ\u00e9e, l'adresse IP de l'utilisateur sera enregistr\u00e9e avec les donn\u00e9es du formulaire"],"Enable Honeypot Security":["Activer la s\u00e9curit\u00e9 Honeypot"],"Enable Honeypot Security for better spam protection":["Activez la s\u00e9curit\u00e9 Honeypot pour une meilleure protection contre le spam"],"%s represents the minimum selections needed. For example: \u201cMinimum 2 selections are required.\u201d":["%s repr\u00e9sente le nombre minimum de s\u00e9lections n\u00e9cessaires. Par exemple : \u00ab Un minimum de 2 s\u00e9lections est requis. \u00bb"],"%s represents the maximum selections allowed. For example: \u201cMaximum 4 selections are allowed.\u201d":["%s repr\u00e9sente le nombre maximum de s\u00e9lections autoris\u00e9es. Par exemple : \u00ab Maximum 4 s\u00e9lections autoris\u00e9es. \u00bb"],"%s represents the minimum choices needed. For example: \u201cMinimum 1 selection is required.\u201d":["%s repr\u00e9sente le nombre minimum de choix n\u00e9cessaires. Par exemple : \u00ab Au moins 1 s\u00e9lection est requise. \u00bb"],"%s represents the maximum choices allowed. For example: \u201cMaximum 3 selections are allowed.\u201d":["%s repr\u00e9sente le nombre maximum de choix autoris\u00e9s. Par exemple : \u00ab Maximum de 3 s\u00e9lections autoris\u00e9es. \u00bb"]," Error Message":["Message d'erreur"],"Email Summaries":["R\u00e9sum\u00e9s d'e-mails"],"Tuesday":["Mardi"],"Wednesday":["Mercredi"],"Thursday":["Jeudi"],"Friday":["Vendredi"],"Saturday":["Samedi"],"Sunday":["Dimanche"],"Schedule Reports":["Programmer les rapports"],"Auto":["Auto"],"Light":["Lumi\u00e8re"],"Dark":["Sombre"],"Turnstile":["Tourniquet"],"Get Keys":["Obtenir les cl\u00e9s"],"Documentation":["Documentation"],"Site Key":["Cl\u00e9 du site"],"Secret Key":["Cl\u00e9 secr\u00e8te"],"Cloudflare Turnstile":["Tourniquet Cloudflare"],"Appearance Mode":["Mode d'apparence"],"This field cannot be left blank.":["Ce champ ne peut pas \u00eatre laiss\u00e9 vide."],"Test Email":["Email de test"],"IP Logging":["Journalisation IP"],"Honeypot":["Pot de miel"],"Confirmation Email Mismatch Message":["Message de non-correspondance de l'email de confirmation"],"%s represents the minimum input value. For example: \"Minimum value is 10.\"":["%s repr\u00e9sente la valeur d'entr\u00e9e minimale. Par exemple : \"La valeur minimale est 10.\""],"%s represents the maximum input value. For example: \"Maximum value is 100.\"":["%s repr\u00e9sente la valeur d'entr\u00e9e maximale. Par exemple : \"La valeur maximale est 100.\""],"OttoKit":["OttoKit"],"Connect with OttoKit":["Connectez-vous avec OttoKit"],"reCAPTCHA":["reCAPTCHA"],"Ready to go beyond free plan?":["Pr\u00eat \u00e0 aller au-del\u00e0 du plan gratuit ?"],"Upgrade now":["Mettez \u00e0 niveau maintenant"],"and unlock the full power of SureForms!":["et d\u00e9bloquez toute la puissance de SureForms !"],"Upgrade SureForms":["Mettre \u00e0 niveau SureForms"],"Upgrade Now":["Mettez \u00e0 niveau maintenant"],"Form Validation":["Validation de formulaire"],"Required Error Messages":["Messages d'erreur requis"],"Other Error Messages":["Autres messages d'erreur"],"Input Field Unique":["Champ de saisie unique"],"Email Field Unique":["Champ de courriel unique"],"Invalid URL":["URL invalide"],"Phone Field Unique":["Champ de t\u00e9l\u00e9phone unique"],"Invalid Field Number Block":["Bloc de num\u00e9ro de champ invalide"],"Invalid Email":["Email invalide"],"Number Minimum Value":["Valeur minimale du nombre"],"Number Maximum Value":["Valeur maximale du nombre"],"Dropdown Minimum Selections":["S\u00e9lections minimales du menu d\u00e9roulant"],"Dropdown Maximum Selections":["S\u00e9lections Maximales du Menu D\u00e9roulant"],"Multiple Choice Minimum Selections":["S\u00e9lections minimales \u00e0 choix multiple"],"Multiple Choice Maximum Selections":["S\u00e9lections maximales \u00e0 choix multiple"],"Input Field":["Champ de saisie"],"Email Field":["Champ de courriel"],"URL Field":["Champ URL"],"Phone Field":["Champ T\u00e9l\u00e9phone"],"Textarea Field":["Champ de zone de texte"],"Checkbox Field":["Champ de case \u00e0 cocher"],"Dropdown Field":["Champ d\u00e9roulant"],"Multiple Choice Field":["Champ \u00e0 choix multiple"],"Address Field":["Champ d'adresse"],"Number Field":["Champ num\u00e9rique"],"reCAPTCHA v2":["reCAPTCHA v2"],"To enable reCAPTCHA feature on your SureForms Please enable reCAPTCHA option on your blocks setting and select version. Add google reCAPTCHA secret and site key here. reCAPTCHA will be added to your page on front-end.":["Pour activer la fonctionnalit\u00e9 reCAPTCHA sur vos SureForms, veuillez activer l'option reCAPTCHA dans les param\u00e8tres de vos blocs et s\u00e9lectionner la version. Ajoutez ici la cl\u00e9 secr\u00e8te et la cl\u00e9 de site de Google reCAPTCHA. reCAPTCHA sera ajout\u00e9 \u00e0 votre page sur le front-end."],"Enter your %s here":["Entrez votre %s ici"],"To enable hCAPTCHA, please add your site key and secret key. Configure these settings within the individual form.":["Pour activer hCAPTCHA, veuillez ajouter votre cl\u00e9 de site et votre cl\u00e9 secr\u00e8te. Configurez ces param\u00e8tres dans le formulaire individuel."],"To enable Cloudflare Turnstile, please add your site key and secret key. Configure these settings within the individual form.":["Pour activer Cloudflare Turnstile, veuillez ajouter votre cl\u00e9 de site et votre cl\u00e9 secr\u00e8te. Configurez ces param\u00e8tres dans le formulaire individuel."],"Save":["Sauvegarder"],"Anonymous Analytics":["Analytique Anonyme"],"Learn More":["En savoir plus"],"Admin Notification":["Notification d'administration"],"Enable Admin Notification":["Activer la notification administrateur"],"Admin notifications keep you informed about new form entries since your last visit.":["Les notifications administratives vous informent des nouvelles entr\u00e9es de formulaire depuis votre derni\u00e8re visite."],"Continue":["Continuer"],"Get Started":["Commencer"],"Integration":["Int\u00e9gration"],"Connect Native Integrations with SureForms":["Connectez les int\u00e9grations natives avec SureForms"],"Unlock powerful integrations in the Premium plan to automate your workflows and connect SureForms directly with your favourite tools.":["D\u00e9bloquez des int\u00e9grations puissantes dans le plan Premium pour automatiser vos flux de travail et connecter SureForms directement \u00e0 vos outils pr\u00e9f\u00e9r\u00e9s."],"Send form submissions straight to CRMs, email, and marketing platforms":["Envoyez les soumissions de formulaires directement aux CRM, par e-mail et aux plateformes de marketing"],"Automate repetitive tasks with seamless data syncing":["Automatisez les t\u00e2ches r\u00e9p\u00e9titives avec une synchronisation des donn\u00e9es transparente"],"Access exclusive native integrations for faster workflows":["Acc\u00e9dez \u00e0 des int\u00e9grations natives exclusives pour des flux de travail plus rapides"],"Payments":["Paiements"],"Stripe account disconnected successfully.":["Compte Stripe d\u00e9connect\u00e9 avec succ\u00e8s."],"Failed to create webhook.":["\u00c9chec de la cr\u00e9ation du webhook."],"Failed to connect to Stripe.":["\u00c9chec de la connexion \u00e0 Stripe."],"Webhook":["Webhook"],"Knowledge Base":["Base de connaissances"],"What\u2019s New":["Quoi de neuf"],"delete":["supprimer"],"Please type \"%s\" in the input box":["Veuillez taper \"%s\" dans la bo\u00eete de saisie"],"To confirm, type \"%s\" in the box below:":["Pour confirmer, tapez \"%s\" dans la case ci-dessous :"],"Type \"%s\"":["Tapez \"%s\""],"Go to OttoKit Settings":["Acc\u00e9dez aux param\u00e8tres OttoKit"],"USD - US Dollar":["USD - Dollar am\u00e9ricain"],"Payment Mode":["Mode de paiement"],"Test Mode":["Mode Test"],"Live Mode":["Mode en direct"],"General Settings":["Param\u00e8tres g\u00e9n\u00e9raux"],"Set up email summaries, admin alerts, and data preferences to manage your forms with ease.":["Configurez les r\u00e9sum\u00e9s d'e-mails, les alertes administratives et les pr\u00e9f\u00e9rences de donn\u00e9es pour g\u00e9rer vos formulaires en toute simplicit\u00e9."],"Customize default error messages shown when users submit invalid or incomplete form entries.":["Personnalisez les messages d'erreur par d\u00e9faut affich\u00e9s lorsque les utilisateurs soumettent des entr\u00e9es de formulaire invalides ou incompl\u00e8tes."],"Enable spam protection for your forms using CAPTCHA services or honeypot security.":["Activez la protection contre le spam pour vos formulaires en utilisant des services CAPTCHA ou une s\u00e9curit\u00e9 de type honeypot."],"Connect and manage your payment gateways to securely accept transactions through your forms.":["Connectez et g\u00e9rez vos passerelles de paiement pour accepter en toute s\u00e9curit\u00e9 les transactions via vos formulaires."],"1% transaction and payment gateway fees apply.":["Des frais de transaction et de passerelle de paiement de 1 % s'appliquent."],"2.9% transaction and payment gateway fees apply. Activate license to reduce transaction fees.":["Des frais de transaction et de passerelle de paiement de 2,9 % s'appliquent. Activez la licence pour r\u00e9duire les frais de transaction."],"2.9% transaction and payment gateway fees apply.":["Des frais de transaction et de passerelle de paiement de 2,9 % s'appliquent."],"Please visit %1$s, delete an unused webhook, then click below to retry.":["Veuillez visiter %1$s, supprimer un webhook inutilis\u00e9, puis cliquer ci-dessous pour r\u00e9essayer."],"SureForms could not create a webhook because your Stripe account has run out of free slots. Webhooks are needed to receive updates about payments.":["SureForms n'a pas pu cr\u00e9er un webhook car votre compte Stripe a \u00e9puis\u00e9 ses emplacements gratuits. Les webhooks sont n\u00e9cessaires pour recevoir des mises \u00e0 jour sur les paiements."],"Stripe Dashboard":["Tableau de bord Stripe"],"Creating\u2026":["Cr\u00e9ation\u2026"],"Create Webhook":["Cr\u00e9er un Webhook"],"Successfully connected to Stripe!":["Connexion r\u00e9ussie \u00e0 Stripe !"],"Invalid response from server. Please try again.":["R\u00e9ponse invalide du serveur. Veuillez r\u00e9essayer."],"Failed to disconnect Stripe account.":["\u00c9chec de la d\u00e9connexion du compte Stripe."],"Webhook created successfully!":["Webhook cr\u00e9\u00e9 avec succ\u00e8s !"],"Select Currency":["S\u00e9lectionner la devise"],"Select the default currency for payment forms.":["S\u00e9lectionnez la devise par d\u00e9faut pour les formulaires de paiement."],"Connection Status":["Statut de la connexion"],"Disconnect Stripe Account":["D\u00e9connecter le compte Stripe"],"Are you sure you want to disconnect your Stripe account? This will stop all active payments, subscriptions, and form transactions connected to this account.":["\u00cates-vous s\u00fbr de vouloir d\u00e9connecter votre compte Stripe ? Cela arr\u00eatera tous les paiements actifs, abonnements et transactions de formulaire li\u00e9s \u00e0 ce compte."],"Disconnect":["D\u00e9connecter"],"Disconnecting\u2026":["D\u00e9connexion\u2026"],"Webhook successfully connected, all Stripe events are being tracked.":["Webhook connect\u00e9 avec succ\u00e8s, tous les \u00e9v\u00e9nements Stripe sont suivis."],"Connect your Stripe account to start accepting payments through your forms.":["Connectez votre compte Stripe pour commencer \u00e0 accepter les paiements via vos formulaires."],"Connect to Stripe":["Connectez-vous \u00e0 Stripe"],"Securely connect to Stripe with just a few clicks to begin accepting payments! ":["Connectez-vous en toute s\u00e9curit\u00e9 \u00e0 Stripe en quelques clics pour commencer \u00e0 accepter les paiements !"],"Payment Methods":["M\u00e9thodes de paiement"],"Test mode allows you to process payments without real charges. Switch to Live mode for actual transactions.":["Le mode test vous permet de traiter les paiements sans frais r\u00e9els. Passez en mode Live pour des transactions r\u00e9elles."],"General Payment Settings":["Param\u00e8tres g\u00e9n\u00e9raux de paiement"],"These settings apply to all payment gateways.":["Ces param\u00e8tres s'appliquent \u00e0 toutes les passerelles de paiement."],"Stripe Settings":["Param\u00e8tres Stripe"],"Left ($100)":["Gauche (100 $)"],"Right (100$)":["D'accord (100$)"],"Left Space ($ 100)":["Espace gauche (100 $)"],"Right Space (100 $)":["Espace droit (100 $)"],"Currency Sign Position":["Position du signe mon\u00e9taire"],"Select the position of the currency symbol relative to the amount.":["S\u00e9lectionnez la position du symbole mon\u00e9taire par rapport au montant."],"Learn":["Apprendre"],"Enable email summaries":["Activer les r\u00e9sum\u00e9s par e-mail"],"Enable IP logging":["Activer la journalisation IP"],"Turn on Admin Notification from here.":["Activez la notification d'administration \u00e0 partir d'ici."],"Send entries to 100+ popular apps.":["Envoyez des entr\u00e9es \u00e0 plus de 100 applications populaires."],"Build automated workflows that run instantly.":["Cr\u00e9ez des flux de travail automatis\u00e9s qui s'ex\u00e9cutent instantan\u00e9ment."],"Create custom app integrations using our Custom App feature.":["Cr\u00e9ez des int\u00e9grations d'applications personnalis\u00e9es en utilisant notre fonctionnalit\u00e9 d'application personnalis\u00e9e."],"Keep your tools in sync automatically.":["Gardez vos outils synchronis\u00e9s automatiquement."],"This will install and activate OttoKit on your WordPress site to enable automation features.":["Cela installera et activera OttoKit sur votre site WordPress pour activer les fonctionnalit\u00e9s d'automatisation."],"Automate Your Forms with OttoKit":["Automatisez vos formulaires avec OttoKit"],"Every form submission should trigger something \u2014 a Slack alert, a CRM lead, a follow-up email, or a new row in Google Sheets.":["Chaque soumission de formulaire devrait d\u00e9clencher quelque chose \u2014 une alerte Slack, un lead CRM, un e-mail de suivi, ou une nouvelle ligne dans Google Sheets."],"MCP":["MCP"],"Configure AI client permissions and MCP server settings.":["Configurer les autorisations du client IA et les param\u00e8tres du serveur MCP."],"View documentation":["Voir la documentation"],"Copy to clipboard":["Copier dans le presse-papiers"],"Claude Desktop":["Claude Desktop"],"~\/Library\/Application Support\/Claude\/claude_desktop_config.json (macOS) or %APPDATA%\\Claude\\claude_desktop_config.json (Windows)":["~\/Library\/Application Support\/Claude\/claude_desktop_config.json (macOS) ou %APPDATA%\\Claude\\claude_desktop_config.json (Windows)"],"Claude Code":["Claude Code"],".mcp.json (project) or ~\/.claude.json (global)":[".mcp.json (projet) ou ~\/.claude.json (global)"],"Cursor":["Curseur"],"~\/.cursor\/mcp.json":["~\/.cursor\/mcp.json"],"VS Code (Copilot)":["VS Code (Copilot)"],".vscode\/mcp.json (project) or settings.json > mcp.servers (global)":[".vscode\/mcp.json (projet) ou settings.json > mcp.servers (global)"],"~\/.continue\/config.yaml or config.json":["~\/.continue\/config.yaml ou config.json"],"Your client's MCP configuration file":["Le fichier de configuration MCP de votre client"],"Connect Your AI Client":["Connectez votre client IA"],"AI Client":["Client IA"],"Create an Application Password \u2014 ":["Cr\u00e9er un mot de passe d'application \u2014"],"Open Application Passwords":["Ouvrir les mots de passe de l'application"],"Or use this CLI command to add the server quickly (you will still need to set the environment variables):":["Ou utilisez cette commande CLI pour ajouter le serveur rapidement (vous devrez toujours d\u00e9finir les variables d'environnement) :"],"Copy the JSON config below into: ":["Copiez la configuration JSON ci-dessous dans :"],"Replace \"your-application-password\" with the password from Step 1.":["Remplacez \"your-application-password\" par le mot de passe de l'\u00e9tape 1."],"WP_API_URL \u2014 your site's MCP endpoint. WP_API_USERNAME \u2014 your WordPress username. WP_API_PASSWORD \u2014 the application password you generated.":["WP_API_URL \u2014 l'endpoint MCP de votre site. WP_API_USERNAME \u2014 votre nom d'utilisateur WordPress. WP_API_PASSWORD \u2014 le mot de passe de l'application que vous avez g\u00e9n\u00e9r\u00e9."],"View setup docs":["Voir les documents de configuration"],"The MCP Adapter plugin is installed but not active. Activate it to configure MCP settings.":["Le plugin MCP Adapter est install\u00e9 mais pas actif. Activez-le pour configurer les param\u00e8tres MCP."],"The MCP Adapter plugin is required to connect AI clients to your forms. Download and install it from GitHub, then activate it.":["Le plugin MCP Adapter est n\u00e9cessaire pour connecter les clients IA \u00e0 vos formulaires. T\u00e9l\u00e9chargez-le et installez-le depuis GitHub, puis activez-le."],"Download the latest release from":["T\u00e9l\u00e9chargez la derni\u00e8re version depuis"],"Install the plugin via Plugins > Add New Plugin > Upload Plugin.":["Installez le plugin via Extensions > Ajouter une nouvelle extension > T\u00e9l\u00e9verser une extension."],"Activate the MCP Adapter plugin.":["Activez le plugin d'adaptateur MCP."],"Activating\u2026":["Activation\u2026"],"Activate MCP Adapter":["Activer l'adaptateur MCP"],"Download MCP Adapter":["T\u00e9l\u00e9charger l'adaptateur MCP"],"Experimental":["Exp\u00e9rimental"],"Enable Abilities":["Activer les capacit\u00e9s"],"Register SureForms abilities with the WordPress Abilities API. When enabled, AI clients can list, read, create, edit, and delete your forms and entries. When disabled, no abilities are registered and AI clients cannot perform any actions on your forms.":["Enregistrez les capacit\u00e9s de SureForms avec l'API des capacit\u00e9s de WordPress. Lorsqu'elle est activ\u00e9e, les clients IA peuvent lister, lire, cr\u00e9er, modifier et supprimer vos formulaires et entr\u00e9es. Lorsqu'elle est d\u00e9sactiv\u00e9e, aucune capacit\u00e9 n'est enregistr\u00e9e et les clients IA ne peuvent effectuer aucune action sur vos formulaires."],"Abilities API \u2014 Edit":["API des capacit\u00e9s \u2014 Modifier"],"Enable Edit Abilities":["Activer les capacit\u00e9s d'\u00e9dition"],"When enabled, AI clients can create new forms, update form titles, fields, and settings, duplicate forms, and modify entry statuses. When disabled, these abilities are unregistered and AI clients can only read your data.":["Lorsqu'elle est activ\u00e9e, les clients IA peuvent cr\u00e9er de nouveaux formulaires, mettre \u00e0 jour les titres, les champs et les param\u00e8tres des formulaires, dupliquer des formulaires et modifier les statuts des entr\u00e9es. Lorsqu'elle est d\u00e9sactiv\u00e9e, ces capacit\u00e9s sont d\u00e9senregistr\u00e9es et les clients IA peuvent uniquement lire vos donn\u00e9es."],"Abilities API \u2014 Delete":["API des capacit\u00e9s \u2014 Supprimer"],"Enable Delete Abilities":["Activer les capacit\u00e9s de suppression"],"When enabled, AI clients can permanently delete forms and entries. Deleted data cannot be recovered. When disabled, delete abilities are unregistered and AI clients cannot remove any data.":["Lorsqu'ils sont activ\u00e9s, les clients IA peuvent supprimer d\u00e9finitivement des formulaires et des entr\u00e9es. Les donn\u00e9es supprim\u00e9es ne peuvent pas \u00eatre r\u00e9cup\u00e9r\u00e9es. Lorsqu'ils sont d\u00e9sactiv\u00e9s, les capacit\u00e9s de suppression sont d\u00e9senregistr\u00e9es et les clients IA ne peuvent supprimer aucune donn\u00e9e."],"MCP Server":["Serveur MCP"],"Enable MCP Server":["Activer le serveur MCP"],"Creates a dedicated SureForms MCP endpoint that AI clients like Claude can connect to. When disabled, the endpoint is removed and external AI clients cannot discover or call any SureForms abilities.":["Cr\u00e9e un point de terminaison SureForms MCP d\u00e9di\u00e9 auquel les clients IA comme Claude peuvent se connecter. Lorsqu'il est d\u00e9sactiv\u00e9, le point de terminaison est supprim\u00e9 et les clients IA externes ne peuvent pas d\u00e9couvrir ou appeler les capacit\u00e9s de SureForms."],"Learn more":["En savoir plus"],"MCP Adapter Required":["Adaptateur MCP requis"],"Google Maps":["Google Maps"],"Configure Google Maps API key for address autocomplete and map preview.":["Configurez la cl\u00e9 API Google Maps pour la saisie semi-automatique des adresses et l'aper\u00e7u de la carte."],"Help shape the future of SureForms":["Aidez \u00e0 fa\u00e7onner l'avenir de SureForms"],"Share how you use the plugin so we can build features that matter, fix issues faster, and make smarter decisions. ":["Partagez comment vous utilisez le plugin afin que nous puissions d\u00e9velopper des fonctionnalit\u00e9s qui comptent, r\u00e9soudre les probl\u00e8mes plus rapidement et prendre des d\u00e9cisions plus \u00e9clair\u00e9es. "],"Enable Google Address Autocomplete":["Activer la saisie semi-automatique d'adresse Google"],"Upgrade to the SureForms Business Plan to add Google-powered address autocomplete with interactive map preview to your forms.":["Passez au plan d'affaires SureForms pour ajouter la saisie semi-automatique d'adresses aliment\u00e9e par Google avec un aper\u00e7u de la carte interactive \u00e0 vos formulaires."],"Auto-suggest addresses as users type for faster, error-free submissions":["Sugg\u00e9rer automatiquement des adresses au fur et \u00e0 mesure que les utilisateurs tapent pour des soumissions plus rapides et sans erreur"],"Show an interactive map preview with draggable pin for precise locations":["Afficher un aper\u00e7u de carte interactif avec un rep\u00e8re d\u00e9pla\u00e7able pour des emplacements pr\u00e9cis"],"Automatically populate address fields like city, state, and postal code":["Remplir automatiquement les champs d'adresse tels que la ville, l'\u00e9tat et le code postal"]}}} \ No newline at end of file +{"translation-revision-date":"2024-12-13T13:12:49+00:00","generator":"WP-CLI\/2.12.0","source":"assets\/build\/settings.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"en","plural-forms":"nplurals=2; plural=(n != 1);"},"Dashboard":["Tableau de bord"],"Settings":["Param\u00e8tres"],"Entries":["Entr\u00e9es"],"Activated":["Activ\u00e9"],"Activate":["Activer"],"Monday":["Lundi"],"Forms":["Formulaires"],"GitHub":["GitHub"],"General":["G\u00e9n\u00e9ral"],"Other":["Autre"],"Confirm":["Confirmer"],"Cancel":["Annuler"],"Install":["Installer"],"Plugin Installation failed, Please try again later.":["L'installation du plugin a \u00e9chou\u00e9, veuillez r\u00e9essayer plus tard."],"Plugin activation failed, Please try again later.":["L'activation du plugin a \u00e9chou\u00e9, veuillez r\u00e9essayer plus tard."],"Integrations":["Int\u00e9grations"],"What's New?":["Quoi de neuf ?"],"Core":["C\u0153ur"],"Unlicensed":["Sans licence"],"Connecting\u2026":["Connexion\u2026"],"Install & Activate":["Installer et activer"],"Send Email To":["Envoyer un e-mail \u00e0"],"Google reCAPTCHA":["Google reCAPTCHA"],"hCaptcha":["hCaptcha"],"reCAPTCHA v2 Invisible":["reCAPTCHA v2 Invisible"],"reCAPTCHA v3":["reCAPTCHA v3"],"Validations":["Validations"],"Spam Protection":["Protection contre le spam"],"If this option is turned on, the user's IP address will be saved with the form data":["Si cette option est activ\u00e9e, l'adresse IP de l'utilisateur sera enregistr\u00e9e avec les donn\u00e9es du formulaire"],"Enable Honeypot Security":["Activer la s\u00e9curit\u00e9 Honeypot"],"Enable Honeypot Security for better spam protection":["Activez la s\u00e9curit\u00e9 Honeypot pour une meilleure protection contre le spam"],"%s represents the minimum selections needed. For example: \u201cMinimum 2 selections are required.\u201d":["%s repr\u00e9sente le nombre minimum de s\u00e9lections n\u00e9cessaires. Par exemple : \u00ab Un minimum de 2 s\u00e9lections est requis. \u00bb"],"%s represents the maximum selections allowed. For example: \u201cMaximum 4 selections are allowed.\u201d":["%s repr\u00e9sente le nombre maximum de s\u00e9lections autoris\u00e9es. Par exemple : \u00ab Maximum 4 s\u00e9lections autoris\u00e9es. \u00bb"],"%s represents the minimum choices needed. For example: \u201cMinimum 1 selection is required.\u201d":["%s repr\u00e9sente le nombre minimum de choix n\u00e9cessaires. Par exemple : \u00ab Au moins 1 s\u00e9lection est requise. \u00bb"],"%s represents the maximum choices allowed. For example: \u201cMaximum 3 selections are allowed.\u201d":["%s repr\u00e9sente le nombre maximum de choix autoris\u00e9s. Par exemple : \u00ab Maximum de 3 s\u00e9lections autoris\u00e9es. \u00bb"]," Error Message":["Message d'erreur"],"Email Summaries":["R\u00e9sum\u00e9s d'e-mails"],"Tuesday":["Mardi"],"Wednesday":["Mercredi"],"Thursday":["Jeudi"],"Friday":["Vendredi"],"Saturday":["Samedi"],"Sunday":["Dimanche"],"Schedule Reports":["Programmer les rapports"],"Auto":["Auto"],"Light":["Lumi\u00e8re"],"Dark":["Sombre"],"Turnstile":["Tourniquet"],"Get Keys":["Obtenir les cl\u00e9s"],"Documentation":["Documentation"],"Site Key":["Cl\u00e9 du site"],"Secret Key":["Cl\u00e9 secr\u00e8te"],"Cloudflare Turnstile":["Tourniquet Cloudflare"],"Appearance Mode":["Mode d'apparence"],"This field cannot be left blank.":["Ce champ ne peut pas \u00eatre laiss\u00e9 vide."],"Test Email":["Email de test"],"IP Logging":["Journalisation IP"],"Honeypot":["Pot de miel"],"Confirmation Email Mismatch Message":["Message de non-correspondance de l'email de confirmation"],"%s represents the minimum input value. For example: \"Minimum value is 10.\"":["%s repr\u00e9sente la valeur d'entr\u00e9e minimale. Par exemple : \"La valeur minimale est 10.\""],"%s represents the maximum input value. For example: \"Maximum value is 100.\"":["%s repr\u00e9sente la valeur d'entr\u00e9e maximale. Par exemple : \"La valeur maximale est 100.\""],"OttoKit":["OttoKit"],"Connect with OttoKit":["Connectez-vous avec OttoKit"],"reCAPTCHA":["reCAPTCHA"],"Ready to go beyond free plan?":["Pr\u00eat \u00e0 aller au-del\u00e0 du plan gratuit ?"],"Upgrade now":["Mettez \u00e0 niveau maintenant"],"and unlock the full power of SureForms!":["et d\u00e9bloquez toute la puissance de SureForms !"],"Upgrade SureForms":["Mettre \u00e0 niveau SureForms"],"Upgrade Now":["Mettez \u00e0 niveau maintenant"],"Form Validation":["Validation de formulaire"],"Required Error Messages":["Messages d'erreur requis"],"Other Error Messages":["Autres messages d'erreur"],"Input Field Unique":["Champ de saisie unique"],"Email Field Unique":["Champ de courriel unique"],"Invalid URL":["URL invalide"],"Phone Field Unique":["Champ de t\u00e9l\u00e9phone unique"],"Invalid Field Number Block":["Bloc de num\u00e9ro de champ invalide"],"Invalid Email":["Email invalide"],"Number Minimum Value":["Valeur minimale du nombre"],"Number Maximum Value":["Valeur maximale du nombre"],"Dropdown Minimum Selections":["S\u00e9lections minimales du menu d\u00e9roulant"],"Dropdown Maximum Selections":["S\u00e9lections Maximales du Menu D\u00e9roulant"],"Multiple Choice Minimum Selections":["S\u00e9lections minimales \u00e0 choix multiple"],"Multiple Choice Maximum Selections":["S\u00e9lections maximales \u00e0 choix multiple"],"Input Field":["Champ de saisie"],"Email Field":["Champ de courriel"],"URL Field":["Champ URL"],"Phone Field":["Champ T\u00e9l\u00e9phone"],"Textarea Field":["Champ de zone de texte"],"Checkbox Field":["Champ de case \u00e0 cocher"],"Dropdown Field":["Champ d\u00e9roulant"],"Multiple Choice Field":["Champ \u00e0 choix multiple"],"Address Field":["Champ d'adresse"],"Number Field":["Champ num\u00e9rique"],"reCAPTCHA v2":["reCAPTCHA v2"],"To enable reCAPTCHA feature on your SureForms Please enable reCAPTCHA option on your blocks setting and select version. Add google reCAPTCHA secret and site key here. reCAPTCHA will be added to your page on front-end.":["Pour activer la fonctionnalit\u00e9 reCAPTCHA sur vos SureForms, veuillez activer l'option reCAPTCHA dans les param\u00e8tres de vos blocs et s\u00e9lectionner la version. Ajoutez ici la cl\u00e9 secr\u00e8te et la cl\u00e9 de site de Google reCAPTCHA. reCAPTCHA sera ajout\u00e9 \u00e0 votre page sur le front-end."],"Enter your %s here":["Entrez votre %s ici"],"To enable hCAPTCHA, please add your site key and secret key. Configure these settings within the individual form.":["Pour activer hCAPTCHA, veuillez ajouter votre cl\u00e9 de site et votre cl\u00e9 secr\u00e8te. Configurez ces param\u00e8tres dans le formulaire individuel."],"To enable Cloudflare Turnstile, please add your site key and secret key. Configure these settings within the individual form.":["Pour activer Cloudflare Turnstile, veuillez ajouter votre cl\u00e9 de site et votre cl\u00e9 secr\u00e8te. Configurez ces param\u00e8tres dans le formulaire individuel."],"Save":["Sauvegarder"],"Anonymous Analytics":["Analytique Anonyme"],"Learn More":["En savoir plus"],"Admin Notification":["Notification d'administration"],"Enable Admin Notification":["Activer la notification administrateur"],"Admin notifications keep you informed about new form entries since your last visit.":["Les notifications administratives vous informent des nouvelles entr\u00e9es de formulaire depuis votre derni\u00e8re visite."],"Continue":["Continuer"],"Get Started":["Commencer"],"Integration":["Int\u00e9gration"],"Connect Native Integrations with SureForms":["Connectez les int\u00e9grations natives avec SureForms"],"Unlock powerful integrations in the Premium plan to automate your workflows and connect SureForms directly with your favourite tools.":["D\u00e9bloquez des int\u00e9grations puissantes dans le plan Premium pour automatiser vos flux de travail et connecter SureForms directement \u00e0 vos outils pr\u00e9f\u00e9r\u00e9s."],"Send form submissions straight to CRMs, email, and marketing platforms":["Envoyez les soumissions de formulaires directement aux CRM, par e-mail et aux plateformes de marketing"],"Automate repetitive tasks with seamless data syncing":["Automatisez les t\u00e2ches r\u00e9p\u00e9titives avec une synchronisation des donn\u00e9es transparente"],"Access exclusive native integrations for faster workflows":["Acc\u00e9dez \u00e0 des int\u00e9grations natives exclusives pour des flux de travail plus rapides"],"Payments":["Paiements"],"Stripe account disconnected successfully.":["Compte Stripe d\u00e9connect\u00e9 avec succ\u00e8s."],"Failed to create webhook.":["\u00c9chec de la cr\u00e9ation du webhook."],"Failed to connect to Stripe.":["\u00c9chec de la connexion \u00e0 Stripe."],"Webhook":["Webhook"],"Knowledge Base":["Base de connaissances"],"What\u2019s New":["Quoi de neuf"],"delete":["supprimer"],"Please type \"%s\" in the input box":["Veuillez taper \"%s\" dans la bo\u00eete de saisie"],"To confirm, type \"%s\" in the box below:":["Pour confirmer, tapez \"%s\" dans la case ci-dessous :"],"Type \"%s\"":["Tapez \"%s\""],"Go to OttoKit Settings":["Acc\u00e9dez aux param\u00e8tres OttoKit"],"USD - US Dollar":["USD - Dollar am\u00e9ricain"],"Payment Mode":["Mode de paiement"],"Test Mode":["Mode Test"],"Live Mode":["Mode en direct"],"General Settings":["Param\u00e8tres g\u00e9n\u00e9raux"],"Set up email summaries, admin alerts, and data preferences to manage your forms with ease.":["Configurez les r\u00e9sum\u00e9s d'e-mails, les alertes administratives et les pr\u00e9f\u00e9rences de donn\u00e9es pour g\u00e9rer vos formulaires en toute simplicit\u00e9."],"Customize default error messages shown when users submit invalid or incomplete form entries.":["Personnalisez les messages d'erreur par d\u00e9faut affich\u00e9s lorsque les utilisateurs soumettent des entr\u00e9es de formulaire invalides ou incompl\u00e8tes."],"Enable spam protection for your forms using CAPTCHA services or honeypot security.":["Activez la protection contre le spam pour vos formulaires en utilisant des services CAPTCHA ou une s\u00e9curit\u00e9 de type honeypot."],"Connect and manage your payment gateways to securely accept transactions through your forms.":["Connectez et g\u00e9rez vos passerelles de paiement pour accepter en toute s\u00e9curit\u00e9 les transactions via vos formulaires."],"1% transaction and payment gateway fees apply.":["Des frais de transaction et de passerelle de paiement de 1 % s'appliquent."],"2.9% transaction and payment gateway fees apply. Activate license to reduce transaction fees.":["Des frais de transaction et de passerelle de paiement de 2,9 % s'appliquent. Activez la licence pour r\u00e9duire les frais de transaction."],"2.9% transaction and payment gateway fees apply.":["Des frais de transaction et de passerelle de paiement de 2,9 % s'appliquent."],"Please visit %1$s, delete an unused webhook, then click below to retry.":["Veuillez visiter %1$s, supprimer un webhook inutilis\u00e9, puis cliquer ci-dessous pour r\u00e9essayer."],"SureForms could not create a webhook because your Stripe account has run out of free slots. Webhooks are needed to receive updates about payments.":["SureForms n'a pas pu cr\u00e9er un webhook car votre compte Stripe a \u00e9puis\u00e9 ses emplacements gratuits. Les webhooks sont n\u00e9cessaires pour recevoir des mises \u00e0 jour sur les paiements."],"Stripe Dashboard":["Tableau de bord Stripe"],"Creating\u2026":["Cr\u00e9ation\u2026"],"Create Webhook":["Cr\u00e9er un Webhook"],"Successfully connected to Stripe!":["Connexion r\u00e9ussie \u00e0 Stripe !"],"Invalid response from server. Please try again.":["R\u00e9ponse invalide du serveur. Veuillez r\u00e9essayer."],"Failed to disconnect Stripe account.":["\u00c9chec de la d\u00e9connexion du compte Stripe."],"Webhook created successfully!":["Webhook cr\u00e9\u00e9 avec succ\u00e8s !"],"Select Currency":["S\u00e9lectionner la devise"],"Select the default currency for payment forms.":["S\u00e9lectionnez la devise par d\u00e9faut pour les formulaires de paiement."],"Connection Status":["Statut de la connexion"],"Disconnect Stripe Account":["D\u00e9connecter le compte Stripe"],"Are you sure you want to disconnect your Stripe account? This will stop all active payments, subscriptions, and form transactions connected to this account.":["\u00cates-vous s\u00fbr de vouloir d\u00e9connecter votre compte Stripe ? Cela arr\u00eatera tous les paiements actifs, abonnements et transactions de formulaire li\u00e9s \u00e0 ce compte."],"Disconnect":["D\u00e9connecter"],"Disconnecting\u2026":["D\u00e9connexion\u2026"],"Webhook successfully connected, all Stripe events are being tracked.":["Webhook connect\u00e9 avec succ\u00e8s, tous les \u00e9v\u00e9nements Stripe sont suivis."],"Connect your Stripe account to start accepting payments through your forms.":["Connectez votre compte Stripe pour commencer \u00e0 accepter les paiements via vos formulaires."],"Connect to Stripe":["Connectez-vous \u00e0 Stripe"],"Securely connect to Stripe with just a few clicks to begin accepting payments! ":["Connectez-vous en toute s\u00e9curit\u00e9 \u00e0 Stripe en quelques clics pour commencer \u00e0 accepter les paiements !"],"Payment Methods":["M\u00e9thodes de paiement"],"Test mode allows you to process payments without real charges. Switch to Live mode for actual transactions.":["Le mode test vous permet de traiter les paiements sans frais r\u00e9els. Passez en mode Live pour des transactions r\u00e9elles."],"General Payment Settings":["Param\u00e8tres g\u00e9n\u00e9raux de paiement"],"These settings apply to all payment gateways.":["Ces param\u00e8tres s'appliquent \u00e0 toutes les passerelles de paiement."],"Stripe Settings":["Param\u00e8tres Stripe"],"Left ($100)":["Gauche (100 $)"],"Right (100$)":["D'accord (100$)"],"Left Space ($ 100)":["Espace gauche (100 $)"],"Right Space (100 $)":["Espace droit (100 $)"],"Currency Sign Position":["Position du signe mon\u00e9taire"],"Select the position of the currency symbol relative to the amount.":["S\u00e9lectionnez la position du symbole mon\u00e9taire par rapport au montant."],"Learn":["Apprendre"],"Enable email summaries":["Activer les r\u00e9sum\u00e9s par e-mail"],"Enable IP logging":["Activer la journalisation IP"],"Turn on Admin Notification from here.":["Activez la notification d'administration \u00e0 partir d'ici."],"Send entries to 100+ popular apps.":["Envoyez des entr\u00e9es \u00e0 plus de 100 applications populaires."],"Build automated workflows that run instantly.":["Cr\u00e9ez des flux de travail automatis\u00e9s qui s'ex\u00e9cutent instantan\u00e9ment."],"Create custom app integrations using our Custom App feature.":["Cr\u00e9ez des int\u00e9grations d'applications personnalis\u00e9es en utilisant notre fonctionnalit\u00e9 d'application personnalis\u00e9e."],"Keep your tools in sync automatically.":["Gardez vos outils synchronis\u00e9s automatiquement."],"This will install and activate OttoKit on your WordPress site to enable automation features.":["Cela installera et activera OttoKit sur votre site WordPress pour activer les fonctionnalit\u00e9s d'automatisation."],"Automate Your Forms with OttoKit":["Automatisez vos formulaires avec OttoKit"],"Every form submission should trigger something \u2014 a Slack alert, a CRM lead, a follow-up email, or a new row in Google Sheets.":["Chaque soumission de formulaire devrait d\u00e9clencher quelque chose \u2014 une alerte Slack, un lead CRM, un e-mail de suivi, ou une nouvelle ligne dans Google Sheets."],"MCP":["MCP"],"Configure AI client permissions and MCP server settings.":["Configurer les autorisations du client IA et les param\u00e8tres du serveur MCP."],"View documentation":["Voir la documentation"],"Copy to clipboard":["Copier dans le presse-papiers"],"Claude Desktop":["Claude Desktop"],"~\/Library\/Application Support\/Claude\/claude_desktop_config.json (macOS) or %APPDATA%\\Claude\\claude_desktop_config.json (Windows)":["~\/Library\/Application Support\/Claude\/claude_desktop_config.json (macOS) ou %APPDATA%\\Claude\\claude_desktop_config.json (Windows)"],"Claude Code":["Claude Code"],".mcp.json (project) or ~\/.claude.json (global)":[".mcp.json (projet) ou ~\/.claude.json (global)"],"Cursor":["Curseur"],"~\/.cursor\/mcp.json":["~\/.cursor\/mcp.json"],"VS Code (Copilot)":["VS Code (Copilot)"],".vscode\/mcp.json (project) or settings.json > mcp.servers (global)":[".vscode\/mcp.json (projet) ou settings.json > mcp.servers (global)"],"~\/.continue\/config.yaml or config.json":["~\/.continue\/config.yaml ou config.json"],"Your client's MCP configuration file":["Le fichier de configuration MCP de votre client"],"Connect Your AI Client":["Connectez votre client IA"],"AI Client":["Client IA"],"Create an Application Password \u2014 ":["Cr\u00e9er un mot de passe d'application \u2014"],"Open Application Passwords":["Ouvrir les mots de passe de l'application"],"Or use this CLI command to add the server quickly (you will still need to set the environment variables):":["Ou utilisez cette commande CLI pour ajouter le serveur rapidement (vous devrez toujours d\u00e9finir les variables d'environnement) :"],"Copy the JSON config below into: ":["Copiez la configuration JSON ci-dessous dans :"],"Replace \"your-application-password\" with the password from Step 1.":["Remplacez \"your-application-password\" par le mot de passe de l'\u00e9tape 1."],"WP_API_URL \u2014 your site's MCP endpoint. WP_API_USERNAME \u2014 your WordPress username. WP_API_PASSWORD \u2014 the application password you generated.":["WP_API_URL \u2014 l'endpoint MCP de votre site. WP_API_USERNAME \u2014 votre nom d'utilisateur WordPress. WP_API_PASSWORD \u2014 le mot de passe de l'application que vous avez g\u00e9n\u00e9r\u00e9."],"View setup docs":["Voir les documents de configuration"],"The MCP Adapter plugin is installed but not active. Activate it to configure MCP settings.":["Le plugin MCP Adapter est install\u00e9 mais pas actif. Activez-le pour configurer les param\u00e8tres MCP."],"The MCP Adapter plugin is required to connect AI clients to your forms. Download and install it from GitHub, then activate it.":["Le plugin MCP Adapter est n\u00e9cessaire pour connecter les clients IA \u00e0 vos formulaires. T\u00e9l\u00e9chargez-le et installez-le depuis GitHub, puis activez-le."],"Download the latest release from":["T\u00e9l\u00e9chargez la derni\u00e8re version depuis"],"Install the plugin via Plugins > Add New Plugin > Upload Plugin.":["Installez le plugin via Extensions > Ajouter une nouvelle extension > T\u00e9l\u00e9verser une extension."],"Activate the MCP Adapter plugin.":["Activez le plugin d'adaptateur MCP."],"Activating\u2026":["Activation\u2026"],"Activate MCP Adapter":["Activer l'adaptateur MCP"],"Download MCP Adapter":["T\u00e9l\u00e9charger l'adaptateur MCP"],"Experimental":["Exp\u00e9rimental"],"Enable Abilities":["Activer les capacit\u00e9s"],"Register SureForms abilities with the WordPress Abilities API. When enabled, AI clients can list, read, create, edit, and delete your forms and entries. When disabled, no abilities are registered and AI clients cannot perform any actions on your forms.":["Enregistrez les capacit\u00e9s de SureForms avec l'API des capacit\u00e9s de WordPress. Lorsqu'elle est activ\u00e9e, les clients IA peuvent lister, lire, cr\u00e9er, modifier et supprimer vos formulaires et entr\u00e9es. Lorsqu'elle est d\u00e9sactiv\u00e9e, aucune capacit\u00e9 n'est enregistr\u00e9e et les clients IA ne peuvent effectuer aucune action sur vos formulaires."],"Abilities API \u2014 Edit":["API des capacit\u00e9s \u2014 Modifier"],"Enable Edit Abilities":["Activer les capacit\u00e9s d'\u00e9dition"],"When enabled, AI clients can create new forms, update form titles, fields, and settings, duplicate forms, and modify entry statuses. When disabled, these abilities are unregistered and AI clients can only read your data.":["Lorsqu'elle est activ\u00e9e, les clients IA peuvent cr\u00e9er de nouveaux formulaires, mettre \u00e0 jour les titres, les champs et les param\u00e8tres des formulaires, dupliquer des formulaires et modifier les statuts des entr\u00e9es. Lorsqu'elle est d\u00e9sactiv\u00e9e, ces capacit\u00e9s sont d\u00e9senregistr\u00e9es et les clients IA peuvent uniquement lire vos donn\u00e9es."],"Abilities API \u2014 Delete":["API des capacit\u00e9s \u2014 Supprimer"],"Enable Delete Abilities":["Activer les capacit\u00e9s de suppression"],"When enabled, AI clients can permanently delete forms and entries. Deleted data cannot be recovered. When disabled, delete abilities are unregistered and AI clients cannot remove any data.":["Lorsqu'ils sont activ\u00e9s, les clients IA peuvent supprimer d\u00e9finitivement des formulaires et des entr\u00e9es. Les donn\u00e9es supprim\u00e9es ne peuvent pas \u00eatre r\u00e9cup\u00e9r\u00e9es. Lorsqu'ils sont d\u00e9sactiv\u00e9s, les capacit\u00e9s de suppression sont d\u00e9senregistr\u00e9es et les clients IA ne peuvent supprimer aucune donn\u00e9e."],"MCP Server":["Serveur MCP"],"Enable MCP Server":["Activer le serveur MCP"],"Creates a dedicated SureForms MCP endpoint that AI clients like Claude can connect to. When disabled, the endpoint is removed and external AI clients cannot discover or call any SureForms abilities.":["Cr\u00e9e un point de terminaison SureForms MCP d\u00e9di\u00e9 auquel les clients IA comme Claude peuvent se connecter. Lorsqu'il est d\u00e9sactiv\u00e9, le point de terminaison est supprim\u00e9 et les clients IA externes ne peuvent pas d\u00e9couvrir ou appeler les capacit\u00e9s de SureForms."],"Learn more":["En savoir plus"],"MCP Adapter Required":["Adaptateur MCP requis"],"Google Maps":["Google Maps"],"Configure Google Maps API key for address autocomplete and map preview.":["Configurez la cl\u00e9 API Google Maps pour la saisie semi-automatique des adresses et l'aper\u00e7u de la carte."],"Help shape the future of SureForms":["Aidez \u00e0 fa\u00e7onner l'avenir de SureForms"],"Share how you use the plugin so we can build features that matter, fix issues faster, and make smarter decisions. ":["Partagez comment vous utilisez le plugin afin que nous puissions d\u00e9velopper des fonctionnalit\u00e9s qui comptent, r\u00e9soudre les probl\u00e8mes plus rapidement et prendre des d\u00e9cisions plus \u00e9clair\u00e9es."],"Enable Google Address Autocomplete":["Activer la saisie semi-automatique d'adresse Google"],"Upgrade to the SureForms Business Plan to add Google-powered address autocomplete with interactive map preview to your forms.":["Passez au plan d'affaires SureForms pour ajouter la saisie semi-automatique d'adresses aliment\u00e9e par Google avec un aper\u00e7u de la carte interactive \u00e0 vos formulaires."],"Auto-suggest addresses as users type for faster, error-free submissions":["Sugg\u00e9rer automatiquement des adresses au fur et \u00e0 mesure que les utilisateurs tapent pour des soumissions plus rapides et sans erreur"],"Show an interactive map preview with draggable pin for precise locations":["Afficher un aper\u00e7u de carte interactif avec un rep\u00e8re d\u00e9pla\u00e7able pour des emplacements pr\u00e9cis"],"Automatically populate address fields like city, state, and postal code":["Remplir automatiquement les champs d'adresse tels que la ville, l'\u00e9tat et le code postal"]}}} \ No newline at end of file diff --git a/languages/sureforms-fr_FR.mo b/languages/sureforms-fr_FR.mo index b0fd13836..881a47700 100644 Binary files a/languages/sureforms-fr_FR.mo and b/languages/sureforms-fr_FR.mo differ diff --git a/languages/sureforms-fr_FR.po b/languages/sureforms-fr_FR.po index 3441bdb34..5c00795a5 100644 --- a/languages/sureforms-fr_FR.po +++ b/languages/sureforms-fr_FR.po @@ -16,7 +16,7 @@ msgstr "" #: sureforms.php #: admin/admin.php:320 #: admin/admin.php:321 -#: admin/admin.php:1812 +#: admin/admin.php:1813 #: inc/abilities/abilities-registrar.php:133 #: inc/gutenberg-hooks.php:109 #: inc/page-builders/bricks/elements/form-widget.php:67 @@ -82,7 +82,7 @@ msgstr "Nouveau formulaire" #: admin/admin.php:601 #: admin/admin.php:602 -#: admin/admin.php:1849 +#: admin/admin.php:1850 #: inc/global-settings/email-summary.php:225 #: assets/build/dashboard.js:172 #: assets/build/entries.js:172 @@ -118,12 +118,12 @@ msgid "Nonce verification failed." msgstr "La vérification du nonce a échoué." #. translators: %1$s: Opening anchor tag with URL, %2$s: Closing anchor tag, %3$s: SureForms Pro Plugin Name. -#: admin/admin.php:1441 +#: admin/admin.php:1442 #, php-format msgid "Please %1$sactivate%2$s your copy of %3$s to get new features, access support, receive update notifications, and more." msgstr "Veuillez %1$sactiver%2$s votre copie de %3$s pour obtenir de nouvelles fonctionnalités, accéder au support, recevoir des notifications de mise à jour, et plus encore." -#: admin/admin.php:1848 +#: admin/admin.php:1849 #: inc/global-settings/email-summary.php:224 #: assets/build/entries.js:172 #: assets/build/payments.js:172 @@ -191,7 +191,7 @@ msgstr "Poubelle" msgid "Published" msgstr "Publié" -#: admin/admin.php:1840 +#: admin/admin.php:1841 msgid "View" msgstr "Voir" @@ -312,10 +312,10 @@ msgstr "Installé" msgid "You do not have permission to access this page." msgstr "Vous n'avez pas la permission d'accéder à cette page." -#: admin/admin.php:1607 -#: admin/admin.php:1706 -#: admin/admin.php:1744 -#: admin/admin.php:1765 +#: admin/admin.php:1608 +#: admin/admin.php:1707 +#: admin/admin.php:1745 +#: admin/admin.php:1766 #: inc/admin-ajax.php:162 #: inc/payments/admin/admin-handler.php:638 #: inc/payments/stripe/admin-stripe-handler.php:80 @@ -328,7 +328,7 @@ msgid "Form ID is required." msgstr "L'identifiant du formulaire est requis." #: inc/admin-ajax.php:182 -#: inc/form-submit.php:970 +#: inc/form-submit.php:972 msgid "Invalid form ID." msgstr "ID de formulaire invalide." @@ -502,11 +502,11 @@ msgstr "Case à cocher" msgid "Required" msgstr "Requis" -#: inc/fields/dropdown-markup.php:83 +#: inc/fields/dropdown-markup.php:84 msgid "Dropdown" msgstr "Menu déroulant" -#: inc/fields/dropdown-markup.php:106 +#: inc/fields/dropdown-markup.php:108 #: inc/gutenberg-hooks.php:220 msgid "Select an option" msgstr "Sélectionnez une option" @@ -534,7 +534,7 @@ msgstr "Je consens à ce que ce site web stocke les informations que j'ai soumis msgid "Please verify that you are not a robot." msgstr "Veuillez vérifier que vous n'êtes pas un robot." -#: inc/fields/multichoice-markup.php:113 +#: inc/fields/multichoice-markup.php:114 msgid "Multi Choice" msgstr "Choix multiple" @@ -775,7 +775,7 @@ msgid "Site URL" msgstr "URL du site" #: inc/smart-tags.php:111 -#: inc/smart-tags.php:142 +#: inc/smart-tags.php:143 msgid "Admin Email" msgstr "Email de l'administrateur" @@ -816,7 +816,7 @@ msgid "User Last Name" msgstr "Nom de famille de l'utilisateur" #: inc/smart-tags.php:122 -#: inc/smart-tags.php:143 +#: inc/smart-tags.php:144 msgid "User Email" msgstr "Email de l'utilisateur" @@ -840,11 +840,11 @@ msgstr "ID de publication/page intégrée" msgid "Embedded Post/Page Title" msgstr "Titre de l'article/page intégré" -#: inc/smart-tags.php:128 +#: inc/smart-tags.php:129 msgid "Populate by GET Param" msgstr "Remplir par paramètre GET" -#: inc/smart-tags.php:129 +#: inc/smart-tags.php:130 msgid "Cookie Value" msgstr "Valeur du cookie" @@ -8827,7 +8827,7 @@ msgstr "Réorganiser le bloc dans la barre d'action rapide" #: admin/admin.php:409 #: admin/admin.php:410 -#: admin/admin.php:2021 +#: admin/admin.php:2022 #: assets/build/blocks.js:172 #: assets/build/dashboard.js:172 #: assets/build/entries.js:172 @@ -9170,7 +9170,7 @@ msgstr "Centre" msgid "Right" msgstr "D'accord" -#: inc/form-submit.php:1147 +#: inc/form-submit.php:1149 #: assets/build/formEditor.js:172 #: assets/build/settings.js:172 msgid "Google reCAPTCHA" @@ -9180,7 +9180,7 @@ msgstr "Google reCAPTCHA" msgid "CloudFlare Turnstile" msgstr "Tourniquet CloudFlare" -#: inc/form-submit.php:1151 +#: inc/form-submit.php:1153 #: assets/build/formEditor.js:172 #: assets/build/settings.js:172 msgid "hCaptcha" @@ -9454,7 +9454,7 @@ msgstr "Clé du site" msgid "Secret Key" msgstr "Clé secrète" -#: inc/form-submit.php:1155 +#: inc/form-submit.php:1157 #: assets/build/settings.js:172 msgid "Cloudflare Turnstile" msgstr "Tourniquet Cloudflare" @@ -10407,7 +10407,7 @@ msgid "icon" msgstr "icône" #. translators: %1$s: SureForms version, %2$s: SureForms Pro Plugin Name, %3$s: SureForms Pro Version, %4$s: Anchor tag open, %5$s: Closing anchor tag. -#: admin/admin.php:1459 +#: admin/admin.php:1460 #, php-format msgid "SureForms %1$s requires minimum %2$s %3$s to work properly. Please update to the latest version from %4$shere%5$s." msgstr "SureForms %1$s nécessite au minimum %2$s %3$s pour fonctionner correctement. Veuillez mettre à jour vers la dernière version depuis %4$scet endroit%5$s." @@ -10429,7 +10429,7 @@ msgstr "Journalisation IP" msgid "Honeypot" msgstr "Pot de miel" -#: admin/admin.php:1505 +#: admin/admin.php:1506 msgid "Rate SureForms" msgstr "Évaluez SureForms" @@ -10485,18 +10485,18 @@ msgstr "Déverrouiller Ajouter une note" msgid "With the SureForms Starter plan, enhance your submitted form entries by adding personalized notes for better clarity and tracking." msgstr "Avec le plan SureForms Starter, améliorez vos entrées de formulaire soumises en ajoutant des notes personnalisées pour une meilleure clarté et un suivi amélioré." -#: inc/form-submit.php:821 +#: inc/form-submit.php:823 msgid "Email notification passed to the sending server" msgstr "Notification par e-mail transmise au serveur d'envoi" #. translators: Here, %s is the comma separated emails list. -#: inc/form-submit.php:894 +#: inc/form-submit.php:896 #, php-format msgid "Email notification recipient: %s" msgstr "Destinataire de la notification par e-mail : %s" #. translators: Here, %1$s is the comma separated emails list and %2$s is error report ( if any ). -#: inc/form-submit.php:911 +#: inc/form-submit.php:913 #, php-format msgid "Email server was unable to send the email notification. Recipient: %1$s. Reason: %2$s" msgstr "Le serveur de messagerie n'a pas pu envoyer la notification par e-mail. Destinataire : %1$s. Raison : %2$s" @@ -10740,24 +10740,24 @@ msgstr "Sélectionner le dégradé" msgid "reCAPTCHA" msgstr "reCAPTCHA" -#: inc/form-submit.php:1091 +#: inc/form-submit.php:1093 msgid "Captcha validation failed. No error code provided." msgstr "La validation du captcha a échoué. Aucun code d'erreur fourni." -#: inc/form-submit.php:1092 +#: inc/form-submit.php:1094 msgid "Captcha validation failed." msgstr "La validation du captcha a échoué." -#: inc/form-submit.php:1159 +#: inc/form-submit.php:1161 msgid "Unknown Captcha" msgstr "Captcha inconnu" -#: inc/form-submit.php:1160 +#: inc/form-submit.php:1162 msgid "Invalid captcha type." msgstr "Type de captcha invalide." #. translators: %s is the captcha title. -#: inc/form-submit.php:1173 +#: inc/form-submit.php:1175 #, php-format msgid "%s verification failed. Please contact your site administrator." msgstr "La vérification de %s a échoué. Veuillez contacter votre administrateur de site." @@ -11274,28 +11274,28 @@ msgstr "Activer la notification administrateur" msgid "Admin notifications keep you informed about new form entries since your last visit." msgstr "Les notifications administratives vous informent des nouvelles entrées de formulaire depuis votre dernière visite." -#: admin/admin.php:1611 -#: admin/admin.php:1702 -#: admin/admin.php:1740 -#: admin/admin.php:1761 +#: admin/admin.php:1612 +#: admin/admin.php:1703 +#: admin/admin.php:1741 +#: admin/admin.php:1762 msgid "Unauthorized user." msgstr "Utilisateur non autorisé." #. translators: 1: opening span, 2: opening strong (inline), 3: closing strong, 4: closing span, 5: opening strong (block), 6: closing strong -#: admin/admin.php:1711 +#: admin/admin.php:1712 #, php-format msgid "%1$sGet started by %2$sbuilding your first form%3$s.%4$s%5$sExperience the power of our intuitive AI Form Builder%6$s" msgstr "%1$sCommencez par %2$scréer votre premier formulaire%3$s.%4$s%5$sDécouvrez la puissance de notre créateur de formulaires intuitif alimenté par l'IA%6$s" -#: admin/admin.php:1722 +#: admin/admin.php:1723 msgid "SureForms is waiting for you!" msgstr "SureForms vous attend !" -#: admin/admin.php:1724 +#: admin/admin.php:1725 msgid "Build My First Form" msgstr "Construire mon premier formulaire" -#: admin/admin.php:1725 +#: admin/admin.php:1726 msgid "Dismiss" msgstr "Rejeter" @@ -11315,51 +11315,51 @@ msgstr "Connexion" msgid "Register" msgstr "Inscrire" -#: admin/admin.php:1836 +#: admin/admin.php:1837 msgid "Recent Entries" msgstr "Entrées récentes" -#: admin/admin.php:1837 +#: admin/admin.php:1838 msgid "( Last 7 days )" msgstr "( 7 derniers jours )" -#: admin/admin.php:1957 +#: admin/admin.php:1958 msgid "Use Conditional Logic to show only what matters" msgstr "Utilisez la logique conditionnelle pour montrer uniquement ce qui compte" -#: admin/admin.php:1958 +#: admin/admin.php:1959 msgid "Split your form into steps to keep it easy" msgstr "Divisez votre formulaire en étapes pour le rendre facile." -#: admin/admin.php:1959 +#: admin/admin.php:1960 msgid "Let people upload files directly to your form" msgstr "Permettez aux gens de télécharger des fichiers directement sur votre formulaire" -#: admin/admin.php:1960 +#: admin/admin.php:1961 msgid "Turn responses into downloadable PDFs automatically" msgstr "Transformez les réponses en PDF téléchargeables automatiquement" -#: admin/admin.php:1961 +#: admin/admin.php:1962 msgid "Let users sign with a simple signature field" msgstr "Permettez aux utilisateurs de signer avec un simple champ de signature" -#: admin/admin.php:1962 +#: admin/admin.php:1963 msgid "Connect your form to other tools using webhooks" msgstr "Connectez votre formulaire à d'autres outils en utilisant des webhooks" -#: admin/admin.php:1963 +#: admin/admin.php:1964 msgid "Use Conversational Forms for a chat-like experience" msgstr "Utilisez des formulaires conversationnels pour une expérience de type chat" -#: admin/admin.php:1964 +#: admin/admin.php:1965 msgid "Let users register or log in through your form" msgstr "Permettez aux utilisateurs de s'inscrire ou de se connecter via votre formulaire" -#: admin/admin.php:1965 +#: admin/admin.php:1966 msgid "Build forms that create WordPress user accounts" msgstr "Créez des formulaires qui génèrent des comptes utilisateurs WordPress" -#: admin/admin.php:1966 +#: admin/admin.php:1967 msgid "Add calculations to auto-total scores or prices" msgstr "Ajoutez des calculs pour totaliser automatiquement les scores ou les prix" @@ -11917,6 +11917,7 @@ msgid "Unable to create ZIP file." msgstr "Impossible de créer le fichier ZIP." #: inc/entries.php:729 +#: inc/smart-tags.php:128 #: assets/build/entries.js:172 msgid "Entry ID" msgstr "ID d'entrée" @@ -11934,7 +11935,7 @@ msgid "Invalid form data structure provided." msgstr "Structure de données de formulaire invalide fournie." #: inc/fields/payment-markup.php:249 -#: inc/payments/payment-helper.php:538 +#: inc/payments/payment-helper.php:543 msgid "Subscription Plan" msgstr "Plan d'abonnement" @@ -12555,301 +12556,301 @@ msgstr "Dollar de Hong Kong" msgid "Norwegian Krone" msgstr "Couronne norvégienne" -#: inc/payments/payment-helper.php:259 +#: inc/payments/payment-helper.php:264 msgid "South Korean Won" msgstr "Won sud-coréen" -#: inc/payments/payment-helper.php:264 +#: inc/payments/payment-helper.php:269 msgid "Turkish Lira" msgstr "Lire turque" -#: inc/payments/payment-helper.php:269 +#: inc/payments/payment-helper.php:274 msgid "Russian Ruble" msgstr "Rouble russe" -#: inc/payments/payment-helper.php:274 +#: inc/payments/payment-helper.php:279 msgid "Indian Rupee" msgstr "Roupie indienne" -#: inc/payments/payment-helper.php:279 +#: inc/payments/payment-helper.php:284 msgid "Brazilian Real" msgstr "Réel brésilien" -#: inc/payments/payment-helper.php:284 +#: inc/payments/payment-helper.php:289 msgid "South African Rand" msgstr "Rand sud-africain" -#: inc/payments/payment-helper.php:289 +#: inc/payments/payment-helper.php:294 msgid "UAE Dirham" msgstr "Dirham des Émirats arabes unis" -#: inc/payments/payment-helper.php:294 +#: inc/payments/payment-helper.php:299 msgid "Philippine Peso" msgstr "Peso philippin" -#: inc/payments/payment-helper.php:299 +#: inc/payments/payment-helper.php:304 msgid "Indonesian Rupiah" msgstr "Roupie indonésienne" -#: inc/payments/payment-helper.php:304 +#: inc/payments/payment-helper.php:309 msgid "Malaysian Ringgit" msgstr "Ringgit malaisien" -#: inc/payments/payment-helper.php:309 +#: inc/payments/payment-helper.php:314 msgid "Thai Baht" msgstr "Baht thaïlandais" -#: inc/payments/payment-helper.php:314 +#: inc/payments/payment-helper.php:319 msgid "Burundian Franc" msgstr "Franc burundais" -#: inc/payments/payment-helper.php:319 +#: inc/payments/payment-helper.php:324 msgid "Chilean Peso" msgstr "Peso chilien" -#: inc/payments/payment-helper.php:324 +#: inc/payments/payment-helper.php:329 msgid "Djiboutian Franc" msgstr "Franc djiboutien" -#: inc/payments/payment-helper.php:329 +#: inc/payments/payment-helper.php:334 msgid "Guinean Franc" msgstr "Franc guinéen" -#: inc/payments/payment-helper.php:334 +#: inc/payments/payment-helper.php:339 msgid "Comorian Franc" msgstr "Franc comorien" -#: inc/payments/payment-helper.php:339 +#: inc/payments/payment-helper.php:344 msgid "Malagasy Ariary" msgstr "Ariary malgache" -#: inc/payments/payment-helper.php:344 +#: inc/payments/payment-helper.php:349 msgid "Paraguayan Guaraní" msgstr "Guaraní paraguayen" -#: inc/payments/payment-helper.php:349 +#: inc/payments/payment-helper.php:354 msgid "Rwandan Franc" msgstr "Franc rwandais" -#: inc/payments/payment-helper.php:354 +#: inc/payments/payment-helper.php:359 msgid "Ugandan Shilling" msgstr "Shilling ougandais" -#: inc/payments/payment-helper.php:359 +#: inc/payments/payment-helper.php:364 msgid "Vietnamese Đồng" msgstr "Đồng vietnamien" -#: inc/payments/payment-helper.php:364 +#: inc/payments/payment-helper.php:369 msgid "Vanuatu Vatu" msgstr "Vanuatu Vatu" -#: inc/payments/payment-helper.php:369 +#: inc/payments/payment-helper.php:374 msgid "Central African CFA Franc" msgstr "Franc CFA d'Afrique centrale" -#: inc/payments/payment-helper.php:374 +#: inc/payments/payment-helper.php:379 msgid "West African CFA Franc" msgstr "Franc CFA d'Afrique de l'Ouest" -#: inc/payments/payment-helper.php:379 +#: inc/payments/payment-helper.php:384 msgid "CFP Franc" msgstr "Franc CFP" -#: inc/payments/payment-helper.php:475 +#: inc/payments/payment-helper.php:480 msgid "An unknown error occurred. Please try again or contact the site administrator." msgstr "Une erreur inconnue s'est produite. Veuillez réessayer ou contacter l'administrateur du site." -#: inc/payments/payment-helper.php:477 +#: inc/payments/payment-helper.php:482 msgid "Payment is currently unavailable. Please contact the site administrator." msgstr "Le paiement est actuellement indisponible. Veuillez contacter l'administrateur du site." -#: inc/payments/payment-helper.php:478 +#: inc/payments/payment-helper.php:483 msgid "Payment is currently unavailable. Please contact the site administrator to configure the payment amount." msgstr "Le paiement est actuellement indisponible. Veuillez contacter l'administrateur du site pour configurer le montant du paiement." -#: inc/payments/payment-helper.php:479 +#: inc/payments/payment-helper.php:484 msgid "Invalid payment amount" msgstr "Montant de paiement invalide" -#: inc/payments/payment-helper.php:480 +#: inc/payments/payment-helper.php:485 msgid "Payment amount must be at least {symbol}{amount}." msgstr "Le montant du paiement doit être d'au moins {symbol}{amount}." -#: inc/payments/payment-helper.php:483 +#: inc/payments/payment-helper.php:488 msgid "Payment is currently unavailable. Please contact the site administrator to configure the customer name field." msgstr "Le paiement est actuellement indisponible. Veuillez contacter l'administrateur du site pour configurer le champ du nom du client." -#: inc/payments/payment-helper.php:484 +#: inc/payments/payment-helper.php:489 msgid "Payment is currently unavailable. Please contact the site administrator to configure the customer email field." msgstr "Le paiement est actuellement indisponible. Veuillez contacter l'administrateur du site pour configurer le champ de l'email client." -#: inc/payments/payment-helper.php:485 +#: inc/payments/payment-helper.php:490 msgid "Please enter your name." msgstr "Veuillez entrer votre nom." -#: inc/payments/payment-helper.php:486 +#: inc/payments/payment-helper.php:491 msgid "Please enter your email." msgstr "Veuillez entrer votre e-mail." -#: inc/payments/payment-helper.php:489 +#: inc/payments/payment-helper.php:494 msgid "Payment failed" msgstr "Échec du paiement" -#: inc/payments/payment-helper.php:490 +#: inc/payments/payment-helper.php:495 msgid "Payment successful" msgstr "Paiement réussi" -#: inc/payments/payment-helper.php:494 -#: inc/payments/payment-helper.php:495 +#: inc/payments/payment-helper.php:499 +#: inc/payments/payment-helper.php:500 msgid "Your card was declined. Please try a different payment method or contact your bank." msgstr "Votre carte a été refusée. Veuillez essayer un autre mode de paiement ou contacter votre banque." -#: inc/payments/payment-helper.php:496 +#: inc/payments/payment-helper.php:501 msgid "Your card has insufficient funds. Please use a different payment method." msgstr "Votre carte ne dispose pas de fonds suffisants. Veuillez utiliser un autre moyen de paiement." -#: inc/payments/payment-helper.php:497 +#: inc/payments/payment-helper.php:502 msgid "Your card was declined because it has been reported as lost. Please contact your bank." msgstr "Votre carte a été refusée car elle a été signalée comme perdue. Veuillez contacter votre banque." -#: inc/payments/payment-helper.php:498 +#: inc/payments/payment-helper.php:503 msgid "Your card was declined because it has been reported as stolen. Please contact your bank." msgstr "Votre carte a été refusée car elle a été signalée comme volée. Veuillez contacter votre banque." -#: inc/payments/payment-helper.php:499 +#: inc/payments/payment-helper.php:504 msgid "Your card has expired. Please use a different payment method." msgstr "Votre carte a expiré. Veuillez utiliser un autre moyen de paiement." -#: inc/payments/payment-helper.php:500 -#: inc/payments/payment-helper.php:521 +#: inc/payments/payment-helper.php:505 +#: inc/payments/payment-helper.php:526 msgid "Your card was declined. Please contact your bank for more information." msgstr "Votre carte a été refusée. Veuillez contacter votre banque pour plus d'informations." -#: inc/payments/payment-helper.php:501 +#: inc/payments/payment-helper.php:506 msgid "Your card was declined due to restrictions. Please contact your bank." msgstr "Votre carte a été refusée en raison de restrictions. Veuillez contacter votre banque." -#: inc/payments/payment-helper.php:502 +#: inc/payments/payment-helper.php:507 msgid "Your card was declined due to a security violation. Please contact your bank." msgstr "Votre carte a été refusée en raison d'une violation de sécurité. Veuillez contacter votre banque." -#: inc/payments/payment-helper.php:503 +#: inc/payments/payment-helper.php:508 msgid "Your card does not support this type of purchase. Please use a different payment method." msgstr "Votre carte ne prend pas en charge ce type d'achat. Veuillez utiliser un autre moyen de paiement." -#: inc/payments/payment-helper.php:504 +#: inc/payments/payment-helper.php:509 msgid "A stop payment order has been placed on this card. Please contact your bank." msgstr "Un ordre d'arrêt de paiement a été placé sur cette carte. Veuillez contacter votre banque." -#: inc/payments/payment-helper.php:505 +#: inc/payments/payment-helper.php:510 msgid "A test card was used in a live environment. Please use a real card." msgstr "Une carte de test a été utilisée dans un environnement réel. Veuillez utiliser une vraie carte." -#: inc/payments/payment-helper.php:506 +#: inc/payments/payment-helper.php:511 msgid "Your card has exceeded its withdrawal limit. Please contact your bank." msgstr "Votre carte a dépassé sa limite de retrait. Veuillez contacter votre banque." -#: inc/payments/payment-helper.php:507 +#: inc/payments/payment-helper.php:512 msgid "Your card's security code is incorrect. Please check and try again." msgstr "Le code de sécurité de votre carte est incorrect. Veuillez vérifier et réessayer." -#: inc/payments/payment-helper.php:508 +#: inc/payments/payment-helper.php:513 msgid "Your card number is incorrect. Please check and try again." msgstr "Votre numéro de carte est incorrect. Veuillez vérifier et réessayer." -#: inc/payments/payment-helper.php:509 +#: inc/payments/payment-helper.php:514 msgid "Your card's security code is invalid. Please check and try again." msgstr "Le code de sécurité de votre carte est invalide. Veuillez vérifier et réessayer." -#: inc/payments/payment-helper.php:510 +#: inc/payments/payment-helper.php:515 msgid "Your card's expiration month is invalid. Please check and try again." msgstr "Le mois d'expiration de votre carte est invalide. Veuillez vérifier et réessayer." -#: inc/payments/payment-helper.php:511 +#: inc/payments/payment-helper.php:516 msgid "Your card's expiration year is invalid. Please check and try again." msgstr "L'année d'expiration de votre carte est invalide. Veuillez vérifier et réessayer." -#: inc/payments/payment-helper.php:512 +#: inc/payments/payment-helper.php:517 msgid "Your card number is invalid. Please check and try again." msgstr "Votre numéro de carte est invalide. Veuillez vérifier et réessayer." -#: inc/payments/payment-helper.php:515 +#: inc/payments/payment-helper.php:520 msgid "Your card is not supported for this transaction. Please use a different payment method." msgstr "Votre carte n'est pas prise en charge pour cette transaction. Veuillez utiliser un autre moyen de paiement." -#: inc/payments/payment-helper.php:516 +#: inc/payments/payment-helper.php:521 msgid "Your card does not support the currency used for this transaction. Please use a different payment method." msgstr "Votre carte ne prend pas en charge la devise utilisée pour cette transaction. Veuillez utiliser un autre mode de paiement." -#: inc/payments/payment-helper.php:517 +#: inc/payments/payment-helper.php:522 msgid "A transaction with identical details was submitted recently. Please wait a moment and try again." msgstr "Une transaction avec des détails identiques a été soumise récemment. Veuillez patienter un moment et réessayer." -#: inc/payments/payment-helper.php:518 +#: inc/payments/payment-helper.php:523 msgid "The account associated with your card is invalid. Please contact your bank." msgstr "Le compte associé à votre carte est invalide. Veuillez contacter votre banque." -#: inc/payments/payment-helper.php:519 +#: inc/payments/payment-helper.php:524 msgid "The payment amount is invalid. Please contact the site administrator." msgstr "Le montant du paiement est invalide. Veuillez contacter l'administrateur du site." -#: inc/payments/payment-helper.php:522 +#: inc/payments/payment-helper.php:527 msgid "Your card information needs to be updated. Please contact your bank." msgstr "Vos informations de carte doivent être mises à jour. Veuillez contacter votre banque." -#: inc/payments/payment-helper.php:523 +#: inc/payments/payment-helper.php:528 msgid "The card cannot be used for this transaction. Please contact your bank." msgstr "La carte ne peut pas être utilisée pour cette transaction. Veuillez contacter votre banque." -#: inc/payments/payment-helper.php:524 +#: inc/payments/payment-helper.php:529 msgid "The transaction is not permitted. Please contact your bank." msgstr "La transaction n'est pas autorisée. Veuillez contacter votre banque." -#: inc/payments/payment-helper.php:525 +#: inc/payments/payment-helper.php:530 msgid "Your card requires offline PIN authentication. Please try again." msgstr "Votre carte nécessite une authentification par code PIN hors ligne. Veuillez réessayer." -#: inc/payments/payment-helper.php:526 +#: inc/payments/payment-helper.php:531 msgid "Your card requires PIN authentication. Please try again." msgstr "Votre carte nécessite une authentification par code PIN. Veuillez réessayer." -#: inc/payments/payment-helper.php:527 +#: inc/payments/payment-helper.php:532 msgid "You have exceeded the maximum number of PIN attempts. Please contact your bank." msgstr "Vous avez dépassé le nombre maximum de tentatives de code PIN. Veuillez contacter votre banque." -#: inc/payments/payment-helper.php:528 +#: inc/payments/payment-helper.php:533 msgid "All authorizations for this card have been revoked. Please contact your bank." msgstr "Toutes les autorisations pour cette carte ont été révoquées. Veuillez contacter votre banque." -#: inc/payments/payment-helper.php:529 +#: inc/payments/payment-helper.php:534 msgid "The authorization for this transaction has been revoked. Please try again." msgstr "L'autorisation pour cette transaction a été révoquée. Veuillez réessayer." -#: inc/payments/payment-helper.php:530 +#: inc/payments/payment-helper.php:535 msgid "This transaction is not allowed. Please contact your bank." msgstr "Cette transaction n'est pas autorisée. Veuillez contacter votre banque." -#: inc/payments/payment-helper.php:532 +#: inc/payments/payment-helper.php:537 msgid "Your card was declined. Your request was in live mode, but used a known test card." msgstr "Votre carte a été refusée. Votre demande était en mode réel, mais vous avez utilisé une carte de test connue." -#: inc/payments/payment-helper.php:533 +#: inc/payments/payment-helper.php:538 msgid "Your card was declined. Your request was in test mode, but used a non test card. For a list of valid test cards, visit: https://stripe.com/docs/testing." msgstr "Votre carte a été refusée. Votre demande était en mode test, mais vous avez utilisé une carte non test. Pour obtenir une liste des cartes de test valides, visitez : https://stripe.com/docs/testing." -#: inc/payments/payment-helper.php:536 +#: inc/payments/payment-helper.php:541 msgid "SureForms Subscription" msgstr "Abonnement SureForms" -#: inc/payments/payment-helper.php:537 +#: inc/payments/payment-helper.php:542 msgid "SureForms Payment" msgstr "Paiement SureForms" -#: inc/payments/payment-helper.php:539 +#: inc/payments/payment-helper.php:544 msgid "SureForms Customer" msgstr "Client SureForms" -#: inc/payments/payment-helper.php:559 +#: inc/payments/payment-helper.php:564 msgid "Unknown error" msgstr "Erreur inconnue" @@ -14980,74 +14981,74 @@ msgstr "Échec de la création du formulaire en double." #: inc/payments/front-end.php:97 #: inc/payments/front-end.php:298 -#: inc/payments/payment-helper.php:589 +#: inc/payments/payment-helper.php:594 msgid "Invalid form configuration." msgstr "Configuration de formulaire invalide." -#: inc/payments/payment-helper.php:597 +#: inc/payments/payment-helper.php:602 msgid "Payment configuration not found for this form." msgstr "Configuration de paiement introuvable pour ce formulaire." #. translators: 1: expected currency, 2: received currency -#: inc/payments/payment-helper.php:608 +#: inc/payments/payment-helper.php:613 #, php-format msgid "Currency mismatch: expected %1$s, received %2$s." msgstr "Incohérence de devise : attendu %1$s, reçu %2$s." #. translators: 1: expected amount with currency -#: inc/payments/payment-helper.php:625 +#: inc/payments/payment-helper.php:630 #, php-format msgid "Payment amount must be exactly %1$s." msgstr "Le montant du paiement doit être exactement %1$s." #. translators: 1: minimum amount with currency -#: inc/payments/payment-helper.php:636 +#: inc/payments/payment-helper.php:641 #, php-format msgid "Payment amount must be at least %1$s." msgstr "Le montant du paiement doit être d'au moins %1$s." -#: inc/payments/payment-helper.php:712 +#: inc/payments/payment-helper.php:717 msgid "Invalid payment verification parameters." msgstr "Paramètres de vérification de paiement invalides." -#: inc/payments/payment-helper.php:723 +#: inc/payments/payment-helper.php:728 msgid "Payment verification failed. Invalid payment intent." msgstr "Échec de la vérification du paiement. Intention de paiement invalide." -#: inc/payments/payment-helper.php:809 -#: inc/payments/payment-helper.php:947 +#: inc/payments/payment-helper.php:814 +#: inc/payments/payment-helper.php:952 msgid "Variable amount field configuration not found." msgstr "Configuration du champ de montant variable introuvable." -#: inc/payments/payment-helper.php:830 +#: inc/payments/payment-helper.php:835 msgid "No payment options are configured for this field." msgstr "Aucune option de paiement n'est configurée pour ce champ." #. translators: %s: currency code -#: inc/payments/payment-helper.php:856 +#: inc/payments/payment-helper.php:861 msgid "Invalid payment amount. Please select a valid amount from the available options." msgstr "Montant de paiement invalide. Veuillez sélectionner un montant valide parmi les options disponibles." #. translators: %1$s: expected amount, %2$s: payment amount -#: inc/payments/payment-helper.php:891 +#: inc/payments/payment-helper.php:896 msgid "Payment configuration not found." msgstr "Configuration de paiement introuvable." #. translators: %1$s: expected amount, %2$s: payment amount -#: inc/payments/payment-helper.php:907 -#: inc/payments/payment-helper.php:959 -#: inc/payments/payment-helper.php:995 +#: inc/payments/payment-helper.php:912 +#: inc/payments/payment-helper.php:964 +#: inc/payments/payment-helper.php:1000 #, php-format msgid "Payment amount mismatch. Expected %1$s, received %2$s." msgstr "Incohérence du montant du paiement. Montant attendu %1$s, reçu %2$s." -#: inc/payments/payment-helper.php:936 -#: inc/payments/payment-helper.php:986 +#: inc/payments/payment-helper.php:941 +#: inc/payments/payment-helper.php:991 msgid "Variable amount field value is required." msgstr "La valeur du champ de montant variable est requise." #. translators: %1$s: minimum amount, %2$s: payment amount -#: inc/payments/payment-helper.php:1007 +#: inc/payments/payment-helper.php:1012 #, php-format msgid "Payment amount below minimum. Minimum: %1$s, received %2$s." msgstr "Montant du paiement inférieur au minimum. Minimum : %1$s, reçu %2$s." @@ -15133,7 +15134,7 @@ msgstr "Passerelle de paiement introuvable." msgid "Refund processing is not supported for %s gateway." msgstr "Le traitement des remboursements n'est pas pris en charge pour la passerelle %s." -#: inc/payments/payment-helper.php:969 +#: inc/payments/payment-helper.php:974 msgid "Number field configuration not found." msgstr "Configuration du champ numérique introuvable." @@ -15252,12 +15253,12 @@ msgid "Stripe Settings" msgstr "Paramètres Stripe" #. translators: %1$s: SureForms version, %2$s: SureForms Pro Plugin Name, %3$s: SureForms Pro Version. -#: admin/admin.php:1376 +#: admin/admin.php:1377 #, php-format msgid "SureForms %1$s requires minimum %2$s %3$s to work properly. Please update to the latest version." msgstr "SureForms %1$s nécessite au minimum %2$s %3$s pour fonctionner correctement. Veuillez mettre à jour vers la dernière version." -#: admin/admin.php:1389 +#: admin/admin.php:1390 msgid "Update Now" msgstr "Mettez à jour maintenant" @@ -15319,40 +15320,40 @@ msgstr "Sélectionnez la position du symbole monétaire par rapport au montant." msgid "Learn" msgstr "Apprendre" -#: admin/admin.php:1502 +#: admin/admin.php:1503 msgid "Amazing! SureForms is powering your forms and submissions - let's keep growing together!" msgstr "Incroyable ! SureForms alimente vos formulaires et soumissions - continuons à grandir ensemble !" -#: admin/admin.php:1503 +#: admin/admin.php:1504 msgid "If SureForms has been helpful, would you mind taking a moment to leave a 5-star review on WordPress.org?" msgstr "Si SureForms vous a été utile, pourriez-vous prendre un moment pour laisser un avis 5 étoiles sur WordPress.org ?" -#: admin/admin.php:1506 -#: admin/admin.php:1550 +#: admin/admin.php:1507 +#: admin/admin.php:1551 msgid "Maybe later" msgstr "Peut-être plus tard" -#: admin/admin.php:1507 +#: admin/admin.php:1508 msgid "I already did" msgstr "Je l'ai déjà fait" -#: admin/admin.php:1546 +#: admin/admin.php:1547 msgid "SureForms is ready to power your forms — explore what's possible!" msgstr "SureForms est prêt à dynamiser vos formulaires — explorez ce qui est possible !" -#: admin/admin.php:1547 +#: admin/admin.php:1548 msgid "Manage your forms, track submissions, and discover features like AI Form Builder, payment integrations, and more from the SureForms dashboard." msgstr "Gérez vos formulaires, suivez les soumissions et découvrez des fonctionnalités telles que le constructeur de formulaires IA, les intégrations de paiement et bien plus encore depuis le tableau de bord SureForms." -#: admin/admin.php:1549 +#: admin/admin.php:1550 msgid "Go to Dashboard" msgstr "Aller au tableau de bord" -#: admin/admin.php:1551 +#: admin/admin.php:1552 msgid "I already know" msgstr "Je sais déjà" -#: admin/admin.php:1631 +#: admin/admin.php:1632 msgid "Invalid parameters." msgstr "Paramètres invalides." @@ -15742,7 +15743,7 @@ msgstr "Ce formulaire n'est pas encore disponible. Revenez après l'heure de dé #: inc/form-submit.php:99 #: inc/form-submit.php:400 #: inc/form-submit.php:445 -#: inc/form-submit.php:966 +#: inc/form-submit.php:968 #: inc/payments/front-end.php:77 #: inc/payments/front-end.php:258 #: inc/rest-api.php:98 @@ -15791,19 +15792,19 @@ msgstr "Veuillez vérifier le formulaire pour les erreurs." msgid "Your submission was flagged as spam. Please try again." msgstr "Votre soumission a été signalée comme spam. Veuillez réessayer." -#: inc/form-submit.php:649 +#: inc/form-submit.php:651 msgid "Unable to submit form. Please try again." msgstr "Impossible de soumettre le formulaire. Veuillez réessayer." -#: inc/form-submit.php:901 +#: inc/form-submit.php:903 msgid "No SMTP plugin detected. Please configure an SMTP plugin to enable email sending." msgstr "Aucun plugin SMTP détecté. Veuillez configurer un plugin SMTP pour activer l'envoi d'e-mails." -#: inc/form-submit.php:902 +#: inc/form-submit.php:904 msgid "Email sending failed for an unknown reason." msgstr "L'envoi de l'email a échoué pour une raison inconnue." -#: inc/form-submit.php:941 +#: inc/form-submit.php:943 msgid "No emails were sent." msgstr "Aucun e-mail n'a été envoyé." @@ -15956,31 +15957,31 @@ msgstr "Impossible de supprimer les paiements. Veuillez réessayer." msgid "Unable to process refund. Please try again." msgstr "Impossible de traiter le remboursement. Veuillez réessayer." -#: inc/payments/payment-helper.php:491 +#: inc/payments/payment-helper.php:496 msgid "Unable to complete payment. Please try again or contact support." msgstr "Impossible de terminer le paiement. Veuillez réessayer ou contacter le support." -#: inc/payments/payment-helper.php:513 +#: inc/payments/payment-helper.php:518 msgid "Unable to process card. Please try again." msgstr "Impossible de traiter la carte. Veuillez réessayer." -#: inc/payments/payment-helper.php:514 +#: inc/payments/payment-helper.php:519 msgid "Unable to process transaction. Please try again." msgstr "Impossible de traiter la transaction. Veuillez réessayer." -#: inc/payments/payment-helper.php:520 +#: inc/payments/payment-helper.php:525 msgid "Unable to reach card issuer. Please try again later." msgstr "Impossible de joindre l'émetteur de la carte. Veuillez réessayer plus tard." -#: inc/payments/payment-helper.php:531 +#: inc/payments/payment-helper.php:536 msgid "Unable to process transaction. Please try again later." msgstr "Impossible de traiter la transaction. Veuillez réessayer plus tard." -#: inc/payments/payment-helper.php:541 +#: inc/payments/payment-helper.php:546 msgid "Complete the form to view the amount." msgstr "Complétez le formulaire pour voir le montant." -#: inc/payments/payment-helper.php:542 +#: inc/payments/payment-helper.php:547 msgid "Unable to create payment. Please contact support." msgstr "Impossible de créer le paiement. Veuillez contacter le support." @@ -16696,7 +16697,7 @@ msgid "Invalid webhook signature." msgstr "Signature de webhook invalide." #: admin/admin.php:426 -#: admin/admin.php:974 +#: admin/admin.php:975 #: assets/build/formEditor.js:172 msgid "Quizzes" msgstr "Quiz" @@ -16710,11 +16711,11 @@ msgstr "Participations au quiz" msgid "New" msgstr "Nouveau" -#: inc/form-submit.php:975 +#: inc/form-submit.php:977 msgid "Invalid form." msgstr "Formulaire invalide." -#: inc/form-submit.php:980 +#: inc/form-submit.php:982 msgid "Too many requests. Please try again shortly." msgstr "Trop de demandes. Veuillez réessayer sous peu." @@ -17228,7 +17229,7 @@ msgstr "Sélectionnez ceci pour créer un quiz avec des questions notées et des #: admin/admin.php:458 #: admin/admin.php:459 -#: admin/admin.php:979 +#: admin/admin.php:980 msgid "Survey Reports" msgstr "Rapports d'enquête" @@ -17494,7 +17495,7 @@ msgstr "Aidez à façonner l'avenir de SureForms" #: assets/build/settings.js:172 msgid "Share how you use the plugin so we can build features that matter, fix issues faster, and make smarter decisions. " -msgstr "Partagez comment vous utilisez le plugin afin que nous puissions développer des fonctionnalités qui comptent, résoudre les problèmes plus rapidement et prendre des décisions plus éclairées. " +msgstr "Partagez comment vous utilisez le plugin afin que nous puissions développer des fonctionnalités qui comptent, résoudre les problèmes plus rapidement et prendre des décisions plus éclairées." #: assets/build/settings.js:172 msgid "Enable Google Address Autocomplete" @@ -17572,6 +17573,14 @@ msgstr "Afficher les résultats en direct aux répondants" msgid "Perfect for feedback, polls, and research" msgstr "Parfait pour les retours, les sondages et la recherche" +#: inc/payments/payment-helper.php:259 +msgid "Polish Złoty" +msgstr "Złoty polonais" + +#: assets/build/blocks.js:172 +msgid "Dynamic Default Value" +msgstr "Valeur par défaut dynamique" + #: inc/post-types.php:205 msgctxt "post type general name" msgid "Forms" diff --git a/languages/sureforms-it_IT-4b62e3f004dea2c587b5a3069263d994.json b/languages/sureforms-it_IT-4b62e3f004dea2c587b5a3069263d994.json index 5548a9dce..7a85419c9 100644 --- a/languages/sureforms-it_IT-4b62e3f004dea2c587b5a3069263d994.json +++ b/languages/sureforms-it_IT-4b62e3f004dea2c587b5a3069263d994.json @@ -1 +1 @@ -{"translation-revision-date":"2025-01-01T06:16:29+00:00","generator":"WP-CLI\/2.12.0","source":"assets\/build\/blocks.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"en","plural-forms":"nplurals=2; plural=(n != 1);"},"Settings":["Impostazioni"],"Search":["Cerca"],"Fields":["Campi"],"Image":["Immagine"],"Submit":["Invia"],"Required":["Richiesto"],"Form Title":["Titolo del modulo"],"Show":["Mostra"],"Hide":["Nascondi"],"Edit Form":["Modifica modulo"],"Icon":["Icona"],"Desktop":["Desktop"],"Medium":["Medio"],"Mobile":["Cellulare"],"Repeat":["Ripeti"],"Scroll":["Scorri"],"Tablet":["Tablet"],"Basic":["Base"],"(no title)":["(nessun titolo)"],"Select a Form":["Seleziona un modulo"],"No forms found\u2026":["Nessun modulo trovato\u2026"],"Choose":["Scegli"],"Create New":["Crea Nuovo"],"Change Form":["Modifica modulo"],"This form has been deleted or is unavailable.":["Questo modulo \u00e8 stato eliminato o non \u00e8 disponibile."],"Form Settings":["Impostazioni del modulo"],"Show Form Title on this Page":["Mostra il titolo del modulo su questa pagina"],"Note: For editing SureForms, please refer to the SureForms Editor - ":["Nota: Per modificare i SureForms, fare riferimento all'Editor di SureForms -"],"Field preview":["Anteprima del campo"],"General":["Generale"],"Style":["Stile"],"Advanced":["Avanzato"],"No tags available":["Nessun tag disponibile"],"Device":["Dispositivo"],"Select Shortcodes":["Seleziona i codici brevi"],"Page Break Label":["Etichetta di interruzione di pagina"],"Next":["Avanti"],"Back":["Indietro"],"Reset":["Reimposta"],"Generic tags":["Tag generici"],"Pixel":["Pixel"],"Em":["Em"],"Select Units":["Seleziona unit\u00e0"],"%s units":["%s unit\u00e0"],"Margin":["Margine"],"Attributes":["Attributi"],"Input Pattern":["Schema di input"],"None":["Nessuno"],"(###) ###-####":["(###) ###-####"],"(##) ####-####":["(##) ####-####"],"27\/08\/2024":["27\/08\/2024"],"23:59:59":["23:59:59"],"27\/08\/2024 23:59:59":["27\/08\/2024 23:59:59"],"Custom":["Personalizzato"],"Custom Mask":["Maschera personalizzata"],"Please check the documentation to manage custom input pattern ":["Si prega di controllare la documentazione per gestire il modello di input personalizzato"],"here":["qui"],"Default Value":["Valore predefinito"],"Error Message":["Messaggio di errore"],"Help Text":["Testo di aiuto"],"Number Format":["Formato numero"],"US Style (Eg: 9,999.99)":["Stile USA (Es: 9.999,99)"],"EU Style (Eg: 9.999,99)":["Stile UE (Es: 9.999,99)"],"Minimum Value":["Valore minimo"],"Maximum Value":["Valore massimo"],"Please check the Minimum and Maximum value":["Si prega di controllare il valore minimo e massimo"],"Enable Email Confirmation":["Abilita la conferma email"],"Checked by Default":["Selezionato per impostazione predefinita"],"Error message":["Messaggio di errore"],"Checked by default":["Selezionato per impostazione predefinita"],"Please add a option props to MultiButtonsControl":["Si prega di aggiungere un'opzione props a MultiButtonsControl"],"Icon Library":["Libreria di icone"],"Close":["Chiudi"],"All Icons":["Tutte le icone"],"Other":["Altro"],"No Icons Found":["Nessuna icona trovata"],"Insert Icon":["Inserisci icona"],"Change Icon":["Cambia icona"],"Choose Icon":["Scegli icona"],"Confirm":["Conferma"],"Cancel":["Annulla"],"Processing\u2026":["Elaborazione\u2026"],"Select Video":["Seleziona video"],"Change Video":["Cambia video"],"Select Lottie Animation":["Seleziona animazione Lottie"],"Change Lottie Animation":["Cambia animazione Lottie"],"Upload SVG":["Carica SVG"],"Change SVG":["Cambia SVG"],"Select Image":["Seleziona immagine"],"Change Image":["Cambia immagine"],"Upload SVG?":["Caricare SVG?"],"Upload SVG can be potentially risky. Are you sure?":["Caricare SVG pu\u00f2 essere potenzialmente rischioso. Sei sicuro?"],"Upload Anyway":["Carica comunque"],"Bulk Add":["Aggiunta in blocco"],"Bulk Add Options":["Aggiungi opzioni in blocco"],"Enter each option on a new line.":["Inserisci ogni opzione su una nuova riga."],"Insert Options":["Inserisci opzioni"],"Full Width":["Larghezza completa"],"Option Type":["Tipo di opzione"],"Edit Options":["Opzioni di modifica"],"Add New Option":["Aggiungi nuova opzione"],"ADD":["AGGIUNGI"],"Enable Auto Country Detection":["Abilita il rilevamento automatico del paese"],"%s Width":["Larghezza %s"],"Upgrade":["Aggiornamento"],"Clear":["Chiaro"],"Select Color":["Seleziona colore"],"Primary Color":["Colore primario"],"Text Color":["Colore del testo"],"Field Spacing":["Spaziatura del campo"],"Small":["Piccolo"],"Large":["Grande"],"Left":["Sinistra"],"Center":["Centro"],"Right":["Destra"],"Color":["Colore"],"Background Color":["Colore di sfondo"],"Auto":["Auto"],"Default":["Predefinito"],"Normal":["Normale"],"%":["%"],"Top":["In alto"],"Bottom":["Fondo"],"Width":["Larghezza"],"Size":["Dimensione"],"EM":["EM"],"Padding":["Riempimento"],"Color 1":["Colore 1"],"Color 2":["Colore 2"],"Type":["Tipo"],"Linear":["Lineare"],"Radial":["Radiale"],"Location 1":["Posizione 1"],"Location 2":["Posizione 2"],"Angle":["Angolo"],"Classic":["Classico"],"Gradient":["Gradiente"],"Horizontal":["Orizzontale"],"Vertical":["Verticale"],"Background":["Sfondo"],"Cover":["Copertina"],"Contain":["Contenere"],"Layout":["Layout"],"Overlay":["Sovrapposizione"],"No Repeat":["Nessuna ripetizione"],"Overlay Opacity":["Opacit\u00e0 dell'overlay"],"Conditional Logic":["Logica Condizionale"],"Upgrade to the SureForms Starter Plan to create dynamic forms that adapt based on user input, offering a personalised and efficient form experience.":["Passa al piano Starter di SureForms per creare moduli dinamici che si adattano in base all'input dell'utente, offrendo un'esperienza modulare personalizzata ed efficiente."],"Enable Conditional Logic":["Abilita la logica condizionale"],"this field if":["questo campo se"],"Configure Conditions":["Configura condizioni"],"Premium":["Premium"],"Overlay Type":["Tipo di sovrapposizione"],"Image Overlay Color":["Colore di sovrapposizione dell'immagine"],"Image Position":["Posizione dell'immagine"],"Attachment":["Allegato"],"Fixed":["Fisso"],"Blend Mode":["Modalit\u00e0 di fusione"],"Multiply":["Moltiplica"],"Screen":["Schermo"],"Darken":["Scurisci"],"Lighten":["Alleggerire"],"Color Dodge":["Schiarisci colore"],"Saturation":["Saturazione"],"Repeat-x":["Ripeti-x"],"Repeat-y":["Ripeti-y"],"PX":["PX"],"Button":["Pulsante"],"Prefix Label":["Etichetta prefisso"],"Suffix Label":["Etichetta suffisso"],"Border Radius":["Raggio del bordo"],"Form Theme":["Tema del modulo"],"Select Gradient":["Seleziona sfumatura"],"Unlock Conditional Logic Editor":["Sblocca l'editor di logica condizionale"],"Rich Text Editor":["Editor di testo ricco"],"Read Only":["Solo lettura"],"Select Country":["Seleziona Paese"],"Default Country":["Paese predefinito"],"Subscription":["Abbonamento"],"One Time":["Una volta"],"Unique Entry":["Ingresso Unico"],"Maximum Characters":["Caratteri massimi"],"Textarea Height":["Altezza dell'area di testo"],"Minimum Selections":["Selezioni Minime"],"Maximum Selections":["Selezioni massime"],"Add Numeric Values to Options":["Aggiungi valori numerici alle opzioni"],"Single Choice Only":["Solo una scelta"],"Enable Dropdown Search":["Abilita la ricerca a discesa"],"Allow Multiple":["Consenti multipli"],"%1$s fields are required. Please configure these fields in the block settings.":["I campi %1$s sono obbligatori. Si prega di configurare questi campi nelle impostazioni del blocco."],"%1$s field is required. Please configure this field in the block settings.":["Il campo %1$s \u00e8 obbligatorio. Si prega di configurare questo campo nelle impostazioni del blocco."],"You need to configure a payment account to collect payments from this form. Please configure your payment provider to proceed.":["\u00c8 necessario configurare un account di pagamento per raccogliere i pagamenti da questo modulo. Si prega di configurare il proprio fornitore di pagamento per procedere."],"Configure Payment Account":["Configura l'account di pagamento"],"This is a placeholder for the Payment block. The actual payment fields for your configured payment provider(s) will only appear when you preview or publish the form.":["Questo \u00e8 un segnaposto per il blocco di pagamento. I campi di pagamento effettivi per il\/i fornitore\/i di pagamento configurato\/i appariranno solo quando visualizzi in anteprima o pubblichi il modulo."],"2 Payments":["2 Pagamenti"],"3 Payments":["3 Pagamenti"],"4 Payments":["4 Pagamenti"],"5 Payments":["5 Pagamenti"],"Never":["Mai"],"Stop Subscription After":["Interrompi l'abbonamento dopo"],"Choose when to automatically stop the subscription":["Scegli quando interrompere automaticamente l'abbonamento"],"Number of Payments":["Numero di pagamenti"],"Enter a number between 1 to 100":["Inserisci un numero tra 1 e 100"],"Form Field":["Campo del modulo"],"Payment Type":["Tipo di pagamento"],"Subscription Plan Name":["Nome del piano di abbonamento"],"Billing Interval":["Intervallo di fatturazione"],"Daily":["Quotidiano"],"Weekly":["Settimanale"],"Monthly":["Mensile"],"Quarterly":["Trimestrale"],"Yearly":["Annuale"],"Amount Type":["Tipo di importo"],"Fixed Amount":["Importo fisso"],"Dynamic Amount":["Importo Dinamico"],"Choose whether to charge a fixed amount or charge the amount based on user input in other form fields.":["Scegli se addebitare un importo fisso o addebitare l'importo in base all'input dell'utente in altri campi del modulo."],"Set the exact amount you want to charge. Users won\u2019t be able to change it":["Imposta l'importo esatto che desideri addebitare. Gli utenti non potranno modificarlo"],"Choose Amount Field":["Scegli il campo Importo"],"Select a field\u2026":["Seleziona un campo\u2026"],"Pick a field from your form like a number, dropdown, or multichoice whose value should decide the payment amount.":["Scegli un campo dal tuo modulo, come un numero, un menu a tendina o una scelta multipla, il cui valore dovrebbe determinare l'importo del pagamento."],"Minimum Amount":["Importo minimo"],"Set the minimum amount users can enter (0 for no minimum)":["Imposta l'importo minimo che gli utenti possono inserire (0 per nessun minimo)"],"Customer Name Field (Required)":["Campo Nome Cliente (Obbligatorio)"],"Customer Name Field (Optional)":["Campo Nome Cliente (Facoltativo)"],"Select the input field that contains the customer name (Required for subscriptions)":["Seleziona il campo di input che contiene il nome del cliente (Richiesto per gli abbonamenti)"],"Select the input field that contains the customer name":["Seleziona il campo di input che contiene il nome del cliente"],"Customer Email Field (Required)":["Campo Email Cliente (Obbligatorio)"],"Select the email field that contains the customer email":["Seleziona il campo email che contiene l'email del cliente"],"Payment":["Pagamento"],"%s - Order ID":["%s - ID Ordine"],"%s - Amount":["%s - Importo"],"%s - Customer Email":["%s - Email del cliente"],"%s - Customer Name":["%s - Nome del cliente"],"%s - Status":["%s - Stato"],"Button Alignment":["Allineamento del pulsante"],"Placeholder":["Segnaposto"],"Preselect this option":["Preseleziona questa opzione"],"Restrict Country Codes":["Limita i codici paese"],"Restriction Type":["Tipo di restrizione"],"Allow":["Permetti"],"Block":["Blocca"],"Select Allowed Countries":["Seleziona i Paesi consentiti"],"Choose countries\u2026":["Scegli i paesi\u2026"],"Choose which country codes users can select in the phone number field. Leave empty to allow all country codes.":["Scegli quali codici paese gli utenti possono selezionare nel campo del numero di telefono. Lascia vuoto per consentire tutti i codici paese."],"Select Blocked Countries":["Seleziona Paesi Bloccati"],"These countries will be hidden from the dropdown.":["Questi paesi saranno nascosti dal menu a tendina."],"Bulk Edit":["Modifica in blocco"],"Select Layout":["Seleziona layout"],"Number of Columns":["Numero di colonne"],"Validation Message for Duplicate":["Messaggio di convalida per duplicato"],"Click here to insert a form":["Fai clic qui per inserire un modulo"],"Inherit Form's Original Style":["Eredita lo stile originale del modulo"],"Text on Primary":["Testo su Primario"],"%s - Description":["%s - Descrizione"],"Upgrade to Unlock":["Aggiorna per sbloccare"],"Custom (Premium)":["Personalizzato (Premium)"],"Select a theme style for this form embed.":["Seleziona uno stile tema per questo modulo incorporato."],"Colors":["Colori"],"Advanced Styling":["Stile avanzato"],"Unlock Custom Styling":["Sblocca lo stile personalizzato"],"Switch to Custom Mode to take full control of your form's design and spacing.":["Passa alla Modalit\u00e0 Personalizzata per avere il pieno controllo del design e della spaziatura del tuo modulo."],"Full color control (buttons, fields, text)":["Controllo completo del colore (bottoni, campi, testo)"],"Row and column gap control":["Controllo dello spazio tra righe e colonne"],"Field spacing and layout precision":["Spaziatura dei campi e precisione del layout"],"Complete button styling":["Completare lo stile del pulsante"],"Payment Description":["Descrizione del pagamento"],"Shown on payment receipts and in your payment dashboard (Stripe and PayPal). Leave blank to use the default.":["Mostrato sulle ricevute di pagamento e nel tuo cruscotto dei pagamenti (Stripe e PayPal). Lascia vuoto per utilizzare il predefinito."],"Slug":["Lumaca"],"Auto-generated on save":["Generato automaticamente al salvataggio"],"This slug is already used by another field. It will revert to the previous value.":["Questo slug \u00e8 gi\u00e0 utilizzato da un altro campo. Torner\u00e0 al valore precedente."],"Changing the slug may break form submissions, conditional logic, integrations, or any other feature currently referencing this slug. You will need to update all such references manually.":["La modifica dello slug potrebbe interrompere l'invio dei moduli, la logica condizionale, le integrazioni o qualsiasi altra funzione che attualmente fa riferimento a questo slug. Dovrai aggiornare manualmente tutti questi riferimenti."],"Field Slug":["Slug del campo"],"Location Services":["Servizi di localizzazione"],"Unlock Address Autocomplete":["Sblocca il completamento automatico degli indirizzi"],"Upgrade to enable Google Address Autocomplete with interactive map preview, making address entry faster and more accurate for your users.":["Aggiorna per abilitare il completamento automatico degli indirizzi di Google con l'anteprima interattiva della mappa, rendendo l'inserimento degli indirizzi pi\u00f9 veloce e preciso per i tuoi utenti."],"Enable Google Autocomplete":["Abilita il completamento automatico di Google"],"Show Interactive Map":["Mostra mappa interattiva"],"Payments Per Page":["Pagamenti per pagina"],"Show Subscriptions Section":["Mostra la sezione Abbonamenti"],"Show a dedicated subscriptions section above payment history.":["Mostra una sezione dedicata agli abbonamenti sopra la cronologia dei pagamenti."],"Payment Dashboard":["Dashboard dei pagamenti"],"View your payments and manage subscriptions in a single dashboard.":["Visualizza i tuoi pagamenti e gestisci gli abbonamenti in un'unica dashboard."]}}} \ No newline at end of file +{"translation-revision-date":"2025-01-01T06:16:29+00:00","generator":"WP-CLI\/2.12.0","source":"assets\/build\/blocks.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"en","plural-forms":"nplurals=2; plural=(n != 1);"},"Settings":["Impostazioni"],"Search":["Cerca"],"Fields":["Campi"],"Image":["Immagine"],"Submit":["Invia"],"Required":["Richiesto"],"Form Title":["Titolo del modulo"],"Show":["Mostra"],"Hide":["Nascondi"],"Edit Form":["Modifica modulo"],"Icon":["Icona"],"Desktop":["Desktop"],"Medium":["Medio"],"Mobile":["Cellulare"],"Repeat":["Ripeti"],"Scroll":["Scorri"],"Tablet":["Tablet"],"Basic":["Base"],"(no title)":["(nessun titolo)"],"Select a Form":["Seleziona un modulo"],"No forms found\u2026":["Nessun modulo trovato\u2026"],"Choose":["Scegli"],"Create New":["Crea Nuovo"],"Change Form":["Modifica modulo"],"This form has been deleted or is unavailable.":["Questo modulo \u00e8 stato eliminato o non \u00e8 disponibile."],"Form Settings":["Impostazioni del modulo"],"Show Form Title on this Page":["Mostra il titolo del modulo su questa pagina"],"Note: For editing SureForms, please refer to the SureForms Editor - ":["Nota: Per modificare i SureForms, fare riferimento all'Editor di SureForms -"],"Field preview":["Anteprima del campo"],"General":["Generale"],"Style":["Stile"],"Advanced":["Avanzato"],"No tags available":["Nessun tag disponibile"],"Device":["Dispositivo"],"Select Shortcodes":["Seleziona i codici brevi"],"Page Break Label":["Etichetta di interruzione di pagina"],"Next":["Avanti"],"Back":["Indietro"],"Reset":["Reimposta"],"Generic tags":["Tag generici"],"Pixel":["Pixel"],"Em":["Em"],"Select Units":["Seleziona unit\u00e0"],"%s units":["%s unit\u00e0"],"Margin":["Margine"],"Attributes":["Attributi"],"Input Pattern":["Schema di input"],"None":["Nessuno"],"(###) ###-####":["(###) ###-####"],"(##) ####-####":["(##) ####-####"],"27\/08\/2024":["27\/08\/2024"],"23:59:59":["23:59:59"],"27\/08\/2024 23:59:59":["27\/08\/2024 23:59:59"],"Custom":["Personalizzato"],"Custom Mask":["Maschera personalizzata"],"Please check the documentation to manage custom input pattern ":["Si prega di controllare la documentazione per gestire il modello di input personalizzato"],"here":["qui"],"Default Value":["Valore predefinito"],"Error Message":["Messaggio di errore"],"Help Text":["Testo di aiuto"],"Number Format":["Formato numero"],"US Style (Eg: 9,999.99)":["Stile USA (Es: 9.999,99)"],"EU Style (Eg: 9.999,99)":["Stile UE (Es: 9.999,99)"],"Minimum Value":["Valore minimo"],"Maximum Value":["Valore massimo"],"Please check the Minimum and Maximum value":["Si prega di controllare il valore minimo e massimo"],"Enable Email Confirmation":["Abilita la conferma email"],"Checked by Default":["Selezionato per impostazione predefinita"],"Error message":["Messaggio di errore"],"Checked by default":["Selezionato per impostazione predefinita"],"Please add a option props to MultiButtonsControl":["Si prega di aggiungere un'opzione props a MultiButtonsControl"],"Icon Library":["Libreria di icone"],"Close":["Chiudi"],"All Icons":["Tutte le icone"],"Other":["Altro"],"No Icons Found":["Nessuna icona trovata"],"Insert Icon":["Inserisci icona"],"Change Icon":["Cambia icona"],"Choose Icon":["Scegli icona"],"Confirm":["Conferma"],"Cancel":["Annulla"],"Processing\u2026":["Elaborazione\u2026"],"Select Video":["Seleziona video"],"Change Video":["Cambia video"],"Select Lottie Animation":["Seleziona animazione Lottie"],"Change Lottie Animation":["Cambia animazione Lottie"],"Upload SVG":["Carica SVG"],"Change SVG":["Cambia SVG"],"Select Image":["Seleziona immagine"],"Change Image":["Cambia immagine"],"Upload SVG?":["Caricare SVG?"],"Upload SVG can be potentially risky. Are you sure?":["Caricare SVG pu\u00f2 essere potenzialmente rischioso. Sei sicuro?"],"Upload Anyway":["Carica comunque"],"Bulk Add":["Aggiunta in blocco"],"Bulk Add Options":["Aggiungi opzioni in blocco"],"Enter each option on a new line.":["Inserisci ogni opzione su una nuova riga."],"Insert Options":["Inserisci opzioni"],"Full Width":["Larghezza completa"],"Option Type":["Tipo di opzione"],"Edit Options":["Opzioni di modifica"],"Add New Option":["Aggiungi nuova opzione"],"ADD":["AGGIUNGI"],"Enable Auto Country Detection":["Abilita il rilevamento automatico del paese"],"%s Width":["Larghezza %s"],"Upgrade":["Aggiornamento"],"Clear":["Chiaro"],"Select Color":["Seleziona colore"],"Primary Color":["Colore primario"],"Text Color":["Colore del testo"],"Field Spacing":["Spaziatura del campo"],"Small":["Piccolo"],"Large":["Grande"],"Left":["Sinistra"],"Center":["Centro"],"Right":["Destra"],"Color":["Colore"],"Background Color":["Colore di sfondo"],"Auto":["Auto"],"Default":["Predefinito"],"Normal":["Normale"],"%":["%"],"Top":["In alto"],"Bottom":["Fondo"],"Width":["Larghezza"],"Size":["Dimensione"],"EM":["EM"],"Padding":["Riempimento"],"Color 1":["Colore 1"],"Color 2":["Colore 2"],"Type":["Tipo"],"Linear":["Lineare"],"Radial":["Radiale"],"Location 1":["Posizione 1"],"Location 2":["Posizione 2"],"Angle":["Angolo"],"Classic":["Classico"],"Gradient":["Gradiente"],"Horizontal":["Orizzontale"],"Vertical":["Verticale"],"Background":["Sfondo"],"Cover":["Copertina"],"Contain":["Contenere"],"Layout":["Layout"],"Overlay":["Sovrapposizione"],"No Repeat":["Nessuna ripetizione"],"Overlay Opacity":["Opacit\u00e0 dell'overlay"],"Conditional Logic":["Logica Condizionale"],"Upgrade to the SureForms Starter Plan to create dynamic forms that adapt based on user input, offering a personalised and efficient form experience.":["Passa al piano Starter di SureForms per creare moduli dinamici che si adattano in base all'input dell'utente, offrendo un'esperienza modulare personalizzata ed efficiente."],"Enable Conditional Logic":["Abilita la logica condizionale"],"this field if":["questo campo se"],"Configure Conditions":["Configura condizioni"],"Premium":["Premium"],"Overlay Type":["Tipo di sovrapposizione"],"Image Overlay Color":["Colore di sovrapposizione dell'immagine"],"Image Position":["Posizione dell'immagine"],"Attachment":["Allegato"],"Fixed":["Fisso"],"Blend Mode":["Modalit\u00e0 di fusione"],"Multiply":["Moltiplica"],"Screen":["Schermo"],"Darken":["Scurisci"],"Lighten":["Alleggerire"],"Color Dodge":["Schiarisci colore"],"Saturation":["Saturazione"],"Repeat-x":["Ripeti-x"],"Repeat-y":["Ripeti-y"],"PX":["PX"],"Button":["Pulsante"],"Prefix Label":["Etichetta prefisso"],"Suffix Label":["Etichetta suffisso"],"Border Radius":["Raggio del bordo"],"Form Theme":["Tema del modulo"],"Select Gradient":["Seleziona sfumatura"],"Unlock Conditional Logic Editor":["Sblocca l'editor di logica condizionale"],"Rich Text Editor":["Editor di testo ricco"],"Read Only":["Solo lettura"],"Select Country":["Seleziona Paese"],"Default Country":["Paese predefinito"],"Subscription":["Abbonamento"],"One Time":["Una volta"],"Unique Entry":["Ingresso Unico"],"Maximum Characters":["Caratteri massimi"],"Textarea Height":["Altezza dell'area di testo"],"Minimum Selections":["Selezioni Minime"],"Maximum Selections":["Selezioni massime"],"Add Numeric Values to Options":["Aggiungi valori numerici alle opzioni"],"Single Choice Only":["Solo una scelta"],"Enable Dropdown Search":["Abilita la ricerca a discesa"],"Allow Multiple":["Consenti multipli"],"%1$s fields are required. Please configure these fields in the block settings.":["I campi %1$s sono obbligatori. Si prega di configurare questi campi nelle impostazioni del blocco."],"%1$s field is required. Please configure this field in the block settings.":["Il campo %1$s \u00e8 obbligatorio. Si prega di configurare questo campo nelle impostazioni del blocco."],"You need to configure a payment account to collect payments from this form. Please configure your payment provider to proceed.":["\u00c8 necessario configurare un account di pagamento per raccogliere i pagamenti da questo modulo. Si prega di configurare il proprio fornitore di pagamento per procedere."],"Configure Payment Account":["Configura l'account di pagamento"],"This is a placeholder for the Payment block. The actual payment fields for your configured payment provider(s) will only appear when you preview or publish the form.":["Questo \u00e8 un segnaposto per il blocco di pagamento. I campi di pagamento effettivi per il\/i fornitore\/i di pagamento configurato\/i appariranno solo quando visualizzi in anteprima o pubblichi il modulo."],"2 Payments":["2 Pagamenti"],"3 Payments":["3 Pagamenti"],"4 Payments":["4 Pagamenti"],"5 Payments":["5 Pagamenti"],"Never":["Mai"],"Stop Subscription After":["Interrompi l'abbonamento dopo"],"Choose when to automatically stop the subscription":["Scegli quando interrompere automaticamente l'abbonamento"],"Number of Payments":["Numero di pagamenti"],"Enter a number between 1 to 100":["Inserisci un numero tra 1 e 100"],"Form Field":["Campo del modulo"],"Payment Type":["Tipo di pagamento"],"Subscription Plan Name":["Nome del piano di abbonamento"],"Billing Interval":["Intervallo di fatturazione"],"Daily":["Quotidiano"],"Weekly":["Settimanale"],"Monthly":["Mensile"],"Quarterly":["Trimestrale"],"Yearly":["Annuale"],"Amount Type":["Tipo di importo"],"Fixed Amount":["Importo fisso"],"Dynamic Amount":["Importo Dinamico"],"Choose whether to charge a fixed amount or charge the amount based on user input in other form fields.":["Scegli se addebitare un importo fisso o addebitare l'importo in base all'input dell'utente in altri campi del modulo."],"Set the exact amount you want to charge. Users won\u2019t be able to change it":["Imposta l'importo esatto che desideri addebitare. Gli utenti non potranno modificarlo"],"Choose Amount Field":["Scegli il campo Importo"],"Select a field\u2026":["Seleziona un campo\u2026"],"Pick a field from your form like a number, dropdown, or multichoice whose value should decide the payment amount.":["Scegli un campo dal tuo modulo, come un numero, un menu a tendina o una scelta multipla, il cui valore dovrebbe determinare l'importo del pagamento."],"Minimum Amount":["Importo minimo"],"Set the minimum amount users can enter (0 for no minimum)":["Imposta l'importo minimo che gli utenti possono inserire (0 per nessun minimo)"],"Customer Name Field (Required)":["Campo Nome Cliente (Obbligatorio)"],"Customer Name Field (Optional)":["Campo Nome Cliente (Facoltativo)"],"Select the input field that contains the customer name (Required for subscriptions)":["Seleziona il campo di input che contiene il nome del cliente (Richiesto per gli abbonamenti)"],"Select the input field that contains the customer name":["Seleziona il campo di input che contiene il nome del cliente"],"Customer Email Field (Required)":["Campo Email Cliente (Obbligatorio)"],"Select the email field that contains the customer email":["Seleziona il campo email che contiene l'email del cliente"],"Payment":["Pagamento"],"%s - Order ID":["%s - ID Ordine"],"%s - Amount":["%s - Importo"],"%s - Customer Email":["%s - Email del cliente"],"%s - Customer Name":["%s - Nome del cliente"],"%s - Status":["%s - Stato"],"Button Alignment":["Allineamento del pulsante"],"Placeholder":["Segnaposto"],"Preselect this option":["Preseleziona questa opzione"],"Restrict Country Codes":["Limita i codici paese"],"Restriction Type":["Tipo di restrizione"],"Allow":["Permetti"],"Block":["Blocca"],"Select Allowed Countries":["Seleziona i Paesi consentiti"],"Choose countries\u2026":["Scegli i paesi\u2026"],"Choose which country codes users can select in the phone number field. Leave empty to allow all country codes.":["Scegli quali codici paese gli utenti possono selezionare nel campo del numero di telefono. Lascia vuoto per consentire tutti i codici paese."],"Select Blocked Countries":["Seleziona Paesi Bloccati"],"These countries will be hidden from the dropdown.":["Questi paesi saranno nascosti dal menu a tendina."],"Bulk Edit":["Modifica in blocco"],"Select Layout":["Seleziona layout"],"Number of Columns":["Numero di colonne"],"Validation Message for Duplicate":["Messaggio di convalida per duplicato"],"Click here to insert a form":["Fai clic qui per inserire un modulo"],"Inherit Form's Original Style":["Eredita lo stile originale del modulo"],"Text on Primary":["Testo su Primario"],"%s - Description":["%s - Descrizione"],"Upgrade to Unlock":["Aggiorna per sbloccare"],"Custom (Premium)":["Personalizzato (Premium)"],"Select a theme style for this form embed.":["Seleziona uno stile tema per questo modulo incorporato."],"Colors":["Colori"],"Advanced Styling":["Stile avanzato"],"Unlock Custom Styling":["Sblocca lo stile personalizzato"],"Switch to Custom Mode to take full control of your form's design and spacing.":["Passa alla Modalit\u00e0 Personalizzata per avere il pieno controllo del design e della spaziatura del tuo modulo."],"Full color control (buttons, fields, text)":["Controllo completo del colore (bottoni, campi, testo)"],"Row and column gap control":["Controllo dello spazio tra righe e colonne"],"Field spacing and layout precision":["Spaziatura dei campi e precisione del layout"],"Complete button styling":["Completare lo stile del pulsante"],"Payment Description":["Descrizione del pagamento"],"Shown on payment receipts and in your payment dashboard (Stripe and PayPal). Leave blank to use the default.":["Mostrato sulle ricevute di pagamento e nel tuo cruscotto dei pagamenti (Stripe e PayPal). Lascia vuoto per utilizzare il predefinito."],"Slug":["Lumaca"],"Auto-generated on save":["Generato automaticamente al salvataggio"],"This slug is already used by another field. It will revert to the previous value.":["Questo slug \u00e8 gi\u00e0 utilizzato da un altro campo. Torner\u00e0 al valore precedente."],"Changing the slug may break form submissions, conditional logic, integrations, or any other feature currently referencing this slug. You will need to update all such references manually.":["La modifica dello slug potrebbe interrompere l'invio dei moduli, la logica condizionale, le integrazioni o qualsiasi altra funzione che attualmente fa riferimento a questo slug. Dovrai aggiornare manualmente tutti questi riferimenti."],"Field Slug":["Slug del campo"],"Location Services":["Servizi di localizzazione"],"Unlock Address Autocomplete":["Sblocca il completamento automatico degli indirizzi"],"Upgrade to enable Google Address Autocomplete with interactive map preview, making address entry faster and more accurate for your users.":["Aggiorna per abilitare il completamento automatico degli indirizzi di Google con l'anteprima interattiva della mappa, rendendo l'inserimento degli indirizzi pi\u00f9 veloce e preciso per i tuoi utenti."],"Enable Google Autocomplete":["Abilita il completamento automatico di Google"],"Show Interactive Map":["Mostra mappa interattiva"],"Payments Per Page":["Pagamenti per pagina"],"Show Subscriptions Section":["Mostra la sezione Abbonamenti"],"Show a dedicated subscriptions section above payment history.":["Mostra una sezione dedicata agli abbonamenti sopra la cronologia dei pagamenti."],"Payment Dashboard":["Dashboard dei pagamenti"],"View your payments and manage subscriptions in a single dashboard.":["Visualizza i tuoi pagamenti e gestisci gli abbonamenti in un'unica dashboard."],"Dynamic Default Value":["Valore predefinito dinamico"]}}} \ No newline at end of file diff --git a/languages/sureforms-it_IT-51635fe6489fc8288d603fe596c755ca.json b/languages/sureforms-it_IT-51635fe6489fc8288d603fe596c755ca.json index 5e0b1b760..a090ecf27 100644 --- a/languages/sureforms-it_IT-51635fe6489fc8288d603fe596c755ca.json +++ b/languages/sureforms-it_IT-51635fe6489fc8288d603fe596c755ca.json @@ -1 +1 @@ -{"translation-revision-date":"2025-01-01T06:16:29+00:00","generator":"WP-CLI\/2.12.0","source":"assets\/build\/settings.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"en","plural-forms":"nplurals=2; plural=(n != 1);"},"Dashboard":["Cruscotto"],"Settings":["Impostazioni"],"Entries":["Voci"],"Activated":["Attivato"],"Activate":["Attiva"],"Monday":["Luned\u00ec"],"Forms":["Moduli"],"GitHub":["GitHub"],"General":["Generale"],"Other":["Altro"],"Confirm":["Conferma"],"Cancel":["Annulla"],"Install":["Installa"],"Plugin Installation failed, Please try again later.":["Installazione del plugin fallita, per favore riprova pi\u00f9 tardi."],"Plugin activation failed, Please try again later.":["Attivazione del plugin fallita, riprova pi\u00f9 tardi."],"Integrations":["Integrazioni"],"What's New?":["Novit\u00e0?"],"Core":["Nucleo"],"Unlicensed":["Senza licenza"],"Connecting\u2026":["Connessione in corso\u2026"],"Install & Activate":["Installa e attiva"],"Send Email To":["Invia email a"],"Google reCAPTCHA":["Google reCAPTCHA"],"hCaptcha":["hCaptcha"],"reCAPTCHA v2 Invisible":["reCAPTCHA v2 Invisibile"],"reCAPTCHA v3":["reCAPTCHA v3"],"Validations":["Convalide"],"Spam Protection":["Protezione antispam"],"Email Summaries":["Riepiloghi email"],"Tuesday":["Marted\u00ec"],"Wednesday":["Mercoled\u00ec"],"Thursday":["Gioved\u00ec"],"Friday":["Venerd\u00ec"],"Saturday":["Sabato"],"Sunday":["Domenica"],"Test Email":["Email di prova"],"Schedule Reports":["Programma rapporti"],"IP Logging":["Registrazione IP"],"If this option is turned on, the user's IP address will be saved with the form data":["Se questa opzione \u00e8 attivata, l'indirizzo IP dell'utente verr\u00e0 salvato con i dati del modulo"],"Confirmation Email Mismatch Message":["Messaggio di mancata corrispondenza dell'email di conferma"],"%s represents the minimum input value. For example: \"Minimum value is 10.\"":["%s rappresenta il valore minimo di input. Ad esempio: \"Il valore minimo \u00e8 10.\""],"%s represents the maximum input value. For example: \"Maximum value is 100.\"":["%s rappresenta il valore massimo di input. Ad esempio: \"Il valore massimo \u00e8 100.\""],"%s represents the minimum selections needed. For example: \u201cMinimum 2 selections are required.\u201d":["%s rappresenta le selezioni minime necessarie. Ad esempio: \"Sono necessarie almeno 2 selezioni.\""],"%s represents the maximum selections allowed. For example: \u201cMaximum 4 selections are allowed.\u201d":["%s rappresenta il numero massimo di selezioni consentite. Ad esempio: \"Sono consentite al massimo 4 selezioni.\""],"%s represents the minimum choices needed. For example: \u201cMinimum 1 selection is required.\u201d":["%s rappresenta le scelte minime necessarie. Ad esempio: \"\u00c8 richiesta almeno 1 selezione.\""],"%s represents the maximum choices allowed. For example: \u201cMaximum 3 selections are allowed.\u201d":["%s rappresenta il numero massimo di scelte consentite. Ad esempio: \"Sono consentite un massimo di 3 selezioni.\""]," Error Message":["Messaggio di errore"],"Auto":["Auto"],"Light":["Luce"],"Dark":["Scuro"],"Turnstile":["Tornello"],"Honeypot":["Trappola"],"Get Keys":["Ottieni chiavi"],"Documentation":["Documentazione"],"Site Key":["Chiave del sito"],"Secret Key":["Chiave segreta"],"Cloudflare Turnstile":["Cloudflare Turnstile"],"Appearance Mode":["Modalit\u00e0 Aspetto"],"Enable Honeypot Security":["Abilita la Sicurezza Honeypot"],"Enable Honeypot Security for better spam protection":["Abilita la Sicurezza Honeypot per una migliore protezione dallo spam"],"This field cannot be left blank.":["Questo campo non pu\u00f2 essere lasciato vuoto."],"OttoKit":["OttoKit"],"Connect with OttoKit":["Connettiti con OttoKit"],"reCAPTCHA":["reCAPTCHA"],"Ready to go beyond free plan?":["Pronto a superare il piano gratuito?"],"Upgrade now":["Aggiorna ora"],"and unlock the full power of SureForms!":["e sblocca tutta la potenza di SureForms!"],"Upgrade SureForms":["Aggiorna SureForms"],"Upgrade Now":["Aggiorna ora"],"Form Validation":["Validazione del modulo"],"Required Error Messages":["Messaggi di errore richiesti"],"Other Error Messages":["Altri messaggi di errore"],"Input Field Unique":["Campo di input univoco"],"Email Field Unique":["Campo email univoco"],"Invalid URL":["URL non valido"],"Phone Field Unique":["Campo Telefono Unico"],"Invalid Field Number Block":["Blocco Numero Campo Non Valido"],"Invalid Email":["Email non valido"],"Number Minimum Value":["Valore Minimo Numero"],"Number Maximum Value":["Valore Massimo Numero"],"Dropdown Minimum Selections":["Selezioni Minime del Menu a Tendina"],"Dropdown Maximum Selections":["Selezioni massime del menu a tendina"],"Multiple Choice Minimum Selections":["Selezioni Minime a Scelta Multipla"],"Multiple Choice Maximum Selections":["Selezioni massime a scelta multipla"],"Input Field":["Campo di input"],"Email Field":["Campo Email"],"URL Field":["Campo URL"],"Phone Field":["Campo Telefono"],"Textarea Field":["Campo di testo"],"Checkbox Field":["Campo di selezione"],"Dropdown Field":["Campo a discesa"],"Multiple Choice Field":["Campo a scelta multipla"],"Address Field":["Campo Indirizzo"],"Number Field":["Campo numerico"],"reCAPTCHA v2":["reCAPTCHA v2"],"To enable reCAPTCHA feature on your SureForms Please enable reCAPTCHA option on your blocks setting and select version. Add google reCAPTCHA secret and site key here. reCAPTCHA will be added to your page on front-end.":["Per abilitare la funzione reCAPTCHA su SureForms, attiva l'opzione reCAPTCHA nelle impostazioni dei tuoi blocchi e seleziona la versione. Aggiungi qui la chiave segreta e la chiave del sito di Google reCAPTCHA. reCAPTCHA verr\u00e0 aggiunto alla tua pagina nel front-end."],"Enter your %s here":["Inserisci qui il tuo %s"],"To enable hCAPTCHA, please add your site key and secret key. Configure these settings within the individual form.":["Per abilitare hCAPTCHA, aggiungi la tua chiave del sito e la chiave segreta. Configura queste impostazioni all'interno del modulo individuale."],"To enable Cloudflare Turnstile, please add your site key and secret key. Configure these settings within the individual form.":["Per abilitare Cloudflare Turnstile, aggiungi la tua chiave del sito e la chiave segreta. Configura queste impostazioni all'interno del modulo individuale."],"Save":["Salva"],"Anonymous Analytics":["Analisi Anonime"],"Learn More":["Scopri di pi\u00f9"],"Admin Notification":["Notifica dell'amministratore"],"Enable Admin Notification":["Abilita la Notifica Amministratore"],"Admin notifications keep you informed about new form entries since your last visit.":["Le notifiche dell'amministratore ti tengono informato sui nuovi invii di moduli dalla tua ultima visita."],"Continue":["Continua"],"Get Started":["Inizia"],"Integration":["Integrazione"],"Connect Native Integrations with SureForms":["Collega le integrazioni native con SureForms"],"Unlock powerful integrations in the Premium plan to automate your workflows and connect SureForms directly with your favourite tools.":["Sblocca potenti integrazioni nel piano Premium per automatizzare i tuoi flussi di lavoro e collegare SureForms direttamente con i tuoi strumenti preferiti."],"Send form submissions straight to CRMs, email, and marketing platforms":["Invia le sottomissioni dei moduli direttamente ai CRM, email e piattaforme di marketing"],"Automate repetitive tasks with seamless data syncing":["Automatizza le attivit\u00e0 ripetitive con una sincronizzazione dei dati senza interruzioni"],"Access exclusive native integrations for faster workflows":["Accedi a integrazioni native esclusive per flussi di lavoro pi\u00f9 veloci"],"Payments":["Pagamenti"],"Stripe account disconnected successfully.":["Account Stripe disconnesso con successo."],"Failed to create webhook.":["Impossibile creare il webhook."],"Failed to connect to Stripe.":["Connessione a Stripe non riuscita."],"Webhook":["Webhook"],"Knowledge Base":["Base di conoscenza"],"What\u2019s New":["Novit\u00e0"],"delete":["elimina"],"Please type \"%s\" in the input box":["Per favore digita \"%s\" nella casella di input"],"To confirm, type \"%s\" in the box below:":["Per confermare, digita \"%s\" nella casella sottostante:"],"Type \"%s\"":["Digita \"%s\""],"Go to OttoKit Settings":["Vai alle Impostazioni di OttoKit"],"USD - US Dollar":["USD - Dollaro statunitense"],"Payment Mode":["Modalit\u00e0 di pagamento"],"Test Mode":["Modalit\u00e0 di test"],"Live Mode":["Modalit\u00e0 Live"],"General Settings":["Impostazioni generali"],"Set up email summaries, admin alerts, and data preferences to manage your forms with ease.":["Imposta i riepiloghi delle email, gli avvisi amministrativi e le preferenze sui dati per gestire i tuoi moduli con facilit\u00e0."],"Customize default error messages shown when users submit invalid or incomplete form entries.":["Personalizza i messaggi di errore predefiniti mostrati quando gli utenti inviano voci di modulo non valide o incomplete."],"Enable spam protection for your forms using CAPTCHA services or honeypot security.":["Abilita la protezione antispam per i tuoi moduli utilizzando servizi CAPTCHA o la sicurezza honeypot."],"Connect and manage your payment gateways to securely accept transactions through your forms.":["Collega e gestisci i tuoi gateway di pagamento per accettare transazioni in modo sicuro attraverso i tuoi moduli."],"1% transaction and payment gateway fees apply.":["Si applicano commissioni di transazione e gateway di pagamento dell'1%."],"2.9% transaction and payment gateway fees apply. Activate license to reduce transaction fees.":["Si applicano commissioni di transazione e gateway di pagamento del 2,9%. Attiva la licenza per ridurre le commissioni di transazione."],"2.9% transaction and payment gateway fees apply.":["Si applicano commissioni di transazione e gateway di pagamento del 2,9%."],"Please visit %1$s, delete an unused webhook, then click below to retry.":["Si prega di visitare %1$s, eliminare un webhook non utilizzato, quindi fare clic qui sotto per riprovare."],"SureForms could not create a webhook because your Stripe account has run out of free slots. Webhooks are needed to receive updates about payments.":["SureForms non \u00e8 riuscito a creare un webhook perch\u00e9 il tuo account Stripe ha esaurito gli slot gratuiti. I webhook sono necessari per ricevere aggiornamenti sui pagamenti."],"Stripe Dashboard":["Dashboard di Stripe"],"Creating\u2026":["Creando\u2026"],"Create Webhook":["Crea Webhook"],"Successfully connected to Stripe!":["Connessione a Stripe riuscita!"],"Invalid response from server. Please try again.":["Risposta non valida dal server. Per favore riprova."],"Failed to disconnect Stripe account.":["Impossibile disconnettere l'account Stripe."],"Webhook created successfully!":["Webhook creato con successo!"],"Select Currency":["Seleziona valuta"],"Select the default currency for payment forms.":["Seleziona la valuta predefinita per i moduli di pagamento."],"Connection Status":["Stato della connessione"],"Disconnect Stripe Account":["Disconnetti l'account Stripe"],"Are you sure you want to disconnect your Stripe account? This will stop all active payments, subscriptions, and form transactions connected to this account.":["Sei sicuro di voler scollegare il tuo account Stripe? Questo interromper\u00e0 tutti i pagamenti attivi, gli abbonamenti e le transazioni dei moduli collegati a questo account."],"Disconnect":["Disconnetti"],"Disconnecting\u2026":["Disconnessione in corso\u2026"],"Webhook successfully connected, all Stripe events are being tracked.":["Webhook collegato con successo, tutti gli eventi di Stripe vengono tracciati."],"Connect your Stripe account to start accepting payments through your forms.":["Collega il tuo account Stripe per iniziare ad accettare pagamenti tramite i tuoi moduli."],"Connect to Stripe":["Connetti a Stripe"],"Securely connect to Stripe with just a few clicks to begin accepting payments! ":["Collegati in modo sicuro a Stripe con pochi clic per iniziare ad accettare pagamenti!"],"Payment Methods":["Metodi di pagamento"],"Test mode allows you to process payments without real charges. Switch to Live mode for actual transactions.":["La modalit\u00e0 di test ti consente di elaborare pagamenti senza addebiti reali. Passa alla modalit\u00e0 Live per le transazioni effettive."],"General Payment Settings":["Impostazioni generali di pagamento"],"These settings apply to all payment gateways.":["Queste impostazioni si applicano a tutti i gateway di pagamento."],"Stripe Settings":["Impostazioni di Stripe"],"Left ($100)":["Sinistra ($100)"],"Right (100$)":["Destra (100$)"],"Left Space ($ 100)":["Spazio Sinistro ($ 100)"],"Right Space (100 $)":["Spazio destro (100 $)"],"Currency Sign Position":["Posizione del simbolo di valuta"],"Select the position of the currency symbol relative to the amount.":["Seleziona la posizione del simbolo della valuta rispetto all'importo."],"Learn":["Impara"],"Enable email summaries":["Abilita i riepiloghi email"],"Enable IP logging":["Abilita la registrazione IP"],"Turn on Admin Notification from here.":["Attiva la notifica amministratore da qui."],"Send entries to 100+ popular apps.":["Invia voci a oltre 100 app popolari."],"Build automated workflows that run instantly.":["Crea flussi di lavoro automatizzati che vengono eseguiti istantaneamente."],"Create custom app integrations using our Custom App feature.":["Crea integrazioni di app personalizzate utilizzando la nostra funzione App personalizzata."],"Keep your tools in sync automatically.":["Mantieni i tuoi strumenti sincronizzati automaticamente."],"This will install and activate OttoKit on your WordPress site to enable automation features.":["Questo installer\u00e0 e attiver\u00e0 OttoKit sul tuo sito WordPress per abilitare le funzionalit\u00e0 di automazione."],"Automate Your Forms with OttoKit":["Automatizza i tuoi moduli con OttoKit"],"Every form submission should trigger something \u2014 a Slack alert, a CRM lead, a follow-up email, or a new row in Google Sheets.":["Ogni invio di modulo dovrebbe attivare qualcosa: un avviso Slack, un lead CRM, un'email di follow-up o una nuova riga in Google Sheets."],"MCP":["MCP"],"Configure AI client permissions and MCP server settings.":["Configura le autorizzazioni del client AI e le impostazioni del server MCP."],"View documentation":["Visualizza la documentazione"],"Copy to clipboard":["Copia negli appunti"],"Claude Desktop":["Claude Desktop"],"~\/Library\/Application Support\/Claude\/claude_desktop_config.json (macOS) or %APPDATA%\\Claude\\claude_desktop_config.json (Windows)":["~\/Library\/Application Support\/Claude\/claude_desktop_config.json (macOS) o %APPDATA%\\Claude\\claude_desktop_config.json (Windows)"],"Claude Code":["Codice Claude"],".mcp.json (project) or ~\/.claude.json (global)":[".mcp.json (progetto) o ~\/.claude.json (globale)"],"Cursor":["Cursore"],"~\/.cursor\/mcp.json":["~\/.cursor\/mcp.json"],"VS Code (Copilot)":["VS Code (Copilot)"],".vscode\/mcp.json (project) or settings.json > mcp.servers (global)":[".vscode\/mcp.json (progetto) o settings.json > mcp.servers (globale)"],"~\/.continue\/config.yaml or config.json":["~\/.continue\/config.yaml o config.json"],"Your client's MCP configuration file":["Il file di configurazione MCP del tuo cliente"],"Connect Your AI Client":["Collega il tuo client AI"],"AI Client":["Cliente AI"],"Create an Application Password \u2014 ":["Crea una Password per l'Applicazione \u2014"],"Open Application Passwords":["Apri Password Applicazioni"],"Or use this CLI command to add the server quickly (you will still need to set the environment variables):":["Oppure usa questo comando CLI per aggiungere rapidamente il server (dovrai comunque impostare le variabili d'ambiente):"],"Copy the JSON config below into: ":["Copia la configurazione JSON qui sotto in:"],"Replace \"your-application-password\" with the password from Step 1.":["Sostituisci \"your-application-password\" con la password del Passo 1."],"WP_API_URL \u2014 your site's MCP endpoint. WP_API_USERNAME \u2014 your WordPress username. WP_API_PASSWORD \u2014 the application password you generated.":["WP_API_URL \u2014 l'endpoint MCP del tuo sito. WP_API_USERNAME \u2014 il tuo nome utente WordPress. WP_API_PASSWORD \u2014 la password dell'applicazione che hai generato."],"View setup docs":["Visualizza i documenti di configurazione"],"The MCP Adapter plugin is installed but not active. Activate it to configure MCP settings.":["Il plugin MCP Adapter \u00e8 installato ma non attivo. Attivalo per configurare le impostazioni MCP."],"The MCP Adapter plugin is required to connect AI clients to your forms. Download and install it from GitHub, then activate it.":["Il plugin MCP Adapter \u00e8 necessario per connettere i client AI ai tuoi moduli. Scaricalo e installalo da GitHub, quindi attivalo."],"Download the latest release from":["Scarica l'ultima versione da"],"Install the plugin via Plugins > Add New Plugin > Upload Plugin.":["Installa il plugin tramite Plugin > Aggiungi nuovo plugin > Carica plugin."],"Activate the MCP Adapter plugin.":["Attiva il plugin dell'adattatore MCP."],"Activating\u2026":["Attivazione in corso\u2026"],"Activate MCP Adapter":["Attiva l'adattatore MCP"],"Download MCP Adapter":["Scarica l'adattatore MCP"],"Experimental":["Sperimentale"],"Enable Abilities":["Abilita Abilit\u00e0"],"Register SureForms abilities with the WordPress Abilities API. When enabled, AI clients can list, read, create, edit, and delete your forms and entries. When disabled, no abilities are registered and AI clients cannot perform any actions on your forms.":["Registra le abilit\u00e0 di SureForms con l'API Abilities di WordPress. Quando \u00e8 abilitato, i client AI possono elencare, leggere, creare, modificare e eliminare i tuoi moduli e le voci. Quando \u00e8 disabilitato, nessuna abilit\u00e0 \u00e8 registrata e i client AI non possono eseguire alcuna azione sui tuoi moduli."],"Abilities API \u2014 Edit":["API delle abilit\u00e0 \u2014 Modifica"],"Enable Edit Abilities":["Abilita le capacit\u00e0 di modifica"],"When enabled, AI clients can create new forms, update form titles, fields, and settings, duplicate forms, and modify entry statuses. When disabled, these abilities are unregistered and AI clients can only read your data.":["Quando abilitato, i client AI possono creare nuovi moduli, aggiornare i titoli dei moduli, i campi e le impostazioni, duplicare i moduli e modificare gli stati delle voci. Quando disabilitato, queste capacit\u00e0 vengono annullate e i client AI possono solo leggere i tuoi dati."],"Abilities API \u2014 Delete":["API delle abilit\u00e0 \u2014 Elimina"],"Enable Delete Abilities":["Abilita Elimina Abilit\u00e0"],"When enabled, AI clients can permanently delete forms and entries. Deleted data cannot be recovered. When disabled, delete abilities are unregistered and AI clients cannot remove any data.":["Quando abilitato, i client AI possono eliminare permanentemente moduli e voci. I dati eliminati non possono essere recuperati. Quando disabilitato, le capacit\u00e0 di eliminazione vengono annullate e i client AI non possono rimuovere alcun dato."],"MCP Server":["Server MCP"],"Enable MCP Server":["Abilita server MCP"],"Creates a dedicated SureForms MCP endpoint that AI clients like Claude can connect to. When disabled, the endpoint is removed and external AI clients cannot discover or call any SureForms abilities.":["Crea un endpoint SureForms MCP dedicato a cui i clienti AI come Claude possono connettersi. Quando \u00e8 disabilitato, l'endpoint viene rimosso e i clienti AI esterni non possono scoprire o chiamare alcuna funzionalit\u00e0 di SureForms."],"Learn more":["Scopri di pi\u00f9"],"MCP Adapter Required":["Adattatore MCP richiesto"],"Google Maps":["Google Maps"],"Configure Google Maps API key for address autocomplete and map preview.":["Configura la chiave API di Google Maps per il completamento automatico degli indirizzi e l'anteprima della mappa."],"Help shape the future of SureForms":["Aiuta a plasmare il futuro di SureForms"],"Share how you use the plugin so we can build features that matter, fix issues faster, and make smarter decisions. ":["Condividi come utilizzi il plugin in modo che possiamo sviluppare funzionalit\u00e0 che contano, risolvere i problemi pi\u00f9 velocemente e prendere decisioni pi\u00f9 intelligenti. "],"Enable Google Address Autocomplete":["Abilita il completamento automatico degli indirizzi di Google"],"Upgrade to the SureForms Business Plan to add Google-powered address autocomplete with interactive map preview to your forms.":["Passa al piano SureForms Business per aggiungere il completamento automatico degli indirizzi con tecnologia Google e l'anteprima della mappa interattiva ai tuoi moduli."],"Auto-suggest addresses as users type for faster, error-free submissions":["Suggerisci automaticamente gli indirizzi mentre gli utenti digitano per invii pi\u00f9 rapidi e senza errori"],"Show an interactive map preview with draggable pin for precise locations":["Mostra un'anteprima della mappa interattiva con un segnaposto trascinabile per posizioni precise"],"Automatically populate address fields like city, state, and postal code":["Compila automaticamente i campi dell'indirizzo come citt\u00e0, stato e codice postale"]}}} \ No newline at end of file +{"translation-revision-date":"2025-01-01T06:16:29+00:00","generator":"WP-CLI\/2.12.0","source":"assets\/build\/settings.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"en","plural-forms":"nplurals=2; plural=(n != 1);"},"Dashboard":["Cruscotto"],"Settings":["Impostazioni"],"Entries":["Voci"],"Activated":["Attivato"],"Activate":["Attiva"],"Monday":["Luned\u00ec"],"Forms":["Moduli"],"GitHub":["GitHub"],"General":["Generale"],"Other":["Altro"],"Confirm":["Conferma"],"Cancel":["Annulla"],"Install":["Installa"],"Plugin Installation failed, Please try again later.":["Installazione del plugin fallita, per favore riprova pi\u00f9 tardi."],"Plugin activation failed, Please try again later.":["Attivazione del plugin fallita, riprova pi\u00f9 tardi."],"Integrations":["Integrazioni"],"What's New?":["Novit\u00e0?"],"Core":["Nucleo"],"Unlicensed":["Senza licenza"],"Connecting\u2026":["Connessione in corso\u2026"],"Install & Activate":["Installa e attiva"],"Send Email To":["Invia email a"],"Google reCAPTCHA":["Google reCAPTCHA"],"hCaptcha":["hCaptcha"],"reCAPTCHA v2 Invisible":["reCAPTCHA v2 Invisibile"],"reCAPTCHA v3":["reCAPTCHA v3"],"Validations":["Convalide"],"Spam Protection":["Protezione antispam"],"Email Summaries":["Riepiloghi email"],"Tuesday":["Marted\u00ec"],"Wednesday":["Mercoled\u00ec"],"Thursday":["Gioved\u00ec"],"Friday":["Venerd\u00ec"],"Saturday":["Sabato"],"Sunday":["Domenica"],"Test Email":["Email di prova"],"Schedule Reports":["Programma rapporti"],"IP Logging":["Registrazione IP"],"If this option is turned on, the user's IP address will be saved with the form data":["Se questa opzione \u00e8 attivata, l'indirizzo IP dell'utente verr\u00e0 salvato con i dati del modulo"],"Confirmation Email Mismatch Message":["Messaggio di mancata corrispondenza dell'email di conferma"],"%s represents the minimum input value. For example: \"Minimum value is 10.\"":["%s rappresenta il valore minimo di input. Ad esempio: \"Il valore minimo \u00e8 10.\""],"%s represents the maximum input value. For example: \"Maximum value is 100.\"":["%s rappresenta il valore massimo di input. Ad esempio: \"Il valore massimo \u00e8 100.\""],"%s represents the minimum selections needed. For example: \u201cMinimum 2 selections are required.\u201d":["%s rappresenta le selezioni minime necessarie. Ad esempio: \"Sono necessarie almeno 2 selezioni.\""],"%s represents the maximum selections allowed. For example: \u201cMaximum 4 selections are allowed.\u201d":["%s rappresenta il numero massimo di selezioni consentite. Ad esempio: \"Sono consentite al massimo 4 selezioni.\""],"%s represents the minimum choices needed. For example: \u201cMinimum 1 selection is required.\u201d":["%s rappresenta le scelte minime necessarie. Ad esempio: \"\u00c8 richiesta almeno 1 selezione.\""],"%s represents the maximum choices allowed. For example: \u201cMaximum 3 selections are allowed.\u201d":["%s rappresenta il numero massimo di scelte consentite. Ad esempio: \"Sono consentite un massimo di 3 selezioni.\""]," Error Message":["Messaggio di errore"],"Auto":["Auto"],"Light":["Luce"],"Dark":["Scuro"],"Turnstile":["Tornello"],"Honeypot":["Trappola"],"Get Keys":["Ottieni chiavi"],"Documentation":["Documentazione"],"Site Key":["Chiave del sito"],"Secret Key":["Chiave segreta"],"Cloudflare Turnstile":["Cloudflare Turnstile"],"Appearance Mode":["Modalit\u00e0 Aspetto"],"Enable Honeypot Security":["Abilita la Sicurezza Honeypot"],"Enable Honeypot Security for better spam protection":["Abilita la Sicurezza Honeypot per una migliore protezione dallo spam"],"This field cannot be left blank.":["Questo campo non pu\u00f2 essere lasciato vuoto."],"OttoKit":["OttoKit"],"Connect with OttoKit":["Connettiti con OttoKit"],"reCAPTCHA":["reCAPTCHA"],"Ready to go beyond free plan?":["Pronto a superare il piano gratuito?"],"Upgrade now":["Aggiorna ora"],"and unlock the full power of SureForms!":["e sblocca tutta la potenza di SureForms!"],"Upgrade SureForms":["Aggiorna SureForms"],"Upgrade Now":["Aggiorna ora"],"Form Validation":["Validazione del modulo"],"Required Error Messages":["Messaggi di errore richiesti"],"Other Error Messages":["Altri messaggi di errore"],"Input Field Unique":["Campo di input univoco"],"Email Field Unique":["Campo email univoco"],"Invalid URL":["URL non valido"],"Phone Field Unique":["Campo Telefono Unico"],"Invalid Field Number Block":["Blocco Numero Campo Non Valido"],"Invalid Email":["Email non valido"],"Number Minimum Value":["Valore Minimo Numero"],"Number Maximum Value":["Valore Massimo Numero"],"Dropdown Minimum Selections":["Selezioni Minime del Menu a Tendina"],"Dropdown Maximum Selections":["Selezioni massime del menu a tendina"],"Multiple Choice Minimum Selections":["Selezioni Minime a Scelta Multipla"],"Multiple Choice Maximum Selections":["Selezioni massime a scelta multipla"],"Input Field":["Campo di input"],"Email Field":["Campo Email"],"URL Field":["Campo URL"],"Phone Field":["Campo Telefono"],"Textarea Field":["Campo di testo"],"Checkbox Field":["Campo di selezione"],"Dropdown Field":["Campo a discesa"],"Multiple Choice Field":["Campo a scelta multipla"],"Address Field":["Campo Indirizzo"],"Number Field":["Campo numerico"],"reCAPTCHA v2":["reCAPTCHA v2"],"To enable reCAPTCHA feature on your SureForms Please enable reCAPTCHA option on your blocks setting and select version. Add google reCAPTCHA secret and site key here. reCAPTCHA will be added to your page on front-end.":["Per abilitare la funzione reCAPTCHA su SureForms, attiva l'opzione reCAPTCHA nelle impostazioni dei tuoi blocchi e seleziona la versione. Aggiungi qui la chiave segreta e la chiave del sito di Google reCAPTCHA. reCAPTCHA verr\u00e0 aggiunto alla tua pagina nel front-end."],"Enter your %s here":["Inserisci qui il tuo %s"],"To enable hCAPTCHA, please add your site key and secret key. Configure these settings within the individual form.":["Per abilitare hCAPTCHA, aggiungi la tua chiave del sito e la chiave segreta. Configura queste impostazioni all'interno del modulo individuale."],"To enable Cloudflare Turnstile, please add your site key and secret key. Configure these settings within the individual form.":["Per abilitare Cloudflare Turnstile, aggiungi la tua chiave del sito e la chiave segreta. Configura queste impostazioni all'interno del modulo individuale."],"Save":["Salva"],"Anonymous Analytics":["Analisi Anonime"],"Learn More":["Scopri di pi\u00f9"],"Admin Notification":["Notifica dell'amministratore"],"Enable Admin Notification":["Abilita la Notifica Amministratore"],"Admin notifications keep you informed about new form entries since your last visit.":["Le notifiche dell'amministratore ti tengono informato sui nuovi invii di moduli dalla tua ultima visita."],"Continue":["Continua"],"Get Started":["Inizia"],"Integration":["Integrazione"],"Connect Native Integrations with SureForms":["Collega le integrazioni native con SureForms"],"Unlock powerful integrations in the Premium plan to automate your workflows and connect SureForms directly with your favourite tools.":["Sblocca potenti integrazioni nel piano Premium per automatizzare i tuoi flussi di lavoro e collegare SureForms direttamente con i tuoi strumenti preferiti."],"Send form submissions straight to CRMs, email, and marketing platforms":["Invia le sottomissioni dei moduli direttamente ai CRM, email e piattaforme di marketing"],"Automate repetitive tasks with seamless data syncing":["Automatizza le attivit\u00e0 ripetitive con una sincronizzazione dei dati senza interruzioni"],"Access exclusive native integrations for faster workflows":["Accedi a integrazioni native esclusive per flussi di lavoro pi\u00f9 veloci"],"Payments":["Pagamenti"],"Stripe account disconnected successfully.":["Account Stripe disconnesso con successo."],"Failed to create webhook.":["Impossibile creare il webhook."],"Failed to connect to Stripe.":["Connessione a Stripe non riuscita."],"Webhook":["Webhook"],"Knowledge Base":["Base di conoscenza"],"What\u2019s New":["Novit\u00e0"],"delete":["elimina"],"Please type \"%s\" in the input box":["Per favore digita \"%s\" nella casella di input"],"To confirm, type \"%s\" in the box below:":["Per confermare, digita \"%s\" nella casella sottostante:"],"Type \"%s\"":["Digita \"%s\""],"Go to OttoKit Settings":["Vai alle Impostazioni di OttoKit"],"USD - US Dollar":["USD - Dollaro statunitense"],"Payment Mode":["Modalit\u00e0 di pagamento"],"Test Mode":["Modalit\u00e0 di test"],"Live Mode":["Modalit\u00e0 Live"],"General Settings":["Impostazioni generali"],"Set up email summaries, admin alerts, and data preferences to manage your forms with ease.":["Imposta i riepiloghi delle email, gli avvisi amministrativi e le preferenze sui dati per gestire i tuoi moduli con facilit\u00e0."],"Customize default error messages shown when users submit invalid or incomplete form entries.":["Personalizza i messaggi di errore predefiniti mostrati quando gli utenti inviano voci di modulo non valide o incomplete."],"Enable spam protection for your forms using CAPTCHA services or honeypot security.":["Abilita la protezione antispam per i tuoi moduli utilizzando servizi CAPTCHA o la sicurezza honeypot."],"Connect and manage your payment gateways to securely accept transactions through your forms.":["Collega e gestisci i tuoi gateway di pagamento per accettare transazioni in modo sicuro attraverso i tuoi moduli."],"1% transaction and payment gateway fees apply.":["Si applicano commissioni di transazione e gateway di pagamento dell'1%."],"2.9% transaction and payment gateway fees apply. Activate license to reduce transaction fees.":["Si applicano commissioni di transazione e gateway di pagamento del 2,9%. Attiva la licenza per ridurre le commissioni di transazione."],"2.9% transaction and payment gateway fees apply.":["Si applicano commissioni di transazione e gateway di pagamento del 2,9%."],"Please visit %1$s, delete an unused webhook, then click below to retry.":["Si prega di visitare %1$s, eliminare un webhook non utilizzato, quindi fare clic qui sotto per riprovare."],"SureForms could not create a webhook because your Stripe account has run out of free slots. Webhooks are needed to receive updates about payments.":["SureForms non \u00e8 riuscito a creare un webhook perch\u00e9 il tuo account Stripe ha esaurito gli slot gratuiti. I webhook sono necessari per ricevere aggiornamenti sui pagamenti."],"Stripe Dashboard":["Dashboard di Stripe"],"Creating\u2026":["Creando\u2026"],"Create Webhook":["Crea Webhook"],"Successfully connected to Stripe!":["Connessione a Stripe riuscita!"],"Invalid response from server. Please try again.":["Risposta non valida dal server. Per favore riprova."],"Failed to disconnect Stripe account.":["Impossibile disconnettere l'account Stripe."],"Webhook created successfully!":["Webhook creato con successo!"],"Select Currency":["Seleziona valuta"],"Select the default currency for payment forms.":["Seleziona la valuta predefinita per i moduli di pagamento."],"Connection Status":["Stato della connessione"],"Disconnect Stripe Account":["Disconnetti l'account Stripe"],"Are you sure you want to disconnect your Stripe account? This will stop all active payments, subscriptions, and form transactions connected to this account.":["Sei sicuro di voler scollegare il tuo account Stripe? Questo interromper\u00e0 tutti i pagamenti attivi, gli abbonamenti e le transazioni dei moduli collegati a questo account."],"Disconnect":["Disconnetti"],"Disconnecting\u2026":["Disconnessione in corso\u2026"],"Webhook successfully connected, all Stripe events are being tracked.":["Webhook collegato con successo, tutti gli eventi di Stripe vengono tracciati."],"Connect your Stripe account to start accepting payments through your forms.":["Collega il tuo account Stripe per iniziare ad accettare pagamenti tramite i tuoi moduli."],"Connect to Stripe":["Connetti a Stripe"],"Securely connect to Stripe with just a few clicks to begin accepting payments! ":["Collegati in modo sicuro a Stripe con pochi clic per iniziare ad accettare pagamenti!"],"Payment Methods":["Metodi di pagamento"],"Test mode allows you to process payments without real charges. Switch to Live mode for actual transactions.":["La modalit\u00e0 di test ti consente di elaborare pagamenti senza addebiti reali. Passa alla modalit\u00e0 Live per le transazioni effettive."],"General Payment Settings":["Impostazioni generali di pagamento"],"These settings apply to all payment gateways.":["Queste impostazioni si applicano a tutti i gateway di pagamento."],"Stripe Settings":["Impostazioni di Stripe"],"Left ($100)":["Sinistra ($100)"],"Right (100$)":["Destra (100$)"],"Left Space ($ 100)":["Spazio Sinistro ($ 100)"],"Right Space (100 $)":["Spazio destro (100 $)"],"Currency Sign Position":["Posizione del simbolo di valuta"],"Select the position of the currency symbol relative to the amount.":["Seleziona la posizione del simbolo della valuta rispetto all'importo."],"Learn":["Impara"],"Enable email summaries":["Abilita i riepiloghi email"],"Enable IP logging":["Abilita la registrazione IP"],"Turn on Admin Notification from here.":["Attiva la notifica amministratore da qui."],"Send entries to 100+ popular apps.":["Invia voci a oltre 100 app popolari."],"Build automated workflows that run instantly.":["Crea flussi di lavoro automatizzati che vengono eseguiti istantaneamente."],"Create custom app integrations using our Custom App feature.":["Crea integrazioni di app personalizzate utilizzando la nostra funzione App personalizzata."],"Keep your tools in sync automatically.":["Mantieni i tuoi strumenti sincronizzati automaticamente."],"This will install and activate OttoKit on your WordPress site to enable automation features.":["Questo installer\u00e0 e attiver\u00e0 OttoKit sul tuo sito WordPress per abilitare le funzionalit\u00e0 di automazione."],"Automate Your Forms with OttoKit":["Automatizza i tuoi moduli con OttoKit"],"Every form submission should trigger something \u2014 a Slack alert, a CRM lead, a follow-up email, or a new row in Google Sheets.":["Ogni invio di modulo dovrebbe attivare qualcosa: un avviso Slack, un lead CRM, un'email di follow-up o una nuova riga in Google Sheets."],"MCP":["MCP"],"Configure AI client permissions and MCP server settings.":["Configura le autorizzazioni del client AI e le impostazioni del server MCP."],"View documentation":["Visualizza la documentazione"],"Copy to clipboard":["Copia negli appunti"],"Claude Desktop":["Claude Desktop"],"~\/Library\/Application Support\/Claude\/claude_desktop_config.json (macOS) or %APPDATA%\\Claude\\claude_desktop_config.json (Windows)":["~\/Library\/Application Support\/Claude\/claude_desktop_config.json (macOS) o %APPDATA%\\Claude\\claude_desktop_config.json (Windows)"],"Claude Code":["Codice Claude"],".mcp.json (project) or ~\/.claude.json (global)":[".mcp.json (progetto) o ~\/.claude.json (globale)"],"Cursor":["Cursore"],"~\/.cursor\/mcp.json":["~\/.cursor\/mcp.json"],"VS Code (Copilot)":["VS Code (Copilot)"],".vscode\/mcp.json (project) or settings.json > mcp.servers (global)":[".vscode\/mcp.json (progetto) o settings.json > mcp.servers (globale)"],"~\/.continue\/config.yaml or config.json":["~\/.continue\/config.yaml o config.json"],"Your client's MCP configuration file":["Il file di configurazione MCP del tuo cliente"],"Connect Your AI Client":["Collega il tuo client AI"],"AI Client":["Cliente AI"],"Create an Application Password \u2014 ":["Crea una Password per l'Applicazione \u2014"],"Open Application Passwords":["Apri Password Applicazioni"],"Or use this CLI command to add the server quickly (you will still need to set the environment variables):":["Oppure usa questo comando CLI per aggiungere rapidamente il server (dovrai comunque impostare le variabili d'ambiente):"],"Copy the JSON config below into: ":["Copia la configurazione JSON qui sotto in:"],"Replace \"your-application-password\" with the password from Step 1.":["Sostituisci \"your-application-password\" con la password del Passo 1."],"WP_API_URL \u2014 your site's MCP endpoint. WP_API_USERNAME \u2014 your WordPress username. WP_API_PASSWORD \u2014 the application password you generated.":["WP_API_URL \u2014 l'endpoint MCP del tuo sito. WP_API_USERNAME \u2014 il tuo nome utente WordPress. WP_API_PASSWORD \u2014 la password dell'applicazione che hai generato."],"View setup docs":["Visualizza i documenti di configurazione"],"The MCP Adapter plugin is installed but not active. Activate it to configure MCP settings.":["Il plugin MCP Adapter \u00e8 installato ma non attivo. Attivalo per configurare le impostazioni MCP."],"The MCP Adapter plugin is required to connect AI clients to your forms. Download and install it from GitHub, then activate it.":["Il plugin MCP Adapter \u00e8 necessario per connettere i client AI ai tuoi moduli. Scaricalo e installalo da GitHub, quindi attivalo."],"Download the latest release from":["Scarica l'ultima versione da"],"Install the plugin via Plugins > Add New Plugin > Upload Plugin.":["Installa il plugin tramite Plugin > Aggiungi nuovo plugin > Carica plugin."],"Activate the MCP Adapter plugin.":["Attiva il plugin dell'adattatore MCP."],"Activating\u2026":["Attivazione in corso\u2026"],"Activate MCP Adapter":["Attiva l'adattatore MCP"],"Download MCP Adapter":["Scarica l'adattatore MCP"],"Experimental":["Sperimentale"],"Enable Abilities":["Abilita Abilit\u00e0"],"Register SureForms abilities with the WordPress Abilities API. When enabled, AI clients can list, read, create, edit, and delete your forms and entries. When disabled, no abilities are registered and AI clients cannot perform any actions on your forms.":["Registra le abilit\u00e0 di SureForms con l'API Abilities di WordPress. Quando \u00e8 abilitato, i client AI possono elencare, leggere, creare, modificare e eliminare i tuoi moduli e le voci. Quando \u00e8 disabilitato, nessuna abilit\u00e0 \u00e8 registrata e i client AI non possono eseguire alcuna azione sui tuoi moduli."],"Abilities API \u2014 Edit":["API delle abilit\u00e0 \u2014 Modifica"],"Enable Edit Abilities":["Abilita le capacit\u00e0 di modifica"],"When enabled, AI clients can create new forms, update form titles, fields, and settings, duplicate forms, and modify entry statuses. When disabled, these abilities are unregistered and AI clients can only read your data.":["Quando abilitato, i client AI possono creare nuovi moduli, aggiornare i titoli dei moduli, i campi e le impostazioni, duplicare i moduli e modificare gli stati delle voci. Quando disabilitato, queste capacit\u00e0 vengono annullate e i client AI possono solo leggere i tuoi dati."],"Abilities API \u2014 Delete":["API delle abilit\u00e0 \u2014 Elimina"],"Enable Delete Abilities":["Abilita Elimina Abilit\u00e0"],"When enabled, AI clients can permanently delete forms and entries. Deleted data cannot be recovered. When disabled, delete abilities are unregistered and AI clients cannot remove any data.":["Quando abilitato, i client AI possono eliminare permanentemente moduli e voci. I dati eliminati non possono essere recuperati. Quando disabilitato, le capacit\u00e0 di eliminazione vengono annullate e i client AI non possono rimuovere alcun dato."],"MCP Server":["Server MCP"],"Enable MCP Server":["Abilita server MCP"],"Creates a dedicated SureForms MCP endpoint that AI clients like Claude can connect to. When disabled, the endpoint is removed and external AI clients cannot discover or call any SureForms abilities.":["Crea un endpoint SureForms MCP dedicato a cui i clienti AI come Claude possono connettersi. Quando \u00e8 disabilitato, l'endpoint viene rimosso e i clienti AI esterni non possono scoprire o chiamare alcuna funzionalit\u00e0 di SureForms."],"Learn more":["Scopri di pi\u00f9"],"MCP Adapter Required":["Adattatore MCP richiesto"],"Google Maps":["Google Maps"],"Configure Google Maps API key for address autocomplete and map preview.":["Configura la chiave API di Google Maps per il completamento automatico degli indirizzi e l'anteprima della mappa."],"Help shape the future of SureForms":["Aiuta a plasmare il futuro di SureForms"],"Share how you use the plugin so we can build features that matter, fix issues faster, and make smarter decisions. ":["Condividi come utilizzi il plugin in modo che possiamo sviluppare funzionalit\u00e0 che contano, risolvere i problemi pi\u00f9 velocemente e prendere decisioni pi\u00f9 intelligenti."],"Enable Google Address Autocomplete":["Abilita il completamento automatico degli indirizzi di Google"],"Upgrade to the SureForms Business Plan to add Google-powered address autocomplete with interactive map preview to your forms.":["Passa al piano SureForms Business per aggiungere il completamento automatico degli indirizzi con tecnologia Google e l'anteprima della mappa interattiva ai tuoi moduli."],"Auto-suggest addresses as users type for faster, error-free submissions":["Suggerisci automaticamente gli indirizzi mentre gli utenti digitano per invii pi\u00f9 rapidi e senza errori"],"Show an interactive map preview with draggable pin for precise locations":["Mostra un'anteprima della mappa interattiva con un segnaposto trascinabile per posizioni precise"],"Automatically populate address fields like city, state, and postal code":["Compila automaticamente i campi dell'indirizzo come citt\u00e0, stato e codice postale"]}}} \ No newline at end of file diff --git a/languages/sureforms-it_IT.mo b/languages/sureforms-it_IT.mo index c52d3ac27..f20702528 100644 Binary files a/languages/sureforms-it_IT.mo and b/languages/sureforms-it_IT.mo differ diff --git a/languages/sureforms-it_IT.po b/languages/sureforms-it_IT.po index 0f9070feb..4dbff1017 100644 --- a/languages/sureforms-it_IT.po +++ b/languages/sureforms-it_IT.po @@ -16,7 +16,7 @@ msgstr "" #: sureforms.php #: admin/admin.php:320 #: admin/admin.php:321 -#: admin/admin.php:1812 +#: admin/admin.php:1813 #: inc/abilities/abilities-registrar.php:133 #: inc/gutenberg-hooks.php:109 #: inc/page-builders/bricks/elements/form-widget.php:67 @@ -82,7 +82,7 @@ msgstr "Nuovo modulo" #: admin/admin.php:601 #: admin/admin.php:602 -#: admin/admin.php:1849 +#: admin/admin.php:1850 #: inc/global-settings/email-summary.php:225 #: assets/build/dashboard.js:172 #: assets/build/entries.js:172 @@ -118,18 +118,18 @@ msgid "Nonce verification failed." msgstr "Verifica del nonce fallita." #. translators: %1$s: Opening anchor tag with URL, %2$s: Closing anchor tag, %3$s: SureForms Pro Plugin Name. -#: admin/admin.php:1441 +#: admin/admin.php:1442 #, php-format msgid "Please %1$sactivate%2$s your copy of %3$s to get new features, access support, receive update notifications, and more." msgstr "Per favore %1$sattiva%2$s la tua copia di %3$s per ottenere nuove funzionalità, accedere al supporto, ricevere notifiche di aggiornamento e altro ancora." #. translators: %1$s: SureForms version, %2$s: SureForms Pro Plugin Name, %3$s: SureForms Pro Version, %4$s: Anchor tag open, %5$s: Closing anchor tag. -#: admin/admin.php:1459 +#: admin/admin.php:1460 #, php-format msgid "SureForms %1$s requires minimum %2$s %3$s to work properly. Please update to the latest version from %4$shere%5$s." msgstr "SureForms %1$s richiede almeno %2$s %3$s per funzionare correttamente. Si prega di aggiornare all'ultima versione da %4$squi%5$s." -#: admin/admin.php:1848 +#: admin/admin.php:1849 #: inc/global-settings/email-summary.php:224 #: assets/build/entries.js:172 #: assets/build/payments.js:172 @@ -197,7 +197,7 @@ msgstr "Spazzatura" msgid "Published" msgstr "Pubblicato" -#: admin/admin.php:1840 +#: admin/admin.php:1841 msgid "View" msgstr "Visualizza" @@ -323,10 +323,10 @@ msgstr "Installato" msgid "You do not have permission to access this page." msgstr "Non hai il permesso di accedere a questa pagina." -#: admin/admin.php:1607 -#: admin/admin.php:1706 -#: admin/admin.php:1744 -#: admin/admin.php:1765 +#: admin/admin.php:1608 +#: admin/admin.php:1707 +#: admin/admin.php:1745 +#: admin/admin.php:1766 #: inc/admin-ajax.php:162 #: inc/payments/admin/admin-handler.php:638 #: inc/payments/stripe/admin-stripe-handler.php:80 @@ -339,7 +339,7 @@ msgid "Form ID is required." msgstr "L'ID del modulo è obbligatorio." #: inc/admin-ajax.php:182 -#: inc/form-submit.php:970 +#: inc/form-submit.php:972 msgid "Invalid form ID." msgstr "ID modulo non valido." @@ -513,11 +513,11 @@ msgstr "Casella di controllo" msgid "Required" msgstr "Richiesto" -#: inc/fields/dropdown-markup.php:83 +#: inc/fields/dropdown-markup.php:84 msgid "Dropdown" msgstr "Menu a tendina" -#: inc/fields/dropdown-markup.php:106 +#: inc/fields/dropdown-markup.php:108 #: inc/gutenberg-hooks.php:220 msgid "Select an option" msgstr "Seleziona un'opzione" @@ -545,7 +545,7 @@ msgstr "Acconsento a che questo sito web memorizzi le informazioni che ho inviat msgid "Please verify that you are not a robot." msgstr "Per favore verifica che tu non sia un robot." -#: inc/fields/multichoice-markup.php:113 +#: inc/fields/multichoice-markup.php:114 msgid "Multi Choice" msgstr "Scelta multipla" @@ -642,7 +642,7 @@ msgstr "Il valore deve essere unico." msgid "Sorry, you are not allowed to perform this action." msgstr "Spiacente, non ti è permesso eseguire questa azione." -#: admin/admin.php:1505 +#: admin/admin.php:1506 msgid "Rate SureForms" msgstr "Valuta SureForms" @@ -790,7 +790,7 @@ msgid "Site URL" msgstr "URL del sito" #: inc/smart-tags.php:111 -#: inc/smart-tags.php:142 +#: inc/smart-tags.php:143 msgid "Admin Email" msgstr "Email dell'amministratore" @@ -831,7 +831,7 @@ msgid "User Last Name" msgstr "Cognome utente" #: inc/smart-tags.php:122 -#: inc/smart-tags.php:143 +#: inc/smart-tags.php:144 msgid "User Email" msgstr "Email utente" @@ -855,11 +855,11 @@ msgstr "ID del post/pagina incorporato" msgid "Embedded Post/Page Title" msgstr "Titolo del Post/Pagina incorporato" -#: inc/smart-tags.php:128 +#: inc/smart-tags.php:129 msgid "Populate by GET Param" msgstr "Popola tramite parametro GET" -#: inc/smart-tags.php:129 +#: inc/smart-tags.php:130 msgid "Cookie Value" msgstr "Valore del cookie" @@ -8842,7 +8842,7 @@ msgstr "Riorganizza il blocco all'interno della Barra delle Azioni Rapide" #: admin/admin.php:409 #: admin/admin.php:410 -#: admin/admin.php:2021 +#: admin/admin.php:2022 #: assets/build/blocks.js:172 #: assets/build/dashboard.js:172 #: assets/build/entries.js:172 @@ -9185,7 +9185,7 @@ msgstr "Centro" msgid "Right" msgstr "Destra" -#: inc/form-submit.php:1147 +#: inc/form-submit.php:1149 #: assets/build/formEditor.js:172 #: assets/build/settings.js:172 msgid "Google reCAPTCHA" @@ -9195,7 +9195,7 @@ msgstr "Google reCAPTCHA" msgid "CloudFlare Turnstile" msgstr "CloudFlare Turnstile" -#: inc/form-submit.php:1151 +#: inc/form-submit.php:1153 #: assets/build/formEditor.js:172 #: assets/build/settings.js:172 msgid "hCaptcha" @@ -9487,7 +9487,7 @@ msgstr "Chiave del sito" msgid "Secret Key" msgstr "Chiave segreta" -#: inc/form-submit.php:1155 +#: inc/form-submit.php:1157 #: assets/build/settings.js:172 msgid "Cloudflare Turnstile" msgstr "Cloudflare Turnstile" @@ -10485,18 +10485,18 @@ msgstr "Sblocca Aggiungi Nota" msgid "With the SureForms Starter plan, enhance your submitted form entries by adding personalized notes for better clarity and tracking." msgstr "Con il piano SureForms Starter, migliora le tue voci di modulo inviate aggiungendo note personalizzate per una maggiore chiarezza e tracciabilità." -#: inc/form-submit.php:821 +#: inc/form-submit.php:823 msgid "Email notification passed to the sending server" msgstr "Notifica email passata al server di invio" #. translators: Here, %s is the comma separated emails list. -#: inc/form-submit.php:894 +#: inc/form-submit.php:896 #, php-format msgid "Email notification recipient: %s" msgstr "Destinatario della notifica email: %s" #. translators: Here, %1$s is the comma separated emails list and %2$s is error report ( if any ). -#: inc/form-submit.php:911 +#: inc/form-submit.php:913 #, php-format msgid "Email server was unable to send the email notification. Recipient: %1$s. Reason: %2$s" msgstr "Il server di posta elettronica non è riuscito a inviare la notifica email. Destinatario: %1$s. Motivo: %2$s" @@ -10740,24 +10740,24 @@ msgstr "Seleziona sfumatura" msgid "reCAPTCHA" msgstr "reCAPTCHA" -#: inc/form-submit.php:1091 +#: inc/form-submit.php:1093 msgid "Captcha validation failed. No error code provided." msgstr "La validazione del captcha non è riuscita. Nessun codice di errore fornito." -#: inc/form-submit.php:1092 +#: inc/form-submit.php:1094 msgid "Captcha validation failed." msgstr "La validazione del captcha è fallita." -#: inc/form-submit.php:1159 +#: inc/form-submit.php:1161 msgid "Unknown Captcha" msgstr "Captcha sconosciuto" -#: inc/form-submit.php:1160 +#: inc/form-submit.php:1162 msgid "Invalid captcha type." msgstr "Tipo di captcha non valido." #. translators: %s is the captcha title. -#: inc/form-submit.php:1173 +#: inc/form-submit.php:1175 #, php-format msgid "%s verification failed. Please contact your site administrator." msgstr "La verifica di %s non è riuscita. Si prega di contattare l'amministratore del sito." @@ -11274,28 +11274,28 @@ msgstr "Abilita la Notifica Amministratore" msgid "Admin notifications keep you informed about new form entries since your last visit." msgstr "Le notifiche dell'amministratore ti tengono informato sui nuovi invii di moduli dalla tua ultima visita." -#: admin/admin.php:1611 -#: admin/admin.php:1702 -#: admin/admin.php:1740 -#: admin/admin.php:1761 +#: admin/admin.php:1612 +#: admin/admin.php:1703 +#: admin/admin.php:1741 +#: admin/admin.php:1762 msgid "Unauthorized user." msgstr "Utente non autorizzato." #. translators: 1: opening span, 2: opening strong (inline), 3: closing strong, 4: closing span, 5: opening strong (block), 6: closing strong -#: admin/admin.php:1711 +#: admin/admin.php:1712 #, php-format msgid "%1$sGet started by %2$sbuilding your first form%3$s.%4$s%5$sExperience the power of our intuitive AI Form Builder%6$s" msgstr "%1$sInizia %2$scostruendo il tuo primo modulo%3$s.%4$s%5$sScopri la potenza del nostro intuitivo Costruttore di Moduli AI%6$s" -#: admin/admin.php:1722 +#: admin/admin.php:1723 msgid "SureForms is waiting for you!" msgstr "SureForms ti sta aspettando!" -#: admin/admin.php:1724 +#: admin/admin.php:1725 msgid "Build My First Form" msgstr "Crea il mio primo modulo" -#: admin/admin.php:1725 +#: admin/admin.php:1726 msgid "Dismiss" msgstr "Chiudi" @@ -11315,51 +11315,51 @@ msgstr "Accesso" msgid "Register" msgstr "Registrati" -#: admin/admin.php:1836 +#: admin/admin.php:1837 msgid "Recent Entries" msgstr "Voci recenti" -#: admin/admin.php:1837 +#: admin/admin.php:1838 msgid "( Last 7 days )" msgstr "( Ultimi 7 giorni )" -#: admin/admin.php:1957 +#: admin/admin.php:1958 msgid "Use Conditional Logic to show only what matters" msgstr "Usa la logica condizionale per mostrare solo ciò che conta" -#: admin/admin.php:1958 +#: admin/admin.php:1959 msgid "Split your form into steps to keep it easy" msgstr "Dividi il tuo modulo in passaggi per mantenerlo semplice" -#: admin/admin.php:1959 +#: admin/admin.php:1960 msgid "Let people upload files directly to your form" msgstr "Consenti alle persone di caricare file direttamente nel tuo modulo" -#: admin/admin.php:1960 +#: admin/admin.php:1961 msgid "Turn responses into downloadable PDFs automatically" msgstr "Trasforma automaticamente le risposte in PDF scaricabili" -#: admin/admin.php:1961 +#: admin/admin.php:1962 msgid "Let users sign with a simple signature field" msgstr "Consenti agli utenti di firmare con un semplice campo firma" -#: admin/admin.php:1962 +#: admin/admin.php:1963 msgid "Connect your form to other tools using webhooks" msgstr "Collega il tuo modulo ad altri strumenti utilizzando i webhook" -#: admin/admin.php:1963 +#: admin/admin.php:1964 msgid "Use Conversational Forms for a chat-like experience" msgstr "Usa moduli conversazionali per un'esperienza simile a una chat" -#: admin/admin.php:1964 +#: admin/admin.php:1965 msgid "Let users register or log in through your form" msgstr "Consenti agli utenti di registrarsi o accedere tramite il tuo modulo" -#: admin/admin.php:1965 +#: admin/admin.php:1966 msgid "Build forms that create WordPress user accounts" msgstr "Crea moduli che creano account utente WordPress" -#: admin/admin.php:1966 +#: admin/admin.php:1967 msgid "Add calculations to auto-total scores or prices" msgstr "Aggiungi calcoli per totalizzare automaticamente i punteggi o i prezzi" @@ -11917,6 +11917,7 @@ msgid "Unable to create ZIP file." msgstr "Impossibile creare il file ZIP." #: inc/entries.php:729 +#: inc/smart-tags.php:128 #: assets/build/entries.js:172 msgid "Entry ID" msgstr "ID di ingresso" @@ -11934,7 +11935,7 @@ msgid "Invalid form data structure provided." msgstr "Struttura dei dati del modulo non valida fornita." #: inc/fields/payment-markup.php:249 -#: inc/payments/payment-helper.php:538 +#: inc/payments/payment-helper.php:543 msgid "Subscription Plan" msgstr "Piano di abbonamento" @@ -12552,301 +12553,301 @@ msgstr "Dollaro di Hong Kong" msgid "Norwegian Krone" msgstr "Corona Norvegese" -#: inc/payments/payment-helper.php:259 +#: inc/payments/payment-helper.php:264 msgid "South Korean Won" msgstr "Won sudcoreano" -#: inc/payments/payment-helper.php:264 +#: inc/payments/payment-helper.php:269 msgid "Turkish Lira" msgstr "Lira Turca" -#: inc/payments/payment-helper.php:269 +#: inc/payments/payment-helper.php:274 msgid "Russian Ruble" msgstr "Rublo Russo" -#: inc/payments/payment-helper.php:274 +#: inc/payments/payment-helper.php:279 msgid "Indian Rupee" msgstr "Rupia indiana" -#: inc/payments/payment-helper.php:279 +#: inc/payments/payment-helper.php:284 msgid "Brazilian Real" msgstr "Real brasiliano" -#: inc/payments/payment-helper.php:284 +#: inc/payments/payment-helper.php:289 msgid "South African Rand" msgstr "Rand sudafricano" -#: inc/payments/payment-helper.php:289 +#: inc/payments/payment-helper.php:294 msgid "UAE Dirham" msgstr "Dirham degli Emirati Arabi Uniti" -#: inc/payments/payment-helper.php:294 +#: inc/payments/payment-helper.php:299 msgid "Philippine Peso" msgstr "Peso filippino" -#: inc/payments/payment-helper.php:299 +#: inc/payments/payment-helper.php:304 msgid "Indonesian Rupiah" msgstr "Rupia indonesiana" -#: inc/payments/payment-helper.php:304 +#: inc/payments/payment-helper.php:309 msgid "Malaysian Ringgit" msgstr "Ringgit malese" -#: inc/payments/payment-helper.php:309 +#: inc/payments/payment-helper.php:314 msgid "Thai Baht" msgstr "Baht thailandese" -#: inc/payments/payment-helper.php:314 +#: inc/payments/payment-helper.php:319 msgid "Burundian Franc" msgstr "Franco Burundese" -#: inc/payments/payment-helper.php:319 +#: inc/payments/payment-helper.php:324 msgid "Chilean Peso" msgstr "Peso cileno" -#: inc/payments/payment-helper.php:324 +#: inc/payments/payment-helper.php:329 msgid "Djiboutian Franc" msgstr "Franco Gibutiano" -#: inc/payments/payment-helper.php:329 +#: inc/payments/payment-helper.php:334 msgid "Guinean Franc" msgstr "Franco Guineano" -#: inc/payments/payment-helper.php:334 +#: inc/payments/payment-helper.php:339 msgid "Comorian Franc" msgstr "Franco Comoriano" -#: inc/payments/payment-helper.php:339 +#: inc/payments/payment-helper.php:344 msgid "Malagasy Ariary" msgstr "Ariary Malgascio" -#: inc/payments/payment-helper.php:344 +#: inc/payments/payment-helper.php:349 msgid "Paraguayan Guaraní" msgstr "Guaraní paraguaiano" -#: inc/payments/payment-helper.php:349 +#: inc/payments/payment-helper.php:354 msgid "Rwandan Franc" msgstr "Franco Ruandese" -#: inc/payments/payment-helper.php:354 +#: inc/payments/payment-helper.php:359 msgid "Ugandan Shilling" msgstr "Scellino Ugandese" -#: inc/payments/payment-helper.php:359 +#: inc/payments/payment-helper.php:364 msgid "Vietnamese Đồng" msgstr "Đồng vietnamita" -#: inc/payments/payment-helper.php:364 +#: inc/payments/payment-helper.php:369 msgid "Vanuatu Vatu" msgstr "Vatu di Vanuatu" -#: inc/payments/payment-helper.php:369 +#: inc/payments/payment-helper.php:374 msgid "Central African CFA Franc" msgstr "Franco CFA dell'Africa Centrale" -#: inc/payments/payment-helper.php:374 +#: inc/payments/payment-helper.php:379 msgid "West African CFA Franc" msgstr "Franco CFA dell'Africa Occidentale" -#: inc/payments/payment-helper.php:379 +#: inc/payments/payment-helper.php:384 msgid "CFP Franc" msgstr "Franco CFP" -#: inc/payments/payment-helper.php:475 +#: inc/payments/payment-helper.php:480 msgid "An unknown error occurred. Please try again or contact the site administrator." msgstr "Si è verificato un errore sconosciuto. Si prega di riprovare o contattare l'amministratore del sito." -#: inc/payments/payment-helper.php:477 +#: inc/payments/payment-helper.php:482 msgid "Payment is currently unavailable. Please contact the site administrator." msgstr "Il pagamento è attualmente non disponibile. Si prega di contattare l'amministratore del sito." -#: inc/payments/payment-helper.php:478 +#: inc/payments/payment-helper.php:483 msgid "Payment is currently unavailable. Please contact the site administrator to configure the payment amount." msgstr "Il pagamento è attualmente non disponibile. Si prega di contattare l'amministratore del sito per configurare l'importo del pagamento." -#: inc/payments/payment-helper.php:479 +#: inc/payments/payment-helper.php:484 msgid "Invalid payment amount" msgstr "Importo di pagamento non valido" -#: inc/payments/payment-helper.php:480 +#: inc/payments/payment-helper.php:485 msgid "Payment amount must be at least {symbol}{amount}." msgstr "L'importo del pagamento deve essere almeno {symbol}{amount}." -#: inc/payments/payment-helper.php:483 +#: inc/payments/payment-helper.php:488 msgid "Payment is currently unavailable. Please contact the site administrator to configure the customer name field." msgstr "Il pagamento non è attualmente disponibile. Si prega di contattare l'amministratore del sito per configurare il campo del nome cliente." -#: inc/payments/payment-helper.php:484 +#: inc/payments/payment-helper.php:489 msgid "Payment is currently unavailable. Please contact the site administrator to configure the customer email field." msgstr "Il pagamento non è attualmente disponibile. Si prega di contattare l'amministratore del sito per configurare il campo email del cliente." -#: inc/payments/payment-helper.php:485 +#: inc/payments/payment-helper.php:490 msgid "Please enter your name." msgstr "Per favore inserisci il tuo nome." -#: inc/payments/payment-helper.php:486 +#: inc/payments/payment-helper.php:491 msgid "Please enter your email." msgstr "Per favore, inserisci la tua email." -#: inc/payments/payment-helper.php:489 +#: inc/payments/payment-helper.php:494 msgid "Payment failed" msgstr "Pagamento non riuscito" -#: inc/payments/payment-helper.php:490 +#: inc/payments/payment-helper.php:495 msgid "Payment successful" msgstr "Pagamento riuscito" -#: inc/payments/payment-helper.php:494 -#: inc/payments/payment-helper.php:495 +#: inc/payments/payment-helper.php:499 +#: inc/payments/payment-helper.php:500 msgid "Your card was declined. Please try a different payment method or contact your bank." msgstr "La tua carta è stata rifiutata. Prova un metodo di pagamento diverso o contatta la tua banca." -#: inc/payments/payment-helper.php:496 +#: inc/payments/payment-helper.php:501 msgid "Your card has insufficient funds. Please use a different payment method." msgstr "La tua carta ha fondi insufficienti. Si prega di utilizzare un metodo di pagamento diverso." -#: inc/payments/payment-helper.php:497 +#: inc/payments/payment-helper.php:502 msgid "Your card was declined because it has been reported as lost. Please contact your bank." msgstr "La tua carta è stata rifiutata perché è stata segnalata come smarrita. Si prega di contattare la propria banca." -#: inc/payments/payment-helper.php:498 +#: inc/payments/payment-helper.php:503 msgid "Your card was declined because it has been reported as stolen. Please contact your bank." msgstr "La tua carta è stata rifiutata perché è stata segnalata come rubata. Si prega di contattare la propria banca." -#: inc/payments/payment-helper.php:499 +#: inc/payments/payment-helper.php:504 msgid "Your card has expired. Please use a different payment method." msgstr "La tua carta è scaduta. Si prega di utilizzare un metodo di pagamento diverso." -#: inc/payments/payment-helper.php:500 -#: inc/payments/payment-helper.php:521 +#: inc/payments/payment-helper.php:505 +#: inc/payments/payment-helper.php:526 msgid "Your card was declined. Please contact your bank for more information." msgstr "La tua carta è stata rifiutata. Si prega di contattare la propria banca per ulteriori informazioni." -#: inc/payments/payment-helper.php:501 +#: inc/payments/payment-helper.php:506 msgid "Your card was declined due to restrictions. Please contact your bank." msgstr "La tua carta è stata rifiutata a causa di restrizioni. Si prega di contattare la propria banca." -#: inc/payments/payment-helper.php:502 +#: inc/payments/payment-helper.php:507 msgid "Your card was declined due to a security violation. Please contact your bank." msgstr "La tua carta è stata rifiutata a causa di una violazione della sicurezza. Si prega di contattare la propria banca." -#: inc/payments/payment-helper.php:503 +#: inc/payments/payment-helper.php:508 msgid "Your card does not support this type of purchase. Please use a different payment method." msgstr "La tua carta non supporta questo tipo di acquisto. Si prega di utilizzare un metodo di pagamento diverso." -#: inc/payments/payment-helper.php:504 +#: inc/payments/payment-helper.php:509 msgid "A stop payment order has been placed on this card. Please contact your bank." msgstr "È stato emesso un ordine di blocco del pagamento su questa carta. Si prega di contattare la propria banca." -#: inc/payments/payment-helper.php:505 +#: inc/payments/payment-helper.php:510 msgid "A test card was used in a live environment. Please use a real card." msgstr "Una carta di prova è stata utilizzata in un ambiente reale. Si prega di utilizzare una carta reale." -#: inc/payments/payment-helper.php:506 +#: inc/payments/payment-helper.php:511 msgid "Your card has exceeded its withdrawal limit. Please contact your bank." msgstr "La tua carta ha superato il limite di prelievo. Si prega di contattare la propria banca." -#: inc/payments/payment-helper.php:507 +#: inc/payments/payment-helper.php:512 msgid "Your card's security code is incorrect. Please check and try again." msgstr "Il codice di sicurezza della tua carta è errato. Per favore controlla e riprova." -#: inc/payments/payment-helper.php:508 +#: inc/payments/payment-helper.php:513 msgid "Your card number is incorrect. Please check and try again." msgstr "Il numero della tua carta è errato. Per favore controlla e riprova." -#: inc/payments/payment-helper.php:509 +#: inc/payments/payment-helper.php:514 msgid "Your card's security code is invalid. Please check and try again." msgstr "Il codice di sicurezza della tua carta non è valido. Controlla e riprova." -#: inc/payments/payment-helper.php:510 +#: inc/payments/payment-helper.php:515 msgid "Your card's expiration month is invalid. Please check and try again." msgstr "Il mese di scadenza della tua carta non è valido. Si prega di controllare e riprovare." -#: inc/payments/payment-helper.php:511 +#: inc/payments/payment-helper.php:516 msgid "Your card's expiration year is invalid. Please check and try again." msgstr "L'anno di scadenza della tua carta non è valido. Si prega di controllare e riprovare." -#: inc/payments/payment-helper.php:512 +#: inc/payments/payment-helper.php:517 msgid "Your card number is invalid. Please check and try again." msgstr "Il numero della tua carta non è valido. Controlla e riprova." -#: inc/payments/payment-helper.php:515 +#: inc/payments/payment-helper.php:520 msgid "Your card is not supported for this transaction. Please use a different payment method." msgstr "La tua carta non è supportata per questa transazione. Si prega di utilizzare un metodo di pagamento diverso." -#: inc/payments/payment-helper.php:516 +#: inc/payments/payment-helper.php:521 msgid "Your card does not support the currency used for this transaction. Please use a different payment method." msgstr "La tua carta non supporta la valuta utilizzata per questa transazione. Si prega di utilizzare un metodo di pagamento diverso." -#: inc/payments/payment-helper.php:517 +#: inc/payments/payment-helper.php:522 msgid "A transaction with identical details was submitted recently. Please wait a moment and try again." msgstr "Una transazione con dettagli identici è stata inviata di recente. Attendere un momento e riprovare." -#: inc/payments/payment-helper.php:518 +#: inc/payments/payment-helper.php:523 msgid "The account associated with your card is invalid. Please contact your bank." msgstr "L'account associato alla tua carta non è valido. Si prega di contattare la propria banca." -#: inc/payments/payment-helper.php:519 +#: inc/payments/payment-helper.php:524 msgid "The payment amount is invalid. Please contact the site administrator." msgstr "L'importo del pagamento non è valido. Si prega di contattare l'amministratore del sito." -#: inc/payments/payment-helper.php:522 +#: inc/payments/payment-helper.php:527 msgid "Your card information needs to be updated. Please contact your bank." msgstr "I tuoi dati della carta devono essere aggiornati. Si prega di contattare la tua banca." -#: inc/payments/payment-helper.php:523 +#: inc/payments/payment-helper.php:528 msgid "The card cannot be used for this transaction. Please contact your bank." msgstr "La carta non può essere utilizzata per questa transazione. Si prega di contattare la propria banca." -#: inc/payments/payment-helper.php:524 +#: inc/payments/payment-helper.php:529 msgid "The transaction is not permitted. Please contact your bank." msgstr "La transazione non è consentita. Si prega di contattare la propria banca." -#: inc/payments/payment-helper.php:525 +#: inc/payments/payment-helper.php:530 msgid "Your card requires offline PIN authentication. Please try again." msgstr "La tua carta richiede l'autenticazione PIN offline. Per favore riprova." -#: inc/payments/payment-helper.php:526 +#: inc/payments/payment-helper.php:531 msgid "Your card requires PIN authentication. Please try again." msgstr "La tua carta richiede l'autenticazione tramite PIN. Per favore riprova." -#: inc/payments/payment-helper.php:527 +#: inc/payments/payment-helper.php:532 msgid "You have exceeded the maximum number of PIN attempts. Please contact your bank." msgstr "Hai superato il numero massimo di tentativi di inserimento del PIN. Si prega di contattare la propria banca." -#: inc/payments/payment-helper.php:528 +#: inc/payments/payment-helper.php:533 msgid "All authorizations for this card have been revoked. Please contact your bank." msgstr "Tutte le autorizzazioni per questa carta sono state revocate. Si prega di contattare la propria banca." -#: inc/payments/payment-helper.php:529 +#: inc/payments/payment-helper.php:534 msgid "The authorization for this transaction has been revoked. Please try again." msgstr "L'autorizzazione per questa transazione è stata revocata. Per favore, riprova." -#: inc/payments/payment-helper.php:530 +#: inc/payments/payment-helper.php:535 msgid "This transaction is not allowed. Please contact your bank." msgstr "Questa transazione non è consentita. Si prega di contattare la propria banca." -#: inc/payments/payment-helper.php:532 +#: inc/payments/payment-helper.php:537 msgid "Your card was declined. Your request was in live mode, but used a known test card." msgstr "La tua carta è stata rifiutata. La tua richiesta era in modalità live, ma è stata utilizzata una carta di test conosciuta." -#: inc/payments/payment-helper.php:533 +#: inc/payments/payment-helper.php:538 msgid "Your card was declined. Your request was in test mode, but used a non test card. For a list of valid test cards, visit: https://stripe.com/docs/testing." msgstr "La tua carta è stata rifiutata. La tua richiesta era in modalità di test, ma è stata utilizzata una carta non di test. Per un elenco di carte di test valide, visita: https://stripe.com/docs/testing." -#: inc/payments/payment-helper.php:536 +#: inc/payments/payment-helper.php:541 msgid "SureForms Subscription" msgstr "Abbonamento SureForms" -#: inc/payments/payment-helper.php:537 +#: inc/payments/payment-helper.php:542 msgid "SureForms Payment" msgstr "Pagamento SureForms" -#: inc/payments/payment-helper.php:539 +#: inc/payments/payment-helper.php:544 msgid "SureForms Customer" msgstr "Cliente SureForms" -#: inc/payments/payment-helper.php:559 +#: inc/payments/payment-helper.php:564 msgid "Unknown error" msgstr "Errore sconosciuto" @@ -14977,74 +14978,74 @@ msgstr "Impossibile creare un modulo duplicato." #: inc/payments/front-end.php:97 #: inc/payments/front-end.php:298 -#: inc/payments/payment-helper.php:589 +#: inc/payments/payment-helper.php:594 msgid "Invalid form configuration." msgstr "Configurazione del modulo non valida." -#: inc/payments/payment-helper.php:597 +#: inc/payments/payment-helper.php:602 msgid "Payment configuration not found for this form." msgstr "Configurazione di pagamento non trovata per questo modulo." #. translators: 1: expected currency, 2: received currency -#: inc/payments/payment-helper.php:608 +#: inc/payments/payment-helper.php:613 #, php-format msgid "Currency mismatch: expected %1$s, received %2$s." msgstr "Discrepanza di valuta: previsto %1$s, ricevuto %2$s." #. translators: 1: expected amount with currency -#: inc/payments/payment-helper.php:625 +#: inc/payments/payment-helper.php:630 #, php-format msgid "Payment amount must be exactly %1$s." msgstr "L'importo del pagamento deve essere esattamente %1$s." #. translators: 1: minimum amount with currency -#: inc/payments/payment-helper.php:636 +#: inc/payments/payment-helper.php:641 #, php-format msgid "Payment amount must be at least %1$s." msgstr "L'importo del pagamento deve essere almeno %1$s." -#: inc/payments/payment-helper.php:712 +#: inc/payments/payment-helper.php:717 msgid "Invalid payment verification parameters." msgstr "Parametri di verifica del pagamento non validi." -#: inc/payments/payment-helper.php:723 +#: inc/payments/payment-helper.php:728 msgid "Payment verification failed. Invalid payment intent." msgstr "Verifica del pagamento fallita. Intento di pagamento non valido." -#: inc/payments/payment-helper.php:809 -#: inc/payments/payment-helper.php:947 +#: inc/payments/payment-helper.php:814 +#: inc/payments/payment-helper.php:952 msgid "Variable amount field configuration not found." msgstr "Configurazione del campo dell'importo variabile non trovata." -#: inc/payments/payment-helper.php:830 +#: inc/payments/payment-helper.php:835 msgid "No payment options are configured for this field." msgstr "Nessuna opzione di pagamento è configurata per questo campo." #. translators: %s: currency code -#: inc/payments/payment-helper.php:856 +#: inc/payments/payment-helper.php:861 msgid "Invalid payment amount. Please select a valid amount from the available options." msgstr "Importo di pagamento non valido. Si prega di selezionare un importo valido tra le opzioni disponibili." #. translators: %1$s: expected amount, %2$s: payment amount -#: inc/payments/payment-helper.php:891 +#: inc/payments/payment-helper.php:896 msgid "Payment configuration not found." msgstr "Configurazione del pagamento non trovata." #. translators: %1$s: expected amount, %2$s: payment amount -#: inc/payments/payment-helper.php:907 -#: inc/payments/payment-helper.php:959 -#: inc/payments/payment-helper.php:995 +#: inc/payments/payment-helper.php:912 +#: inc/payments/payment-helper.php:964 +#: inc/payments/payment-helper.php:1000 #, php-format msgid "Payment amount mismatch. Expected %1$s, received %2$s." msgstr "Importo del pagamento non corrispondente. Previsto %1$s, ricevuto %2$s." -#: inc/payments/payment-helper.php:936 -#: inc/payments/payment-helper.php:986 +#: inc/payments/payment-helper.php:941 +#: inc/payments/payment-helper.php:991 msgid "Variable amount field value is required." msgstr "È richiesto il valore del campo importo variabile." #. translators: %1$s: minimum amount, %2$s: payment amount -#: inc/payments/payment-helper.php:1007 +#: inc/payments/payment-helper.php:1012 #, php-format msgid "Payment amount below minimum. Minimum: %1$s, received %2$s." msgstr "Importo del pagamento inferiore al minimo. Minimo: %1$s, ricevuto %2$s." @@ -15130,7 +15131,7 @@ msgstr "Gateway di pagamento non trovato." msgid "Refund processing is not supported for %s gateway." msgstr "Il rimborso non è supportato per il gateway %s." -#: inc/payments/payment-helper.php:969 +#: inc/payments/payment-helper.php:974 msgid "Number field configuration not found." msgstr "Configurazione del campo numerico non trovata." @@ -15249,12 +15250,12 @@ msgid "Stripe Settings" msgstr "Impostazioni di Stripe" #. translators: %1$s: SureForms version, %2$s: SureForms Pro Plugin Name, %3$s: SureForms Pro Version. -#: admin/admin.php:1376 +#: admin/admin.php:1377 #, php-format msgid "SureForms %1$s requires minimum %2$s %3$s to work properly. Please update to the latest version." msgstr "SureForms %1$s richiede almeno %2$s %3$s per funzionare correttamente. Si prega di aggiornare all'ultima versione." -#: admin/admin.php:1389 +#: admin/admin.php:1390 msgid "Update Now" msgstr "Aggiorna ora" @@ -15316,40 +15317,40 @@ msgstr "Seleziona la posizione del simbolo della valuta rispetto all'importo." msgid "Learn" msgstr "Impara" -#: admin/admin.php:1502 +#: admin/admin.php:1503 msgid "Amazing! SureForms is powering your forms and submissions - let's keep growing together!" msgstr "Incredibile! SureForms sta alimentando i tuoi moduli e le tue sottomissioni - continuiamo a crescere insieme!" -#: admin/admin.php:1503 +#: admin/admin.php:1504 msgid "If SureForms has been helpful, would you mind taking a moment to leave a 5-star review on WordPress.org?" msgstr "Se SureForms ti è stato utile, ti dispiacerebbe prendere un momento per lasciare una recensione a 5 stelle su WordPress.org?" -#: admin/admin.php:1506 -#: admin/admin.php:1550 +#: admin/admin.php:1507 +#: admin/admin.php:1551 msgid "Maybe later" msgstr "Forse più tardi" -#: admin/admin.php:1507 +#: admin/admin.php:1508 msgid "I already did" msgstr "L'ho già fatto" -#: admin/admin.php:1546 +#: admin/admin.php:1547 msgid "SureForms is ready to power your forms — explore what's possible!" msgstr "SureForms è pronto a potenziare i tuoi moduli — scopri cosa è possibile!" -#: admin/admin.php:1547 +#: admin/admin.php:1548 msgid "Manage your forms, track submissions, and discover features like AI Form Builder, payment integrations, and more from the SureForms dashboard." msgstr "Gestisci i tuoi moduli, traccia le sottomissioni e scopri funzionalità come AI Form Builder, integrazioni di pagamento e altro ancora dalla dashboard di SureForms." -#: admin/admin.php:1549 +#: admin/admin.php:1550 msgid "Go to Dashboard" msgstr "Vai al cruscotto" -#: admin/admin.php:1551 +#: admin/admin.php:1552 msgid "I already know" msgstr "Lo so già" -#: admin/admin.php:1631 +#: admin/admin.php:1632 msgid "Invalid parameters." msgstr "Parametri non validi." @@ -15739,7 +15740,7 @@ msgstr "Questo modulo non è ancora disponibile. Ricontrolla dopo l'orario di in #: inc/form-submit.php:99 #: inc/form-submit.php:400 #: inc/form-submit.php:445 -#: inc/form-submit.php:966 +#: inc/form-submit.php:968 #: inc/payments/front-end.php:77 #: inc/payments/front-end.php:258 #: inc/rest-api.php:98 @@ -15788,19 +15789,19 @@ msgstr "Si prega di controllare il modulo per eventuali errori." msgid "Your submission was flagged as spam. Please try again." msgstr "Il tuo invio è stato segnalato come spam. Per favore riprova." -#: inc/form-submit.php:649 +#: inc/form-submit.php:651 msgid "Unable to submit form. Please try again." msgstr "Impossibile inviare il modulo. Per favore riprova." -#: inc/form-submit.php:901 +#: inc/form-submit.php:903 msgid "No SMTP plugin detected. Please configure an SMTP plugin to enable email sending." msgstr "Nessun plugin SMTP rilevato. Si prega di configurare un plugin SMTP per abilitare l'invio di email." -#: inc/form-submit.php:902 +#: inc/form-submit.php:904 msgid "Email sending failed for an unknown reason." msgstr "Invio email fallito per una ragione sconosciuta." -#: inc/form-submit.php:941 +#: inc/form-submit.php:943 msgid "No emails were sent." msgstr "Nessuna email è stata inviata." @@ -15953,31 +15954,31 @@ msgstr "Impossibile eliminare i pagamenti. Si prega di riprovare." msgid "Unable to process refund. Please try again." msgstr "Impossibile elaborare il rimborso. Si prega di riprovare." -#: inc/payments/payment-helper.php:491 +#: inc/payments/payment-helper.php:496 msgid "Unable to complete payment. Please try again or contact support." msgstr "Impossibile completare il pagamento. Si prega di riprovare o contattare l'assistenza." -#: inc/payments/payment-helper.php:513 +#: inc/payments/payment-helper.php:518 msgid "Unable to process card. Please try again." msgstr "Impossibile elaborare la carta. Per favore riprova." -#: inc/payments/payment-helper.php:514 +#: inc/payments/payment-helper.php:519 msgid "Unable to process transaction. Please try again." msgstr "Impossibile elaborare la transazione. Si prega di riprovare." -#: inc/payments/payment-helper.php:520 +#: inc/payments/payment-helper.php:525 msgid "Unable to reach card issuer. Please try again later." msgstr "Impossibile contattare l'emittente della carta. Si prega di riprovare più tardi." -#: inc/payments/payment-helper.php:531 +#: inc/payments/payment-helper.php:536 msgid "Unable to process transaction. Please try again later." msgstr "Impossibile elaborare la transazione. Si prega di riprovare più tardi." -#: inc/payments/payment-helper.php:541 +#: inc/payments/payment-helper.php:546 msgid "Complete the form to view the amount." msgstr "Compila il modulo per visualizzare l'importo." -#: inc/payments/payment-helper.php:542 +#: inc/payments/payment-helper.php:547 msgid "Unable to create payment. Please contact support." msgstr "Impossibile creare il pagamento. Si prega di contattare il supporto." @@ -16693,7 +16694,7 @@ msgid "Invalid webhook signature." msgstr "Firma del webhook non valida." #: admin/admin.php:426 -#: admin/admin.php:974 +#: admin/admin.php:975 #: assets/build/formEditor.js:172 msgid "Quizzes" msgstr "Quiz" @@ -16707,11 +16708,11 @@ msgstr "Voci del quiz" msgid "New" msgstr "Nuovo" -#: inc/form-submit.php:975 +#: inc/form-submit.php:977 msgid "Invalid form." msgstr "Modulo non valido." -#: inc/form-submit.php:980 +#: inc/form-submit.php:982 msgid "Too many requests. Please try again shortly." msgstr "Troppe richieste. Si prega di riprovare a breve." @@ -17225,7 +17226,7 @@ msgstr "Seleziona questo per creare un quiz con domande a punteggio e risultati #: admin/admin.php:458 #: admin/admin.php:459 -#: admin/admin.php:979 +#: admin/admin.php:980 msgid "Survey Reports" msgstr "Rapporti di indagine" @@ -17491,7 +17492,7 @@ msgstr "Aiuta a plasmare il futuro di SureForms" #: assets/build/settings.js:172 msgid "Share how you use the plugin so we can build features that matter, fix issues faster, and make smarter decisions. " -msgstr "Condividi come utilizzi il plugin in modo che possiamo sviluppare funzionalità che contano, risolvere i problemi più velocemente e prendere decisioni più intelligenti. " +msgstr "Condividi come utilizzi il plugin in modo che possiamo sviluppare funzionalità che contano, risolvere i problemi più velocemente e prendere decisioni più intelligenti." #: assets/build/settings.js:172 msgid "Enable Google Address Autocomplete" @@ -17569,6 +17570,14 @@ msgstr "Mostra i risultati in tempo reale ai rispondenti" msgid "Perfect for feedback, polls, and research" msgstr "Perfetto per feedback, sondaggi e ricerche" +#: inc/payments/payment-helper.php:259 +msgid "Polish Złoty" +msgstr "Złoty polacco" + +#: assets/build/blocks.js:172 +msgid "Dynamic Default Value" +msgstr "Valore predefinito dinamico" + #: inc/post-types.php:205 msgctxt "post type general name" msgid "Forms" diff --git a/languages/sureforms-nl_NL-4b62e3f004dea2c587b5a3069263d994.json b/languages/sureforms-nl_NL-4b62e3f004dea2c587b5a3069263d994.json index 60ab44130..1d9668d18 100644 --- a/languages/sureforms-nl_NL-4b62e3f004dea2c587b5a3069263d994.json +++ b/languages/sureforms-nl_NL-4b62e3f004dea2c587b5a3069263d994.json @@ -1 +1 @@ -{"translation-revision-date":"2024-12-13T12:33:48+00:00","generator":"WP-CLI\/2.12.0","source":"assets\/build\/blocks.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"en","plural-forms":"nplurals=2; plural=(n != 1);"},"Settings":["Instellingen"],"Search":["Zoeken"],"Fields":["Velden"],"Image":["Afbeelding"],"Submit":["Indienen"],"Required":["Vereist"],"Form Title":["Formuliertitel"],"Show":["Tonen"],"Hide":["Verbergen"],"Edit Form":["Formulier bewerken"],"Icon":["Icoon"],"Desktop":["Bureaublad"],"Medium":["Middelgroot"],"Mobile":["Mobiel"],"Repeat":["Herhaal"],"Scroll":["Scrollen"],"Tablet":["Tablet"],"Basic":["Basis"],"(no title)":["(geen titel)"],"Select a Form":["Selecteer een formulier"],"No forms found\u2026":["Geen formulieren gevonden\u2026"],"Choose":["Kies"],"Create New":["Nieuw maken"],"Change Form":["Formulier wijzigen"],"This form has been deleted or is unavailable.":["Dit formulier is verwijderd of is niet beschikbaar."],"Form Settings":["Formulierinstellingen"],"Show Form Title on this Page":["Toon formulier titel op deze pagina"],"Note: For editing SureForms, please refer to the SureForms Editor - ":["Opmerking: Voor het bewerken van SureForms, raadpleeg de SureForms Editor -"],"Field preview":["Veldvoorbeeld"],"General":["Algemeen"],"Style":["Stijl"],"Advanced":["Geavanceerd"],"No tags available":["Geen tags beschikbaar"],"Device":["Apparaat"],"Select Shortcodes":["Selecteer shortcodes"],"Page Break Label":["Pagina-einde label"],"Next":["Volgende"],"Back":["Terug"],"Reset":["Resetten"],"Generic tags":["Algemene tags"],"Pixel":["Pixel"],"Em":["Em"],"Select Units":["Selecteer eenheden"],"%s units":["%s eenheden"],"Margin":["Marge"],"Attributes":["Kenmerken"],"Input Pattern":["Invoermuster"],"None":["Geen"],"(###) ###-####":["(###) ###-####"],"(##) ####-####":["(##) ####-####"],"27\/08\/2024":["27\/08\/2024"],"23:59:59":["23:59:59"],"27\/08\/2024 23:59:59":["27\/08\/2024 23:59:59"],"Custom":["Aangepast"],"Custom Mask":["Aangepast masker"],"Please check the documentation to manage custom input pattern ":["Controleer de documentatie om het aangepaste invoerpatroon te beheren"],"here":["hier"],"Default Value":["Standaardwaarde"],"Error Message":["Foutmelding"],"Help Text":["Helptekst"],"Number Format":["Getalnotatie"],"US Style (Eg: 9,999.99)":["VS-stijl (Bijv: 9.999,99)"],"EU Style (Eg: 9.999,99)":["EU-stijl (Bijv: 9.999,99)"],"Minimum Value":["Minimumwaarde"],"Maximum Value":["Maximale waarde"],"Please check the Minimum and Maximum value":["Controleer de minimum- en maximumwaarde"],"Enable Email Confirmation":["E-mailbevestiging inschakelen"],"Checked by Default":["Standaard aangevinkt"],"Error message":["Foutmelding"],"Checked by default":["Standaard aangevinkt"],"Please add a option props to MultiButtonsControl":["Voeg alstublieft een optie-eigenschap toe aan MultiButtonsControl"],"Icon Library":["Iconenbibliotheek"],"Close":["Sluiten"],"All Icons":["Alle pictogrammen"],"Other":["Anders"],"No Icons Found":["Geen pictogrammen gevonden"],"Insert Icon":["Pictogram invoegen"],"Change Icon":["Pictogram wijzigen"],"Choose Icon":["Kies pictogram"],"Confirm":["Bevestigen"],"Cancel":["Annuleren"],"Processing\u2026":["Bezig met verwerken\u2026"],"Select Video":["Selecteer video"],"Change Video":["Video wijzigen"],"Select Lottie Animation":["Selecteer Lottie-animatie"],"Change Lottie Animation":["Wijzig Lottie-animatie"],"Upload SVG":["SVG uploaden"],"Change SVG":["SVG wijzigen"],"Select Image":["Selecteer afbeelding"],"Change Image":["Afbeelding wijzigen"],"Upload SVG?":["SVG uploaden?"],"Upload SVG can be potentially risky. Are you sure?":["Het uploaden van SVG kan potentieel riskant zijn. Weet je het zeker?"],"Upload Anyway":["Toch uploaden"],"Bulk Add":["Bulk toevoegen"],"Bulk Add Options":["Bulkopties toevoegen"],"Enter each option on a new line.":["Voer elke optie op een nieuwe regel in."],"Insert Options":["Opties invoegen"],"Full Width":["Volledige breedte"],"Option Type":["Optietype"],"Edit Options":["Bewerk opties"],"Add New Option":["Nieuwe optie toevoegen"],"ADD":["TOEVOEGEN"],"Enable Auto Country Detection":["Automatische landdetectie inschakelen"],"%s Width":["%s Breedte"],"Upgrade":["Upgrade"],"Clear":["Duidelijk"],"Select Color":["Selecteer kleur"],"Primary Color":["Primaire kleur"],"Text Color":["Tekstkleur"],"Field Spacing":["Veldafstand"],"Small":["Klein"],"Large":["Groot"],"Left":["Links"],"Center":["Centrum"],"Right":["Rechts"],"Color":["Kleur"],"Background Color":["Achtergrondkleur"],"Auto":["Auto"],"Default":["Standaard"],"Normal":["Normaal"],"%":["%"],"Top":["Top"],"Bottom":["Onderkant"],"Width":["Breedte"],"Size":["Grootte"],"EM":["EM"],"Padding":["Opvulling"],"Color 1":["Kleur 1"],"Color 2":["Kleur 2"],"Type":["Type"],"Linear":["Lineair"],"Radial":["Radiaal"],"Location 1":["Locatie 1"],"Location 2":["Locatie 2"],"Angle":["Hoek"],"Classic":["Klassiek"],"Gradient":["Gradi\u00ebnt"],"Horizontal":["Horizontaal"],"Vertical":["Verticaal"],"Background":["Achtergrond"],"Cover":["Omslag"],"Contain":["Bevatten"],"Layout":["Indeling"],"Overlay":["Overlay"],"No Repeat":["Geen herhaling"],"Overlay Opacity":["Overlay-opaciteit"],"Conditional Logic":["Conditionele logica"],"Upgrade to the SureForms Starter Plan to create dynamic forms that adapt based on user input, offering a personalised and efficient form experience.":["Upgrade naar het SureForms Starter Plan om dynamische formulieren te maken die zich aanpassen op basis van gebruikersinvoer, en zo een gepersonaliseerde en effici\u00ebnte formulierervaring bieden."],"Enable Conditional Logic":["Voorwaardelijke logica inschakelen"],"this field if":["dit veld indien"],"Configure Conditions":["Voorwaarden configureren"],"Premium":["Premium"],"Overlay Type":["Overlaytype"],"Image Overlay Color":["Afbeelding Overlay Kleur"],"Image Position":["Afbeeldingspositie"],"Attachment":["Bijlage"],"Fixed":["Vast"],"Blend Mode":["Overvloeimodus"],"Multiply":["Vermenigvuldigen"],"Screen":["Scherm"],"Darken":["Verduisteren"],"Lighten":["Verlichten"],"Color Dodge":["Kleur Dodge"],"Saturation":["Verzadiging"],"Repeat-x":["Herhaal-x"],"Repeat-y":["Herhaal-y"],"PX":["PX"],"Button":["Knop"],"Prefix Label":["Voorvoegsel Label"],"Suffix Label":["Achtervoegsel Label"],"Border Radius":["Randstraal"],"Form Theme":["Formulier Thema"],"Select Gradient":["Selecteer verloop"],"Unlock Conditional Logic Editor":["Ontgrendel de voorwaardelijke logica-editor"],"Rich Text Editor":["Rich Text Editor"],"Read Only":["Alleen lezen"],"Select Country":["Selecteer land"],"Default Country":["Standaardland"],"Subscription":["Abonnement"],"One Time":["E\u00e9n keer"],"Unique Entry":["Unieke invoer"],"Maximum Characters":["Maximale tekens"],"Textarea Height":["Hoogte van tekstvak"],"Minimum Selections":["Minimale selecties"],"Maximum Selections":["Maximale selecties"],"Add Numeric Values to Options":["Numerieke waarden aan opties toevoegen"],"Single Choice Only":["Enkel \u00e9\u00e9n keuze"],"Enable Dropdown Search":["Dropdown zoeken inschakelen"],"Allow Multiple":["Meerdere toestaan"],"%1$s fields are required. Please configure these fields in the block settings.":["%1$s velden zijn verplicht. Configureer deze velden in de blokinstellingen."],"%1$s field is required. Please configure this field in the block settings.":["%1$s veld is verplicht. Configureer dit veld in de blokinstellingen."],"You need to configure a payment account to collect payments from this form. Please configure your payment provider to proceed.":["U moet een betaalrekening configureren om betalingen van dit formulier te innen. Configureer uw betalingsprovider om door te gaan."],"Configure Payment Account":["Betaalrekening configureren"],"This is a placeholder for the Payment block. The actual payment fields for your configured payment provider(s) will only appear when you preview or publish the form.":["Dit is een tijdelijke aanduiding voor het betalingsblok. De daadwerkelijke betalingsvelden voor uw geconfigureerde betalingsprovider(s) verschijnen alleen wanneer u het formulier bekijkt of publiceert."],"2 Payments":["2 Betalingen"],"3 Payments":["3 Betalingen"],"4 Payments":["4 Betalingen"],"5 Payments":["5 Betalingen"],"Never":["Nooit"],"Stop Subscription After":["Abonnement Stoppen Na"],"Choose when to automatically stop the subscription":["Kies wanneer het abonnement automatisch moet worden stopgezet"],"Number of Payments":["Aantal betalingen"],"Enter a number between 1 to 100":["Voer een getal in tussen 1 en 100"],"Form Field":["Formulier Veld"],"Payment Type":["Betalingstype"],"Subscription Plan Name":["Abonnementsplan Naam"],"Billing Interval":["Factureringsinterval"],"Daily":["Dagelijks"],"Weekly":["Wekelijks"],"Monthly":["Maandelijks"],"Quarterly":["Per kwartaal"],"Yearly":["Jaarlijks"],"Amount Type":["Bedragstype"],"Fixed Amount":["Vast Bedrag"],"Dynamic Amount":["Dynamisch Bedrag"],"Choose whether to charge a fixed amount or charge the amount based on user input in other form fields.":["Kies of u een vast bedrag wilt rekenen of het bedrag wilt berekenen op basis van gebruikersinvoer in andere formuliervelden."],"Set the exact amount you want to charge. Users won\u2019t be able to change it":["Stel het exacte bedrag in dat u wilt berekenen. Gebruikers kunnen het niet wijzigen"],"Choose Amount Field":["Kies bedragveld"],"Select a field\u2026":["Selecteer een veld\u2026"],"Pick a field from your form like a number, dropdown, or multichoice whose value should decide the payment amount.":["Kies een veld uit uw formulier, zoals een nummer, dropdown of meerkeuze, waarvan de waarde het betalingsbedrag moet bepalen."],"Minimum Amount":["Minimumbedrag"],"Set the minimum amount users can enter (0 for no minimum)":["Stel het minimale bedrag in dat gebruikers kunnen invoeren (0 voor geen minimum)"],"Customer Name Field (Required)":["Klantnaamveld (Verplicht)"],"Customer Name Field (Optional)":["Klantnaamveld (Optioneel)"],"Select the input field that contains the customer name (Required for subscriptions)":["Selecteer het invoerveld dat de klantnaam bevat (Vereist voor abonnementen)"],"Select the input field that contains the customer name":["Selecteer het invoerveld dat de klantnaam bevat"],"Customer Email Field (Required)":["Klant e-mailveld (verplicht)"],"Select the email field that contains the customer email":["Selecteer het e-mailveld dat het e-mailadres van de klant bevat"],"Payment":["Betaling"],"%s - Order ID":["%s - Bestel-ID"],"%s - Amount":["%s - Bedrag"],"%s - Customer Email":["%s - Klant e-mail"],"%s - Customer Name":["%s - Klantnaam"],"%s - Status":["%s - Status"],"Button Alignment":["Knopuitlijning"],"Placeholder":["Placeholder"],"Preselect this option":["Selecteer deze optie vooraf"],"Restrict Country Codes":["Beperk landcodes"],"Restriction Type":["Beperkingstype"],"Allow":["Toestaan"],"Block":["Blok"],"Select Allowed Countries":["Selecteer Toegestane Landen"],"Choose countries\u2026":["Kies landen\u2026"],"Choose which country codes users can select in the phone number field. Leave empty to allow all country codes.":["Kies welke landcodes gebruikers kunnen selecteren in het telefoonnummer veld. Laat leeg om alle landcodes toe te staan."],"Select Blocked Countries":["Selecteer geblokkeerde landen"],"These countries will be hidden from the dropdown.":["Deze landen worden verborgen in de dropdown."],"Bulk Edit":["Bulk bewerken"],"Select Layout":["Selecteer indeling"],"Number of Columns":["Aantal kolommen"],"Validation Message for Duplicate":["Validatiebericht voor duplicaat"],"Click here to insert a form":["Klik hier om een formulier in te voegen"],"Inherit Form's Original Style":["De oorspronkelijke stijl van het formulier overnemen"],"Text on Primary":["Tekst op primair"],"%s - Description":["%s - Beschrijving"],"Upgrade to Unlock":["Upgrade om te ontgrendelen"],"Custom (Premium)":["Aangepast (Premium)"],"Select a theme style for this form embed.":["Selecteer een themastijl voor deze formulierinsluiting."],"Colors":["Kleuren"],"Advanced Styling":["Geavanceerde styling"],"Unlock Custom Styling":["Aangepaste styling ontgrendelen"],"Switch to Custom Mode to take full control of your form's design and spacing.":["Schakel over naar Aangepaste Modus om volledige controle te krijgen over het ontwerp en de ruimte van uw formulier."],"Full color control (buttons, fields, text)":["Volledige kleurcontrole (knoppen, velden, tekst)"],"Row and column gap control":["Regel de rij- en kolomafstand"],"Field spacing and layout precision":["Veldafstand en lay-outprecisie"],"Complete button styling":["Voltooi knopstijl"],"Payment Description":["Betalingsomschrijving"],"Shown on payment receipts and in your payment dashboard (Stripe and PayPal). Leave blank to use the default.":["Weergegeven op betalingsbewijzen en in uw betalingsdashboard (Stripe en PayPal). Laat leeg om de standaard te gebruiken."],"Slug":["Naaktslak"],"Auto-generated on save":["Automatisch gegenereerd bij opslaan"],"This slug is already used by another field. It will revert to the previous value.":["Deze slug wordt al gebruikt door een ander veld. Het zal terugkeren naar de vorige waarde."],"Changing the slug may break form submissions, conditional logic, integrations, or any other feature currently referencing this slug. You will need to update all such references manually.":["Het wijzigen van de slug kan ervoor zorgen dat formulierinzendingen, voorwaardelijke logica, integraties of andere functies die momenteel naar deze slug verwijzen, niet meer werken. U moet al deze verwijzingen handmatig bijwerken."],"Field Slug":["Veld Slug"],"Location Services":["Locatiediensten"],"Unlock Address Autocomplete":["Adres automatisch aanvullen ontgrendelen"],"Upgrade to enable Google Address Autocomplete with interactive map preview, making address entry faster and more accurate for your users.":["Upgrade om Google Address Autocomplete met interactieve kaartvoorvertoning in te schakelen, waardoor het invoeren van adressen sneller en nauwkeuriger wordt voor uw gebruikers."],"Enable Google Autocomplete":["Google Autocomplete inschakelen"],"Show Interactive Map":["Interactieve kaart weergeven"],"Payments Per Page":["Betalingen Per Pagina"],"Show Subscriptions Section":["Abonnementssectie weergeven"],"Show a dedicated subscriptions section above payment history.":["Toon een speciale abonnementssectie boven de betalingsgeschiedenis."],"Payment Dashboard":["Betalingsdashboard"],"View your payments and manage subscriptions in a single dashboard.":["Bekijk uw betalingen en beheer abonnementen in \u00e9\u00e9n dashboard."]}}} \ No newline at end of file +{"translation-revision-date":"2024-12-13T12:33:48+00:00","generator":"WP-CLI\/2.12.0","source":"assets\/build\/blocks.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"en","plural-forms":"nplurals=2; plural=(n != 1);"},"Settings":["Instellingen"],"Search":["Zoeken"],"Fields":["Velden"],"Image":["Afbeelding"],"Submit":["Indienen"],"Required":["Vereist"],"Form Title":["Formuliertitel"],"Show":["Tonen"],"Hide":["Verbergen"],"Edit Form":["Formulier bewerken"],"Icon":["Icoon"],"Desktop":["Bureaublad"],"Medium":["Middelgroot"],"Mobile":["Mobiel"],"Repeat":["Herhaal"],"Scroll":["Scrollen"],"Tablet":["Tablet"],"Basic":["Basis"],"(no title)":["(geen titel)"],"Select a Form":["Selecteer een formulier"],"No forms found\u2026":["Geen formulieren gevonden\u2026"],"Choose":["Kies"],"Create New":["Nieuw maken"],"Change Form":["Formulier wijzigen"],"This form has been deleted or is unavailable.":["Dit formulier is verwijderd of is niet beschikbaar."],"Form Settings":["Formulierinstellingen"],"Show Form Title on this Page":["Toon formulier titel op deze pagina"],"Note: For editing SureForms, please refer to the SureForms Editor - ":["Opmerking: Voor het bewerken van SureForms, raadpleeg de SureForms Editor -"],"Field preview":["Veldvoorbeeld"],"General":["Algemeen"],"Style":["Stijl"],"Advanced":["Geavanceerd"],"No tags available":["Geen tags beschikbaar"],"Device":["Apparaat"],"Select Shortcodes":["Selecteer shortcodes"],"Page Break Label":["Pagina-einde label"],"Next":["Volgende"],"Back":["Terug"],"Reset":["Resetten"],"Generic tags":["Algemene tags"],"Pixel":["Pixel"],"Em":["Em"],"Select Units":["Selecteer eenheden"],"%s units":["%s eenheden"],"Margin":["Marge"],"Attributes":["Kenmerken"],"Input Pattern":["Invoermuster"],"None":["Geen"],"(###) ###-####":["(###) ###-####"],"(##) ####-####":["(##) ####-####"],"27\/08\/2024":["27\/08\/2024"],"23:59:59":["23:59:59"],"27\/08\/2024 23:59:59":["27\/08\/2024 23:59:59"],"Custom":["Aangepast"],"Custom Mask":["Aangepast masker"],"Please check the documentation to manage custom input pattern ":["Controleer de documentatie om het aangepaste invoerpatroon te beheren"],"here":["hier"],"Default Value":["Standaardwaarde"],"Error Message":["Foutmelding"],"Help Text":["Helptekst"],"Number Format":["Getalnotatie"],"US Style (Eg: 9,999.99)":["VS-stijl (Bijv: 9.999,99)"],"EU Style (Eg: 9.999,99)":["EU-stijl (Bijv: 9.999,99)"],"Minimum Value":["Minimumwaarde"],"Maximum Value":["Maximale waarde"],"Please check the Minimum and Maximum value":["Controleer de minimum- en maximumwaarde"],"Enable Email Confirmation":["E-mailbevestiging inschakelen"],"Checked by Default":["Standaard aangevinkt"],"Error message":["Foutmelding"],"Checked by default":["Standaard aangevinkt"],"Please add a option props to MultiButtonsControl":["Voeg alstublieft een optie-eigenschap toe aan MultiButtonsControl"],"Icon Library":["Iconenbibliotheek"],"Close":["Sluiten"],"All Icons":["Alle pictogrammen"],"Other":["Anders"],"No Icons Found":["Geen pictogrammen gevonden"],"Insert Icon":["Pictogram invoegen"],"Change Icon":["Pictogram wijzigen"],"Choose Icon":["Kies pictogram"],"Confirm":["Bevestigen"],"Cancel":["Annuleren"],"Processing\u2026":["Bezig met verwerken\u2026"],"Select Video":["Selecteer video"],"Change Video":["Video wijzigen"],"Select Lottie Animation":["Selecteer Lottie-animatie"],"Change Lottie Animation":["Wijzig Lottie-animatie"],"Upload SVG":["SVG uploaden"],"Change SVG":["SVG wijzigen"],"Select Image":["Selecteer afbeelding"],"Change Image":["Afbeelding wijzigen"],"Upload SVG?":["SVG uploaden?"],"Upload SVG can be potentially risky. Are you sure?":["Het uploaden van SVG kan potentieel riskant zijn. Weet je het zeker?"],"Upload Anyway":["Toch uploaden"],"Bulk Add":["Bulk toevoegen"],"Bulk Add Options":["Bulkopties toevoegen"],"Enter each option on a new line.":["Voer elke optie op een nieuwe regel in."],"Insert Options":["Opties invoegen"],"Full Width":["Volledige breedte"],"Option Type":["Optietype"],"Edit Options":["Bewerk opties"],"Add New Option":["Nieuwe optie toevoegen"],"ADD":["TOEVOEGEN"],"Enable Auto Country Detection":["Automatische landdetectie inschakelen"],"%s Width":["%s Breedte"],"Upgrade":["Upgrade"],"Clear":["Duidelijk"],"Select Color":["Selecteer kleur"],"Primary Color":["Primaire kleur"],"Text Color":["Tekstkleur"],"Field Spacing":["Veldafstand"],"Small":["Klein"],"Large":["Groot"],"Left":["Links"],"Center":["Centrum"],"Right":["Rechts"],"Color":["Kleur"],"Background Color":["Achtergrondkleur"],"Auto":["Auto"],"Default":["Standaard"],"Normal":["Normaal"],"%":["%"],"Top":["Top"],"Bottom":["Onderkant"],"Width":["Breedte"],"Size":["Grootte"],"EM":["EM"],"Padding":["Opvulling"],"Color 1":["Kleur 1"],"Color 2":["Kleur 2"],"Type":["Type"],"Linear":["Lineair"],"Radial":["Radiaal"],"Location 1":["Locatie 1"],"Location 2":["Locatie 2"],"Angle":["Hoek"],"Classic":["Klassiek"],"Gradient":["Gradi\u00ebnt"],"Horizontal":["Horizontaal"],"Vertical":["Verticaal"],"Background":["Achtergrond"],"Cover":["Omslag"],"Contain":["Bevatten"],"Layout":["Indeling"],"Overlay":["Overlay"],"No Repeat":["Geen herhaling"],"Overlay Opacity":["Overlay-opaciteit"],"Conditional Logic":["Conditionele logica"],"Upgrade to the SureForms Starter Plan to create dynamic forms that adapt based on user input, offering a personalised and efficient form experience.":["Upgrade naar het SureForms Starter Plan om dynamische formulieren te maken die zich aanpassen op basis van gebruikersinvoer, en zo een gepersonaliseerde en effici\u00ebnte formulierervaring bieden."],"Enable Conditional Logic":["Voorwaardelijke logica inschakelen"],"this field if":["dit veld indien"],"Configure Conditions":["Voorwaarden configureren"],"Premium":["Premium"],"Overlay Type":["Overlaytype"],"Image Overlay Color":["Afbeelding Overlay Kleur"],"Image Position":["Afbeeldingspositie"],"Attachment":["Bijlage"],"Fixed":["Vast"],"Blend Mode":["Overvloeimodus"],"Multiply":["Vermenigvuldigen"],"Screen":["Scherm"],"Darken":["Verduisteren"],"Lighten":["Verlichten"],"Color Dodge":["Kleur Dodge"],"Saturation":["Verzadiging"],"Repeat-x":["Herhaal-x"],"Repeat-y":["Herhaal-y"],"PX":["PX"],"Button":["Knop"],"Prefix Label":["Voorvoegsel Label"],"Suffix Label":["Achtervoegsel Label"],"Border Radius":["Randstraal"],"Form Theme":["Formulier Thema"],"Select Gradient":["Selecteer verloop"],"Unlock Conditional Logic Editor":["Ontgrendel de voorwaardelijke logica-editor"],"Rich Text Editor":["Rich Text Editor"],"Read Only":["Alleen lezen"],"Select Country":["Selecteer land"],"Default Country":["Standaardland"],"Subscription":["Abonnement"],"One Time":["E\u00e9n keer"],"Unique Entry":["Unieke invoer"],"Maximum Characters":["Maximale tekens"],"Textarea Height":["Hoogte van tekstvak"],"Minimum Selections":["Minimale selecties"],"Maximum Selections":["Maximale selecties"],"Add Numeric Values to Options":["Numerieke waarden aan opties toevoegen"],"Single Choice Only":["Enkel \u00e9\u00e9n keuze"],"Enable Dropdown Search":["Dropdown zoeken inschakelen"],"Allow Multiple":["Meerdere toestaan"],"%1$s fields are required. Please configure these fields in the block settings.":["%1$s velden zijn verplicht. Configureer deze velden in de blokinstellingen."],"%1$s field is required. Please configure this field in the block settings.":["%1$s veld is verplicht. Configureer dit veld in de blokinstellingen."],"You need to configure a payment account to collect payments from this form. Please configure your payment provider to proceed.":["U moet een betaalrekening configureren om betalingen van dit formulier te innen. Configureer uw betalingsprovider om door te gaan."],"Configure Payment Account":["Betaalrekening configureren"],"This is a placeholder for the Payment block. The actual payment fields for your configured payment provider(s) will only appear when you preview or publish the form.":["Dit is een tijdelijke aanduiding voor het betalingsblok. De daadwerkelijke betalingsvelden voor uw geconfigureerde betalingsprovider(s) verschijnen alleen wanneer u het formulier bekijkt of publiceert."],"2 Payments":["2 Betalingen"],"3 Payments":["3 Betalingen"],"4 Payments":["4 Betalingen"],"5 Payments":["5 Betalingen"],"Never":["Nooit"],"Stop Subscription After":["Abonnement Stoppen Na"],"Choose when to automatically stop the subscription":["Kies wanneer het abonnement automatisch moet worden stopgezet"],"Number of Payments":["Aantal betalingen"],"Enter a number between 1 to 100":["Voer een getal in tussen 1 en 100"],"Form Field":["Formulier Veld"],"Payment Type":["Betalingstype"],"Subscription Plan Name":["Abonnementsplan Naam"],"Billing Interval":["Factureringsinterval"],"Daily":["Dagelijks"],"Weekly":["Wekelijks"],"Monthly":["Maandelijks"],"Quarterly":["Per kwartaal"],"Yearly":["Jaarlijks"],"Amount Type":["Bedragstype"],"Fixed Amount":["Vast Bedrag"],"Dynamic Amount":["Dynamisch Bedrag"],"Choose whether to charge a fixed amount or charge the amount based on user input in other form fields.":["Kies of u een vast bedrag wilt rekenen of het bedrag wilt berekenen op basis van gebruikersinvoer in andere formuliervelden."],"Set the exact amount you want to charge. Users won\u2019t be able to change it":["Stel het exacte bedrag in dat u wilt berekenen. Gebruikers kunnen het niet wijzigen"],"Choose Amount Field":["Kies bedragveld"],"Select a field\u2026":["Selecteer een veld\u2026"],"Pick a field from your form like a number, dropdown, or multichoice whose value should decide the payment amount.":["Kies een veld uit uw formulier, zoals een nummer, dropdown of meerkeuze, waarvan de waarde het betalingsbedrag moet bepalen."],"Minimum Amount":["Minimumbedrag"],"Set the minimum amount users can enter (0 for no minimum)":["Stel het minimale bedrag in dat gebruikers kunnen invoeren (0 voor geen minimum)"],"Customer Name Field (Required)":["Klantnaamveld (Verplicht)"],"Customer Name Field (Optional)":["Klantnaamveld (Optioneel)"],"Select the input field that contains the customer name (Required for subscriptions)":["Selecteer het invoerveld dat de klantnaam bevat (Vereist voor abonnementen)"],"Select the input field that contains the customer name":["Selecteer het invoerveld dat de klantnaam bevat"],"Customer Email Field (Required)":["Klant e-mailveld (verplicht)"],"Select the email field that contains the customer email":["Selecteer het e-mailveld dat het e-mailadres van de klant bevat"],"Payment":["Betaling"],"%s - Order ID":["%s - Bestel-ID"],"%s - Amount":["%s - Bedrag"],"%s - Customer Email":["%s - Klant e-mail"],"%s - Customer Name":["%s - Klantnaam"],"%s - Status":["%s - Status"],"Button Alignment":["Knopuitlijning"],"Placeholder":["Placeholder"],"Preselect this option":["Selecteer deze optie vooraf"],"Restrict Country Codes":["Beperk landcodes"],"Restriction Type":["Beperkingstype"],"Allow":["Toestaan"],"Block":["Blok"],"Select Allowed Countries":["Selecteer Toegestane Landen"],"Choose countries\u2026":["Kies landen\u2026"],"Choose which country codes users can select in the phone number field. Leave empty to allow all country codes.":["Kies welke landcodes gebruikers kunnen selecteren in het telefoonnummer veld. Laat leeg om alle landcodes toe te staan."],"Select Blocked Countries":["Selecteer geblokkeerde landen"],"These countries will be hidden from the dropdown.":["Deze landen worden verborgen in de dropdown."],"Bulk Edit":["Bulk bewerken"],"Select Layout":["Selecteer indeling"],"Number of Columns":["Aantal kolommen"],"Validation Message for Duplicate":["Validatiebericht voor duplicaat"],"Click here to insert a form":["Klik hier om een formulier in te voegen"],"Inherit Form's Original Style":["De oorspronkelijke stijl van het formulier overnemen"],"Text on Primary":["Tekst op primair"],"%s - Description":["%s - Beschrijving"],"Upgrade to Unlock":["Upgrade om te ontgrendelen"],"Custom (Premium)":["Aangepast (Premium)"],"Select a theme style for this form embed.":["Selecteer een themastijl voor deze formulierinsluiting."],"Colors":["Kleuren"],"Advanced Styling":["Geavanceerde styling"],"Unlock Custom Styling":["Aangepaste styling ontgrendelen"],"Switch to Custom Mode to take full control of your form's design and spacing.":["Schakel over naar Aangepaste Modus om volledige controle te krijgen over het ontwerp en de ruimte van uw formulier."],"Full color control (buttons, fields, text)":["Volledige kleurcontrole (knoppen, velden, tekst)"],"Row and column gap control":["Regel de rij- en kolomafstand"],"Field spacing and layout precision":["Veldafstand en lay-outprecisie"],"Complete button styling":["Voltooi knopstijl"],"Payment Description":["Betalingsomschrijving"],"Shown on payment receipts and in your payment dashboard (Stripe and PayPal). Leave blank to use the default.":["Weergegeven op betalingsbewijzen en in uw betalingsdashboard (Stripe en PayPal). Laat leeg om de standaard te gebruiken."],"Slug":["Naaktslak"],"Auto-generated on save":["Automatisch gegenereerd bij opslaan"],"This slug is already used by another field. It will revert to the previous value.":["Deze slug wordt al gebruikt door een ander veld. Het zal terugkeren naar de vorige waarde."],"Changing the slug may break form submissions, conditional logic, integrations, or any other feature currently referencing this slug. You will need to update all such references manually.":["Het wijzigen van de slug kan ervoor zorgen dat formulierinzendingen, voorwaardelijke logica, integraties of andere functies die momenteel naar deze slug verwijzen, niet meer werken. U moet al deze verwijzingen handmatig bijwerken."],"Field Slug":["Veld Slug"],"Location Services":["Locatiediensten"],"Unlock Address Autocomplete":["Adres automatisch aanvullen ontgrendelen"],"Upgrade to enable Google Address Autocomplete with interactive map preview, making address entry faster and more accurate for your users.":["Upgrade om Google Address Autocomplete met interactieve kaartvoorvertoning in te schakelen, waardoor het invoeren van adressen sneller en nauwkeuriger wordt voor uw gebruikers."],"Enable Google Autocomplete":["Google Autocomplete inschakelen"],"Show Interactive Map":["Interactieve kaart weergeven"],"Payments Per Page":["Betalingen Per Pagina"],"Show Subscriptions Section":["Abonnementssectie weergeven"],"Show a dedicated subscriptions section above payment history.":["Toon een speciale abonnementssectie boven de betalingsgeschiedenis."],"Payment Dashboard":["Betalingsdashboard"],"View your payments and manage subscriptions in a single dashboard.":["Bekijk uw betalingen en beheer abonnementen in \u00e9\u00e9n dashboard."],"Dynamic Default Value":["Dynamische Standaardwaarde"]}}} \ No newline at end of file diff --git a/languages/sureforms-nl_NL-51635fe6489fc8288d603fe596c755ca.json b/languages/sureforms-nl_NL-51635fe6489fc8288d603fe596c755ca.json index c4ff58b77..1fc23baba 100644 --- a/languages/sureforms-nl_NL-51635fe6489fc8288d603fe596c755ca.json +++ b/languages/sureforms-nl_NL-51635fe6489fc8288d603fe596c755ca.json @@ -1 +1 @@ -{"translation-revision-date":"2024-12-13T12:33:48+00:00","generator":"WP-CLI\/2.12.0","source":"assets\/build\/settings.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"en","plural-forms":"nplurals=2; plural=(n != 1);"},"Dashboard":["Dashboard"],"Settings":["Instellingen"],"Entries":["Inzendingen"],"Activated":["Geactiveerd"],"Activate":["Activeren"],"Monday":["Maandag"],"Forms":["Formulieren"],"GitHub":["GitHub"],"General":["Algemeen"],"Other":["Anders"],"Confirm":["Bevestigen"],"Cancel":["Annuleren"],"Install":["Installeren"],"Plugin Installation failed, Please try again later.":["Installatie van de plugin mislukt, probeer het later opnieuw."],"Plugin activation failed, Please try again later.":["Plug-in activering mislukt, probeer het later opnieuw."],"Integrations":["Integraties"],"What's New?":["Wat is er nieuw?"],"Core":["Kern"],"Unlicensed":["Ongeautoriseerd"],"Connecting\u2026":["Verbinden\u2026"],"Install & Activate":["Installeren & Activeren"],"Send Email To":["E-mail verzenden naar"],"Google reCAPTCHA":["Google reCAPTCHA"],"hCaptcha":["hCaptcha"],"reCAPTCHA v2 Invisible":["reCAPTCHA v2 Onzichtbaar"],"reCAPTCHA v3":["reCAPTCHA v3"],"Validations":["Validaties"],"Spam Protection":["Spam Bescherming"],"If this option is turned on, the user's IP address will be saved with the form data":["Als deze optie is ingeschakeld, wordt het IP-adres van de gebruiker samen met de formuliergegevens opgeslagen"],"Enable Honeypot Security":["Honeypot-beveiliging inschakelen"],"Enable Honeypot Security for better spam protection":["Schakel Honeypot-beveiliging in voor betere spambeveiliging"],"%s represents the minimum selections needed. For example: \u201cMinimum 2 selections are required.\u201d":["%s vertegenwoordigt het minimum aantal selecties dat nodig is. Bijvoorbeeld: \"Minimaal 2 selecties zijn vereist.\""],"%s represents the maximum selections allowed. For example: \u201cMaximum 4 selections are allowed.\u201d":["%s vertegenwoordigt het maximale aantal toegestane selecties. Bijvoorbeeld: \"Maximaal 4 selecties zijn toegestaan.\""],"%s represents the minimum choices needed. For example: \u201cMinimum 1 selection is required.\u201d":["%s vertegenwoordigt de minimale keuzes die nodig zijn. Bijvoorbeeld: \"Minimaal 1 selectie is vereist.\""],"%s represents the maximum choices allowed. For example: \u201cMaximum 3 selections are allowed.\u201d":["%s vertegenwoordigt het maximale aantal toegestane keuzes. Bijvoorbeeld: \"Maximaal 3 selecties zijn toegestaan.\""]," Error Message":["Foutmelding"],"Email Summaries":["E-mailoverzichten"],"Tuesday":["Dinsdag"],"Wednesday":["Woensdag"],"Thursday":["Donderdag"],"Friday":["Vrijdag"],"Saturday":["Zaterdag"],"Sunday":["Zondag"],"Schedule Reports":["Rapporten plannen"],"Auto":["Auto"],"Light":["Licht"],"Dark":["Donker"],"Turnstile":["Draaikruis"],"Get Keys":["Verkrijg sleutels"],"Documentation":["Documentatie"],"Site Key":["Sitecode"],"Secret Key":["Geheime Sleutel"],"Cloudflare Turnstile":["Cloudflare Turnstile"],"Appearance Mode":["Weergavemodus"],"This field cannot be left blank.":["Dit veld mag niet leeg worden gelaten."],"Test Email":["Test e-mail"],"IP Logging":["IP-logboek"],"Honeypot":["Honeypot"],"Confirmation Email Mismatch Message":["Bevestigingsmail komt niet overeen bericht"],"%s represents the minimum input value. For example: \"Minimum value is 10.\"":["%s vertegenwoordigt de minimale invoerwaarde. Bijvoorbeeld: \"Minimale waarde is 10.\""],"%s represents the maximum input value. For example: \"Maximum value is 100.\"":["%s vertegenwoordigt de maximale invoerwaarde. Bijvoorbeeld: \"Maximale waarde is 100.\""],"OttoKit":["OttoKit"],"Connect with OttoKit":["Verbind met OttoKit"],"reCAPTCHA":["reCAPTCHA"],"Ready to go beyond free plan?":["Klaar om verder te gaan dan het gratis plan?"],"Upgrade now":["Nu upgraden"],"and unlock the full power of SureForms!":["en ontgrendel de volledige kracht van SureForms!"],"Upgrade SureForms":["Upgrade SureForms"],"Upgrade Now":["Nu upgraden"],"Form Validation":["Formuliercontrole"],"Required Error Messages":["Vereiste foutmeldingen"],"Other Error Messages":["Andere foutmeldingen"],"Input Field Unique":["Uniek invoerveld"],"Email Field Unique":["E-mailveld uniek"],"Invalid URL":["Ongeldige URL"],"Phone Field Unique":["Telefoonveld Uniek"],"Invalid Field Number Block":["Ongeldige Veldnummer Blok"],"Invalid Email":["Ongeldig e-mailadres"],"Number Minimum Value":["Nummer Minimumwaarde"],"Number Maximum Value":["Maximale waarde van het nummer"],"Dropdown Minimum Selections":["Minimale selecties in dropdown"],"Dropdown Maximum Selections":["Maximale selecties in dropdown"],"Multiple Choice Minimum Selections":["Meerdere keuzes minimumselecties"],"Multiple Choice Maximum Selections":["Meerdere Keuzes Maximale Selecties"],"Input Field":["Invoerveld"],"Email Field":["E-mailveld"],"URL Field":["URL-veld"],"Phone Field":["Telefoonveld"],"Textarea Field":["Tekstvakveld"],"Checkbox Field":["Selectievakjeveld"],"Dropdown Field":["Keuzelijstveld"],"Multiple Choice Field":["Meerkeuzeveld"],"Address Field":["Adresveld"],"Number Field":["Nummer veld"],"reCAPTCHA v2":["reCAPTCHA v2"],"To enable reCAPTCHA feature on your SureForms Please enable reCAPTCHA option on your blocks setting and select version. Add google reCAPTCHA secret and site key here. reCAPTCHA will be added to your page on front-end.":["Om de reCAPTCHA-functie op uw SureForms in te schakelen, schakelt u de reCAPTCHA-optie in uw blokinstellingen in en selecteert u de versie. Voeg hier de Google reCAPTCHA-secret en site key toe. reCAPTCHA wordt aan uw pagina toegevoegd aan de voorkant."],"Enter your %s here":["Voer hier uw %s in"],"To enable hCAPTCHA, please add your site key and secret key. Configure these settings within the individual form.":["Om hCAPTCHA in te schakelen, voeg uw site-sleutel en geheime sleutel toe. Configureer deze instellingen binnen het individuele formulier."],"To enable Cloudflare Turnstile, please add your site key and secret key. Configure these settings within the individual form.":["Om Cloudflare Turnstile in te schakelen, voeg uw site-sleutel en geheime sleutel toe. Configureer deze instellingen binnen het individuele formulier."],"Save":["Opslaan"],"Anonymous Analytics":["Anonieme Analytics"],"Learn More":["Meer informatie"],"Admin Notification":["Beheerdersmelding"],"Enable Admin Notification":["Beheerdermelding inschakelen"],"Admin notifications keep you informed about new form entries since your last visit.":["Beheerdersmeldingen houden je op de hoogte van nieuwe formulierinzendingen sinds je laatste bezoek."],"Continue":["Doorgaan"],"Get Started":["Beginnen"],"Integration":["Integratie"],"Connect Native Integrations with SureForms":["Verbind native integraties met SureForms"],"Unlock powerful integrations in the Premium plan to automate your workflows and connect SureForms directly with your favourite tools.":["Ontgrendel krachtige integraties in het Premium-plan om je workflows te automatiseren en SureForms direct te verbinden met je favoriete tools."],"Send form submissions straight to CRMs, email, and marketing platforms":["Stuur formulierinzendingen rechtstreeks naar CRM's, e-mail en marketingplatforms"],"Automate repetitive tasks with seamless data syncing":["Automatiseer repetitieve taken met naadloze gegevenssynchronisatie"],"Access exclusive native integrations for faster workflows":["Toegang tot exclusieve native integraties voor snellere workflows"],"Payments":["Betalingen"],"Stripe account disconnected successfully.":["Stripe-account succesvol losgekoppeld."],"Failed to create webhook.":["Het is niet gelukt om de webhook te maken."],"Failed to connect to Stripe.":["Verbinding met Stripe mislukt."],"Webhook":["Webhook"],"Knowledge Base":["Kennisbank"],"What\u2019s New":["Wat is er nieuw"],"delete":["verwijderen"],"Please type \"%s\" in the input box":["Typ alstublieft \"%s\" in het invoerveld"],"To confirm, type \"%s\" in the box below:":["Om te bevestigen, typ \"%s\" in het vak hieronder:"],"Type \"%s\"":["Typ \"%s\""],"Go to OttoKit Settings":["Ga naar OttoKit-instellingen"],"USD - US Dollar":["USD - Amerikaanse dollar"],"Payment Mode":["Betaalwijze"],"Test Mode":["Testmodus"],"Live Mode":["Live-modus"],"General Settings":["Algemene instellingen"],"Set up email summaries, admin alerts, and data preferences to manage your forms with ease.":["Stel e-mailsamenvattingen, beheerderswaarschuwingen en gegevensvoorkeuren in om uw formulieren eenvoudig te beheren."],"Customize default error messages shown when users submit invalid or incomplete form entries.":["Pas standaardfoutmeldingen aan die worden weergegeven wanneer gebruikers ongeldige of onvolledige formulierinvoer indienen."],"Enable spam protection for your forms using CAPTCHA services or honeypot security.":["Schakel spambeveiliging voor uw formulieren in met behulp van CAPTCHA-diensten of honeypot-beveiliging."],"Connect and manage your payment gateways to securely accept transactions through your forms.":["Verbind en beheer uw betalingsgateways om veilig transacties via uw formulieren te accepteren."],"1% transaction and payment gateway fees apply.":["1% transactiekosten en kosten voor de betalingsgateway zijn van toepassing."],"2.9% transaction and payment gateway fees apply. Activate license to reduce transaction fees.":["2,9% transactiekosten en kosten voor de betalingsgateway zijn van toepassing. Activeer de licentie om de transactiekosten te verlagen."],"2.9% transaction and payment gateway fees apply.":["Er zijn 2,9% transactiekosten en kosten voor de betalingsgateway van toepassing."],"Please visit %1$s, delete an unused webhook, then click below to retry.":["Bezoek %1$s, verwijder een ongebruikte webhook en klik vervolgens hieronder om het opnieuw te proberen."],"SureForms could not create a webhook because your Stripe account has run out of free slots. Webhooks are needed to receive updates about payments.":["SureForms kon geen webhook maken omdat je Stripe-account geen gratis slots meer heeft. Webhooks zijn nodig om updates over betalingen te ontvangen."],"Stripe Dashboard":["Stripe-dashboard"],"Creating\u2026":["Aan het cre\u00ebren\u2026"],"Create Webhook":["Webhook maken"],"Successfully connected to Stripe!":["Succesvol verbonden met Stripe!"],"Invalid response from server. Please try again.":["Ongeldig antwoord van de server. Probeer het alstublieft opnieuw."],"Failed to disconnect Stripe account.":["Het is niet gelukt om de Stripe-account los te koppelen."],"Webhook created successfully!":["Webhook succesvol aangemaakt!"],"Select Currency":["Selecteer valuta"],"Select the default currency for payment forms.":["Selecteer de standaardvaluta voor betalingsformulieren."],"Connection Status":["Verbindingsstatus"],"Disconnect Stripe Account":["Stripe-account loskoppelen"],"Are you sure you want to disconnect your Stripe account? This will stop all active payments, subscriptions, and form transactions connected to this account.":["Weet u zeker dat u uw Stripe-account wilt loskoppelen? Dit zal alle actieve betalingen, abonnementen en formuliertransacties die aan dit account zijn gekoppeld, stoppen."],"Disconnect":["Verbreken"],"Disconnecting\u2026":["Verbinding verbreken\u2026"],"Webhook successfully connected, all Stripe events are being tracked.":["Webhook succesvol verbonden, alle Stripe-evenementen worden gevolgd."],"Connect your Stripe account to start accepting payments through your forms.":["Verbind uw Stripe-account om betalingen via uw formulieren te accepteren."],"Connect to Stripe":["Verbinden met Stripe"],"Securely connect to Stripe with just a few clicks to begin accepting payments! ":["Maak veilig verbinding met Stripe met slechts een paar klikken om betalingen te accepteren!"],"Payment Methods":["Betaalmethoden"],"Test mode allows you to process payments without real charges. Switch to Live mode for actual transactions.":["Met de testmodus kunt u betalingen verwerken zonder echte kosten. Schakel over naar de Live-modus voor daadwerkelijke transacties."],"General Payment Settings":["Algemene betalingsinstellingen"],"These settings apply to all payment gateways.":["Deze instellingen zijn van toepassing op alle betalingsgateways."],"Stripe Settings":["Stripe-instellingen"],"Left ($100)":["Links ($100)"],"Right (100$)":["Rechts (100$)"],"Left Space ($ 100)":["Linker ruimte ($ 100)"],"Right Space (100 $)":["Rechterruimte (100 $)"],"Currency Sign Position":["Positie van het valutateken"],"Select the position of the currency symbol relative to the amount.":["Selecteer de positie van het valutasymbool ten opzichte van het bedrag."],"Learn":["Leren"],"Enable email summaries":["E-mailoverzichten inschakelen"],"Enable IP logging":["IP-logboek inschakelen"],"Turn on Admin Notification from here.":["Zet hier de beheerdersmelding aan."],"Send entries to 100+ popular apps.":["Verzend inzendingen naar meer dan 100 populaire apps."],"Build automated workflows that run instantly.":["Bouw geautomatiseerde workflows die direct worden uitgevoerd."],"Create custom app integrations using our Custom App feature.":["Maak aangepaste app-integraties met behulp van onze functie Aangepaste App."],"Keep your tools in sync automatically.":["Houd je gereedschap automatisch gesynchroniseerd."],"This will install and activate OttoKit on your WordPress site to enable automation features.":["Hiermee wordt OttoKit op je WordPress-site ge\u00efnstalleerd en geactiveerd om automatiseringsfuncties mogelijk te maken."],"Automate Your Forms with OttoKit":["Automatiseer uw formulieren met OttoKit"],"Every form submission should trigger something \u2014 a Slack alert, a CRM lead, a follow-up email, or a new row in Google Sheets.":["Elke formulierinzending zou iets moeten activeren \u2014 een Slack-melding, een CRM-lead, een opvolg-e-mail of een nieuwe rij in Google Sheets."],"MCP":["MCP"],"Configure AI client permissions and MCP server settings.":["Configureer AI-clientmachtigingen en MCP-serverinstellingen."],"View documentation":["Documentatie bekijken"],"Copy to clipboard":["Kopi\u00ebren naar klembord"],"Claude Desktop":["Claude Desktop"],"~\/Library\/Application Support\/Claude\/claude_desktop_config.json (macOS) or %APPDATA%\\Claude\\claude_desktop_config.json (Windows)":["~\/Library\/Application Support\/Claude\/claude_desktop_config.json (macOS) of %APPDATA%\\Claude\\claude_desktop_config.json (Windows)"],"Claude Code":["Claude Code"],".mcp.json (project) or ~\/.claude.json (global)":[".mcp.json (project) of ~\/.claude.json (globaal)"],"Cursor":["Cursor"],"~\/.cursor\/mcp.json":["~\/.cursor\/mcp.json"],"VS Code (Copilot)":["VS Code (Copilot)"],".vscode\/mcp.json (project) or settings.json > mcp.servers (global)":[".vscode\/mcp.json (project) of settings.json > mcp.servers (globaal)"],"~\/.continue\/config.yaml or config.json":["~\/.continue\/config.yaml of config.json"],"Your client's MCP configuration file":["Het MCP-configuratiebestand van uw klant"],"Connect Your AI Client":["Verbind uw AI-client"],"AI Client":["AI-client"],"Create an Application Password \u2014 ":["Maak een applicatiewachtwoord aan \u2014"],"Open Application Passwords":["Open toepassingswachtwoorden"],"Or use this CLI command to add the server quickly (you will still need to set the environment variables):":["Of gebruik deze CLI-opdracht om de server snel toe te voegen (je moet nog steeds de omgevingsvariabelen instellen):"],"Copy the JSON config below into: ":["Kopieer de JSON-configuratie hieronder naar:"],"Replace \"your-application-password\" with the password from Step 1.":["Vervang \"your-application-password\" door het wachtwoord uit Stap 1."],"WP_API_URL \u2014 your site's MCP endpoint. WP_API_USERNAME \u2014 your WordPress username. WP_API_PASSWORD \u2014 the application password you generated.":["WP_API_URL \u2014 het MCP-eindpunt van je site. WP_API_USERNAME \u2014 je WordPress-gebruikersnaam. WP_API_PASSWORD \u2014 het applicatiewachtwoord dat je hebt gegenereerd."],"View setup docs":["Bekijk de installatiehandleidingen"],"The MCP Adapter plugin is installed but not active. Activate it to configure MCP settings.":["De MCP Adapter-plugin is ge\u00efnstalleerd maar niet actief. Activeer het om MCP-instellingen te configureren."],"The MCP Adapter plugin is required to connect AI clients to your forms. Download and install it from GitHub, then activate it.":["De MCP Adapter-plugin is vereist om AI-clients met uw formulieren te verbinden. Download en installeer het vanaf GitHub en activeer het vervolgens."],"Download the latest release from":["Download de nieuwste release van"],"Install the plugin via Plugins > Add New Plugin > Upload Plugin.":["Installeer de plugin via Plugins > Nieuwe plugin toevoegen > Plugin uploaden."],"Activate the MCP Adapter plugin.":["Activeer de MCP Adapter-plugin."],"Activating\u2026":["Activeren\u2026"],"Activate MCP Adapter":["Activeer MCP-adapter"],"Download MCP Adapter":["Download MCP Adapter"],"Experimental":["Experimenteel"],"Enable Abilities":["Vermogen inschakelen"],"Register SureForms abilities with the WordPress Abilities API. When enabled, AI clients can list, read, create, edit, and delete your forms and entries. When disabled, no abilities are registered and AI clients cannot perform any actions on your forms.":["Registreer SureForms-mogelijkheden bij de WordPress Abilities API. Wanneer ingeschakeld, kunnen AI-clients uw formulieren en inzendingen opsommen, lezen, maken, bewerken en verwijderen. Wanneer uitgeschakeld, worden er geen mogelijkheden geregistreerd en kunnen AI-clients geen acties uitvoeren op uw formulieren."],"Abilities API \u2014 Edit":["Vaardigheden-API \u2014 Bewerken"],"Enable Edit Abilities":["Bewerkingsmogelijkheden inschakelen"],"When enabled, AI clients can create new forms, update form titles, fields, and settings, duplicate forms, and modify entry statuses. When disabled, these abilities are unregistered and AI clients can only read your data.":["Wanneer ingeschakeld, kunnen AI-clients nieuwe formulieren maken, formuliertitels, velden en instellingen bijwerken, formulieren dupliceren en de status van inzendingen wijzigen. Wanneer uitgeschakeld, worden deze mogelijkheden uitgeschakeld en kunnen AI-clients alleen uw gegevens lezen."],"Abilities API \u2014 Delete":["Vaardigheden API \u2014 Verwijderen"],"Enable Delete Abilities":["Verwijdermogelijkheden inschakelen"],"When enabled, AI clients can permanently delete forms and entries. Deleted data cannot be recovered. When disabled, delete abilities are unregistered and AI clients cannot remove any data.":["Wanneer ingeschakeld, kunnen AI-clients formulieren en invoer permanent verwijderen. Verwijderde gegevens kunnen niet worden hersteld. Wanneer uitgeschakeld, worden verwijdermogelijkheden uitgeschakeld en kunnen AI-clients geen gegevens verwijderen."],"MCP Server":["MCP-server"],"Enable MCP Server":["MCP-server inschakelen"],"Creates a dedicated SureForms MCP endpoint that AI clients like Claude can connect to. When disabled, the endpoint is removed and external AI clients cannot discover or call any SureForms abilities.":["Maakt een speciale SureForms MCP-eindpunt aan waarmee AI-clients zoals Claude verbinding kunnen maken. Wanneer deze is uitgeschakeld, wordt het eindpunt verwijderd en kunnen externe AI-clients geen SureForms-mogelijkheden ontdekken of oproepen."],"Learn more":["Meer informatie"],"MCP Adapter Required":["MCP-adapter vereist"],"Google Maps":["Google Maps"],"Configure Google Maps API key for address autocomplete and map preview.":["Configureer de Google Maps API-sleutel voor adres-autocompletie en kaartvoorbeeld."],"Help shape the future of SureForms":["Help de toekomst van SureForms vormgeven"],"Share how you use the plugin so we can build features that matter, fix issues faster, and make smarter decisions. ":["Deel hoe je de plugin gebruikt, zodat we functies kunnen ontwikkelen die ertoe doen, problemen sneller kunnen oplossen en slimmere beslissingen kunnen nemen. "],"Enable Google Address Autocomplete":["Google-adres automatisch aanvullen inschakelen"],"Upgrade to the SureForms Business Plan to add Google-powered address autocomplete with interactive map preview to your forms.":["Upgrade naar het SureForms Business Plan om Google-aangedreven adres-autocompletie met interactieve kaartvoorvertoning aan uw formulieren toe te voegen."],"Auto-suggest addresses as users type for faster, error-free submissions":["Stel automatisch adressen voor terwijl gebruikers typen voor snellere, foutloze inzendingen"],"Show an interactive map preview with draggable pin for precise locations":["Toon een interactieve kaartvoorvertoning met een sleepbare pin voor precieze locaties"],"Automatically populate address fields like city, state, and postal code":["Automatisch adresvelden zoals stad, staat en postcode invullen"]}}} \ No newline at end of file +{"translation-revision-date":"2024-12-13T12:33:48+00:00","generator":"WP-CLI\/2.12.0","source":"assets\/build\/settings.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"en","plural-forms":"nplurals=2; plural=(n != 1);"},"Dashboard":["Dashboard"],"Settings":["Instellingen"],"Entries":["Inzendingen"],"Activated":["Geactiveerd"],"Activate":["Activeren"],"Monday":["Maandag"],"Forms":["Formulieren"],"GitHub":["GitHub"],"General":["Algemeen"],"Other":["Anders"],"Confirm":["Bevestigen"],"Cancel":["Annuleren"],"Install":["Installeren"],"Plugin Installation failed, Please try again later.":["Installatie van de plugin mislukt, probeer het later opnieuw."],"Plugin activation failed, Please try again later.":["Plug-in activering mislukt, probeer het later opnieuw."],"Integrations":["Integraties"],"What's New?":["Wat is er nieuw?"],"Core":["Kern"],"Unlicensed":["Ongeautoriseerd"],"Connecting\u2026":["Verbinden\u2026"],"Install & Activate":["Installeren & Activeren"],"Send Email To":["E-mail verzenden naar"],"Google reCAPTCHA":["Google reCAPTCHA"],"hCaptcha":["hCaptcha"],"reCAPTCHA v2 Invisible":["reCAPTCHA v2 Onzichtbaar"],"reCAPTCHA v3":["reCAPTCHA v3"],"Validations":["Validaties"],"Spam Protection":["Spam Bescherming"],"If this option is turned on, the user's IP address will be saved with the form data":["Als deze optie is ingeschakeld, wordt het IP-adres van de gebruiker samen met de formuliergegevens opgeslagen"],"Enable Honeypot Security":["Honeypot-beveiliging inschakelen"],"Enable Honeypot Security for better spam protection":["Schakel Honeypot-beveiliging in voor betere spambeveiliging"],"%s represents the minimum selections needed. For example: \u201cMinimum 2 selections are required.\u201d":["%s vertegenwoordigt het minimum aantal selecties dat nodig is. Bijvoorbeeld: \"Minimaal 2 selecties zijn vereist.\""],"%s represents the maximum selections allowed. For example: \u201cMaximum 4 selections are allowed.\u201d":["%s vertegenwoordigt het maximale aantal toegestane selecties. Bijvoorbeeld: \"Maximaal 4 selecties zijn toegestaan.\""],"%s represents the minimum choices needed. For example: \u201cMinimum 1 selection is required.\u201d":["%s vertegenwoordigt de minimale keuzes die nodig zijn. Bijvoorbeeld: \"Minimaal 1 selectie is vereist.\""],"%s represents the maximum choices allowed. For example: \u201cMaximum 3 selections are allowed.\u201d":["%s vertegenwoordigt het maximale aantal toegestane keuzes. Bijvoorbeeld: \"Maximaal 3 selecties zijn toegestaan.\""]," Error Message":["Foutmelding"],"Email Summaries":["E-mailoverzichten"],"Tuesday":["Dinsdag"],"Wednesday":["Woensdag"],"Thursday":["Donderdag"],"Friday":["Vrijdag"],"Saturday":["Zaterdag"],"Sunday":["Zondag"],"Schedule Reports":["Rapporten plannen"],"Auto":["Auto"],"Light":["Licht"],"Dark":["Donker"],"Turnstile":["Draaikruis"],"Get Keys":["Verkrijg sleutels"],"Documentation":["Documentatie"],"Site Key":["Sitecode"],"Secret Key":["Geheime Sleutel"],"Cloudflare Turnstile":["Cloudflare Turnstile"],"Appearance Mode":["Weergavemodus"],"This field cannot be left blank.":["Dit veld mag niet leeg worden gelaten."],"Test Email":["Test e-mail"],"IP Logging":["IP-logboek"],"Honeypot":["Honeypot"],"Confirmation Email Mismatch Message":["Bevestigingsmail komt niet overeen bericht"],"%s represents the minimum input value. For example: \"Minimum value is 10.\"":["%s vertegenwoordigt de minimale invoerwaarde. Bijvoorbeeld: \"Minimale waarde is 10.\""],"%s represents the maximum input value. For example: \"Maximum value is 100.\"":["%s vertegenwoordigt de maximale invoerwaarde. Bijvoorbeeld: \"Maximale waarde is 100.\""],"OttoKit":["OttoKit"],"Connect with OttoKit":["Verbind met OttoKit"],"reCAPTCHA":["reCAPTCHA"],"Ready to go beyond free plan?":["Klaar om verder te gaan dan het gratis plan?"],"Upgrade now":["Nu upgraden"],"and unlock the full power of SureForms!":["en ontgrendel de volledige kracht van SureForms!"],"Upgrade SureForms":["Upgrade SureForms"],"Upgrade Now":["Nu upgraden"],"Form Validation":["Formuliercontrole"],"Required Error Messages":["Vereiste foutmeldingen"],"Other Error Messages":["Andere foutmeldingen"],"Input Field Unique":["Uniek invoerveld"],"Email Field Unique":["E-mailveld uniek"],"Invalid URL":["Ongeldige URL"],"Phone Field Unique":["Telefoonveld Uniek"],"Invalid Field Number Block":["Ongeldige Veldnummer Blok"],"Invalid Email":["Ongeldig e-mailadres"],"Number Minimum Value":["Nummer Minimumwaarde"],"Number Maximum Value":["Maximale waarde van het nummer"],"Dropdown Minimum Selections":["Minimale selecties in dropdown"],"Dropdown Maximum Selections":["Maximale selecties in dropdown"],"Multiple Choice Minimum Selections":["Meerdere keuzes minimumselecties"],"Multiple Choice Maximum Selections":["Meerdere Keuzes Maximale Selecties"],"Input Field":["Invoerveld"],"Email Field":["E-mailveld"],"URL Field":["URL-veld"],"Phone Field":["Telefoonveld"],"Textarea Field":["Tekstvakveld"],"Checkbox Field":["Selectievakjeveld"],"Dropdown Field":["Keuzelijstveld"],"Multiple Choice Field":["Meerkeuzeveld"],"Address Field":["Adresveld"],"Number Field":["Nummer veld"],"reCAPTCHA v2":["reCAPTCHA v2"],"To enable reCAPTCHA feature on your SureForms Please enable reCAPTCHA option on your blocks setting and select version. Add google reCAPTCHA secret and site key here. reCAPTCHA will be added to your page on front-end.":["Om de reCAPTCHA-functie op uw SureForms in te schakelen, schakelt u de reCAPTCHA-optie in uw blokinstellingen in en selecteert u de versie. Voeg hier de Google reCAPTCHA-secret en site key toe. reCAPTCHA wordt aan uw pagina toegevoegd aan de voorkant."],"Enter your %s here":["Voer hier uw %s in"],"To enable hCAPTCHA, please add your site key and secret key. Configure these settings within the individual form.":["Om hCAPTCHA in te schakelen, voeg uw site-sleutel en geheime sleutel toe. Configureer deze instellingen binnen het individuele formulier."],"To enable Cloudflare Turnstile, please add your site key and secret key. Configure these settings within the individual form.":["Om Cloudflare Turnstile in te schakelen, voeg uw site-sleutel en geheime sleutel toe. Configureer deze instellingen binnen het individuele formulier."],"Save":["Opslaan"],"Anonymous Analytics":["Anonieme Analytics"],"Learn More":["Meer informatie"],"Admin Notification":["Beheerdersmelding"],"Enable Admin Notification":["Beheerdermelding inschakelen"],"Admin notifications keep you informed about new form entries since your last visit.":["Beheerdersmeldingen houden je op de hoogte van nieuwe formulierinzendingen sinds je laatste bezoek."],"Continue":["Doorgaan"],"Get Started":["Beginnen"],"Integration":["Integratie"],"Connect Native Integrations with SureForms":["Verbind native integraties met SureForms"],"Unlock powerful integrations in the Premium plan to automate your workflows and connect SureForms directly with your favourite tools.":["Ontgrendel krachtige integraties in het Premium-plan om je workflows te automatiseren en SureForms direct te verbinden met je favoriete tools."],"Send form submissions straight to CRMs, email, and marketing platforms":["Stuur formulierinzendingen rechtstreeks naar CRM's, e-mail en marketingplatforms"],"Automate repetitive tasks with seamless data syncing":["Automatiseer repetitieve taken met naadloze gegevenssynchronisatie"],"Access exclusive native integrations for faster workflows":["Toegang tot exclusieve native integraties voor snellere workflows"],"Payments":["Betalingen"],"Stripe account disconnected successfully.":["Stripe-account succesvol losgekoppeld."],"Failed to create webhook.":["Het is niet gelukt om de webhook te maken."],"Failed to connect to Stripe.":["Verbinding met Stripe mislukt."],"Webhook":["Webhook"],"Knowledge Base":["Kennisbank"],"What\u2019s New":["Wat is er nieuw"],"delete":["verwijderen"],"Please type \"%s\" in the input box":["Typ alstublieft \"%s\" in het invoerveld"],"To confirm, type \"%s\" in the box below:":["Om te bevestigen, typ \"%s\" in het vak hieronder:"],"Type \"%s\"":["Typ \"%s\""],"Go to OttoKit Settings":["Ga naar OttoKit-instellingen"],"USD - US Dollar":["USD - Amerikaanse dollar"],"Payment Mode":["Betaalwijze"],"Test Mode":["Testmodus"],"Live Mode":["Live-modus"],"General Settings":["Algemene instellingen"],"Set up email summaries, admin alerts, and data preferences to manage your forms with ease.":["Stel e-mailsamenvattingen, beheerderswaarschuwingen en gegevensvoorkeuren in om uw formulieren eenvoudig te beheren."],"Customize default error messages shown when users submit invalid or incomplete form entries.":["Pas standaardfoutmeldingen aan die worden weergegeven wanneer gebruikers ongeldige of onvolledige formulierinvoer indienen."],"Enable spam protection for your forms using CAPTCHA services or honeypot security.":["Schakel spambeveiliging voor uw formulieren in met behulp van CAPTCHA-diensten of honeypot-beveiliging."],"Connect and manage your payment gateways to securely accept transactions through your forms.":["Verbind en beheer uw betalingsgateways om veilig transacties via uw formulieren te accepteren."],"1% transaction and payment gateway fees apply.":["1% transactiekosten en kosten voor de betalingsgateway zijn van toepassing."],"2.9% transaction and payment gateway fees apply. Activate license to reduce transaction fees.":["2,9% transactiekosten en kosten voor de betalingsgateway zijn van toepassing. Activeer de licentie om de transactiekosten te verlagen."],"2.9% transaction and payment gateway fees apply.":["Er zijn 2,9% transactiekosten en kosten voor de betalingsgateway van toepassing."],"Please visit %1$s, delete an unused webhook, then click below to retry.":["Bezoek %1$s, verwijder een ongebruikte webhook en klik vervolgens hieronder om het opnieuw te proberen."],"SureForms could not create a webhook because your Stripe account has run out of free slots. Webhooks are needed to receive updates about payments.":["SureForms kon geen webhook maken omdat je Stripe-account geen gratis slots meer heeft. Webhooks zijn nodig om updates over betalingen te ontvangen."],"Stripe Dashboard":["Stripe-dashboard"],"Creating\u2026":["Aan het cre\u00ebren\u2026"],"Create Webhook":["Webhook maken"],"Successfully connected to Stripe!":["Succesvol verbonden met Stripe!"],"Invalid response from server. Please try again.":["Ongeldig antwoord van de server. Probeer het alstublieft opnieuw."],"Failed to disconnect Stripe account.":["Het is niet gelukt om de Stripe-account los te koppelen."],"Webhook created successfully!":["Webhook succesvol aangemaakt!"],"Select Currency":["Selecteer valuta"],"Select the default currency for payment forms.":["Selecteer de standaardvaluta voor betalingsformulieren."],"Connection Status":["Verbindingsstatus"],"Disconnect Stripe Account":["Stripe-account loskoppelen"],"Are you sure you want to disconnect your Stripe account? This will stop all active payments, subscriptions, and form transactions connected to this account.":["Weet u zeker dat u uw Stripe-account wilt loskoppelen? Dit zal alle actieve betalingen, abonnementen en formuliertransacties die aan dit account zijn gekoppeld, stoppen."],"Disconnect":["Verbreken"],"Disconnecting\u2026":["Verbinding verbreken\u2026"],"Webhook successfully connected, all Stripe events are being tracked.":["Webhook succesvol verbonden, alle Stripe-evenementen worden gevolgd."],"Connect your Stripe account to start accepting payments through your forms.":["Verbind uw Stripe-account om betalingen via uw formulieren te accepteren."],"Connect to Stripe":["Verbinden met Stripe"],"Securely connect to Stripe with just a few clicks to begin accepting payments! ":["Maak veilig verbinding met Stripe met slechts een paar klikken om betalingen te accepteren!"],"Payment Methods":["Betaalmethoden"],"Test mode allows you to process payments without real charges. Switch to Live mode for actual transactions.":["Met de testmodus kunt u betalingen verwerken zonder echte kosten. Schakel over naar de Live-modus voor daadwerkelijke transacties."],"General Payment Settings":["Algemene betalingsinstellingen"],"These settings apply to all payment gateways.":["Deze instellingen zijn van toepassing op alle betalingsgateways."],"Stripe Settings":["Stripe-instellingen"],"Left ($100)":["Links ($100)"],"Right (100$)":["Rechts (100$)"],"Left Space ($ 100)":["Linker ruimte ($ 100)"],"Right Space (100 $)":["Rechterruimte (100 $)"],"Currency Sign Position":["Positie van het valutateken"],"Select the position of the currency symbol relative to the amount.":["Selecteer de positie van het valutasymbool ten opzichte van het bedrag."],"Learn":["Leren"],"Enable email summaries":["E-mailoverzichten inschakelen"],"Enable IP logging":["IP-logboek inschakelen"],"Turn on Admin Notification from here.":["Zet hier de beheerdersmelding aan."],"Send entries to 100+ popular apps.":["Verzend inzendingen naar meer dan 100 populaire apps."],"Build automated workflows that run instantly.":["Bouw geautomatiseerde workflows die direct worden uitgevoerd."],"Create custom app integrations using our Custom App feature.":["Maak aangepaste app-integraties met behulp van onze functie Aangepaste App."],"Keep your tools in sync automatically.":["Houd je gereedschap automatisch gesynchroniseerd."],"This will install and activate OttoKit on your WordPress site to enable automation features.":["Hiermee wordt OttoKit op je WordPress-site ge\u00efnstalleerd en geactiveerd om automatiseringsfuncties mogelijk te maken."],"Automate Your Forms with OttoKit":["Automatiseer uw formulieren met OttoKit"],"Every form submission should trigger something \u2014 a Slack alert, a CRM lead, a follow-up email, or a new row in Google Sheets.":["Elke formulierinzending zou iets moeten activeren \u2014 een Slack-melding, een CRM-lead, een opvolg-e-mail of een nieuwe rij in Google Sheets."],"MCP":["MCP"],"Configure AI client permissions and MCP server settings.":["Configureer AI-clientmachtigingen en MCP-serverinstellingen."],"View documentation":["Documentatie bekijken"],"Copy to clipboard":["Kopi\u00ebren naar klembord"],"Claude Desktop":["Claude Desktop"],"~\/Library\/Application Support\/Claude\/claude_desktop_config.json (macOS) or %APPDATA%\\Claude\\claude_desktop_config.json (Windows)":["~\/Library\/Application Support\/Claude\/claude_desktop_config.json (macOS) of %APPDATA%\\Claude\\claude_desktop_config.json (Windows)"],"Claude Code":["Claude Code"],".mcp.json (project) or ~\/.claude.json (global)":[".mcp.json (project) of ~\/.claude.json (globaal)"],"Cursor":["Cursor"],"~\/.cursor\/mcp.json":["~\/.cursor\/mcp.json"],"VS Code (Copilot)":["VS Code (Copilot)"],".vscode\/mcp.json (project) or settings.json > mcp.servers (global)":[".vscode\/mcp.json (project) of settings.json > mcp.servers (globaal)"],"~\/.continue\/config.yaml or config.json":["~\/.continue\/config.yaml of config.json"],"Your client's MCP configuration file":["Het MCP-configuratiebestand van uw klant"],"Connect Your AI Client":["Verbind uw AI-client"],"AI Client":["AI-client"],"Create an Application Password \u2014 ":["Maak een applicatiewachtwoord aan \u2014"],"Open Application Passwords":["Open toepassingswachtwoorden"],"Or use this CLI command to add the server quickly (you will still need to set the environment variables):":["Of gebruik deze CLI-opdracht om de server snel toe te voegen (je moet nog steeds de omgevingsvariabelen instellen):"],"Copy the JSON config below into: ":["Kopieer de JSON-configuratie hieronder naar:"],"Replace \"your-application-password\" with the password from Step 1.":["Vervang \"your-application-password\" door het wachtwoord uit Stap 1."],"WP_API_URL \u2014 your site's MCP endpoint. WP_API_USERNAME \u2014 your WordPress username. WP_API_PASSWORD \u2014 the application password you generated.":["WP_API_URL \u2014 het MCP-eindpunt van je site. WP_API_USERNAME \u2014 je WordPress-gebruikersnaam. WP_API_PASSWORD \u2014 het applicatiewachtwoord dat je hebt gegenereerd."],"View setup docs":["Bekijk de installatiehandleidingen"],"The MCP Adapter plugin is installed but not active. Activate it to configure MCP settings.":["De MCP Adapter-plugin is ge\u00efnstalleerd maar niet actief. Activeer het om MCP-instellingen te configureren."],"The MCP Adapter plugin is required to connect AI clients to your forms. Download and install it from GitHub, then activate it.":["De MCP Adapter-plugin is vereist om AI-clients met uw formulieren te verbinden. Download en installeer het vanaf GitHub en activeer het vervolgens."],"Download the latest release from":["Download de nieuwste release van"],"Install the plugin via Plugins > Add New Plugin > Upload Plugin.":["Installeer de plugin via Plugins > Nieuwe plugin toevoegen > Plugin uploaden."],"Activate the MCP Adapter plugin.":["Activeer de MCP Adapter-plugin."],"Activating\u2026":["Activeren\u2026"],"Activate MCP Adapter":["Activeer MCP-adapter"],"Download MCP Adapter":["Download MCP Adapter"],"Experimental":["Experimenteel"],"Enable Abilities":["Vermogen inschakelen"],"Register SureForms abilities with the WordPress Abilities API. When enabled, AI clients can list, read, create, edit, and delete your forms and entries. When disabled, no abilities are registered and AI clients cannot perform any actions on your forms.":["Registreer SureForms-mogelijkheden bij de WordPress Abilities API. Wanneer ingeschakeld, kunnen AI-clients uw formulieren en inzendingen opsommen, lezen, maken, bewerken en verwijderen. Wanneer uitgeschakeld, worden er geen mogelijkheden geregistreerd en kunnen AI-clients geen acties uitvoeren op uw formulieren."],"Abilities API \u2014 Edit":["Vaardigheden-API \u2014 Bewerken"],"Enable Edit Abilities":["Bewerkingsmogelijkheden inschakelen"],"When enabled, AI clients can create new forms, update form titles, fields, and settings, duplicate forms, and modify entry statuses. When disabled, these abilities are unregistered and AI clients can only read your data.":["Wanneer ingeschakeld, kunnen AI-clients nieuwe formulieren maken, formuliertitels, velden en instellingen bijwerken, formulieren dupliceren en de status van inzendingen wijzigen. Wanneer uitgeschakeld, worden deze mogelijkheden uitgeschakeld en kunnen AI-clients alleen uw gegevens lezen."],"Abilities API \u2014 Delete":["Vaardigheden API \u2014 Verwijderen"],"Enable Delete Abilities":["Verwijdermogelijkheden inschakelen"],"When enabled, AI clients can permanently delete forms and entries. Deleted data cannot be recovered. When disabled, delete abilities are unregistered and AI clients cannot remove any data.":["Wanneer ingeschakeld, kunnen AI-clients formulieren en invoer permanent verwijderen. Verwijderde gegevens kunnen niet worden hersteld. Wanneer uitgeschakeld, worden verwijdermogelijkheden uitgeschakeld en kunnen AI-clients geen gegevens verwijderen."],"MCP Server":["MCP-server"],"Enable MCP Server":["MCP-server inschakelen"],"Creates a dedicated SureForms MCP endpoint that AI clients like Claude can connect to. When disabled, the endpoint is removed and external AI clients cannot discover or call any SureForms abilities.":["Maakt een speciale SureForms MCP-eindpunt aan waarmee AI-clients zoals Claude verbinding kunnen maken. Wanneer deze is uitgeschakeld, wordt het eindpunt verwijderd en kunnen externe AI-clients geen SureForms-mogelijkheden ontdekken of oproepen."],"Learn more":["Meer informatie"],"MCP Adapter Required":["MCP-adapter vereist"],"Google Maps":["Google Maps"],"Configure Google Maps API key for address autocomplete and map preview.":["Configureer de Google Maps API-sleutel voor adres-autocompletie en kaartvoorbeeld."],"Help shape the future of SureForms":["Help de toekomst van SureForms vormgeven"],"Share how you use the plugin so we can build features that matter, fix issues faster, and make smarter decisions. ":["Deel hoe je de plugin gebruikt, zodat we functies kunnen ontwikkelen die ertoe doen, problemen sneller kunnen oplossen en slimmere beslissingen kunnen nemen."],"Enable Google Address Autocomplete":["Google-adres automatisch aanvullen inschakelen"],"Upgrade to the SureForms Business Plan to add Google-powered address autocomplete with interactive map preview to your forms.":["Upgrade naar het SureForms Business Plan om Google-aangedreven adres-autocompletie met interactieve kaartvoorvertoning aan uw formulieren toe te voegen."],"Auto-suggest addresses as users type for faster, error-free submissions":["Stel automatisch adressen voor terwijl gebruikers typen voor snellere, foutloze inzendingen"],"Show an interactive map preview with draggable pin for precise locations":["Toon een interactieve kaartvoorvertoning met een sleepbare pin voor precieze locaties"],"Automatically populate address fields like city, state, and postal code":["Automatisch adresvelden zoals stad, staat en postcode invullen"]}}} \ No newline at end of file diff --git a/languages/sureforms-nl_NL.mo b/languages/sureforms-nl_NL.mo index 5d4505886..7a8292f14 100644 Binary files a/languages/sureforms-nl_NL.mo and b/languages/sureforms-nl_NL.mo differ diff --git a/languages/sureforms-nl_NL.po b/languages/sureforms-nl_NL.po index 4818c14e5..224cd9705 100644 --- a/languages/sureforms-nl_NL.po +++ b/languages/sureforms-nl_NL.po @@ -16,7 +16,7 @@ msgstr "" #: sureforms.php #: admin/admin.php:320 #: admin/admin.php:321 -#: admin/admin.php:1812 +#: admin/admin.php:1813 #: inc/abilities/abilities-registrar.php:133 #: inc/gutenberg-hooks.php:109 #: inc/page-builders/bricks/elements/form-widget.php:67 @@ -82,7 +82,7 @@ msgstr "Nieuw formulier" #: admin/admin.php:601 #: admin/admin.php:602 -#: admin/admin.php:1849 +#: admin/admin.php:1850 #: inc/global-settings/email-summary.php:225 #: assets/build/dashboard.js:172 #: assets/build/entries.js:172 @@ -118,12 +118,12 @@ msgid "Nonce verification failed." msgstr "Verificatie van nonce mislukt." #. translators: %1$s: Opening anchor tag with URL, %2$s: Closing anchor tag, %3$s: SureForms Pro Plugin Name. -#: admin/admin.php:1441 +#: admin/admin.php:1442 #, php-format msgid "Please %1$sactivate%2$s your copy of %3$s to get new features, access support, receive update notifications, and more." msgstr "Gelieve %1$suw exemplaar van %3$s te activeren%2$s om nieuwe functies te krijgen, toegang tot ondersteuning, update-meldingen te ontvangen en meer." -#: admin/admin.php:1848 +#: admin/admin.php:1849 #: inc/global-settings/email-summary.php:224 #: assets/build/entries.js:172 #: assets/build/payments.js:172 @@ -191,7 +191,7 @@ msgstr "Afval" msgid "Published" msgstr "Gepubliceerd" -#: admin/admin.php:1840 +#: admin/admin.php:1841 msgid "View" msgstr "Bekijken" @@ -312,10 +312,10 @@ msgstr "Geïnstalleerd" msgid "You do not have permission to access this page." msgstr "U heeft geen toestemming om deze pagina te openen." -#: admin/admin.php:1607 -#: admin/admin.php:1706 -#: admin/admin.php:1744 -#: admin/admin.php:1765 +#: admin/admin.php:1608 +#: admin/admin.php:1707 +#: admin/admin.php:1745 +#: admin/admin.php:1766 #: inc/admin-ajax.php:162 #: inc/payments/admin/admin-handler.php:638 #: inc/payments/stripe/admin-stripe-handler.php:80 @@ -328,7 +328,7 @@ msgid "Form ID is required." msgstr "Formulier-ID is vereist." #: inc/admin-ajax.php:182 -#: inc/form-submit.php:970 +#: inc/form-submit.php:972 msgid "Invalid form ID." msgstr "Ongeldige formulier-ID." @@ -502,11 +502,11 @@ msgstr "Selectievakje" msgid "Required" msgstr "Vereist" -#: inc/fields/dropdown-markup.php:83 +#: inc/fields/dropdown-markup.php:84 msgid "Dropdown" msgstr "Keuzemenu" -#: inc/fields/dropdown-markup.php:106 +#: inc/fields/dropdown-markup.php:108 #: inc/gutenberg-hooks.php:220 msgid "Select an option" msgstr "Selecteer een optie" @@ -534,7 +534,7 @@ msgstr "Ik geef toestemming aan deze website om mijn ingediende informatie op te msgid "Please verify that you are not a robot." msgstr "Controleer alstublieft dat u geen robot bent." -#: inc/fields/multichoice-markup.php:113 +#: inc/fields/multichoice-markup.php:114 msgid "Multi Choice" msgstr "Meerkeuze" @@ -775,7 +775,7 @@ msgid "Site URL" msgstr "Site-URL" #: inc/smart-tags.php:111 -#: inc/smart-tags.php:142 +#: inc/smart-tags.php:143 msgid "Admin Email" msgstr "Beheerder E-mail" @@ -816,7 +816,7 @@ msgid "User Last Name" msgstr "Achternaam gebruiker" #: inc/smart-tags.php:122 -#: inc/smart-tags.php:143 +#: inc/smart-tags.php:144 msgid "User Email" msgstr "Gebruikers e-mail" @@ -840,11 +840,11 @@ msgstr "Ingesloten Post/Pagina-ID" msgid "Embedded Post/Page Title" msgstr "Ingesloten Bericht/Pagina Titel" -#: inc/smart-tags.php:128 +#: inc/smart-tags.php:129 msgid "Populate by GET Param" msgstr "Vullen via GET-parameter" -#: inc/smart-tags.php:129 +#: inc/smart-tags.php:130 msgid "Cookie Value" msgstr "Cookie Waarde" @@ -8827,7 +8827,7 @@ msgstr "Blok herschikken in de Snelle Actiebalk" #: admin/admin.php:409 #: admin/admin.php:410 -#: admin/admin.php:2021 +#: admin/admin.php:2022 #: assets/build/blocks.js:172 #: assets/build/dashboard.js:172 #: assets/build/entries.js:172 @@ -9170,7 +9170,7 @@ msgstr "Centrum" msgid "Right" msgstr "Rechts" -#: inc/form-submit.php:1147 +#: inc/form-submit.php:1149 #: assets/build/formEditor.js:172 #: assets/build/settings.js:172 msgid "Google reCAPTCHA" @@ -9180,7 +9180,7 @@ msgstr "Google reCAPTCHA" msgid "CloudFlare Turnstile" msgstr "CloudFlare Turnstile" -#: inc/form-submit.php:1151 +#: inc/form-submit.php:1153 #: assets/build/formEditor.js:172 #: assets/build/settings.js:172 msgid "hCaptcha" @@ -9454,7 +9454,7 @@ msgstr "Sitecode" msgid "Secret Key" msgstr "Geheime Sleutel" -#: inc/form-submit.php:1155 +#: inc/form-submit.php:1157 #: assets/build/settings.js:172 msgid "Cloudflare Turnstile" msgstr "Cloudflare Turnstile" @@ -10407,7 +10407,7 @@ msgid "icon" msgstr "icoon" #. translators: %1$s: SureForms version, %2$s: SureForms Pro Plugin Name, %3$s: SureForms Pro Version, %4$s: Anchor tag open, %5$s: Closing anchor tag. -#: admin/admin.php:1459 +#: admin/admin.php:1460 #, php-format msgid "SureForms %1$s requires minimum %2$s %3$s to work properly. Please update to the latest version from %4$shere%5$s." msgstr "SureForms %1$s vereist minimaal %2$s %3$s om goed te functioneren. Werk alstublieft bij naar de nieuwste versie van %4$shier%5$s." @@ -10429,7 +10429,7 @@ msgstr "IP-logboek" msgid "Honeypot" msgstr "Honeypot" -#: admin/admin.php:1505 +#: admin/admin.php:1506 msgid "Rate SureForms" msgstr "Beoordeel SureForms" @@ -10485,18 +10485,18 @@ msgstr "Ontgrendel Notitie Toevoegen" msgid "With the SureForms Starter plan, enhance your submitted form entries by adding personalized notes for better clarity and tracking." msgstr "Met het SureForms Starter-plan kunt u uw ingediende formulierinzendingen verbeteren door gepersonaliseerde notities toe te voegen voor meer duidelijkheid en betere tracking." -#: inc/form-submit.php:821 +#: inc/form-submit.php:823 msgid "Email notification passed to the sending server" msgstr "E-mailmelding doorgestuurd naar de verzendserver" #. translators: Here, %s is the comma separated emails list. -#: inc/form-submit.php:894 +#: inc/form-submit.php:896 #, php-format msgid "Email notification recipient: %s" msgstr "E-mail notificatie ontvanger: %s" #. translators: Here, %1$s is the comma separated emails list and %2$s is error report ( if any ). -#: inc/form-submit.php:911 +#: inc/form-submit.php:913 #, php-format msgid "Email server was unable to send the email notification. Recipient: %1$s. Reason: %2$s" msgstr "E-mailserver kon de e-mailmelding niet verzenden. Ontvanger: %1$s. Reden: %2$s" @@ -10740,24 +10740,24 @@ msgstr "Selecteer verloop" msgid "reCAPTCHA" msgstr "reCAPTCHA" -#: inc/form-submit.php:1091 +#: inc/form-submit.php:1093 msgid "Captcha validation failed. No error code provided." msgstr "Captcha-validatie mislukt. Geen foutcode opgegeven." -#: inc/form-submit.php:1092 +#: inc/form-submit.php:1094 msgid "Captcha validation failed." msgstr "Captcha-validatie mislukt." -#: inc/form-submit.php:1159 +#: inc/form-submit.php:1161 msgid "Unknown Captcha" msgstr "Onbekende Captcha" -#: inc/form-submit.php:1160 +#: inc/form-submit.php:1162 msgid "Invalid captcha type." msgstr "Ongeldig captcha-type." #. translators: %s is the captcha title. -#: inc/form-submit.php:1173 +#: inc/form-submit.php:1175 #, php-format msgid "%s verification failed. Please contact your site administrator." msgstr "%s verificatie mislukt. Neem contact op met uw sitebeheerder." @@ -11274,28 +11274,28 @@ msgstr "Beheerdermelding inschakelen" msgid "Admin notifications keep you informed about new form entries since your last visit." msgstr "Beheerdersmeldingen houden je op de hoogte van nieuwe formulierinzendingen sinds je laatste bezoek." -#: admin/admin.php:1611 -#: admin/admin.php:1702 -#: admin/admin.php:1740 -#: admin/admin.php:1761 +#: admin/admin.php:1612 +#: admin/admin.php:1703 +#: admin/admin.php:1741 +#: admin/admin.php:1762 msgid "Unauthorized user." msgstr "Ongeautoriseerde gebruiker." #. translators: 1: opening span, 2: opening strong (inline), 3: closing strong, 4: closing span, 5: opening strong (block), 6: closing strong -#: admin/admin.php:1711 +#: admin/admin.php:1712 #, php-format msgid "%1$sGet started by %2$sbuilding your first form%3$s.%4$s%5$sExperience the power of our intuitive AI Form Builder%6$s" msgstr "%1$sBegin met %2$shet bouwen van je eerste formulier%3$s.%4$s%5$sErvaar de kracht van onze intuïtieve AI Form Builder%6$s" -#: admin/admin.php:1722 +#: admin/admin.php:1723 msgid "SureForms is waiting for you!" msgstr "SureForms wacht op je!" -#: admin/admin.php:1724 +#: admin/admin.php:1725 msgid "Build My First Form" msgstr "Bouw Mijn Eerste Formulier" -#: admin/admin.php:1725 +#: admin/admin.php:1726 msgid "Dismiss" msgstr "Afwijzen" @@ -11315,51 +11315,51 @@ msgstr "Inloggen" msgid "Register" msgstr "Registreren" -#: admin/admin.php:1836 +#: admin/admin.php:1837 msgid "Recent Entries" msgstr "Recente items" -#: admin/admin.php:1837 +#: admin/admin.php:1838 msgid "( Last 7 days )" msgstr "( Laatste 7 dagen )" -#: admin/admin.php:1957 +#: admin/admin.php:1958 msgid "Use Conditional Logic to show only what matters" msgstr "Gebruik voorwaardelijke logica om alleen te tonen wat ertoe doet" -#: admin/admin.php:1958 +#: admin/admin.php:1959 msgid "Split your form into steps to keep it easy" msgstr "Verdeel uw formulier in stappen om het eenvoudig te houden" -#: admin/admin.php:1959 +#: admin/admin.php:1960 msgid "Let people upload files directly to your form" msgstr "Laat mensen bestanden direct naar uw formulier uploaden" -#: admin/admin.php:1960 +#: admin/admin.php:1961 msgid "Turn responses into downloadable PDFs automatically" msgstr "Zet reacties automatisch om in downloadbare PDF's" -#: admin/admin.php:1961 +#: admin/admin.php:1962 msgid "Let users sign with a simple signature field" msgstr "Laat gebruikers ondertekenen met een eenvoudig handtekeningveld" -#: admin/admin.php:1962 +#: admin/admin.php:1963 msgid "Connect your form to other tools using webhooks" msgstr "Verbind uw formulier met andere tools via webhooks" -#: admin/admin.php:1963 +#: admin/admin.php:1964 msgid "Use Conversational Forms for a chat-like experience" msgstr "Gebruik Conversational Forms voor een chat-achtige ervaring" -#: admin/admin.php:1964 +#: admin/admin.php:1965 msgid "Let users register or log in through your form" msgstr "Laat gebruikers zich registreren of inloggen via uw formulier" -#: admin/admin.php:1965 +#: admin/admin.php:1966 msgid "Build forms that create WordPress user accounts" msgstr "Bouw formulieren die WordPress-gebruikersaccounts aanmaken" -#: admin/admin.php:1966 +#: admin/admin.php:1967 msgid "Add calculations to auto-total scores or prices" msgstr "Berekeningen toevoegen om scores of prijzen automatisch op te tellen" @@ -11917,6 +11917,7 @@ msgid "Unable to create ZIP file." msgstr "Kan ZIP-bestand niet maken." #: inc/entries.php:729 +#: inc/smart-tags.php:128 #: assets/build/entries.js:172 msgid "Entry ID" msgstr "Invoer-ID" @@ -11934,7 +11935,7 @@ msgid "Invalid form data structure provided." msgstr "Ongeldige gegevensstructuur van het formulier verstrekt." #: inc/fields/payment-markup.php:249 -#: inc/payments/payment-helper.php:538 +#: inc/payments/payment-helper.php:543 msgid "Subscription Plan" msgstr "Abonnementsplan" @@ -12552,301 +12553,301 @@ msgstr "Hongkongse dollar" msgid "Norwegian Krone" msgstr "Noorse kroon" -#: inc/payments/payment-helper.php:259 +#: inc/payments/payment-helper.php:264 msgid "South Korean Won" msgstr "Zuid-Koreaanse Won" -#: inc/payments/payment-helper.php:264 +#: inc/payments/payment-helper.php:269 msgid "Turkish Lira" msgstr "Turkse Lira" -#: inc/payments/payment-helper.php:269 +#: inc/payments/payment-helper.php:274 msgid "Russian Ruble" msgstr "Russische roebel" -#: inc/payments/payment-helper.php:274 +#: inc/payments/payment-helper.php:279 msgid "Indian Rupee" msgstr "Indiase roepie" -#: inc/payments/payment-helper.php:279 +#: inc/payments/payment-helper.php:284 msgid "Brazilian Real" msgstr "Braziliaanse real" -#: inc/payments/payment-helper.php:284 +#: inc/payments/payment-helper.php:289 msgid "South African Rand" msgstr "Zuid-Afrikaanse Rand" -#: inc/payments/payment-helper.php:289 +#: inc/payments/payment-helper.php:294 msgid "UAE Dirham" msgstr "VAE Dirham" -#: inc/payments/payment-helper.php:294 +#: inc/payments/payment-helper.php:299 msgid "Philippine Peso" msgstr "Filipijnse Peso" -#: inc/payments/payment-helper.php:299 +#: inc/payments/payment-helper.php:304 msgid "Indonesian Rupiah" msgstr "Indonesische Rupiah" -#: inc/payments/payment-helper.php:304 +#: inc/payments/payment-helper.php:309 msgid "Malaysian Ringgit" msgstr "Maleisische Ringgit" -#: inc/payments/payment-helper.php:309 +#: inc/payments/payment-helper.php:314 msgid "Thai Baht" msgstr "Thaise Baht" -#: inc/payments/payment-helper.php:314 +#: inc/payments/payment-helper.php:319 msgid "Burundian Franc" msgstr "Burundese frank" -#: inc/payments/payment-helper.php:319 +#: inc/payments/payment-helper.php:324 msgid "Chilean Peso" msgstr "Chileense peso" -#: inc/payments/payment-helper.php:324 +#: inc/payments/payment-helper.php:329 msgid "Djiboutian Franc" msgstr "Djiboutiaanse Frank" -#: inc/payments/payment-helper.php:329 +#: inc/payments/payment-helper.php:334 msgid "Guinean Franc" msgstr "Guinese Frank" -#: inc/payments/payment-helper.php:334 +#: inc/payments/payment-helper.php:339 msgid "Comorian Franc" msgstr "Comorese Frank" -#: inc/payments/payment-helper.php:339 +#: inc/payments/payment-helper.php:344 msgid "Malagasy Ariary" msgstr "Malagassische Ariary" -#: inc/payments/payment-helper.php:344 +#: inc/payments/payment-helper.php:349 msgid "Paraguayan Guaraní" msgstr "Paraguayaanse Guaraní" -#: inc/payments/payment-helper.php:349 +#: inc/payments/payment-helper.php:354 msgid "Rwandan Franc" msgstr "Rwandese frank" -#: inc/payments/payment-helper.php:354 +#: inc/payments/payment-helper.php:359 msgid "Ugandan Shilling" msgstr "Oegandese Shilling" -#: inc/payments/payment-helper.php:359 +#: inc/payments/payment-helper.php:364 msgid "Vietnamese Đồng" msgstr "Vietnamese đồng" -#: inc/payments/payment-helper.php:364 +#: inc/payments/payment-helper.php:369 msgid "Vanuatu Vatu" msgstr "Vanuatu Vatu" -#: inc/payments/payment-helper.php:369 +#: inc/payments/payment-helper.php:374 msgid "Central African CFA Franc" msgstr "Centraal-Afrikaanse CFA-frank" -#: inc/payments/payment-helper.php:374 +#: inc/payments/payment-helper.php:379 msgid "West African CFA Franc" msgstr "West-Afrikaanse CFA-frank" -#: inc/payments/payment-helper.php:379 +#: inc/payments/payment-helper.php:384 msgid "CFP Franc" msgstr "CFP-frank" -#: inc/payments/payment-helper.php:475 +#: inc/payments/payment-helper.php:480 msgid "An unknown error occurred. Please try again or contact the site administrator." msgstr "Er is een onbekende fout opgetreden. Probeer het opnieuw of neem contact op met de sitebeheerder." -#: inc/payments/payment-helper.php:477 +#: inc/payments/payment-helper.php:482 msgid "Payment is currently unavailable. Please contact the site administrator." msgstr "Betaling is momenteel niet beschikbaar. Neem contact op met de sitebeheerder." -#: inc/payments/payment-helper.php:478 +#: inc/payments/payment-helper.php:483 msgid "Payment is currently unavailable. Please contact the site administrator to configure the payment amount." msgstr "Betaling is momenteel niet beschikbaar. Neem contact op met de sitebeheerder om het betalingsbedrag in te stellen." -#: inc/payments/payment-helper.php:479 +#: inc/payments/payment-helper.php:484 msgid "Invalid payment amount" msgstr "Ongeldig betalingsbedrag" -#: inc/payments/payment-helper.php:480 +#: inc/payments/payment-helper.php:485 msgid "Payment amount must be at least {symbol}{amount}." msgstr "Het betalingsbedrag moet ten minste {symbol}{amount} zijn." -#: inc/payments/payment-helper.php:483 +#: inc/payments/payment-helper.php:488 msgid "Payment is currently unavailable. Please contact the site administrator to configure the customer name field." msgstr "Betaling is momenteel niet beschikbaar. Neem contact op met de sitebeheerder om het veld voor de klantnaam te configureren." -#: inc/payments/payment-helper.php:484 +#: inc/payments/payment-helper.php:489 msgid "Payment is currently unavailable. Please contact the site administrator to configure the customer email field." msgstr "Betaling is momenteel niet beschikbaar. Neem contact op met de sitebeheerder om het klant-e-mailveld in te stellen." -#: inc/payments/payment-helper.php:485 +#: inc/payments/payment-helper.php:490 msgid "Please enter your name." msgstr "Voer alstublieft uw naam in." -#: inc/payments/payment-helper.php:486 +#: inc/payments/payment-helper.php:491 msgid "Please enter your email." msgstr "Voer alstublieft uw e-mailadres in." -#: inc/payments/payment-helper.php:489 +#: inc/payments/payment-helper.php:494 msgid "Payment failed" msgstr "Betaling mislukt" -#: inc/payments/payment-helper.php:490 +#: inc/payments/payment-helper.php:495 msgid "Payment successful" msgstr "Betaling geslaagd" -#: inc/payments/payment-helper.php:494 -#: inc/payments/payment-helper.php:495 +#: inc/payments/payment-helper.php:499 +#: inc/payments/payment-helper.php:500 msgid "Your card was declined. Please try a different payment method or contact your bank." msgstr "Uw kaart werd geweigerd. Probeer een andere betaalmethode of neem contact op met uw bank." -#: inc/payments/payment-helper.php:496 +#: inc/payments/payment-helper.php:501 msgid "Your card has insufficient funds. Please use a different payment method." msgstr "Uw kaart heeft onvoldoende saldo. Gebruik alstublieft een andere betaalmethode." -#: inc/payments/payment-helper.php:497 +#: inc/payments/payment-helper.php:502 msgid "Your card was declined because it has been reported as lost. Please contact your bank." msgstr "Uw kaart werd geweigerd omdat deze als verloren is gemeld. Neem contact op met uw bank." -#: inc/payments/payment-helper.php:498 +#: inc/payments/payment-helper.php:503 msgid "Your card was declined because it has been reported as stolen. Please contact your bank." msgstr "Uw kaart is geweigerd omdat deze als gestolen is opgegeven. Neem contact op met uw bank." -#: inc/payments/payment-helper.php:499 +#: inc/payments/payment-helper.php:504 msgid "Your card has expired. Please use a different payment method." msgstr "Uw kaart is verlopen. Gebruik alstublieft een andere betaalmethode." -#: inc/payments/payment-helper.php:500 -#: inc/payments/payment-helper.php:521 +#: inc/payments/payment-helper.php:505 +#: inc/payments/payment-helper.php:526 msgid "Your card was declined. Please contact your bank for more information." msgstr "Uw kaart werd geweigerd. Neem alstublieft contact op met uw bank voor meer informatie." -#: inc/payments/payment-helper.php:501 +#: inc/payments/payment-helper.php:506 msgid "Your card was declined due to restrictions. Please contact your bank." msgstr "Uw kaart werd geweigerd vanwege beperkingen. Neem alstublieft contact op met uw bank." -#: inc/payments/payment-helper.php:502 +#: inc/payments/payment-helper.php:507 msgid "Your card was declined due to a security violation. Please contact your bank." msgstr "Uw kaart werd geweigerd vanwege een beveiligingsschending. Neem alstublieft contact op met uw bank." -#: inc/payments/payment-helper.php:503 +#: inc/payments/payment-helper.php:508 msgid "Your card does not support this type of purchase. Please use a different payment method." msgstr "Uw kaart ondersteunt dit type aankoop niet. Gebruik alstublieft een andere betaalmethode." -#: inc/payments/payment-helper.php:504 +#: inc/payments/payment-helper.php:509 msgid "A stop payment order has been placed on this card. Please contact your bank." msgstr "Er is een stopzettingsopdracht op deze kaart geplaatst. Neem contact op met uw bank." -#: inc/payments/payment-helper.php:505 +#: inc/payments/payment-helper.php:510 msgid "A test card was used in a live environment. Please use a real card." msgstr "Er is een testkaart gebruikt in een live omgeving. Gebruik alstublieft een echte kaart." -#: inc/payments/payment-helper.php:506 +#: inc/payments/payment-helper.php:511 msgid "Your card has exceeded its withdrawal limit. Please contact your bank." msgstr "Uw kaart heeft de opnamelimiet overschreden. Neem contact op met uw bank." -#: inc/payments/payment-helper.php:507 +#: inc/payments/payment-helper.php:512 msgid "Your card's security code is incorrect. Please check and try again." msgstr "De beveiligingscode van uw kaart is onjuist. Controleer deze en probeer het opnieuw." -#: inc/payments/payment-helper.php:508 +#: inc/payments/payment-helper.php:513 msgid "Your card number is incorrect. Please check and try again." msgstr "Uw kaartnummer is onjuist. Controleer het en probeer het opnieuw." -#: inc/payments/payment-helper.php:509 +#: inc/payments/payment-helper.php:514 msgid "Your card's security code is invalid. Please check and try again." msgstr "De beveiligingscode van uw kaart is ongeldig. Controleer deze en probeer het opnieuw." -#: inc/payments/payment-helper.php:510 +#: inc/payments/payment-helper.php:515 msgid "Your card's expiration month is invalid. Please check and try again." msgstr "De vervalmaand van uw kaart is ongeldig. Controleer het en probeer het opnieuw." -#: inc/payments/payment-helper.php:511 +#: inc/payments/payment-helper.php:516 msgid "Your card's expiration year is invalid. Please check and try again." msgstr "Het vervaljaar van uw kaart is ongeldig. Controleer het en probeer het opnieuw." -#: inc/payments/payment-helper.php:512 +#: inc/payments/payment-helper.php:517 msgid "Your card number is invalid. Please check and try again." msgstr "Uw kaartnummer is ongeldig. Controleer het en probeer het opnieuw." -#: inc/payments/payment-helper.php:515 +#: inc/payments/payment-helper.php:520 msgid "Your card is not supported for this transaction. Please use a different payment method." msgstr "Uw kaart wordt niet ondersteund voor deze transactie. Gebruik alstublieft een andere betaalmethode." -#: inc/payments/payment-helper.php:516 +#: inc/payments/payment-helper.php:521 msgid "Your card does not support the currency used for this transaction. Please use a different payment method." msgstr "Uw kaart ondersteunt de valuta die voor deze transactie wordt gebruikt niet. Gebruik alstublieft een andere betaalmethode." -#: inc/payments/payment-helper.php:517 +#: inc/payments/payment-helper.php:522 msgid "A transaction with identical details was submitted recently. Please wait a moment and try again." msgstr "Er is onlangs een transactie met identieke details ingediend. Wacht even en probeer het opnieuw." -#: inc/payments/payment-helper.php:518 +#: inc/payments/payment-helper.php:523 msgid "The account associated with your card is invalid. Please contact your bank." msgstr "De rekening die aan uw kaart is gekoppeld, is ongeldig. Neem alstublieft contact op met uw bank." -#: inc/payments/payment-helper.php:519 +#: inc/payments/payment-helper.php:524 msgid "The payment amount is invalid. Please contact the site administrator." msgstr "Het betalingsbedrag is ongeldig. Neem contact op met de sitebeheerder." -#: inc/payments/payment-helper.php:522 +#: inc/payments/payment-helper.php:527 msgid "Your card information needs to be updated. Please contact your bank." msgstr "Uw kaartgegevens moeten worden bijgewerkt. Neem contact op met uw bank." -#: inc/payments/payment-helper.php:523 +#: inc/payments/payment-helper.php:528 msgid "The card cannot be used for this transaction. Please contact your bank." msgstr "De kaart kan niet worden gebruikt voor deze transactie. Neem contact op met uw bank." -#: inc/payments/payment-helper.php:524 +#: inc/payments/payment-helper.php:529 msgid "The transaction is not permitted. Please contact your bank." msgstr "De transactie is niet toegestaan. Neem alstublieft contact op met uw bank." -#: inc/payments/payment-helper.php:525 +#: inc/payments/payment-helper.php:530 msgid "Your card requires offline PIN authentication. Please try again." msgstr "Uw kaart vereist offline PIN-authenticatie. Probeer het opnieuw." -#: inc/payments/payment-helper.php:526 +#: inc/payments/payment-helper.php:531 msgid "Your card requires PIN authentication. Please try again." msgstr "Uw kaart vereist PIN-authenticatie. Probeer het opnieuw." -#: inc/payments/payment-helper.php:527 +#: inc/payments/payment-helper.php:532 msgid "You have exceeded the maximum number of PIN attempts. Please contact your bank." msgstr "U heeft het maximale aantal pogingen voor de pincode overschreden. Neem alstublieft contact op met uw bank." -#: inc/payments/payment-helper.php:528 +#: inc/payments/payment-helper.php:533 msgid "All authorizations for this card have been revoked. Please contact your bank." msgstr "Alle autorisaties voor deze kaart zijn ingetrokken. Neem contact op met uw bank." -#: inc/payments/payment-helper.php:529 +#: inc/payments/payment-helper.php:534 msgid "The authorization for this transaction has been revoked. Please try again." msgstr "De autorisatie voor deze transactie is ingetrokken. Probeer het alstublieft opnieuw." -#: inc/payments/payment-helper.php:530 +#: inc/payments/payment-helper.php:535 msgid "This transaction is not allowed. Please contact your bank." msgstr "Deze transactie is niet toegestaan. Neem contact op met uw bank." -#: inc/payments/payment-helper.php:532 +#: inc/payments/payment-helper.php:537 msgid "Your card was declined. Your request was in live mode, but used a known test card." msgstr "Uw kaart werd geweigerd. Uw verzoek was in live-modus, maar er werd een bekende testkaart gebruikt." -#: inc/payments/payment-helper.php:533 +#: inc/payments/payment-helper.php:538 msgid "Your card was declined. Your request was in test mode, but used a non test card. For a list of valid test cards, visit: https://stripe.com/docs/testing." msgstr "Uw kaart werd geweigerd. Uw verzoek was in testmodus, maar er werd een niet-testkaart gebruikt. Voor een lijst met geldige testkaarten, bezoek: https://stripe.com/docs/testing." -#: inc/payments/payment-helper.php:536 +#: inc/payments/payment-helper.php:541 msgid "SureForms Subscription" msgstr "SureForms-abonnement" -#: inc/payments/payment-helper.php:537 +#: inc/payments/payment-helper.php:542 msgid "SureForms Payment" msgstr "SureForms Betaling" -#: inc/payments/payment-helper.php:539 +#: inc/payments/payment-helper.php:544 msgid "SureForms Customer" msgstr "SureForms Klant" -#: inc/payments/payment-helper.php:559 +#: inc/payments/payment-helper.php:564 msgid "Unknown error" msgstr "Onbekende fout" @@ -14977,74 +14978,74 @@ msgstr "Het is niet gelukt om een duplicaat van het formulier te maken." #: inc/payments/front-end.php:97 #: inc/payments/front-end.php:298 -#: inc/payments/payment-helper.php:589 +#: inc/payments/payment-helper.php:594 msgid "Invalid form configuration." msgstr "Ongeldige formulierconfiguratie." -#: inc/payments/payment-helper.php:597 +#: inc/payments/payment-helper.php:602 msgid "Payment configuration not found for this form." msgstr "Betalingsconfiguratie niet gevonden voor dit formulier." #. translators: 1: expected currency, 2: received currency -#: inc/payments/payment-helper.php:608 +#: inc/payments/payment-helper.php:613 #, php-format msgid "Currency mismatch: expected %1$s, received %2$s." msgstr "Valutaverschil: verwacht %1$s, ontvangen %2$s." #. translators: 1: expected amount with currency -#: inc/payments/payment-helper.php:625 +#: inc/payments/payment-helper.php:630 #, php-format msgid "Payment amount must be exactly %1$s." msgstr "Het betalingsbedrag moet exact %1$s zijn." #. translators: 1: minimum amount with currency -#: inc/payments/payment-helper.php:636 +#: inc/payments/payment-helper.php:641 #, php-format msgid "Payment amount must be at least %1$s." msgstr "Het betalingsbedrag moet minimaal %1$s zijn." -#: inc/payments/payment-helper.php:712 +#: inc/payments/payment-helper.php:717 msgid "Invalid payment verification parameters." msgstr "Ongeldige betalingsverificatieparameters." -#: inc/payments/payment-helper.php:723 +#: inc/payments/payment-helper.php:728 msgid "Payment verification failed. Invalid payment intent." msgstr "Betalingsverificatie mislukt. Ongeldige betalingsintentie." -#: inc/payments/payment-helper.php:809 -#: inc/payments/payment-helper.php:947 +#: inc/payments/payment-helper.php:814 +#: inc/payments/payment-helper.php:952 msgid "Variable amount field configuration not found." msgstr "Configuratie van het veld voor variabele bedragen niet gevonden." -#: inc/payments/payment-helper.php:830 +#: inc/payments/payment-helper.php:835 msgid "No payment options are configured for this field." msgstr "Er zijn geen betalingsopties geconfigureerd voor dit veld." #. translators: %s: currency code -#: inc/payments/payment-helper.php:856 +#: inc/payments/payment-helper.php:861 msgid "Invalid payment amount. Please select a valid amount from the available options." msgstr "Ongeldig betalingsbedrag. Selecteer alstublieft een geldig bedrag uit de beschikbare opties." #. translators: %1$s: expected amount, %2$s: payment amount -#: inc/payments/payment-helper.php:891 +#: inc/payments/payment-helper.php:896 msgid "Payment configuration not found." msgstr "Betalingsconfiguratie niet gevonden." #. translators: %1$s: expected amount, %2$s: payment amount -#: inc/payments/payment-helper.php:907 -#: inc/payments/payment-helper.php:959 -#: inc/payments/payment-helper.php:995 +#: inc/payments/payment-helper.php:912 +#: inc/payments/payment-helper.php:964 +#: inc/payments/payment-helper.php:1000 #, php-format msgid "Payment amount mismatch. Expected %1$s, received %2$s." msgstr "Betalingsbedrag komt niet overeen. Verwacht %1$s, ontvangen %2$s." -#: inc/payments/payment-helper.php:936 -#: inc/payments/payment-helper.php:986 +#: inc/payments/payment-helper.php:941 +#: inc/payments/payment-helper.php:991 msgid "Variable amount field value is required." msgstr "Waarde van het variabele bedrag veld is vereist." #. translators: %1$s: minimum amount, %2$s: payment amount -#: inc/payments/payment-helper.php:1007 +#: inc/payments/payment-helper.php:1012 #, php-format msgid "Payment amount below minimum. Minimum: %1$s, received %2$s." msgstr "Betalingsbedrag onder het minimum. Minimum: %1$s, ontvangen %2$s." @@ -15130,7 +15131,7 @@ msgstr "Betalingsgateway niet gevonden." msgid "Refund processing is not supported for %s gateway." msgstr "Terugbetalingsverwerking wordt niet ondersteund voor %s-gateway." -#: inc/payments/payment-helper.php:969 +#: inc/payments/payment-helper.php:974 msgid "Number field configuration not found." msgstr "Configuratie van het nummer veld niet gevonden." @@ -15249,12 +15250,12 @@ msgid "Stripe Settings" msgstr "Stripe-instellingen" #. translators: %1$s: SureForms version, %2$s: SureForms Pro Plugin Name, %3$s: SureForms Pro Version. -#: admin/admin.php:1376 +#: admin/admin.php:1377 #, php-format msgid "SureForms %1$s requires minimum %2$s %3$s to work properly. Please update to the latest version." msgstr "SureForms %1$s vereist minimaal %2$s %3$s om goed te functioneren. Werk alstublieft bij naar de nieuwste versie." -#: admin/admin.php:1389 +#: admin/admin.php:1390 msgid "Update Now" msgstr "Nu bijwerken" @@ -15316,40 +15317,40 @@ msgstr "Selecteer de positie van het valutasymbool ten opzichte van het bedrag." msgid "Learn" msgstr "Leren" -#: admin/admin.php:1502 +#: admin/admin.php:1503 msgid "Amazing! SureForms is powering your forms and submissions - let's keep growing together!" msgstr "Geweldig! SureForms ondersteunt je formulieren en inzendingen - laten we samen blijven groeien!" -#: admin/admin.php:1503 +#: admin/admin.php:1504 msgid "If SureForms has been helpful, would you mind taking a moment to leave a 5-star review on WordPress.org?" msgstr "Als SureForms nuttig is geweest, zou u dan een moment willen nemen om een 5-sterrenbeoordeling achter te laten op WordPress.org?" -#: admin/admin.php:1506 -#: admin/admin.php:1550 +#: admin/admin.php:1507 +#: admin/admin.php:1551 msgid "Maybe later" msgstr "Misschien later" -#: admin/admin.php:1507 +#: admin/admin.php:1508 msgid "I already did" msgstr "Ik heb het al gedaan" -#: admin/admin.php:1546 +#: admin/admin.php:1547 msgid "SureForms is ready to power your forms — explore what's possible!" msgstr "SureForms is klaar om uw formulieren van stroom te voorzien — ontdek wat er mogelijk is!" -#: admin/admin.php:1547 +#: admin/admin.php:1548 msgid "Manage your forms, track submissions, and discover features like AI Form Builder, payment integrations, and more from the SureForms dashboard." msgstr "Beheer uw formulieren, volg inzendingen en ontdek functies zoals AI Form Builder, betalingsintegraties en meer vanaf het SureForms-dashboard." -#: admin/admin.php:1549 +#: admin/admin.php:1550 msgid "Go to Dashboard" msgstr "Ga naar Dashboard" -#: admin/admin.php:1551 +#: admin/admin.php:1552 msgid "I already know" msgstr "Ik weet het al" -#: admin/admin.php:1631 +#: admin/admin.php:1632 msgid "Invalid parameters." msgstr "Ongeldige parameters." @@ -15739,7 +15740,7 @@ msgstr "Dit formulier is nog niet beschikbaar. Kom terug na de geplande starttij #: inc/form-submit.php:99 #: inc/form-submit.php:400 #: inc/form-submit.php:445 -#: inc/form-submit.php:966 +#: inc/form-submit.php:968 #: inc/payments/front-end.php:77 #: inc/payments/front-end.php:258 #: inc/rest-api.php:98 @@ -15788,19 +15789,19 @@ msgstr "Controleer het formulier op fouten." msgid "Your submission was flagged as spam. Please try again." msgstr "Je inzending is gemarkeerd als spam. Probeer het opnieuw." -#: inc/form-submit.php:649 +#: inc/form-submit.php:651 msgid "Unable to submit form. Please try again." msgstr "Kan formulier niet verzenden. Probeer het opnieuw." -#: inc/form-submit.php:901 +#: inc/form-submit.php:903 msgid "No SMTP plugin detected. Please configure an SMTP plugin to enable email sending." msgstr "Er is geen SMTP-plug-in gedetecteerd. Configureer een SMTP-plug-in om het verzenden van e-mails mogelijk te maken." -#: inc/form-submit.php:902 +#: inc/form-submit.php:904 msgid "Email sending failed for an unknown reason." msgstr "E-mail verzenden mislukt om een onbekende reden." -#: inc/form-submit.php:941 +#: inc/form-submit.php:943 msgid "No emails were sent." msgstr "Er zijn geen e-mails verzonden." @@ -15953,31 +15954,31 @@ msgstr "Betalingen kunnen niet worden verwijderd. Probeer het opnieuw." msgid "Unable to process refund. Please try again." msgstr "Kan de terugbetaling niet verwerken. Probeer het opnieuw." -#: inc/payments/payment-helper.php:491 +#: inc/payments/payment-helper.php:496 msgid "Unable to complete payment. Please try again or contact support." msgstr "Betaling kan niet worden voltooid. Probeer het opnieuw of neem contact op met de ondersteuning." -#: inc/payments/payment-helper.php:513 +#: inc/payments/payment-helper.php:518 msgid "Unable to process card. Please try again." msgstr "Kan kaart niet verwerken. Probeer het opnieuw." -#: inc/payments/payment-helper.php:514 +#: inc/payments/payment-helper.php:519 msgid "Unable to process transaction. Please try again." msgstr "Kan transactie niet verwerken. Probeer het opnieuw." -#: inc/payments/payment-helper.php:520 +#: inc/payments/payment-helper.php:525 msgid "Unable to reach card issuer. Please try again later." msgstr "Kan de kaartuitgever niet bereiken. Probeer het later opnieuw." -#: inc/payments/payment-helper.php:531 +#: inc/payments/payment-helper.php:536 msgid "Unable to process transaction. Please try again later." msgstr "Kan transactie niet verwerken. Probeer het later opnieuw." -#: inc/payments/payment-helper.php:541 +#: inc/payments/payment-helper.php:546 msgid "Complete the form to view the amount." msgstr "Vul het formulier in om het bedrag te bekijken." -#: inc/payments/payment-helper.php:542 +#: inc/payments/payment-helper.php:547 msgid "Unable to create payment. Please contact support." msgstr "Betaling kan niet worden aangemaakt. Neem contact op met de ondersteuning." @@ -16693,7 +16694,7 @@ msgid "Invalid webhook signature." msgstr "Ongeldige webhook-handtekening." #: admin/admin.php:426 -#: admin/admin.php:974 +#: admin/admin.php:975 #: assets/build/formEditor.js:172 msgid "Quizzes" msgstr "Quizzen" @@ -16707,11 +16708,11 @@ msgstr "Quizinzendingen" msgid "New" msgstr "Nieuw" -#: inc/form-submit.php:975 +#: inc/form-submit.php:977 msgid "Invalid form." msgstr "Ongeldig formulier." -#: inc/form-submit.php:980 +#: inc/form-submit.php:982 msgid "Too many requests. Please try again shortly." msgstr "Te veel verzoeken. Probeer het binnenkort opnieuw." @@ -17225,7 +17226,7 @@ msgstr "Selecteer dit om een quiz te maken met gescoorde vragen en beoordeelde r #: admin/admin.php:458 #: admin/admin.php:459 -#: admin/admin.php:979 +#: admin/admin.php:980 msgid "Survey Reports" msgstr "Onderzoeksrapporten" @@ -17491,7 +17492,7 @@ msgstr "Help de toekomst van SureForms vormgeven" #: assets/build/settings.js:172 msgid "Share how you use the plugin so we can build features that matter, fix issues faster, and make smarter decisions. " -msgstr "Deel hoe je de plugin gebruikt, zodat we functies kunnen ontwikkelen die ertoe doen, problemen sneller kunnen oplossen en slimmere beslissingen kunnen nemen. " +msgstr "Deel hoe je de plugin gebruikt, zodat we functies kunnen ontwikkelen die ertoe doen, problemen sneller kunnen oplossen en slimmere beslissingen kunnen nemen." #: assets/build/settings.js:172 msgid "Enable Google Address Autocomplete" @@ -17569,6 +17570,14 @@ msgstr "Toon live resultaten aan respondenten" msgid "Perfect for feedback, polls, and research" msgstr "Perfect voor feedback, peilingen en onderzoek" +#: inc/payments/payment-helper.php:259 +msgid "Polish Złoty" +msgstr "Poolse Złoty" + +#: assets/build/blocks.js:172 +msgid "Dynamic Default Value" +msgstr "Dynamische Standaardwaarde" + #: inc/post-types.php:205 msgctxt "post type general name" msgid "Forms" diff --git a/languages/sureforms-pl_PL-4b62e3f004dea2c587b5a3069263d994.json b/languages/sureforms-pl_PL-4b62e3f004dea2c587b5a3069263d994.json index a951ca4a4..41d2308dc 100644 --- a/languages/sureforms-pl_PL-4b62e3f004dea2c587b5a3069263d994.json +++ b/languages/sureforms-pl_PL-4b62e3f004dea2c587b5a3069263d994.json @@ -1 +1 @@ -{"translation-revision-date":"2025-01-02T08:44:41+00:00","generator":"WP-CLI\/2.12.0","source":"assets\/build\/blocks.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"en","plural-forms":"nplurals=2; plural=(n != 1);"},"Settings":["Ustawienia"],"Search":["Szukaj"],"Fields":["Pola"],"Image":["Obraz"],"Submit":["Prze\u015blij"],"Required":["Wymagane"],"Form Title":["Tytu\u0142 formularza"],"Show":["Poka\u017c"],"Hide":["Ukryj"],"Edit Form":["Edytuj formularz"],"Icon":["Ikona"],"Desktop":["Pulpit"],"Medium":["\u015aredni"],"Mobile":["Telefon kom\u00f3rkowy"],"Repeat":["Powt\u00f3rz"],"Scroll":["Przewi\u0144"],"Tablet":["Tablet"],"Basic":["Podstawowy"],"(no title)":["(brak tytu\u0142u)"],"Select a Form":["Wybierz formularz"],"No forms found\u2026":["Nie znaleziono formularzy\u2026"],"Choose":["Wybierz"],"Create New":["Utw\u00f3rz nowe"],"Change Form":["Zmie\u0144 formularz"],"This form has been deleted or is unavailable.":["Ten formularz zosta\u0142 usuni\u0119ty lub jest niedost\u0119pny."],"Form Settings":["Ustawienia formularza"],"Show Form Title on this Page":["Poka\u017c tytu\u0142 formularza na tej stronie"],"Note: For editing SureForms, please refer to the SureForms Editor - ":["Uwaga: Aby edytowa\u0107 SureForms, prosz\u0119 odnie\u015b\u0107 si\u0119 do SureForms Editor -"],"Field preview":["Podgl\u0105d pola"],"General":["Og\u00f3lny"],"Style":["Styl"],"Advanced":["Zaawansowany"],"No tags available":["Brak dost\u0119pnych tag\u00f3w"],"Device":["Urz\u0105dzenie"],"Select Shortcodes":["Wybierz skr\u00f3ty"],"Page Break Label":["Etykieta podzia\u0142u strony"],"Next":["Dalej"],"Back":["Wstecz"],"Reset":["Resetuj"],"Generic tags":["Og\u00f3lne tagi"],"Pixel":["Piksel"],"Em":["Em"],"Select Units":["Wybierz jednostki"],"%s units":["%s jednostki"],"Margin":["Margines"],"Attributes":["Atrybuty"],"Input Pattern":["Wzorzec wej\u015bciowy"],"None":["Brak"],"(###) ###-####":["(###) ###-####"],"(##) ####-####":["(##) ####-####"],"27\/08\/2024":["27\/08\/2024"],"23:59:59":["23:59:59"],"27\/08\/2024 23:59:59":["27\/08\/2024 23:59:59"],"Custom":["Niestandardowy"],"Custom Mask":["Maska niestandardowa"],"Please check the documentation to manage custom input pattern ":["Prosz\u0119 sprawdzi\u0107 dokumentacj\u0119, aby zarz\u0105dza\u0107 niestandardowym wzorcem wej\u015bciowym"],"here":["tutaj"],"Default Value":["Warto\u015b\u0107 domy\u015blna"],"Error Message":["Komunikat o b\u0142\u0119dzie"],"Help Text":["Tekst pomocy"],"Number Format":["Format liczb"],"US Style (Eg: 9,999.99)":["Styl ameryka\u0144ski (np. 9,999.99)"],"EU Style (Eg: 9.999,99)":["Styl UE (np.: 9.999,99)"],"Minimum Value":["Warto\u015b\u0107 minimalna"],"Maximum Value":["Maksymalna warto\u015b\u0107"],"Please check the Minimum and Maximum value":["Prosz\u0119 sprawdzi\u0107 warto\u015b\u0107 minimaln\u0105 i maksymaln\u0105"],"Enable Email Confirmation":["W\u0142\u0105cz potwierdzenie e-mail"],"Checked by Default":["Zaznaczone domy\u015blnie"],"Error message":["Komunikat o b\u0142\u0119dzie"],"Checked by default":["Domy\u015blnie zaznaczone"],"Please add a option props to MultiButtonsControl":["Prosz\u0119 doda\u0107 opcj\u0119 props do MultiButtonsControl"],"Icon Library":["Biblioteka ikon"],"Close":["Zamknij"],"All Icons":["Wszystkie ikony"],"Other":["Inne"],"No Icons Found":["Nie znaleziono ikon"],"Insert Icon":["Wstaw ikon\u0119"],"Change Icon":["Zmie\u0144 ikon\u0119"],"Choose Icon":["Wybierz ikon\u0119"],"Confirm":["Potwierd\u017a"],"Cancel":["Anuluj"],"Processing\u2026":["Przetwarzanie\u2026"],"Select Video":["Wybierz wideo"],"Change Video":["Zmie\u0144 wideo"],"Select Lottie Animation":["Wybierz animacj\u0119 Lottie"],"Change Lottie Animation":["Zmie\u0144 animacj\u0119 Lottie"],"Upload SVG":["Prze\u015blij SVG"],"Change SVG":["Zmie\u0144 SVG"],"Select Image":["Wybierz obraz"],"Change Image":["Zmie\u0144 obraz"],"Upload SVG?":["Przes\u0142a\u0107 SVG?"],"Upload SVG can be potentially risky. Are you sure?":["Przesy\u0142anie plik\u00f3w SVG mo\u017ce by\u0107 potencjalnie ryzykowne. Czy jeste\u015b pewien?"],"Upload Anyway":["Prze\u015blij mimo to"],"Bulk Add":["Dodaj masowo"],"Bulk Add Options":["Opcje masowego dodawania"],"Enter each option on a new line.":["Wprowad\u017a ka\u017cd\u0105 opcj\u0119 w nowej linii."],"Insert Options":["Opcje wstawiania"],"Full Width":["Pe\u0142na szeroko\u015b\u0107"],"Option Type":["Typ opcji"],"Edit Options":["Edytuj opcje"],"Add New Option":["Dodaj now\u0105 opcj\u0119"],"ADD":["DODAJ"],"Enable Auto Country Detection":["W\u0142\u0105cz automatyczne wykrywanie kraju"],"%s Width":["Szeroko\u015b\u0107 %s"],"Upgrade":["Aktualizacja"],"Clear":["Wyczy\u015b\u0107"],"Select Color":["Wybierz kolor"],"Primary Color":["Kolor podstawowy"],"Text Color":["Kolor tekstu"],"Field Spacing":["Odst\u0119py mi\u0119dzy polami"],"Small":["Ma\u0142y"],"Large":["Du\u017cy"],"Left":["Lewo"],"Center":["Centrum"],"Right":["Prawo"],"Color":["Kolor"],"Background Color":["Kolor t\u0142a"],"Auto":["Samoch\u00f3d"],"Default":["Domy\u015blny"],"Normal":["Normalny"],"%":["%"],"Top":["G\u00f3ra"],"Bottom":["D\u00f3\u0142"],"Width":["Szeroko\u015b\u0107"],"Size":["Rozmiar"],"EM":["EM"],"Padding":["Wype\u0142nienie"],"Color 1":["Kolor 1"],"Color 2":["Kolor 2"],"Type":["Rodzaj"],"Linear":["Liniowy"],"Radial":["Promieniowy"],"Location 1":["Lokalizacja 1"],"Location 2":["Lokalizacja 2"],"Angle":["K\u0105t"],"Classic":["Klasyczny"],"Gradient":["Gradient"],"Horizontal":["Poziomy"],"Vertical":["Pionowy"],"Background":["T\u0142o"],"Cover":["Ok\u0142adka"],"Contain":["Zawiera\u0107"],"Layout":["Uk\u0142ad"],"Overlay":["Nak\u0142adka"],"No Repeat":["Bez powt\u00f3rki"],"Overlay Opacity":["Przezroczysto\u015b\u0107 nak\u0142adki"],"Conditional Logic":["Logika warunkowa"],"Upgrade to the SureForms Starter Plan to create dynamic forms that adapt based on user input, offering a personalised and efficient form experience.":["Ulepsz do planu SureForms Starter, aby tworzy\u0107 dynamiczne formularze, kt\u00f3re dostosowuj\u0105 si\u0119 na podstawie danych wprowadzonych przez u\u017cytkownika, oferuj\u0105c spersonalizowane i efektywne do\u015bwiadczenie formularza."],"Enable Conditional Logic":["W\u0142\u0105cz logik\u0119 warunkow\u0105"],"this field if":["to pole, je\u015bli"],"Configure Conditions":["Skonfiguruj warunki"],"Premium":["Premium"],"Overlay Type":["Typ nak\u0142adki"],"Image Overlay Color":["Kolor nak\u0142adki obrazu"],"Image Position":["Pozycja obrazu"],"Attachment":["Za\u0142\u0105cznik"],"Fixed":["Naprawione"],"Blend Mode":["Tryb mieszania"],"Multiply":["Mno\u017cenie"],"Screen":["Ekran"],"Darken":["Przyciemnij"],"Lighten":["Rozja\u015bnij"],"Color Dodge":["Rozja\u015bnianie koloru"],"Saturation":["Nasycenie"],"Repeat-x":["Powt\u00f3rz-x"],"Repeat-y":["Powt\u00f3rz-y"],"PX":["PX"],"Button":["Przycisk"],"Prefix Label":["Etykieta prefiksu"],"Suffix Label":["Etykieta sufiksu"],"Border Radius":["Promie\u0144 obramowania"],"Form Theme":["Motyw formularza"],"Select Gradient":["Wybierz gradient"],"Unlock Conditional Logic Editor":["Odblokuj edytor logiki warunkowej"],"Rich Text Editor":["Edytor tekstu sformatowanego"],"Read Only":["Tylko do odczytu"],"Select Country":["Wybierz kraj"],"Default Country":["Domy\u015blny kraj"],"Subscription":["Subskrypcja"],"One Time":["Jeden raz"],"Unique Entry":["Unikalny wpis"],"Maximum Characters":["Maksymalna liczba znak\u00f3w"],"Textarea Height":["Wysoko\u015b\u0107 pola tekstowego"],"Minimum Selections":["Minimalna liczba wybor\u00f3w"],"Maximum Selections":["Maksymalna liczba wybor\u00f3w"],"Add Numeric Values to Options":["Dodaj warto\u015bci numeryczne do opcji"],"Single Choice Only":["Tylko jeden wyb\u00f3r"],"Enable Dropdown Search":["W\u0142\u0105cz wyszukiwanie w rozwijanym menu"],"Allow Multiple":["Zezw\u00f3l na wiele"],"%1$s fields are required. Please configure these fields in the block settings.":["Wymagane s\u0105 pola %1$s. Prosz\u0119 skonfigurowa\u0107 te pola w ustawieniach bloku."],"%1$s field is required. Please configure this field in the block settings.":["Pole %1$s jest wymagane. Prosz\u0119 skonfigurowa\u0107 to pole w ustawieniach bloku."],"You need to configure a payment account to collect payments from this form. Please configure your payment provider to proceed.":["Musisz skonfigurowa\u0107 konto p\u0142atnicze, aby zbiera\u0107 p\u0142atno\u015bci z tego formularza. Prosz\u0119 skonfigurowa\u0107 swojego dostawc\u0119 p\u0142atno\u015bci, aby kontynuowa\u0107."],"Configure Payment Account":["Skonfiguruj konto p\u0142atnicze"],"This is a placeholder for the Payment block. The actual payment fields for your configured payment provider(s) will only appear when you preview or publish the form.":["To jest symbol zast\u0119pczy dla bloku p\u0142atno\u015bci. Rzeczywiste pola p\u0142atno\u015bci dla skonfigurowanego dostawcy p\u0142atno\u015bci pojawi\u0105 si\u0119 dopiero po podgl\u0105dzie lub opublikowaniu formularza."],"2 Payments":["2 P\u0142atno\u015bci"],"3 Payments":["3 P\u0142atno\u015bci"],"4 Payments":["4 P\u0142atno\u015bci"],"5 Payments":["5 P\u0142atno\u015bci"],"Never":["Nigdy"],"Stop Subscription After":["Zatrzymaj subskrypcj\u0119 po"],"Choose when to automatically stop the subscription":["Wybierz, kiedy automatycznie zako\u0144czy\u0107 subskrypcj\u0119"],"Number of Payments":["Liczba p\u0142atno\u015bci"],"Enter a number between 1 to 100":["Wprowad\u017a liczb\u0119 od 1 do 100"],"Form Field":["Pole formularza"],"Payment Type":["Typ p\u0142atno\u015bci"],"Subscription Plan Name":["Nazwa Planu Subskrypcji"],"Billing Interval":["Okres rozliczeniowy"],"Daily":["Codziennie"],"Weekly":["Tygodniowo"],"Monthly":["Miesi\u0119cznie"],"Quarterly":["Kwartalnie"],"Yearly":["Rocznie"],"Amount Type":["Typ kwoty"],"Fixed Amount":["Sta\u0142a kwota"],"Dynamic Amount":["Dynamiczna kwota"],"Choose whether to charge a fixed amount or charge the amount based on user input in other form fields.":["Wybierz, czy naliczy\u0107 sta\u0142\u0105 kwot\u0119, czy naliczy\u0107 kwot\u0119 na podstawie danych wprowadzonych przez u\u017cytkownika w innych polach formularza."],"Set the exact amount you want to charge. Users won\u2019t be able to change it":["Ustaw dok\u0142adn\u0105 kwot\u0119, kt\u00f3r\u0105 chcesz pobra\u0107. U\u017cytkownicy nie b\u0119d\u0105 mogli jej zmieni\u0107"],"Choose Amount Field":["Wybierz pole kwoty"],"Select a field\u2026":["Wybierz pole\u2026"],"Pick a field from your form like a number, dropdown, or multichoice whose value should decide the payment amount.":["Wybierz pole z formularza, takie jak liczba, lista rozwijana lub wielokrotny wyb\u00f3r, kt\u00f3rego warto\u015b\u0107 powinna decydowa\u0107 o kwocie p\u0142atno\u015bci."],"Minimum Amount":["Minimalna kwota"],"Set the minimum amount users can enter (0 for no minimum)":["Ustaw minimaln\u0105 kwot\u0119, jak\u0105 u\u017cytkownicy mog\u0105 wprowadzi\u0107 (0 dla braku minimum)"],"Customer Name Field (Required)":["Pole Nazwa Klienta (Wymagane)"],"Customer Name Field (Optional)":["Pole Nazwa Klienta (Opcjonalne)"],"Select the input field that contains the customer name (Required for subscriptions)":["Wybierz pole wej\u015bciowe, kt\u00f3re zawiera nazwisko klienta (Wymagane dla subskrypcji)"],"Select the input field that contains the customer name":["Wybierz pole wej\u015bciowe, kt\u00f3re zawiera nazwisko klienta"],"Customer Email Field (Required)":["Pole e-mail klienta (wymagane)"],"Select the email field that contains the customer email":["Wybierz pole e-mail, kt\u00f3re zawiera adres e-mail klienta"],"Payment":["P\u0142atno\u015b\u0107"],"%s - Order ID":["%s - Identyfikator zam\u00f3wienia"],"%s - Amount":["%s - Kwota"],"%s - Customer Email":["%s - E-mail klienta"],"%s - Customer Name":["%s - Nazwa klienta"],"%s - Status":["%s - Status"],"Button Alignment":["Wyr\u00f3wnanie przycisku"],"Placeholder":["Symbol zast\u0119pczy"],"Preselect this option":["Wst\u0119pnie wybierz t\u0119 opcj\u0119"],"Restrict Country Codes":["Ogranicz kody kraj\u00f3w"],"Restriction Type":["Typ ograniczenia"],"Allow":["Zezw\u00f3l"],"Block":["Blok"],"Select Allowed Countries":["Wybierz dozwolone kraje"],"Choose countries\u2026":["Wybierz kraje\u2026"],"Choose which country codes users can select in the phone number field. Leave empty to allow all country codes.":["Wybierz, kt\u00f3re kody kraj\u00f3w u\u017cytkownicy mog\u0105 wybra\u0107 w polu numeru telefonu. Pozostaw puste, aby zezwoli\u0107 na wszystkie kody kraj\u00f3w."],"Select Blocked Countries":["Wybierz zablokowane kraje"],"These countries will be hidden from the dropdown.":["Te kraje b\u0119d\u0105 ukryte w rozwijanym menu."],"Bulk Edit":["Masowa edycja"],"Select Layout":["Wybierz uk\u0142ad"],"Number of Columns":["Liczba kolumn"],"Validation Message for Duplicate":["Komunikat walidacyjny dla duplikatu"],"Click here to insert a form":["Kliknij tutaj, aby wstawi\u0107 formularz"],"Inherit Form's Original Style":["Odziedzicz oryginalny styl formularza"],"Text on Primary":["Tekst na g\u0142\u00f3wnym"],"%s - Description":["%s - Opis"],"Upgrade to Unlock":["Uaktualnij, aby odblokowa\u0107"],"Custom (Premium)":["Niestandardowy (Premium)"],"Select a theme style for this form embed.":["Wybierz styl motywu dla tego osadzenia formularza."],"Colors":["Kolory"],"Advanced Styling":["Zaawansowane stylizowanie"],"Unlock Custom Styling":["Odblokuj niestandardowe stylizacje"],"Switch to Custom Mode to take full control of your form's design and spacing.":["Prze\u0142\u0105cz si\u0119 na tryb niestandardowy, aby przej\u0105\u0107 pe\u0142n\u0105 kontrol\u0119 nad projektem i odst\u0119pami formularza."],"Full color control (buttons, fields, text)":["Pe\u0142na kontrola koloru (przyciski, pola, tekst)"],"Row and column gap control":["Kontrola odst\u0119p\u00f3w mi\u0119dzy wierszami i kolumnami"],"Field spacing and layout precision":["Precyzja rozmieszczenia i odst\u0119p\u00f3w p\u00f3l"],"Complete button styling":["Kompletne stylizowanie przycisku"],"Payment Description":["Opis p\u0142atno\u015bci"],"Shown on payment receipts and in your payment dashboard (Stripe and PayPal). Leave blank to use the default.":["Pokazywane na paragonach p\u0142atno\u015bci i w panelu p\u0142atno\u015bci (Stripe i PayPal). Pozostaw puste, aby u\u017cy\u0107 domy\u015blnego."],"Slug":["\u015alimak"],"Auto-generated on save":["Automatycznie generowane przy zapisie"],"This slug is already used by another field. It will revert to the previous value.":["Ten slug jest ju\u017c u\u017cywany przez inne pole. Zostanie przywr\u00f3cony do poprzedniej warto\u015bci."],"Changing the slug may break form submissions, conditional logic, integrations, or any other feature currently referencing this slug. You will need to update all such references manually.":["Zmiana slug mo\u017ce spowodowa\u0107 problemy z przesy\u0142aniem formularzy, logik\u0105 warunkow\u0105, integracjami lub innymi funkcjami, kt\u00f3re obecnie odwo\u0142uj\u0105 si\u0119 do tego slug. B\u0119dziesz musia\u0142 r\u0119cznie zaktualizowa\u0107 wszystkie takie odwo\u0142ania."],"Field Slug":["Slug pola"],"Location Services":["Us\u0142ugi lokalizacyjne"],"Unlock Address Autocomplete":["Odblokuj autouzupe\u0142nianie adresu"],"Upgrade to enable Google Address Autocomplete with interactive map preview, making address entry faster and more accurate for your users.":["Ulepsz, aby w\u0142\u0105czy\u0107 funkcj\u0119 autouzupe\u0142niania adres\u00f3w Google z interaktywnym podgl\u0105dem mapy, co przyspieszy i zwi\u0119kszy dok\u0142adno\u015b\u0107 wprowadzania adres\u00f3w dla Twoich u\u017cytkownik\u00f3w."],"Enable Google Autocomplete":["W\u0142\u0105cz autouzupe\u0142nianie Google"],"Show Interactive Map":["Poka\u017c interaktywn\u0105 map\u0119"],"Payments Per Page":["P\u0142atno\u015bci za stron\u0119"],"Show Subscriptions Section":["Poka\u017c sekcj\u0119 subskrypcji"],"Show a dedicated subscriptions section above payment history.":["Poka\u017c dedykowan\u0105 sekcj\u0119 subskrypcji nad histori\u0105 p\u0142atno\u015bci."],"Payment Dashboard":["Panel P\u0142atno\u015bci"],"View your payments and manage subscriptions in a single dashboard.":["Przegl\u0105daj swoje p\u0142atno\u015bci i zarz\u0105dzaj subskrypcjami w jednym panelu."]}}} \ No newline at end of file +{"translation-revision-date":"2025-01-02T08:44:41+00:00","generator":"WP-CLI\/2.12.0","source":"assets\/build\/blocks.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"en","plural-forms":"nplurals=2; plural=(n != 1);"},"Settings":["Ustawienia"],"Search":["Szukaj"],"Fields":["Pola"],"Image":["Obraz"],"Submit":["Prze\u015blij"],"Required":["Wymagane"],"Form Title":["Tytu\u0142 formularza"],"Show":["Poka\u017c"],"Hide":["Ukryj"],"Edit Form":["Edytuj formularz"],"Icon":["Ikona"],"Desktop":["Pulpit"],"Medium":["\u015aredni"],"Mobile":["Telefon kom\u00f3rkowy"],"Repeat":["Powt\u00f3rz"],"Scroll":["Przewi\u0144"],"Tablet":["Tablet"],"Basic":["Podstawowy"],"(no title)":["(brak tytu\u0142u)"],"Select a Form":["Wybierz formularz"],"No forms found\u2026":["Nie znaleziono formularzy\u2026"],"Choose":["Wybierz"],"Create New":["Utw\u00f3rz nowe"],"Change Form":["Zmie\u0144 formularz"],"This form has been deleted or is unavailable.":["Ten formularz zosta\u0142 usuni\u0119ty lub jest niedost\u0119pny."],"Form Settings":["Ustawienia formularza"],"Show Form Title on this Page":["Poka\u017c tytu\u0142 formularza na tej stronie"],"Note: For editing SureForms, please refer to the SureForms Editor - ":["Uwaga: Aby edytowa\u0107 SureForms, prosz\u0119 odnie\u015b\u0107 si\u0119 do SureForms Editor -"],"Field preview":["Podgl\u0105d pola"],"General":["Og\u00f3lny"],"Style":["Styl"],"Advanced":["Zaawansowany"],"No tags available":["Brak dost\u0119pnych tag\u00f3w"],"Device":["Urz\u0105dzenie"],"Select Shortcodes":["Wybierz skr\u00f3ty"],"Page Break Label":["Etykieta podzia\u0142u strony"],"Next":["Dalej"],"Back":["Wstecz"],"Reset":["Resetuj"],"Generic tags":["Og\u00f3lne tagi"],"Pixel":["Piksel"],"Em":["Em"],"Select Units":["Wybierz jednostki"],"%s units":["%s jednostki"],"Margin":["Margines"],"Attributes":["Atrybuty"],"Input Pattern":["Wzorzec wej\u015bciowy"],"None":["Brak"],"(###) ###-####":["(###) ###-####"],"(##) ####-####":["(##) ####-####"],"27\/08\/2024":["27\/08\/2024"],"23:59:59":["23:59:59"],"27\/08\/2024 23:59:59":["27\/08\/2024 23:59:59"],"Custom":["Niestandardowy"],"Custom Mask":["Maska niestandardowa"],"Please check the documentation to manage custom input pattern ":["Prosz\u0119 sprawdzi\u0107 dokumentacj\u0119, aby zarz\u0105dza\u0107 niestandardowym wzorcem wej\u015bciowym"],"here":["tutaj"],"Default Value":["Warto\u015b\u0107 domy\u015blna"],"Error Message":["Komunikat o b\u0142\u0119dzie"],"Help Text":["Tekst pomocy"],"Number Format":["Format liczb"],"US Style (Eg: 9,999.99)":["Styl ameryka\u0144ski (np. 9,999.99)"],"EU Style (Eg: 9.999,99)":["Styl UE (np.: 9.999,99)"],"Minimum Value":["Warto\u015b\u0107 minimalna"],"Maximum Value":["Maksymalna warto\u015b\u0107"],"Please check the Minimum and Maximum value":["Prosz\u0119 sprawdzi\u0107 warto\u015b\u0107 minimaln\u0105 i maksymaln\u0105"],"Enable Email Confirmation":["W\u0142\u0105cz potwierdzenie e-mail"],"Checked by Default":["Zaznaczone domy\u015blnie"],"Error message":["Komunikat o b\u0142\u0119dzie"],"Checked by default":["Domy\u015blnie zaznaczone"],"Please add a option props to MultiButtonsControl":["Prosz\u0119 doda\u0107 opcj\u0119 props do MultiButtonsControl"],"Icon Library":["Biblioteka ikon"],"Close":["Zamknij"],"All Icons":["Wszystkie ikony"],"Other":["Inne"],"No Icons Found":["Nie znaleziono ikon"],"Insert Icon":["Wstaw ikon\u0119"],"Change Icon":["Zmie\u0144 ikon\u0119"],"Choose Icon":["Wybierz ikon\u0119"],"Confirm":["Potwierd\u017a"],"Cancel":["Anuluj"],"Processing\u2026":["Przetwarzanie\u2026"],"Select Video":["Wybierz wideo"],"Change Video":["Zmie\u0144 wideo"],"Select Lottie Animation":["Wybierz animacj\u0119 Lottie"],"Change Lottie Animation":["Zmie\u0144 animacj\u0119 Lottie"],"Upload SVG":["Prze\u015blij SVG"],"Change SVG":["Zmie\u0144 SVG"],"Select Image":["Wybierz obraz"],"Change Image":["Zmie\u0144 obraz"],"Upload SVG?":["Przes\u0142a\u0107 SVG?"],"Upload SVG can be potentially risky. Are you sure?":["Przesy\u0142anie plik\u00f3w SVG mo\u017ce by\u0107 potencjalnie ryzykowne. Czy jeste\u015b pewien?"],"Upload Anyway":["Prze\u015blij mimo to"],"Bulk Add":["Dodaj masowo"],"Bulk Add Options":["Opcje masowego dodawania"],"Enter each option on a new line.":["Wprowad\u017a ka\u017cd\u0105 opcj\u0119 w nowej linii."],"Insert Options":["Opcje wstawiania"],"Full Width":["Pe\u0142na szeroko\u015b\u0107"],"Option Type":["Typ opcji"],"Edit Options":["Edytuj opcje"],"Add New Option":["Dodaj now\u0105 opcj\u0119"],"ADD":["DODAJ"],"Enable Auto Country Detection":["W\u0142\u0105cz automatyczne wykrywanie kraju"],"%s Width":["Szeroko\u015b\u0107 %s"],"Upgrade":["Aktualizacja"],"Clear":["Wyczy\u015b\u0107"],"Select Color":["Wybierz kolor"],"Primary Color":["Kolor podstawowy"],"Text Color":["Kolor tekstu"],"Field Spacing":["Odst\u0119py mi\u0119dzy polami"],"Small":["Ma\u0142y"],"Large":["Du\u017cy"],"Left":["Lewo"],"Center":["Centrum"],"Right":["Prawo"],"Color":["Kolor"],"Background Color":["Kolor t\u0142a"],"Auto":["Samoch\u00f3d"],"Default":["Domy\u015blny"],"Normal":["Normalny"],"%":["%"],"Top":["G\u00f3ra"],"Bottom":["D\u00f3\u0142"],"Width":["Szeroko\u015b\u0107"],"Size":["Rozmiar"],"EM":["EM"],"Padding":["Wype\u0142nienie"],"Color 1":["Kolor 1"],"Color 2":["Kolor 2"],"Type":["Rodzaj"],"Linear":["Liniowy"],"Radial":["Promieniowy"],"Location 1":["Lokalizacja 1"],"Location 2":["Lokalizacja 2"],"Angle":["K\u0105t"],"Classic":["Klasyczny"],"Gradient":["Gradient"],"Horizontal":["Poziomy"],"Vertical":["Pionowy"],"Background":["T\u0142o"],"Cover":["Ok\u0142adka"],"Contain":["Zawiera\u0107"],"Layout":["Uk\u0142ad"],"Overlay":["Nak\u0142adka"],"No Repeat":["Bez powt\u00f3rki"],"Overlay Opacity":["Przezroczysto\u015b\u0107 nak\u0142adki"],"Conditional Logic":["Logika warunkowa"],"Upgrade to the SureForms Starter Plan to create dynamic forms that adapt based on user input, offering a personalised and efficient form experience.":["Ulepsz do planu SureForms Starter, aby tworzy\u0107 dynamiczne formularze, kt\u00f3re dostosowuj\u0105 si\u0119 na podstawie danych wprowadzonych przez u\u017cytkownika, oferuj\u0105c spersonalizowane i efektywne do\u015bwiadczenie formularza."],"Enable Conditional Logic":["W\u0142\u0105cz logik\u0119 warunkow\u0105"],"this field if":["to pole, je\u015bli"],"Configure Conditions":["Skonfiguruj warunki"],"Premium":["Premium"],"Overlay Type":["Typ nak\u0142adki"],"Image Overlay Color":["Kolor nak\u0142adki obrazu"],"Image Position":["Pozycja obrazu"],"Attachment":["Za\u0142\u0105cznik"],"Fixed":["Naprawione"],"Blend Mode":["Tryb mieszania"],"Multiply":["Mno\u017cenie"],"Screen":["Ekran"],"Darken":["Przyciemnij"],"Lighten":["Rozja\u015bnij"],"Color Dodge":["Rozja\u015bnianie koloru"],"Saturation":["Nasycenie"],"Repeat-x":["Powt\u00f3rz-x"],"Repeat-y":["Powt\u00f3rz-y"],"PX":["PX"],"Button":["Przycisk"],"Prefix Label":["Etykieta prefiksu"],"Suffix Label":["Etykieta sufiksu"],"Border Radius":["Promie\u0144 obramowania"],"Form Theme":["Motyw formularza"],"Select Gradient":["Wybierz gradient"],"Unlock Conditional Logic Editor":["Odblokuj edytor logiki warunkowej"],"Rich Text Editor":["Edytor tekstu sformatowanego"],"Read Only":["Tylko do odczytu"],"Select Country":["Wybierz kraj"],"Default Country":["Domy\u015blny kraj"],"Subscription":["Subskrypcja"],"One Time":["Jeden raz"],"Unique Entry":["Unikalny wpis"],"Maximum Characters":["Maksymalna liczba znak\u00f3w"],"Textarea Height":["Wysoko\u015b\u0107 pola tekstowego"],"Minimum Selections":["Minimalna liczba wybor\u00f3w"],"Maximum Selections":["Maksymalna liczba wybor\u00f3w"],"Add Numeric Values to Options":["Dodaj warto\u015bci numeryczne do opcji"],"Single Choice Only":["Tylko jeden wyb\u00f3r"],"Enable Dropdown Search":["W\u0142\u0105cz wyszukiwanie w rozwijanym menu"],"Allow Multiple":["Zezw\u00f3l na wiele"],"%1$s fields are required. Please configure these fields in the block settings.":["Wymagane s\u0105 pola %1$s. Prosz\u0119 skonfigurowa\u0107 te pola w ustawieniach bloku."],"%1$s field is required. Please configure this field in the block settings.":["Pole %1$s jest wymagane. Prosz\u0119 skonfigurowa\u0107 to pole w ustawieniach bloku."],"You need to configure a payment account to collect payments from this form. Please configure your payment provider to proceed.":["Musisz skonfigurowa\u0107 konto p\u0142atnicze, aby zbiera\u0107 p\u0142atno\u015bci z tego formularza. Prosz\u0119 skonfigurowa\u0107 swojego dostawc\u0119 p\u0142atno\u015bci, aby kontynuowa\u0107."],"Configure Payment Account":["Skonfiguruj konto p\u0142atnicze"],"This is a placeholder for the Payment block. The actual payment fields for your configured payment provider(s) will only appear when you preview or publish the form.":["To jest symbol zast\u0119pczy dla bloku p\u0142atno\u015bci. Rzeczywiste pola p\u0142atno\u015bci dla skonfigurowanego dostawcy p\u0142atno\u015bci pojawi\u0105 si\u0119 dopiero po podgl\u0105dzie lub opublikowaniu formularza."],"2 Payments":["2 P\u0142atno\u015bci"],"3 Payments":["3 P\u0142atno\u015bci"],"4 Payments":["4 P\u0142atno\u015bci"],"5 Payments":["5 P\u0142atno\u015bci"],"Never":["Nigdy"],"Stop Subscription After":["Zatrzymaj subskrypcj\u0119 po"],"Choose when to automatically stop the subscription":["Wybierz, kiedy automatycznie zako\u0144czy\u0107 subskrypcj\u0119"],"Number of Payments":["Liczba p\u0142atno\u015bci"],"Enter a number between 1 to 100":["Wprowad\u017a liczb\u0119 od 1 do 100"],"Form Field":["Pole formularza"],"Payment Type":["Typ p\u0142atno\u015bci"],"Subscription Plan Name":["Nazwa Planu Subskrypcji"],"Billing Interval":["Okres rozliczeniowy"],"Daily":["Codziennie"],"Weekly":["Tygodniowo"],"Monthly":["Miesi\u0119cznie"],"Quarterly":["Kwartalnie"],"Yearly":["Rocznie"],"Amount Type":["Typ kwoty"],"Fixed Amount":["Sta\u0142a kwota"],"Dynamic Amount":["Dynamiczna kwota"],"Choose whether to charge a fixed amount or charge the amount based on user input in other form fields.":["Wybierz, czy naliczy\u0107 sta\u0142\u0105 kwot\u0119, czy naliczy\u0107 kwot\u0119 na podstawie danych wprowadzonych przez u\u017cytkownika w innych polach formularza."],"Set the exact amount you want to charge. Users won\u2019t be able to change it":["Ustaw dok\u0142adn\u0105 kwot\u0119, kt\u00f3r\u0105 chcesz pobra\u0107. U\u017cytkownicy nie b\u0119d\u0105 mogli jej zmieni\u0107"],"Choose Amount Field":["Wybierz pole kwoty"],"Select a field\u2026":["Wybierz pole\u2026"],"Pick a field from your form like a number, dropdown, or multichoice whose value should decide the payment amount.":["Wybierz pole z formularza, takie jak liczba, lista rozwijana lub wielokrotny wyb\u00f3r, kt\u00f3rego warto\u015b\u0107 powinna decydowa\u0107 o kwocie p\u0142atno\u015bci."],"Minimum Amount":["Minimalna kwota"],"Set the minimum amount users can enter (0 for no minimum)":["Ustaw minimaln\u0105 kwot\u0119, jak\u0105 u\u017cytkownicy mog\u0105 wprowadzi\u0107 (0 dla braku minimum)"],"Customer Name Field (Required)":["Pole Nazwa Klienta (Wymagane)"],"Customer Name Field (Optional)":["Pole Nazwa Klienta (Opcjonalne)"],"Select the input field that contains the customer name (Required for subscriptions)":["Wybierz pole wej\u015bciowe, kt\u00f3re zawiera nazwisko klienta (Wymagane dla subskrypcji)"],"Select the input field that contains the customer name":["Wybierz pole wej\u015bciowe, kt\u00f3re zawiera nazwisko klienta"],"Customer Email Field (Required)":["Pole e-mail klienta (wymagane)"],"Select the email field that contains the customer email":["Wybierz pole e-mail, kt\u00f3re zawiera adres e-mail klienta"],"Payment":["P\u0142atno\u015b\u0107"],"%s - Order ID":["%s - Identyfikator zam\u00f3wienia"],"%s - Amount":["%s - Kwota"],"%s - Customer Email":["%s - E-mail klienta"],"%s - Customer Name":["%s - Nazwa klienta"],"%s - Status":["%s - Status"],"Button Alignment":["Wyr\u00f3wnanie przycisku"],"Placeholder":["Symbol zast\u0119pczy"],"Preselect this option":["Wst\u0119pnie wybierz t\u0119 opcj\u0119"],"Restrict Country Codes":["Ogranicz kody kraj\u00f3w"],"Restriction Type":["Typ ograniczenia"],"Allow":["Zezw\u00f3l"],"Block":["Blok"],"Select Allowed Countries":["Wybierz dozwolone kraje"],"Choose countries\u2026":["Wybierz kraje\u2026"],"Choose which country codes users can select in the phone number field. Leave empty to allow all country codes.":["Wybierz, kt\u00f3re kody kraj\u00f3w u\u017cytkownicy mog\u0105 wybra\u0107 w polu numeru telefonu. Pozostaw puste, aby zezwoli\u0107 na wszystkie kody kraj\u00f3w."],"Select Blocked Countries":["Wybierz zablokowane kraje"],"These countries will be hidden from the dropdown.":["Te kraje b\u0119d\u0105 ukryte w rozwijanym menu."],"Bulk Edit":["Masowa edycja"],"Select Layout":["Wybierz uk\u0142ad"],"Number of Columns":["Liczba kolumn"],"Validation Message for Duplicate":["Komunikat walidacyjny dla duplikatu"],"Click here to insert a form":["Kliknij tutaj, aby wstawi\u0107 formularz"],"Inherit Form's Original Style":["Odziedzicz oryginalny styl formularza"],"Text on Primary":["Tekst na g\u0142\u00f3wnym"],"%s - Description":["%s - Opis"],"Upgrade to Unlock":["Uaktualnij, aby odblokowa\u0107"],"Custom (Premium)":["Niestandardowy (Premium)"],"Select a theme style for this form embed.":["Wybierz styl motywu dla tego osadzenia formularza."],"Colors":["Kolory"],"Advanced Styling":["Zaawansowane stylizowanie"],"Unlock Custom Styling":["Odblokuj niestandardowe stylizacje"],"Switch to Custom Mode to take full control of your form's design and spacing.":["Prze\u0142\u0105cz si\u0119 na tryb niestandardowy, aby przej\u0105\u0107 pe\u0142n\u0105 kontrol\u0119 nad projektem i odst\u0119pami formularza."],"Full color control (buttons, fields, text)":["Pe\u0142na kontrola koloru (przyciski, pola, tekst)"],"Row and column gap control":["Kontrola odst\u0119p\u00f3w mi\u0119dzy wierszami i kolumnami"],"Field spacing and layout precision":["Precyzja rozmieszczenia i odst\u0119p\u00f3w p\u00f3l"],"Complete button styling":["Kompletne stylizowanie przycisku"],"Payment Description":["Opis p\u0142atno\u015bci"],"Shown on payment receipts and in your payment dashboard (Stripe and PayPal). Leave blank to use the default.":["Pokazywane na paragonach p\u0142atno\u015bci i w panelu p\u0142atno\u015bci (Stripe i PayPal). Pozostaw puste, aby u\u017cy\u0107 domy\u015blnego."],"Slug":["\u015alimak"],"Auto-generated on save":["Automatycznie generowane przy zapisie"],"This slug is already used by another field. It will revert to the previous value.":["Ten slug jest ju\u017c u\u017cywany przez inne pole. Zostanie przywr\u00f3cony do poprzedniej warto\u015bci."],"Changing the slug may break form submissions, conditional logic, integrations, or any other feature currently referencing this slug. You will need to update all such references manually.":["Zmiana slug mo\u017ce spowodowa\u0107 problemy z przesy\u0142aniem formularzy, logik\u0105 warunkow\u0105, integracjami lub innymi funkcjami, kt\u00f3re obecnie odwo\u0142uj\u0105 si\u0119 do tego slug. B\u0119dziesz musia\u0142 r\u0119cznie zaktualizowa\u0107 wszystkie takie odwo\u0142ania."],"Field Slug":["Slug pola"],"Location Services":["Us\u0142ugi lokalizacyjne"],"Unlock Address Autocomplete":["Odblokuj autouzupe\u0142nianie adresu"],"Upgrade to enable Google Address Autocomplete with interactive map preview, making address entry faster and more accurate for your users.":["Ulepsz, aby w\u0142\u0105czy\u0107 funkcj\u0119 autouzupe\u0142niania adres\u00f3w Google z interaktywnym podgl\u0105dem mapy, co przyspieszy i zwi\u0119kszy dok\u0142adno\u015b\u0107 wprowadzania adres\u00f3w dla Twoich u\u017cytkownik\u00f3w."],"Enable Google Autocomplete":["W\u0142\u0105cz autouzupe\u0142nianie Google"],"Show Interactive Map":["Poka\u017c interaktywn\u0105 map\u0119"],"Payments Per Page":["P\u0142atno\u015bci za stron\u0119"],"Show Subscriptions Section":["Poka\u017c sekcj\u0119 subskrypcji"],"Show a dedicated subscriptions section above payment history.":["Poka\u017c dedykowan\u0105 sekcj\u0119 subskrypcji nad histori\u0105 p\u0142atno\u015bci."],"Payment Dashboard":["Panel P\u0142atno\u015bci"],"View your payments and manage subscriptions in a single dashboard.":["Przegl\u0105daj swoje p\u0142atno\u015bci i zarz\u0105dzaj subskrypcjami w jednym panelu."],"Dynamic Default Value":["Dynamiczna warto\u015b\u0107 domy\u015blna"]}}} \ No newline at end of file diff --git a/languages/sureforms-pl_PL-51635fe6489fc8288d603fe596c755ca.json b/languages/sureforms-pl_PL-51635fe6489fc8288d603fe596c755ca.json index 284b85035..e8871f38b 100644 --- a/languages/sureforms-pl_PL-51635fe6489fc8288d603fe596c755ca.json +++ b/languages/sureforms-pl_PL-51635fe6489fc8288d603fe596c755ca.json @@ -1 +1 @@ -{"translation-revision-date":"2025-01-02T08:44:41+00:00","generator":"WP-CLI\/2.12.0","source":"assets\/build\/settings.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"en","plural-forms":"nplurals=2; plural=(n != 1);"},"Dashboard":["Panel sterowania"],"Settings":["Ustawienia"],"Entries":["Wpisy"],"Activated":["Aktywowany"],"Activate":["Aktywuj"],"Monday":["Poniedzia\u0142ek"],"Forms":["Formularze"],"GitHub":["GitHub"],"General":["Og\u00f3lny"],"Other":["Inne"],"Confirm":["Potwierd\u017a"],"Cancel":["Anuluj"],"Install":["Zainstaluj"],"Plugin Installation failed, Please try again later.":["Instalacja wtyczki nie powiod\u0142a si\u0119, spr\u00f3buj ponownie p\u00f3\u017aniej."],"Plugin activation failed, Please try again later.":["Aktywacja wtyczki nie powiod\u0142a si\u0119, spr\u00f3buj ponownie p\u00f3\u017aniej."],"Integrations":["Integracje"],"What's New?":["Co nowego?"],"Core":["Rdze\u0144"],"Unlicensed":["Bez licencji"],"Connecting\u2026":["\u0141\u0105czenie\u2026"],"Install & Activate":["Zainstaluj i aktywuj"],"Send Email To":["Wy\u015blij e-mail do"],"Google reCAPTCHA":["Google reCAPTCHA"],"hCaptcha":["hCaptcha"],"reCAPTCHA v2 Invisible":["reCAPTCHA v2 Niewidoczna"],"reCAPTCHA v3":["reCAPTCHA v3"],"Validations":["Walidacje"],"Spam Protection":["Ochrona przed spamem"],"Email Summaries":["Podsumowania e-maili"],"Tuesday":["Wtorek"],"Wednesday":["\u015aroda"],"Thursday":["Czwartek"],"Friday":["Pi\u0105tek"],"Saturday":["Sobota"],"Sunday":["Niedziela"],"Test Email":["Testowy email"],"Schedule Reports":["Zaplanuj raporty"],"IP Logging":["Rejestrowanie IP"],"If this option is turned on, the user's IP address will be saved with the form data":["Je\u015bli ta opcja jest w\u0142\u0105czona, adres IP u\u017cytkownika zostanie zapisany wraz z danymi formularza"],"Confirmation Email Mismatch Message":["Wiadomo\u015b\u0107 o niezgodno\u015bci e-maila potwierdzaj\u0105cego"],"%s represents the minimum input value. For example: \"Minimum value is 10.\"":["%s oznacza minimaln\u0105 warto\u015b\u0107 wej\u015bciow\u0105. Na przyk\u0142ad: \"Minimalna warto\u015b\u0107 to 10.\""],"%s represents the maximum input value. For example: \"Maximum value is 100.\"":["%s oznacza maksymaln\u0105 warto\u015b\u0107 wej\u015bciow\u0105. Na przyk\u0142ad: \"Maksymalna warto\u015b\u0107 to 100.\""],"%s represents the minimum selections needed. For example: \u201cMinimum 2 selections are required.\u201d":["%s oznacza minimaln\u0105 liczb\u0119 wymaganych wybor\u00f3w. Na przyk\u0142ad: \u201eWymagane s\u0105 co najmniej 2 wybory\u201d."],"%s represents the maximum selections allowed. For example: \u201cMaximum 4 selections are allowed.\u201d":["%s oznacza maksymaln\u0105 liczb\u0119 dozwolonych wybor\u00f3w. Na przyk\u0142ad: \u201eDozwolone s\u0105 maksymalnie 4 wybory.\u201d"],"%s represents the minimum choices needed. For example: \u201cMinimum 1 selection is required.\u201d":["%s oznacza minimaln\u0105 liczb\u0119 potrzebnych wybor\u00f3w. Na przyk\u0142ad: \u201eWymagany jest co najmniej 1 wyb\u00f3r.\u201d"],"%s represents the maximum choices allowed. For example: \u201cMaximum 3 selections are allowed.\u201d":["%s oznacza maksymaln\u0105 liczb\u0119 dozwolonych wybor\u00f3w. Na przyk\u0142ad: \u201eDozwolone s\u0105 maksymalnie 3 wybory\u201d."]," Error Message":["Komunikat o b\u0142\u0119dzie"],"Auto":["Samoch\u00f3d"],"Light":["\u015awiat\u0142o"],"Dark":["Ciemny"],"Turnstile":["Bramka"],"Honeypot":["Pu\u0142apka"],"Get Keys":["Pobierz klucze"],"Documentation":["Dokumentacja"],"Site Key":["Klucz strony"],"Secret Key":["Klucz tajny"],"Cloudflare Turnstile":["Cloudflare Turnstile"],"Appearance Mode":["Tryb wygl\u0105du"],"Enable Honeypot Security":["W\u0142\u0105cz zabezpieczenie Honeypot"],"Enable Honeypot Security for better spam protection":["W\u0142\u0105cz Honeypot Security dla lepszej ochrony przed spamem"],"This field cannot be left blank.":["To pole nie mo\u017ce pozosta\u0107 puste."],"OttoKit":["OttoKit"],"Connect with OttoKit":["Po\u0142\u0105cz si\u0119 z OttoKit"],"reCAPTCHA":["reCAPTCHA"],"Ready to go beyond free plan?":["Gotowy, aby wyj\u015b\u0107 poza darmowy plan?"],"Upgrade now":["Zaktualizuj teraz"],"and unlock the full power of SureForms!":["i odblokuj pe\u0142n\u0105 moc SureForms!"],"Upgrade SureForms":["Uaktualnij SureForms"],"Upgrade Now":["Zaktualizuj teraz"],"Form Validation":["Walidacja formularza"],"Required Error Messages":["Wymagane komunikaty o b\u0142\u0119dach"],"Other Error Messages":["Inne komunikaty o b\u0142\u0119dach"],"Input Field Unique":["Pole wej\u015bciowe unikalne"],"Email Field Unique":["Pole e-mail musi by\u0107 unikalne"],"Invalid URL":["Nieprawid\u0142owy URL"],"Phone Field Unique":["Pole telefonu unikalne"],"Invalid Field Number Block":["Nieprawid\u0142owy blok numeru pola"],"Invalid Email":["Nieprawid\u0142owy adres e-mail"],"Number Minimum Value":["Minimalna warto\u015b\u0107 liczby"],"Number Maximum Value":["Maksymalna warto\u015b\u0107 liczby"],"Dropdown Minimum Selections":["Minimalna liczba wybor\u00f3w w rozwijanym menu"],"Dropdown Maximum Selections":["Maksymalna liczba wybor\u00f3w w rozwijanym menu"],"Multiple Choice Minimum Selections":["Minimalna liczba wybor\u00f3w w pytaniach wielokrotnego wyboru"],"Multiple Choice Maximum Selections":["Wielokrotny wyb\u00f3r maksymalna liczba zaznacze\u0144"],"Input Field":["Pole wej\u015bciowe"],"Email Field":["Pole e-mail"],"URL Field":["Pole URL"],"Phone Field":["Pole telefonu"],"Textarea Field":["Pole tekstowe"],"Checkbox Field":["Pole wyboru"],"Dropdown Field":["Pole rozwijane"],"Multiple Choice Field":["Pole wyboru wielokrotnego"],"Address Field":["Pole adresu"],"Number Field":["Pole liczby"],"reCAPTCHA v2":["reCAPTCHA v2"],"To enable reCAPTCHA feature on your SureForms Please enable reCAPTCHA option on your blocks setting and select version. Add google reCAPTCHA secret and site key here. reCAPTCHA will be added to your page on front-end.":["Aby w\u0142\u0105czy\u0107 funkcj\u0119 reCAPTCHA w SureForms, w\u0142\u0105cz opcj\u0119 reCAPTCHA w ustawieniach blok\u00f3w i wybierz wersj\u0119. Dodaj tutaj tajny klucz i klucz witryny Google reCAPTCHA. reCAPTCHA zostanie dodana do Twojej strony na froncie."],"Enter your %s here":["Wprowad\u017a tutaj sw\u00f3j %s"],"To enable hCAPTCHA, please add your site key and secret key. Configure these settings within the individual form.":["Aby w\u0142\u0105czy\u0107 hCAPTCHA, dodaj klucz witryny i klucz tajny. Skonfiguruj te ustawienia w poszczeg\u00f3lnych formularzach."],"To enable Cloudflare Turnstile, please add your site key and secret key. Configure these settings within the individual form.":["Aby w\u0142\u0105czy\u0107 Cloudflare Turnstile, dodaj klucz witryny i klucz tajny. Skonfiguruj te ustawienia w ramach poszczeg\u00f3lnego formularza."],"Save":["Zapisz"],"Anonymous Analytics":["Anonimowa Analiza"],"Learn More":["Dowiedz si\u0119 wi\u0119cej"],"Admin Notification":["Powiadomienie administratora"],"Enable Admin Notification":["W\u0142\u0105cz powiadomienia administratora"],"Admin notifications keep you informed about new form entries since your last visit.":["Powiadomienia administracyjne informuj\u0105 Ci\u0119 o nowych wpisach formularza od Twojej ostatniej wizyty."],"Continue":["Kontynuuj"],"Get Started":["Rozpocznij"],"Integration":["Integracja"],"Connect Native Integrations with SureForms":["Po\u0142\u0105cz natywne integracje z SureForms"],"Unlock powerful integrations in the Premium plan to automate your workflows and connect SureForms directly with your favourite tools.":["Odblokuj pot\u0119\u017cne integracje w planie Premium, aby zautomatyzowa\u0107 swoje przep\u0142ywy pracy i po\u0142\u0105czy\u0107 SureForms bezpo\u015brednio z ulubionymi narz\u0119dziami."],"Send form submissions straight to CRMs, email, and marketing platforms":["Wysy\u0142aj zg\u0142oszenia formularzy bezpo\u015brednio do CRM, e-maili i platform marketingowych"],"Automate repetitive tasks with seamless data syncing":["Zautomatyzuj powtarzalne zadania dzi\u0119ki p\u0142ynnej synchronizacji danych"],"Access exclusive native integrations for faster workflows":["Uzyskaj dost\u0119p do ekskluzywnych natywnych integracji dla szybszych przep\u0142yw\u00f3w pracy"],"Payments":["P\u0142atno\u015bci"],"Stripe account disconnected successfully.":["Konto Stripe zosta\u0142o pomy\u015blnie od\u0142\u0105czone."],"Failed to create webhook.":["Nie uda\u0142o si\u0119 utworzy\u0107 webhooka."],"Failed to connect to Stripe.":["Nie uda\u0142o si\u0119 po\u0142\u0105czy\u0107 ze Stripe."],"Webhook":["Webhook"],"Knowledge Base":["Baza wiedzy"],"What\u2019s New":["Co nowego"],"delete":["usu\u0144"],"Please type \"%s\" in the input box":["Prosz\u0119 wpisa\u0107 \"%s\" w polu wej\u015bciowym"],"To confirm, type \"%s\" in the box below:":["Aby potwierdzi\u0107, wpisz \"%s\" w polu poni\u017cej:"],"Type \"%s\"":["Wpisz \"%s\""],"Go to OttoKit Settings":["Przejd\u017a do ustawie\u0144 OttoKit"],"USD - US Dollar":["USD - Dolar ameryka\u0144ski"],"Payment Mode":["Tryb p\u0142atno\u015bci"],"Test Mode":["Tryb testowy"],"Live Mode":["Tryb na \u017cywo"],"General Settings":["Ustawienia og\u00f3lne"],"Set up email summaries, admin alerts, and data preferences to manage your forms with ease.":["Skonfiguruj podsumowania e-mail, alerty administratora i preferencje danych, aby \u0142atwo zarz\u0105dza\u0107 swoimi formularzami."],"Customize default error messages shown when users submit invalid or incomplete form entries.":["Dostosuj domy\u015blne komunikaty o b\u0142\u0119dach wy\u015bwietlane, gdy u\u017cytkownicy przesy\u0142aj\u0105 nieprawid\u0142owe lub niekompletne wpisy formularza."],"Enable spam protection for your forms using CAPTCHA services or honeypot security.":["W\u0142\u0105cz ochron\u0119 przed spamem dla swoich formularzy, korzystaj\u0105c z us\u0142ug CAPTCHA lub zabezpiecze\u0144 typu honeypot."],"Connect and manage your payment gateways to securely accept transactions through your forms.":["Po\u0142\u0105cz i zarz\u0105dzaj swoimi bramkami p\u0142atno\u015bci, aby bezpiecznie akceptowa\u0107 transakcje za po\u015brednictwem swoich formularzy."],"1% transaction and payment gateway fees apply.":["Obowi\u0105zuje 1% op\u0142ata transakcyjna i op\u0142ata za bramk\u0119 p\u0142atnicz\u0105."],"2.9% transaction and payment gateway fees apply. Activate license to reduce transaction fees.":["Obowi\u0105zuj\u0105 op\u0142aty za transakcje i bramki p\u0142atnicze w wysoko\u015bci 2,9%. Aktywuj licencj\u0119, aby zmniejszy\u0107 op\u0142aty transakcyjne."],"2.9% transaction and payment gateway fees apply.":["Obowi\u0105zuj\u0105 op\u0142aty za transakcje i bramki p\u0142atnicze w wysoko\u015bci 2,9%."],"Please visit %1$s, delete an unused webhook, then click below to retry.":["Prosz\u0119 odwiedzi\u0107 %1$s, usun\u0105\u0107 nieu\u017cywany webhook, a nast\u0119pnie klikn\u0105\u0107 poni\u017cej, aby spr\u00f3bowa\u0107 ponownie."],"SureForms could not create a webhook because your Stripe account has run out of free slots. Webhooks are needed to receive updates about payments.":["SureForms nie m\u00f3g\u0142 utworzy\u0107 webhooka, poniewa\u017c na Twoim koncie Stripe sko\u0144czy\u0142y si\u0119 darmowe sloty. Webhooki s\u0105 potrzebne do otrzymywania aktualizacji o p\u0142atno\u015bciach."],"Stripe Dashboard":["Pulpit Stripe"],"Creating\u2026":["Tworzenie\u2026"],"Create Webhook":["Utw\u00f3rz Webhook"],"Successfully connected to Stripe!":["Pomy\u015blnie po\u0142\u0105czono ze Stripe!"],"Invalid response from server. Please try again.":["Nieprawid\u0142owa odpowied\u017a z serwera. Prosz\u0119 spr\u00f3bowa\u0107 ponownie."],"Failed to disconnect Stripe account.":["Nie uda\u0142o si\u0119 od\u0142\u0105czy\u0107 konta Stripe."],"Webhook created successfully!":["Webhook utworzony pomy\u015blnie!"],"Select Currency":["Wybierz walut\u0119"],"Select the default currency for payment forms.":["Wybierz domy\u015bln\u0105 walut\u0119 dla formularzy p\u0142atno\u015bci."],"Connection Status":["Status po\u0142\u0105czenia"],"Disconnect Stripe Account":["Od\u0142\u0105cz konto Stripe"],"Are you sure you want to disconnect your Stripe account? This will stop all active payments, subscriptions, and form transactions connected to this account.":["Czy na pewno chcesz od\u0142\u0105czy\u0107 swoje konto Stripe? Spowoduje to zatrzymanie wszystkich aktywnych p\u0142atno\u015bci, subskrypcji i transakcji formularzy powi\u0105zanych z tym kontem."],"Disconnect":["Roz\u0142\u0105cz"],"Disconnecting\u2026":["Roz\u0142\u0105czanie\u2026"],"Webhook successfully connected, all Stripe events are being tracked.":["Webhook zosta\u0142 pomy\u015blnie po\u0142\u0105czony, wszystkie zdarzenia Stripe s\u0105 \u015bledzone."],"Connect your Stripe account to start accepting payments through your forms.":["Po\u0142\u0105cz swoje konto Stripe, aby zacz\u0105\u0107 przyjmowa\u0107 p\u0142atno\u015bci za po\u015brednictwem formularzy."],"Connect to Stripe":["Po\u0142\u0105cz z Stripe"],"Securely connect to Stripe with just a few clicks to begin accepting payments! ":["Bezpiecznie po\u0142\u0105cz si\u0119 ze Stripe kilkoma klikni\u0119ciami, aby zacz\u0105\u0107 akceptowa\u0107 p\u0142atno\u015bci!"],"Payment Methods":["Metody p\u0142atno\u015bci"],"Test mode allows you to process payments without real charges. Switch to Live mode for actual transactions.":["Tryb testowy pozwala na przetwarzanie p\u0142atno\u015bci bez rzeczywistych op\u0142at. Prze\u0142\u0105cz si\u0119 na tryb na \u017cywo, aby dokonywa\u0107 rzeczywistych transakcji."],"General Payment Settings":["Og\u00f3lne ustawienia p\u0142atno\u015bci"],"These settings apply to all payment gateways.":["Te ustawienia maj\u0105 zastosowanie do wszystkich bramek p\u0142atniczych."],"Stripe Settings":["Ustawienia Stripe"],"Left ($100)":["Lewo ($100)"],"Right (100$)":["Prawo (100$)"],"Left Space ($ 100)":["Wolna przestrze\u0144 ($ 100)"],"Right Space (100 $)":["Prawe Miejsce (100 $)"],"Currency Sign Position":["Pozycja znaku waluty"],"Select the position of the currency symbol relative to the amount.":["Wybierz pozycj\u0119 symbolu waluty wzgl\u0119dem kwoty."],"Learn":["Ucz si\u0119"],"Enable email summaries":["W\u0142\u0105cz podsumowania e-mail"],"Enable IP logging":["W\u0142\u0105cz logowanie IP"],"Turn on Admin Notification from here.":["W\u0142\u0105cz powiadomienia administratora st\u0105d."],"Send entries to 100+ popular apps.":["Wy\u015blij wpisy do ponad 100 popularnych aplikacji."],"Build automated workflows that run instantly.":["Tw\u00f3rz zautomatyzowane przep\u0142ywy pracy, kt\u00f3re dzia\u0142aj\u0105 natychmiast."],"Create custom app integrations using our Custom App feature.":["Tw\u00f3rz niestandardowe integracje aplikacji za pomoc\u0105 funkcji Niestandardowa Aplikacja."],"Keep your tools in sync automatically.":["Utrzymuj swoje narz\u0119dzia w synchronizacji automatycznie."],"This will install and activate OttoKit on your WordPress site to enable automation features.":["To zainstaluje i aktywuje OttoKit na Twojej stronie WordPress, aby w\u0142\u0105czy\u0107 funkcje automatyzacji."],"Automate Your Forms with OttoKit":["Zautomatyzuj swoje formularze za pomoc\u0105 OttoKit"],"Every form submission should trigger something \u2014 a Slack alert, a CRM lead, a follow-up email, or a new row in Google Sheets.":["Ka\u017cde przes\u0142anie formularza powinno wywo\u0142a\u0107 jak\u0105\u015b akcj\u0119 \u2014 alert w Slacku, lead w CRM, e-mail z przypomnieniem lub nowy wiersz w Arkuszach Google."],"MCP":["MCP"],"Configure AI client permissions and MCP server settings.":["Skonfiguruj uprawnienia klienta AI i ustawienia serwera MCP."],"View documentation":["Wy\u015bwietl dokumentacj\u0119"],"Copy to clipboard":["Kopiuj do schowka"],"Claude Desktop":["Pulpit Claude"],"~\/Library\/Application Support\/Claude\/claude_desktop_config.json (macOS) or %APPDATA%\\Claude\\claude_desktop_config.json (Windows)":["~\/Library\/Application Support\/Claude\/claude_desktop_config.json (macOS) lub %APPDATA%\\Claude\\claude_desktop_config.json (Windows)"],"Claude Code":["Kod Claude"],".mcp.json (project) or ~\/.claude.json (global)":[".mcp.json (projekt) lub ~\/.claude.json (globalny)"],"Cursor":["Kursor"],"~\/.cursor\/mcp.json":["~\/.cursor\/mcp.json"],"VS Code (Copilot)":["VS Code (Copilot)"],".vscode\/mcp.json (project) or settings.json > mcp.servers (global)":[".vscode\/mcp.json (projekt) lub settings.json > mcp.servers (globalne)"],"~\/.continue\/config.yaml or config.json":["~\/.continue\/config.yaml lub config.json"],"Your client's MCP configuration file":["Plik konfiguracyjny MCP Twojego klienta"],"Connect Your AI Client":["Po\u0142\u0105cz swojego klienta AI"],"AI Client":["Klient AI"],"Create an Application Password \u2014 ":["Utw\u00f3rz has\u0142o aplikacji \u2014"],"Open Application Passwords":["Otw\u00f3rz has\u0142a aplikacji"],"Or use this CLI command to add the server quickly (you will still need to set the environment variables):":["Lub u\u017cyj tego polecenia CLI, aby szybko doda\u0107 serwer (nadal b\u0119dziesz musia\u0142 ustawi\u0107 zmienne \u015brodowiskowe):"],"Copy the JSON config below into: ":["Skopiuj poni\u017csz\u0105 konfiguracj\u0119 JSON do:"],"Replace \"your-application-password\" with the password from Step 1.":["Zast\u0105p \"your-application-password\" has\u0142em z Kroku 1."],"WP_API_URL \u2014 your site's MCP endpoint. WP_API_USERNAME \u2014 your WordPress username. WP_API_PASSWORD \u2014 the application password you generated.":["WP_API_URL \u2014 punkt ko\u0144cowy MCP Twojej witryny. WP_API_USERNAME \u2014 Twoja nazwa u\u017cytkownika WordPress. WP_API_PASSWORD \u2014 has\u0142o aplikacji, kt\u00f3re wygenerowa\u0142e\u015b."],"View setup docs":["Wy\u015bwietl dokumentacj\u0119 konfiguracji"],"The MCP Adapter plugin is installed but not active. Activate it to configure MCP settings.":["Wtyczka MCP Adapter jest zainstalowana, ale nieaktywna. Aktywuj j\u0105, aby skonfigurowa\u0107 ustawienia MCP."],"The MCP Adapter plugin is required to connect AI clients to your forms. Download and install it from GitHub, then activate it.":["Wtyczka MCP Adapter jest wymagana do po\u0142\u0105czenia klient\u00f3w AI z Twoimi formularzami. Pobierz i zainstaluj j\u0105 z GitHub, a nast\u0119pnie aktywuj."],"Download the latest release from":["Pobierz najnowsz\u0105 wersj\u0119 z"],"Install the plugin via Plugins > Add New Plugin > Upload Plugin.":["Zainstaluj wtyczk\u0119, przechodz\u0105c do Wtyczki > Dodaj now\u0105 wtyczk\u0119 > Prze\u015blij wtyczk\u0119."],"Activate the MCP Adapter plugin.":["Aktywuj wtyczk\u0119 MCP Adapter."],"Activating\u2026":["Aktywowanie\u2026"],"Activate MCP Adapter":["Aktywuj adapter MCP"],"Download MCP Adapter":["Pobierz adapter MCP"],"Experimental":["Eksperymentalny"],"Enable Abilities":["W\u0142\u0105cz umiej\u0119tno\u015bci"],"Register SureForms abilities with the WordPress Abilities API. When enabled, AI clients can list, read, create, edit, and delete your forms and entries. When disabled, no abilities are registered and AI clients cannot perform any actions on your forms.":["Zarejestruj mo\u017cliwo\u015bci SureForms w API Umiej\u0119tno\u015bci WordPress. Po w\u0142\u0105czeniu klienci AI mog\u0105 wy\u015bwietla\u0107, czyta\u0107, tworzy\u0107, edytowa\u0107 i usuwa\u0107 Twoje formularze i wpisy. Po wy\u0142\u0105czeniu \u017cadne umiej\u0119tno\u015bci nie s\u0105 rejestrowane i klienci AI nie mog\u0105 wykonywa\u0107 \u017cadnych dzia\u0142a\u0144 na Twoich formularzach."],"Abilities API \u2014 Edit":["API umiej\u0119tno\u015bci \u2014 Edytuj"],"Enable Edit Abilities":["W\u0142\u0105cz mo\u017cliwo\u015bci edycji"],"When enabled, AI clients can create new forms, update form titles, fields, and settings, duplicate forms, and modify entry statuses. When disabled, these abilities are unregistered and AI clients can only read your data.":["Po w\u0142\u0105czeniu klienci AI mog\u0105 tworzy\u0107 nowe formularze, aktualizowa\u0107 tytu\u0142y formularzy, pola i ustawienia, duplikowa\u0107 formularze oraz modyfikowa\u0107 statusy wpis\u00f3w. Po wy\u0142\u0105czeniu te mo\u017cliwo\u015bci s\u0105 wyrejestrowane i klienci AI mog\u0105 jedynie odczytywa\u0107 Twoje dane."],"Abilities API \u2014 Delete":["API umiej\u0119tno\u015bci \u2014 Usu\u0144"],"Enable Delete Abilities":["W\u0142\u0105cz mo\u017cliwo\u015b\u0107 usuwania"],"When enabled, AI clients can permanently delete forms and entries. Deleted data cannot be recovered. When disabled, delete abilities are unregistered and AI clients cannot remove any data.":["Po w\u0142\u0105czeniu klienci AI mog\u0105 trwale usuwa\u0107 formularze i wpisy. Usuni\u0119tych danych nie mo\u017cna odzyska\u0107. Po wy\u0142\u0105czeniu, mo\u017cliwo\u015bci usuwania s\u0105 wyrejestrowane i klienci AI nie mog\u0105 usuwa\u0107 \u017cadnych danych."],"MCP Server":["Serwer MCP"],"Enable MCP Server":["W\u0142\u0105cz serwer MCP"],"Creates a dedicated SureForms MCP endpoint that AI clients like Claude can connect to. When disabled, the endpoint is removed and external AI clients cannot discover or call any SureForms abilities.":["Tworzy dedykowany punkt ko\u0144cowy SureForms MCP, do kt\u00f3rego mog\u0105 si\u0119 pod\u0142\u0105czy\u0107 klienci AI, tacy jak Claude. Gdy jest wy\u0142\u0105czony, punkt ko\u0144cowy jest usuwany i zewn\u0119trzni klienci AI nie mog\u0105 odkrywa\u0107 ani wywo\u0142ywa\u0107 \u017cadnych funkcji SureForms."],"Learn more":["Dowiedz si\u0119 wi\u0119cej"],"MCP Adapter Required":["Wymagany adapter MCP"],"Google Maps":["Google Maps"],"Configure Google Maps API key for address autocomplete and map preview.":["Skonfiguruj klucz API Google Maps do autouzupe\u0142niania adres\u00f3w i podgl\u0105du mapy."],"Help shape the future of SureForms":["Pom\u00f3\u017c kszta\u0142towa\u0107 przysz\u0142o\u015b\u0107 SureForms"],"Share how you use the plugin so we can build features that matter, fix issues faster, and make smarter decisions. ":["Podziel si\u0119, jak u\u017cywasz wtyczki, aby\u015bmy mogli tworzy\u0107 funkcje, kt\u00f3re maj\u0105 znaczenie, szybciej naprawia\u0107 problemy i podejmowa\u0107 m\u0105drzejsze decyzje. "],"Enable Google Address Autocomplete":["W\u0142\u0105cz autouzupe\u0142nianie adres\u00f3w Google"],"Upgrade to the SureForms Business Plan to add Google-powered address autocomplete with interactive map preview to your forms.":["Uaktualnij do planu SureForms Business, aby doda\u0107 autouzupe\u0142nianie adres\u00f3w zasilane przez Google z interaktywnym podgl\u0105dem mapy do swoich formularzy."],"Auto-suggest addresses as users type for faster, error-free submissions":["Automatyczne sugerowanie adres\u00f3w podczas pisania przez u\u017cytkownik\u00f3w dla szybszych, bezb\u0142\u0119dnych zg\u0142osze\u0144"],"Show an interactive map preview with draggable pin for precise locations":["Poka\u017c interaktywny podgl\u0105d mapy z przeci\u0105galnym pinezk\u0105 dla precyzyjnych lokalizacji"],"Automatically populate address fields like city, state, and postal code":["Automatycznie wype\u0142niaj pola adresowe, takie jak miasto, wojew\u00f3dztwo i kod pocztowy"]}}} \ No newline at end of file +{"translation-revision-date":"2025-01-02T08:44:41+00:00","generator":"WP-CLI\/2.12.0","source":"assets\/build\/settings.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"en","plural-forms":"nplurals=2; plural=(n != 1);"},"Dashboard":["Panel sterowania"],"Settings":["Ustawienia"],"Entries":["Wpisy"],"Activated":["Aktywowany"],"Activate":["Aktywuj"],"Monday":["Poniedzia\u0142ek"],"Forms":["Formularze"],"GitHub":["GitHub"],"General":["Og\u00f3lny"],"Other":["Inne"],"Confirm":["Potwierd\u017a"],"Cancel":["Anuluj"],"Install":["Zainstaluj"],"Plugin Installation failed, Please try again later.":["Instalacja wtyczki nie powiod\u0142a si\u0119, spr\u00f3buj ponownie p\u00f3\u017aniej."],"Plugin activation failed, Please try again later.":["Aktywacja wtyczki nie powiod\u0142a si\u0119, spr\u00f3buj ponownie p\u00f3\u017aniej."],"Integrations":["Integracje"],"What's New?":["Co nowego?"],"Core":["Rdze\u0144"],"Unlicensed":["Bez licencji"],"Connecting\u2026":["\u0141\u0105czenie\u2026"],"Install & Activate":["Zainstaluj i aktywuj"],"Send Email To":["Wy\u015blij e-mail do"],"Google reCAPTCHA":["Google reCAPTCHA"],"hCaptcha":["hCaptcha"],"reCAPTCHA v2 Invisible":["reCAPTCHA v2 Niewidoczna"],"reCAPTCHA v3":["reCAPTCHA v3"],"Validations":["Walidacje"],"Spam Protection":["Ochrona przed spamem"],"Email Summaries":["Podsumowania e-maili"],"Tuesday":["Wtorek"],"Wednesday":["\u015aroda"],"Thursday":["Czwartek"],"Friday":["Pi\u0105tek"],"Saturday":["Sobota"],"Sunday":["Niedziela"],"Test Email":["Testowy email"],"Schedule Reports":["Zaplanuj raporty"],"IP Logging":["Rejestrowanie IP"],"If this option is turned on, the user's IP address will be saved with the form data":["Je\u015bli ta opcja jest w\u0142\u0105czona, adres IP u\u017cytkownika zostanie zapisany wraz z danymi formularza"],"Confirmation Email Mismatch Message":["Wiadomo\u015b\u0107 o niezgodno\u015bci e-maila potwierdzaj\u0105cego"],"%s represents the minimum input value. For example: \"Minimum value is 10.\"":["%s oznacza minimaln\u0105 warto\u015b\u0107 wej\u015bciow\u0105. Na przyk\u0142ad: \"Minimalna warto\u015b\u0107 to 10.\""],"%s represents the maximum input value. For example: \"Maximum value is 100.\"":["%s oznacza maksymaln\u0105 warto\u015b\u0107 wej\u015bciow\u0105. Na przyk\u0142ad: \"Maksymalna warto\u015b\u0107 to 100.\""],"%s represents the minimum selections needed. For example: \u201cMinimum 2 selections are required.\u201d":["%s oznacza minimaln\u0105 liczb\u0119 wymaganych wybor\u00f3w. Na przyk\u0142ad: \u201eWymagane s\u0105 co najmniej 2 wybory\u201d."],"%s represents the maximum selections allowed. For example: \u201cMaximum 4 selections are allowed.\u201d":["%s oznacza maksymaln\u0105 liczb\u0119 dozwolonych wybor\u00f3w. Na przyk\u0142ad: \u201eDozwolone s\u0105 maksymalnie 4 wybory.\u201d"],"%s represents the minimum choices needed. For example: \u201cMinimum 1 selection is required.\u201d":["%s oznacza minimaln\u0105 liczb\u0119 potrzebnych wybor\u00f3w. Na przyk\u0142ad: \u201eWymagany jest co najmniej 1 wyb\u00f3r.\u201d"],"%s represents the maximum choices allowed. For example: \u201cMaximum 3 selections are allowed.\u201d":["%s oznacza maksymaln\u0105 liczb\u0119 dozwolonych wybor\u00f3w. Na przyk\u0142ad: \u201eDozwolone s\u0105 maksymalnie 3 wybory\u201d."]," Error Message":["Komunikat o b\u0142\u0119dzie"],"Auto":["Samoch\u00f3d"],"Light":["\u015awiat\u0142o"],"Dark":["Ciemny"],"Turnstile":["Bramka"],"Honeypot":["Pu\u0142apka"],"Get Keys":["Pobierz klucze"],"Documentation":["Dokumentacja"],"Site Key":["Klucz strony"],"Secret Key":["Klucz tajny"],"Cloudflare Turnstile":["Cloudflare Turnstile"],"Appearance Mode":["Tryb wygl\u0105du"],"Enable Honeypot Security":["W\u0142\u0105cz zabezpieczenie Honeypot"],"Enable Honeypot Security for better spam protection":["W\u0142\u0105cz Honeypot Security dla lepszej ochrony przed spamem"],"This field cannot be left blank.":["To pole nie mo\u017ce pozosta\u0107 puste."],"OttoKit":["OttoKit"],"Connect with OttoKit":["Po\u0142\u0105cz si\u0119 z OttoKit"],"reCAPTCHA":["reCAPTCHA"],"Ready to go beyond free plan?":["Gotowy, aby wyj\u015b\u0107 poza darmowy plan?"],"Upgrade now":["Zaktualizuj teraz"],"and unlock the full power of SureForms!":["i odblokuj pe\u0142n\u0105 moc SureForms!"],"Upgrade SureForms":["Uaktualnij SureForms"],"Upgrade Now":["Zaktualizuj teraz"],"Form Validation":["Walidacja formularza"],"Required Error Messages":["Wymagane komunikaty o b\u0142\u0119dach"],"Other Error Messages":["Inne komunikaty o b\u0142\u0119dach"],"Input Field Unique":["Pole wej\u015bciowe unikalne"],"Email Field Unique":["Pole e-mail musi by\u0107 unikalne"],"Invalid URL":["Nieprawid\u0142owy URL"],"Phone Field Unique":["Pole telefonu unikalne"],"Invalid Field Number Block":["Nieprawid\u0142owy blok numeru pola"],"Invalid Email":["Nieprawid\u0142owy adres e-mail"],"Number Minimum Value":["Minimalna warto\u015b\u0107 liczby"],"Number Maximum Value":["Maksymalna warto\u015b\u0107 liczby"],"Dropdown Minimum Selections":["Minimalna liczba wybor\u00f3w w rozwijanym menu"],"Dropdown Maximum Selections":["Maksymalna liczba wybor\u00f3w w rozwijanym menu"],"Multiple Choice Minimum Selections":["Minimalna liczba wybor\u00f3w w pytaniach wielokrotnego wyboru"],"Multiple Choice Maximum Selections":["Wielokrotny wyb\u00f3r maksymalna liczba zaznacze\u0144"],"Input Field":["Pole wej\u015bciowe"],"Email Field":["Pole e-mail"],"URL Field":["Pole URL"],"Phone Field":["Pole telefonu"],"Textarea Field":["Pole tekstowe"],"Checkbox Field":["Pole wyboru"],"Dropdown Field":["Pole rozwijane"],"Multiple Choice Field":["Pole wyboru wielokrotnego"],"Address Field":["Pole adresu"],"Number Field":["Pole liczby"],"reCAPTCHA v2":["reCAPTCHA v2"],"To enable reCAPTCHA feature on your SureForms Please enable reCAPTCHA option on your blocks setting and select version. Add google reCAPTCHA secret and site key here. reCAPTCHA will be added to your page on front-end.":["Aby w\u0142\u0105czy\u0107 funkcj\u0119 reCAPTCHA w SureForms, w\u0142\u0105cz opcj\u0119 reCAPTCHA w ustawieniach blok\u00f3w i wybierz wersj\u0119. Dodaj tutaj tajny klucz i klucz witryny Google reCAPTCHA. reCAPTCHA zostanie dodana do Twojej strony na froncie."],"Enter your %s here":["Wprowad\u017a tutaj sw\u00f3j %s"],"To enable hCAPTCHA, please add your site key and secret key. Configure these settings within the individual form.":["Aby w\u0142\u0105czy\u0107 hCAPTCHA, dodaj klucz witryny i klucz tajny. Skonfiguruj te ustawienia w poszczeg\u00f3lnych formularzach."],"To enable Cloudflare Turnstile, please add your site key and secret key. Configure these settings within the individual form.":["Aby w\u0142\u0105czy\u0107 Cloudflare Turnstile, dodaj klucz witryny i klucz tajny. Skonfiguruj te ustawienia w ramach poszczeg\u00f3lnego formularza."],"Save":["Zapisz"],"Anonymous Analytics":["Anonimowa Analiza"],"Learn More":["Dowiedz si\u0119 wi\u0119cej"],"Admin Notification":["Powiadomienie administratora"],"Enable Admin Notification":["W\u0142\u0105cz powiadomienia administratora"],"Admin notifications keep you informed about new form entries since your last visit.":["Powiadomienia administracyjne informuj\u0105 Ci\u0119 o nowych wpisach formularza od Twojej ostatniej wizyty."],"Continue":["Kontynuuj"],"Get Started":["Rozpocznij"],"Integration":["Integracja"],"Connect Native Integrations with SureForms":["Po\u0142\u0105cz natywne integracje z SureForms"],"Unlock powerful integrations in the Premium plan to automate your workflows and connect SureForms directly with your favourite tools.":["Odblokuj pot\u0119\u017cne integracje w planie Premium, aby zautomatyzowa\u0107 swoje przep\u0142ywy pracy i po\u0142\u0105czy\u0107 SureForms bezpo\u015brednio z ulubionymi narz\u0119dziami."],"Send form submissions straight to CRMs, email, and marketing platforms":["Wysy\u0142aj zg\u0142oszenia formularzy bezpo\u015brednio do CRM, e-maili i platform marketingowych"],"Automate repetitive tasks with seamless data syncing":["Zautomatyzuj powtarzalne zadania dzi\u0119ki p\u0142ynnej synchronizacji danych"],"Access exclusive native integrations for faster workflows":["Uzyskaj dost\u0119p do ekskluzywnych natywnych integracji dla szybszych przep\u0142yw\u00f3w pracy"],"Payments":["P\u0142atno\u015bci"],"Stripe account disconnected successfully.":["Konto Stripe zosta\u0142o pomy\u015blnie od\u0142\u0105czone."],"Failed to create webhook.":["Nie uda\u0142o si\u0119 utworzy\u0107 webhooka."],"Failed to connect to Stripe.":["Nie uda\u0142o si\u0119 po\u0142\u0105czy\u0107 ze Stripe."],"Webhook":["Webhook"],"Knowledge Base":["Baza wiedzy"],"What\u2019s New":["Co nowego"],"delete":["usu\u0144"],"Please type \"%s\" in the input box":["Prosz\u0119 wpisa\u0107 \"%s\" w polu wej\u015bciowym"],"To confirm, type \"%s\" in the box below:":["Aby potwierdzi\u0107, wpisz \"%s\" w polu poni\u017cej:"],"Type \"%s\"":["Wpisz \"%s\""],"Go to OttoKit Settings":["Przejd\u017a do ustawie\u0144 OttoKit"],"USD - US Dollar":["USD - Dolar ameryka\u0144ski"],"Payment Mode":["Tryb p\u0142atno\u015bci"],"Test Mode":["Tryb testowy"],"Live Mode":["Tryb na \u017cywo"],"General Settings":["Ustawienia og\u00f3lne"],"Set up email summaries, admin alerts, and data preferences to manage your forms with ease.":["Skonfiguruj podsumowania e-mail, alerty administratora i preferencje danych, aby \u0142atwo zarz\u0105dza\u0107 swoimi formularzami."],"Customize default error messages shown when users submit invalid or incomplete form entries.":["Dostosuj domy\u015blne komunikaty o b\u0142\u0119dach wy\u015bwietlane, gdy u\u017cytkownicy przesy\u0142aj\u0105 nieprawid\u0142owe lub niekompletne wpisy formularza."],"Enable spam protection for your forms using CAPTCHA services or honeypot security.":["W\u0142\u0105cz ochron\u0119 przed spamem dla swoich formularzy, korzystaj\u0105c z us\u0142ug CAPTCHA lub zabezpiecze\u0144 typu honeypot."],"Connect and manage your payment gateways to securely accept transactions through your forms.":["Po\u0142\u0105cz i zarz\u0105dzaj swoimi bramkami p\u0142atno\u015bci, aby bezpiecznie akceptowa\u0107 transakcje za po\u015brednictwem swoich formularzy."],"1% transaction and payment gateway fees apply.":["Obowi\u0105zuje 1% op\u0142ata transakcyjna i op\u0142ata za bramk\u0119 p\u0142atnicz\u0105."],"2.9% transaction and payment gateway fees apply. Activate license to reduce transaction fees.":["Obowi\u0105zuj\u0105 op\u0142aty za transakcje i bramki p\u0142atnicze w wysoko\u015bci 2,9%. Aktywuj licencj\u0119, aby zmniejszy\u0107 op\u0142aty transakcyjne."],"2.9% transaction and payment gateway fees apply.":["Obowi\u0105zuj\u0105 op\u0142aty za transakcje i bramki p\u0142atnicze w wysoko\u015bci 2,9%."],"Please visit %1$s, delete an unused webhook, then click below to retry.":["Prosz\u0119 odwiedzi\u0107 %1$s, usun\u0105\u0107 nieu\u017cywany webhook, a nast\u0119pnie klikn\u0105\u0107 poni\u017cej, aby spr\u00f3bowa\u0107 ponownie."],"SureForms could not create a webhook because your Stripe account has run out of free slots. Webhooks are needed to receive updates about payments.":["SureForms nie m\u00f3g\u0142 utworzy\u0107 webhooka, poniewa\u017c na Twoim koncie Stripe sko\u0144czy\u0142y si\u0119 darmowe sloty. Webhooki s\u0105 potrzebne do otrzymywania aktualizacji o p\u0142atno\u015bciach."],"Stripe Dashboard":["Pulpit Stripe"],"Creating\u2026":["Tworzenie\u2026"],"Create Webhook":["Utw\u00f3rz Webhook"],"Successfully connected to Stripe!":["Pomy\u015blnie po\u0142\u0105czono ze Stripe!"],"Invalid response from server. Please try again.":["Nieprawid\u0142owa odpowied\u017a z serwera. Prosz\u0119 spr\u00f3bowa\u0107 ponownie."],"Failed to disconnect Stripe account.":["Nie uda\u0142o si\u0119 od\u0142\u0105czy\u0107 konta Stripe."],"Webhook created successfully!":["Webhook utworzony pomy\u015blnie!"],"Select Currency":["Wybierz walut\u0119"],"Select the default currency for payment forms.":["Wybierz domy\u015bln\u0105 walut\u0119 dla formularzy p\u0142atno\u015bci."],"Connection Status":["Status po\u0142\u0105czenia"],"Disconnect Stripe Account":["Od\u0142\u0105cz konto Stripe"],"Are you sure you want to disconnect your Stripe account? This will stop all active payments, subscriptions, and form transactions connected to this account.":["Czy na pewno chcesz od\u0142\u0105czy\u0107 swoje konto Stripe? Spowoduje to zatrzymanie wszystkich aktywnych p\u0142atno\u015bci, subskrypcji i transakcji formularzy powi\u0105zanych z tym kontem."],"Disconnect":["Roz\u0142\u0105cz"],"Disconnecting\u2026":["Roz\u0142\u0105czanie\u2026"],"Webhook successfully connected, all Stripe events are being tracked.":["Webhook zosta\u0142 pomy\u015blnie po\u0142\u0105czony, wszystkie zdarzenia Stripe s\u0105 \u015bledzone."],"Connect your Stripe account to start accepting payments through your forms.":["Po\u0142\u0105cz swoje konto Stripe, aby zacz\u0105\u0107 przyjmowa\u0107 p\u0142atno\u015bci za po\u015brednictwem formularzy."],"Connect to Stripe":["Po\u0142\u0105cz z Stripe"],"Securely connect to Stripe with just a few clicks to begin accepting payments! ":["Bezpiecznie po\u0142\u0105cz si\u0119 ze Stripe kilkoma klikni\u0119ciami, aby zacz\u0105\u0107 akceptowa\u0107 p\u0142atno\u015bci!"],"Payment Methods":["Metody p\u0142atno\u015bci"],"Test mode allows you to process payments without real charges. Switch to Live mode for actual transactions.":["Tryb testowy pozwala na przetwarzanie p\u0142atno\u015bci bez rzeczywistych op\u0142at. Prze\u0142\u0105cz si\u0119 na tryb na \u017cywo, aby dokonywa\u0107 rzeczywistych transakcji."],"General Payment Settings":["Og\u00f3lne ustawienia p\u0142atno\u015bci"],"These settings apply to all payment gateways.":["Te ustawienia maj\u0105 zastosowanie do wszystkich bramek p\u0142atniczych."],"Stripe Settings":["Ustawienia Stripe"],"Left ($100)":["Lewo ($100)"],"Right (100$)":["Prawo (100$)"],"Left Space ($ 100)":["Wolna przestrze\u0144 ($ 100)"],"Right Space (100 $)":["Prawe Miejsce (100 $)"],"Currency Sign Position":["Pozycja znaku waluty"],"Select the position of the currency symbol relative to the amount.":["Wybierz pozycj\u0119 symbolu waluty wzgl\u0119dem kwoty."],"Learn":["Ucz si\u0119"],"Enable email summaries":["W\u0142\u0105cz podsumowania e-mail"],"Enable IP logging":["W\u0142\u0105cz logowanie IP"],"Turn on Admin Notification from here.":["W\u0142\u0105cz powiadomienia administratora st\u0105d."],"Send entries to 100+ popular apps.":["Wy\u015blij wpisy do ponad 100 popularnych aplikacji."],"Build automated workflows that run instantly.":["Tw\u00f3rz zautomatyzowane przep\u0142ywy pracy, kt\u00f3re dzia\u0142aj\u0105 natychmiast."],"Create custom app integrations using our Custom App feature.":["Tw\u00f3rz niestandardowe integracje aplikacji za pomoc\u0105 funkcji Niestandardowa Aplikacja."],"Keep your tools in sync automatically.":["Utrzymuj swoje narz\u0119dzia w synchronizacji automatycznie."],"This will install and activate OttoKit on your WordPress site to enable automation features.":["To zainstaluje i aktywuje OttoKit na Twojej stronie WordPress, aby w\u0142\u0105czy\u0107 funkcje automatyzacji."],"Automate Your Forms with OttoKit":["Zautomatyzuj swoje formularze za pomoc\u0105 OttoKit"],"Every form submission should trigger something \u2014 a Slack alert, a CRM lead, a follow-up email, or a new row in Google Sheets.":["Ka\u017cde przes\u0142anie formularza powinno wywo\u0142a\u0107 jak\u0105\u015b akcj\u0119 \u2014 alert w Slacku, lead w CRM, e-mail z przypomnieniem lub nowy wiersz w Arkuszach Google."],"MCP":["MCP"],"Configure AI client permissions and MCP server settings.":["Skonfiguruj uprawnienia klienta AI i ustawienia serwera MCP."],"View documentation":["Wy\u015bwietl dokumentacj\u0119"],"Copy to clipboard":["Kopiuj do schowka"],"Claude Desktop":["Pulpit Claude"],"~\/Library\/Application Support\/Claude\/claude_desktop_config.json (macOS) or %APPDATA%\\Claude\\claude_desktop_config.json (Windows)":["~\/Library\/Application Support\/Claude\/claude_desktop_config.json (macOS) lub %APPDATA%\\Claude\\claude_desktop_config.json (Windows)"],"Claude Code":["Kod Claude"],".mcp.json (project) or ~\/.claude.json (global)":[".mcp.json (projekt) lub ~\/.claude.json (globalny)"],"Cursor":["Kursor"],"~\/.cursor\/mcp.json":["~\/.cursor\/mcp.json"],"VS Code (Copilot)":["VS Code (Copilot)"],".vscode\/mcp.json (project) or settings.json > mcp.servers (global)":[".vscode\/mcp.json (projekt) lub settings.json > mcp.servers (globalne)"],"~\/.continue\/config.yaml or config.json":["~\/.continue\/config.yaml lub config.json"],"Your client's MCP configuration file":["Plik konfiguracyjny MCP Twojego klienta"],"Connect Your AI Client":["Po\u0142\u0105cz swojego klienta AI"],"AI Client":["Klient AI"],"Create an Application Password \u2014 ":["Utw\u00f3rz has\u0142o aplikacji \u2014"],"Open Application Passwords":["Otw\u00f3rz has\u0142a aplikacji"],"Or use this CLI command to add the server quickly (you will still need to set the environment variables):":["Lub u\u017cyj tego polecenia CLI, aby szybko doda\u0107 serwer (nadal b\u0119dziesz musia\u0142 ustawi\u0107 zmienne \u015brodowiskowe):"],"Copy the JSON config below into: ":["Skopiuj poni\u017csz\u0105 konfiguracj\u0119 JSON do:"],"Replace \"your-application-password\" with the password from Step 1.":["Zast\u0105p \"your-application-password\" has\u0142em z Kroku 1."],"WP_API_URL \u2014 your site's MCP endpoint. WP_API_USERNAME \u2014 your WordPress username. WP_API_PASSWORD \u2014 the application password you generated.":["WP_API_URL \u2014 punkt ko\u0144cowy MCP Twojej witryny. WP_API_USERNAME \u2014 Twoja nazwa u\u017cytkownika WordPress. WP_API_PASSWORD \u2014 has\u0142o aplikacji, kt\u00f3re wygenerowa\u0142e\u015b."],"View setup docs":["Wy\u015bwietl dokumentacj\u0119 konfiguracji"],"The MCP Adapter plugin is installed but not active. Activate it to configure MCP settings.":["Wtyczka MCP Adapter jest zainstalowana, ale nieaktywna. Aktywuj j\u0105, aby skonfigurowa\u0107 ustawienia MCP."],"The MCP Adapter plugin is required to connect AI clients to your forms. Download and install it from GitHub, then activate it.":["Wtyczka MCP Adapter jest wymagana do po\u0142\u0105czenia klient\u00f3w AI z Twoimi formularzami. Pobierz i zainstaluj j\u0105 z GitHub, a nast\u0119pnie aktywuj."],"Download the latest release from":["Pobierz najnowsz\u0105 wersj\u0119 z"],"Install the plugin via Plugins > Add New Plugin > Upload Plugin.":["Zainstaluj wtyczk\u0119, przechodz\u0105c do Wtyczki > Dodaj now\u0105 wtyczk\u0119 > Prze\u015blij wtyczk\u0119."],"Activate the MCP Adapter plugin.":["Aktywuj wtyczk\u0119 MCP Adapter."],"Activating\u2026":["Aktywowanie\u2026"],"Activate MCP Adapter":["Aktywuj adapter MCP"],"Download MCP Adapter":["Pobierz adapter MCP"],"Experimental":["Eksperymentalny"],"Enable Abilities":["W\u0142\u0105cz umiej\u0119tno\u015bci"],"Register SureForms abilities with the WordPress Abilities API. When enabled, AI clients can list, read, create, edit, and delete your forms and entries. When disabled, no abilities are registered and AI clients cannot perform any actions on your forms.":["Zarejestruj mo\u017cliwo\u015bci SureForms w API Umiej\u0119tno\u015bci WordPress. Po w\u0142\u0105czeniu klienci AI mog\u0105 wy\u015bwietla\u0107, czyta\u0107, tworzy\u0107, edytowa\u0107 i usuwa\u0107 Twoje formularze i wpisy. Po wy\u0142\u0105czeniu \u017cadne umiej\u0119tno\u015bci nie s\u0105 rejestrowane i klienci AI nie mog\u0105 wykonywa\u0107 \u017cadnych dzia\u0142a\u0144 na Twoich formularzach."],"Abilities API \u2014 Edit":["API umiej\u0119tno\u015bci \u2014 Edytuj"],"Enable Edit Abilities":["W\u0142\u0105cz mo\u017cliwo\u015bci edycji"],"When enabled, AI clients can create new forms, update form titles, fields, and settings, duplicate forms, and modify entry statuses. When disabled, these abilities are unregistered and AI clients can only read your data.":["Po w\u0142\u0105czeniu klienci AI mog\u0105 tworzy\u0107 nowe formularze, aktualizowa\u0107 tytu\u0142y formularzy, pola i ustawienia, duplikowa\u0107 formularze oraz modyfikowa\u0107 statusy wpis\u00f3w. Po wy\u0142\u0105czeniu te mo\u017cliwo\u015bci s\u0105 wyrejestrowane i klienci AI mog\u0105 jedynie odczytywa\u0107 Twoje dane."],"Abilities API \u2014 Delete":["API umiej\u0119tno\u015bci \u2014 Usu\u0144"],"Enable Delete Abilities":["W\u0142\u0105cz mo\u017cliwo\u015b\u0107 usuwania"],"When enabled, AI clients can permanently delete forms and entries. Deleted data cannot be recovered. When disabled, delete abilities are unregistered and AI clients cannot remove any data.":["Po w\u0142\u0105czeniu klienci AI mog\u0105 trwale usuwa\u0107 formularze i wpisy. Usuni\u0119tych danych nie mo\u017cna odzyska\u0107. Po wy\u0142\u0105czeniu, mo\u017cliwo\u015bci usuwania s\u0105 wyrejestrowane i klienci AI nie mog\u0105 usuwa\u0107 \u017cadnych danych."],"MCP Server":["Serwer MCP"],"Enable MCP Server":["W\u0142\u0105cz serwer MCP"],"Creates a dedicated SureForms MCP endpoint that AI clients like Claude can connect to. When disabled, the endpoint is removed and external AI clients cannot discover or call any SureForms abilities.":["Tworzy dedykowany punkt ko\u0144cowy SureForms MCP, do kt\u00f3rego mog\u0105 si\u0119 pod\u0142\u0105czy\u0107 klienci AI, tacy jak Claude. Gdy jest wy\u0142\u0105czony, punkt ko\u0144cowy jest usuwany i zewn\u0119trzni klienci AI nie mog\u0105 odkrywa\u0107 ani wywo\u0142ywa\u0107 \u017cadnych funkcji SureForms."],"Learn more":["Dowiedz si\u0119 wi\u0119cej"],"MCP Adapter Required":["Wymagany adapter MCP"],"Google Maps":["Google Maps"],"Configure Google Maps API key for address autocomplete and map preview.":["Skonfiguruj klucz API Google Maps do autouzupe\u0142niania adres\u00f3w i podgl\u0105du mapy."],"Help shape the future of SureForms":["Pom\u00f3\u017c kszta\u0142towa\u0107 przysz\u0142o\u015b\u0107 SureForms"],"Share how you use the plugin so we can build features that matter, fix issues faster, and make smarter decisions. ":["Podziel si\u0119, jak u\u017cywasz wtyczki, aby\u015bmy mogli tworzy\u0107 funkcje, kt\u00f3re maj\u0105 znaczenie, szybciej naprawia\u0107 problemy i podejmowa\u0107 m\u0105drzejsze decyzje."],"Enable Google Address Autocomplete":["W\u0142\u0105cz autouzupe\u0142nianie adres\u00f3w Google"],"Upgrade to the SureForms Business Plan to add Google-powered address autocomplete with interactive map preview to your forms.":["Uaktualnij do planu SureForms Business, aby doda\u0107 autouzupe\u0142nianie adres\u00f3w zasilane przez Google z interaktywnym podgl\u0105dem mapy do swoich formularzy."],"Auto-suggest addresses as users type for faster, error-free submissions":["Automatyczne sugerowanie adres\u00f3w podczas pisania przez u\u017cytkownik\u00f3w dla szybszych, bezb\u0142\u0119dnych zg\u0142osze\u0144"],"Show an interactive map preview with draggable pin for precise locations":["Poka\u017c interaktywny podgl\u0105d mapy z przeci\u0105galnym pinezk\u0105 dla precyzyjnych lokalizacji"],"Automatically populate address fields like city, state, and postal code":["Automatycznie wype\u0142niaj pola adresowe, takie jak miasto, wojew\u00f3dztwo i kod pocztowy"]}}} \ No newline at end of file diff --git a/languages/sureforms-pl_PL.mo b/languages/sureforms-pl_PL.mo index e52eeae4c..0f5cf13aa 100644 Binary files a/languages/sureforms-pl_PL.mo and b/languages/sureforms-pl_PL.mo differ diff --git a/languages/sureforms-pl_PL.po b/languages/sureforms-pl_PL.po index 55558655a..bb95475d6 100644 --- a/languages/sureforms-pl_PL.po +++ b/languages/sureforms-pl_PL.po @@ -16,7 +16,7 @@ msgstr "" #: sureforms.php #: admin/admin.php:320 #: admin/admin.php:321 -#: admin/admin.php:1812 +#: admin/admin.php:1813 #: inc/abilities/abilities-registrar.php:133 #: inc/gutenberg-hooks.php:109 #: inc/page-builders/bricks/elements/form-widget.php:67 @@ -82,7 +82,7 @@ msgstr "Nowy formularz" #: admin/admin.php:601 #: admin/admin.php:602 -#: admin/admin.php:1849 +#: admin/admin.php:1850 #: inc/global-settings/email-summary.php:225 #: assets/build/dashboard.js:172 #: assets/build/entries.js:172 @@ -118,18 +118,18 @@ msgid "Nonce verification failed." msgstr "Weryfikacja nonce nie powiodła się." #. translators: %1$s: Opening anchor tag with URL, %2$s: Closing anchor tag, %3$s: SureForms Pro Plugin Name. -#: admin/admin.php:1441 +#: admin/admin.php:1442 #, php-format msgid "Please %1$sactivate%2$s your copy of %3$s to get new features, access support, receive update notifications, and more." msgstr "Proszę %1$saktywować%2$s swoją kopię %3$s, aby uzyskać nowe funkcje, dostęp do wsparcia, otrzymywać powiadomienia o aktualizacjach i więcej." #. translators: %1$s: SureForms version, %2$s: SureForms Pro Plugin Name, %3$s: SureForms Pro Version, %4$s: Anchor tag open, %5$s: Closing anchor tag. -#: admin/admin.php:1459 +#: admin/admin.php:1460 #, php-format msgid "SureForms %1$s requires minimum %2$s %3$s to work properly. Please update to the latest version from %4$shere%5$s." msgstr "SureForms %1$s wymaga co najmniej %2$s %3$s, aby działać poprawnie. Proszę zaktualizować do najnowszej wersji z %4$stąd%5$s." -#: admin/admin.php:1848 +#: admin/admin.php:1849 #: inc/global-settings/email-summary.php:224 #: assets/build/entries.js:172 #: assets/build/payments.js:172 @@ -197,7 +197,7 @@ msgstr "Śmieci" msgid "Published" msgstr "Opublikowano" -#: admin/admin.php:1840 +#: admin/admin.php:1841 msgid "View" msgstr "Widok" @@ -323,10 +323,10 @@ msgstr "Zainstalowano" msgid "You do not have permission to access this page." msgstr "Nie masz uprawnień do dostępu do tej strony." -#: admin/admin.php:1607 -#: admin/admin.php:1706 -#: admin/admin.php:1744 -#: admin/admin.php:1765 +#: admin/admin.php:1608 +#: admin/admin.php:1707 +#: admin/admin.php:1745 +#: admin/admin.php:1766 #: inc/admin-ajax.php:162 #: inc/payments/admin/admin-handler.php:638 #: inc/payments/stripe/admin-stripe-handler.php:80 @@ -339,7 +339,7 @@ msgid "Form ID is required." msgstr "Wymagany jest identyfikator formularza." #: inc/admin-ajax.php:182 -#: inc/form-submit.php:970 +#: inc/form-submit.php:972 msgid "Invalid form ID." msgstr "Nieprawidłowy identyfikator formularza." @@ -513,11 +513,11 @@ msgstr "Pole wyboru" msgid "Required" msgstr "Wymagane" -#: inc/fields/dropdown-markup.php:83 +#: inc/fields/dropdown-markup.php:84 msgid "Dropdown" msgstr "Lista rozwijana" -#: inc/fields/dropdown-markup.php:106 +#: inc/fields/dropdown-markup.php:108 #: inc/gutenberg-hooks.php:220 msgid "Select an option" msgstr "Wybierz opcję" @@ -545,7 +545,7 @@ msgstr "Wyrażam zgodę na przechowywanie przez tę stronę moich przesłanych i msgid "Please verify that you are not a robot." msgstr "Proszę zweryfikować, że nie jesteś robotem." -#: inc/fields/multichoice-markup.php:113 +#: inc/fields/multichoice-markup.php:114 msgid "Multi Choice" msgstr "Wielokrotny wybór" @@ -642,7 +642,7 @@ msgstr "Wartość musi być unikalna." msgid "Sorry, you are not allowed to perform this action." msgstr "Przepraszam, nie masz uprawnień do wykonania tej czynności." -#: admin/admin.php:1505 +#: admin/admin.php:1506 msgid "Rate SureForms" msgstr "Oceń SureForms" @@ -790,7 +790,7 @@ msgid "Site URL" msgstr "Adres URL strony" #: inc/smart-tags.php:111 -#: inc/smart-tags.php:142 +#: inc/smart-tags.php:143 msgid "Admin Email" msgstr "Email administratora" @@ -831,7 +831,7 @@ msgid "User Last Name" msgstr "Nazwisko użytkownika" #: inc/smart-tags.php:122 -#: inc/smart-tags.php:143 +#: inc/smart-tags.php:144 msgid "User Email" msgstr "Email użytkownika" @@ -855,11 +855,11 @@ msgstr "Osadzony identyfikator posta/strony" msgid "Embedded Post/Page Title" msgstr "Osadzony tytuł posta/strony" -#: inc/smart-tags.php:128 +#: inc/smart-tags.php:129 msgid "Populate by GET Param" msgstr "Wypełnij za pomocą parametru GET" -#: inc/smart-tags.php:129 +#: inc/smart-tags.php:130 msgid "Cookie Value" msgstr "Wartość ciasteczka" @@ -8842,7 +8842,7 @@ msgstr "Przestaw blok wewnątrz paska szybkich akcji" #: admin/admin.php:409 #: admin/admin.php:410 -#: admin/admin.php:2021 +#: admin/admin.php:2022 #: assets/build/blocks.js:172 #: assets/build/dashboard.js:172 #: assets/build/entries.js:172 @@ -9185,7 +9185,7 @@ msgstr "Centrum" msgid "Right" msgstr "Prawo" -#: inc/form-submit.php:1147 +#: inc/form-submit.php:1149 #: assets/build/formEditor.js:172 #: assets/build/settings.js:172 msgid "Google reCAPTCHA" @@ -9195,7 +9195,7 @@ msgstr "Google reCAPTCHA" msgid "CloudFlare Turnstile" msgstr "CloudFlare Turnstile" -#: inc/form-submit.php:1151 +#: inc/form-submit.php:1153 #: assets/build/formEditor.js:172 #: assets/build/settings.js:172 msgid "hCaptcha" @@ -9487,7 +9487,7 @@ msgstr "Klucz strony" msgid "Secret Key" msgstr "Klucz tajny" -#: inc/form-submit.php:1155 +#: inc/form-submit.php:1157 #: assets/build/settings.js:172 msgid "Cloudflare Turnstile" msgstr "Cloudflare Turnstile" @@ -10485,18 +10485,18 @@ msgstr "Odblokuj Dodaj Notatkę" msgid "With the SureForms Starter plan, enhance your submitted form entries by adding personalized notes for better clarity and tracking." msgstr "Dzięki planowi SureForms Starter ulepsz swoje przesłane formularze, dodając spersonalizowane notatki dla lepszej przejrzystości i śledzenia." -#: inc/form-submit.php:821 +#: inc/form-submit.php:823 msgid "Email notification passed to the sending server" msgstr "Powiadomienie e-mail zostało przekazane do serwera wysyłającego" #. translators: Here, %s is the comma separated emails list. -#: inc/form-submit.php:894 +#: inc/form-submit.php:896 #, php-format msgid "Email notification recipient: %s" msgstr "Odbiorca powiadomienia e-mail: %s" #. translators: Here, %1$s is the comma separated emails list and %2$s is error report ( if any ). -#: inc/form-submit.php:911 +#: inc/form-submit.php:913 #, php-format msgid "Email server was unable to send the email notification. Recipient: %1$s. Reason: %2$s" msgstr "Serwer poczty nie mógł wysłać powiadomienia e-mail. Odbiorca: %1$s. Powód: %2$s" @@ -10740,24 +10740,24 @@ msgstr "Wybierz gradient" msgid "reCAPTCHA" msgstr "reCAPTCHA" -#: inc/form-submit.php:1091 +#: inc/form-submit.php:1093 msgid "Captcha validation failed. No error code provided." msgstr "Weryfikacja Captcha nie powiodła się. Nie podano kodu błędu." -#: inc/form-submit.php:1092 +#: inc/form-submit.php:1094 msgid "Captcha validation failed." msgstr "Weryfikacja Captcha nie powiodła się." -#: inc/form-submit.php:1159 +#: inc/form-submit.php:1161 msgid "Unknown Captcha" msgstr "Nieznana Captcha" -#: inc/form-submit.php:1160 +#: inc/form-submit.php:1162 msgid "Invalid captcha type." msgstr "Nieprawidłowy typ captcha." #. translators: %s is the captcha title. -#: inc/form-submit.php:1173 +#: inc/form-submit.php:1175 #, php-format msgid "%s verification failed. Please contact your site administrator." msgstr "Weryfikacja %s nie powiodła się. Proszę skontaktować się z administratorem strony." @@ -11274,28 +11274,28 @@ msgstr "Włącz powiadomienia administratora" msgid "Admin notifications keep you informed about new form entries since your last visit." msgstr "Powiadomienia administracyjne informują Cię o nowych wpisach formularza od Twojej ostatniej wizyty." -#: admin/admin.php:1611 -#: admin/admin.php:1702 -#: admin/admin.php:1740 -#: admin/admin.php:1761 +#: admin/admin.php:1612 +#: admin/admin.php:1703 +#: admin/admin.php:1741 +#: admin/admin.php:1762 msgid "Unauthorized user." msgstr "Nieautoryzowany użytkownik." #. translators: 1: opening span, 2: opening strong (inline), 3: closing strong, 4: closing span, 5: opening strong (block), 6: closing strong -#: admin/admin.php:1711 +#: admin/admin.php:1712 #, php-format msgid "%1$sGet started by %2$sbuilding your first form%3$s.%4$s%5$sExperience the power of our intuitive AI Form Builder%6$s" msgstr "%1$sZacznij od %2$szbudowania swojego pierwszego formularza%3$s.%4$s%5$sDoświadcz mocy naszego intuicyjnego Kreatora Formularzy AI%6$s" -#: admin/admin.php:1722 +#: admin/admin.php:1723 msgid "SureForms is waiting for you!" msgstr "SureForms czeka na Ciebie!" -#: admin/admin.php:1724 +#: admin/admin.php:1725 msgid "Build My First Form" msgstr "Zbuduj mój pierwszy formularz" -#: admin/admin.php:1725 +#: admin/admin.php:1726 msgid "Dismiss" msgstr "Odrzuć" @@ -11315,51 +11315,51 @@ msgstr "Zaloguj się" msgid "Register" msgstr "Zarejestruj się" -#: admin/admin.php:1836 +#: admin/admin.php:1837 msgid "Recent Entries" msgstr "Ostatnie wpisy" -#: admin/admin.php:1837 +#: admin/admin.php:1838 msgid "( Last 7 days )" msgstr "( Ostatnie 7 dni )" -#: admin/admin.php:1957 +#: admin/admin.php:1958 msgid "Use Conditional Logic to show only what matters" msgstr "Użyj logiki warunkowej, aby pokazać tylko to, co ważne" -#: admin/admin.php:1958 +#: admin/admin.php:1959 msgid "Split your form into steps to keep it easy" msgstr "Podziel swój formularz na etapy, aby był łatwy." -#: admin/admin.php:1959 +#: admin/admin.php:1960 msgid "Let people upload files directly to your form" msgstr "Pozwól ludziom przesyłać pliki bezpośrednio do Twojego formularza" -#: admin/admin.php:1960 +#: admin/admin.php:1961 msgid "Turn responses into downloadable PDFs automatically" msgstr "Automatycznie przekształcaj odpowiedzi w pliki PDF do pobrania" -#: admin/admin.php:1961 +#: admin/admin.php:1962 msgid "Let users sign with a simple signature field" msgstr "Pozwól użytkownikom podpisać się w prostym polu podpisu" -#: admin/admin.php:1962 +#: admin/admin.php:1963 msgid "Connect your form to other tools using webhooks" msgstr "Połącz swój formularz z innymi narzędziami za pomocą webhooków" -#: admin/admin.php:1963 +#: admin/admin.php:1964 msgid "Use Conversational Forms for a chat-like experience" msgstr "Użyj Formularzy Konwersacyjnych, aby uzyskać doświadczenie podobne do czatu" -#: admin/admin.php:1964 +#: admin/admin.php:1965 msgid "Let users register or log in through your form" msgstr "Pozwól użytkownikom zarejestrować się lub zalogować przez Twój formularz" -#: admin/admin.php:1965 +#: admin/admin.php:1966 msgid "Build forms that create WordPress user accounts" msgstr "Twórz formularze, które tworzą konta użytkowników WordPress" -#: admin/admin.php:1966 +#: admin/admin.php:1967 msgid "Add calculations to auto-total scores or prices" msgstr "Dodaj obliczenia do automatycznego sumowania wyników lub cen" @@ -11917,6 +11917,7 @@ msgid "Unable to create ZIP file." msgstr "Nie można utworzyć pliku ZIP." #: inc/entries.php:729 +#: inc/smart-tags.php:128 #: assets/build/entries.js:172 msgid "Entry ID" msgstr "ID wpisu" @@ -11934,7 +11935,7 @@ msgid "Invalid form data structure provided." msgstr "Podano nieprawidłową strukturę danych formularza." #: inc/fields/payment-markup.php:249 -#: inc/payments/payment-helper.php:538 +#: inc/payments/payment-helper.php:543 msgid "Subscription Plan" msgstr "Plan subskrypcji" @@ -12552,301 +12553,301 @@ msgstr "Dolar hongkoński" msgid "Norwegian Krone" msgstr "Korona norweska" -#: inc/payments/payment-helper.php:259 +#: inc/payments/payment-helper.php:264 msgid "South Korean Won" msgstr "Won południowokoreański" -#: inc/payments/payment-helper.php:264 +#: inc/payments/payment-helper.php:269 msgid "Turkish Lira" msgstr "Lira turecka" -#: inc/payments/payment-helper.php:269 +#: inc/payments/payment-helper.php:274 msgid "Russian Ruble" msgstr "Rubel rosyjski" -#: inc/payments/payment-helper.php:274 +#: inc/payments/payment-helper.php:279 msgid "Indian Rupee" msgstr "Rupia indyjska" -#: inc/payments/payment-helper.php:279 +#: inc/payments/payment-helper.php:284 msgid "Brazilian Real" msgstr "Real brazylijski" -#: inc/payments/payment-helper.php:284 +#: inc/payments/payment-helper.php:289 msgid "South African Rand" msgstr "Rand południowoafrykański" -#: inc/payments/payment-helper.php:289 +#: inc/payments/payment-helper.php:294 msgid "UAE Dirham" msgstr "Dirham ZEA" -#: inc/payments/payment-helper.php:294 +#: inc/payments/payment-helper.php:299 msgid "Philippine Peso" msgstr "Peso filipińskie" -#: inc/payments/payment-helper.php:299 +#: inc/payments/payment-helper.php:304 msgid "Indonesian Rupiah" msgstr "Rupia indonezyjska" -#: inc/payments/payment-helper.php:304 +#: inc/payments/payment-helper.php:309 msgid "Malaysian Ringgit" msgstr "Ringgit malezyjski" -#: inc/payments/payment-helper.php:309 +#: inc/payments/payment-helper.php:314 msgid "Thai Baht" msgstr "Baht tajski" -#: inc/payments/payment-helper.php:314 +#: inc/payments/payment-helper.php:319 msgid "Burundian Franc" msgstr "Frank burundyjski" -#: inc/payments/payment-helper.php:319 +#: inc/payments/payment-helper.php:324 msgid "Chilean Peso" msgstr "Peso chilijskie" -#: inc/payments/payment-helper.php:324 +#: inc/payments/payment-helper.php:329 msgid "Djiboutian Franc" msgstr "Frank Dżibutyjski" -#: inc/payments/payment-helper.php:329 +#: inc/payments/payment-helper.php:334 msgid "Guinean Franc" msgstr "Frank Gwinejski" -#: inc/payments/payment-helper.php:334 +#: inc/payments/payment-helper.php:339 msgid "Comorian Franc" msgstr "Frank Komoryjski" -#: inc/payments/payment-helper.php:339 +#: inc/payments/payment-helper.php:344 msgid "Malagasy Ariary" msgstr "Ariary malgaski" -#: inc/payments/payment-helper.php:344 +#: inc/payments/payment-helper.php:349 msgid "Paraguayan Guaraní" msgstr "Paragwajski Guarani" -#: inc/payments/payment-helper.php:349 +#: inc/payments/payment-helper.php:354 msgid "Rwandan Franc" msgstr "Frank rwandyjski" -#: inc/payments/payment-helper.php:354 +#: inc/payments/payment-helper.php:359 msgid "Ugandan Shilling" msgstr "Szyling ugandyjski" -#: inc/payments/payment-helper.php:359 +#: inc/payments/payment-helper.php:364 msgid "Vietnamese Đồng" msgstr "Wietnamski Đồng" -#: inc/payments/payment-helper.php:364 +#: inc/payments/payment-helper.php:369 msgid "Vanuatu Vatu" msgstr "Vanuatu Vatu" -#: inc/payments/payment-helper.php:369 +#: inc/payments/payment-helper.php:374 msgid "Central African CFA Franc" msgstr "Centralnoafrykański frank CFA" -#: inc/payments/payment-helper.php:374 +#: inc/payments/payment-helper.php:379 msgid "West African CFA Franc" msgstr "Frank CFA Afryki Zachodniej" -#: inc/payments/payment-helper.php:379 +#: inc/payments/payment-helper.php:384 msgid "CFP Franc" msgstr "Frank CFP" -#: inc/payments/payment-helper.php:475 +#: inc/payments/payment-helper.php:480 msgid "An unknown error occurred. Please try again or contact the site administrator." msgstr "Wystąpił nieznany błąd. Proszę spróbować ponownie lub skontaktować się z administratorem strony." -#: inc/payments/payment-helper.php:477 +#: inc/payments/payment-helper.php:482 msgid "Payment is currently unavailable. Please contact the site administrator." msgstr "Płatność jest obecnie niedostępna. Proszę skontaktować się z administratorem strony." -#: inc/payments/payment-helper.php:478 +#: inc/payments/payment-helper.php:483 msgid "Payment is currently unavailable. Please contact the site administrator to configure the payment amount." msgstr "Płatność jest obecnie niedostępna. Proszę skontaktować się z administratorem strony, aby skonfigurować kwotę płatności." -#: inc/payments/payment-helper.php:479 +#: inc/payments/payment-helper.php:484 msgid "Invalid payment amount" msgstr "Nieprawidłowa kwota płatności" -#: inc/payments/payment-helper.php:480 +#: inc/payments/payment-helper.php:485 msgid "Payment amount must be at least {symbol}{amount}." msgstr "Kwota płatności musi wynosić co najmniej {symbol}{amount}." -#: inc/payments/payment-helper.php:483 +#: inc/payments/payment-helper.php:488 msgid "Payment is currently unavailable. Please contact the site administrator to configure the customer name field." msgstr "Płatność jest obecnie niedostępna. Proszę skontaktować się z administratorem strony, aby skonfigurować pole nazwy klienta." -#: inc/payments/payment-helper.php:484 +#: inc/payments/payment-helper.php:489 msgid "Payment is currently unavailable. Please contact the site administrator to configure the customer email field." msgstr "Płatność jest obecnie niedostępna. Proszę skontaktować się z administratorem strony, aby skonfigurować pole e-mail klienta." -#: inc/payments/payment-helper.php:485 +#: inc/payments/payment-helper.php:490 msgid "Please enter your name." msgstr "Proszę wprowadzić swoje imię." -#: inc/payments/payment-helper.php:486 +#: inc/payments/payment-helper.php:491 msgid "Please enter your email." msgstr "Proszę wprowadzić swój adres e-mail." -#: inc/payments/payment-helper.php:489 +#: inc/payments/payment-helper.php:494 msgid "Payment failed" msgstr "Płatność nie powiodła się" -#: inc/payments/payment-helper.php:490 +#: inc/payments/payment-helper.php:495 msgid "Payment successful" msgstr "Płatność zakończona sukcesem" -#: inc/payments/payment-helper.php:494 -#: inc/payments/payment-helper.php:495 +#: inc/payments/payment-helper.php:499 +#: inc/payments/payment-helper.php:500 msgid "Your card was declined. Please try a different payment method or contact your bank." msgstr "Twoja karta została odrzucona. Spróbuj innej metody płatności lub skontaktuj się ze swoim bankiem." -#: inc/payments/payment-helper.php:496 +#: inc/payments/payment-helper.php:501 msgid "Your card has insufficient funds. Please use a different payment method." msgstr "Twoja karta ma niewystarczające środki. Proszę użyć innej metody płatności." -#: inc/payments/payment-helper.php:497 +#: inc/payments/payment-helper.php:502 msgid "Your card was declined because it has been reported as lost. Please contact your bank." msgstr "Twoja karta została odrzucona, ponieważ zgłoszono ją jako zgubioną. Proszę skontaktować się z bankiem." -#: inc/payments/payment-helper.php:498 +#: inc/payments/payment-helper.php:503 msgid "Your card was declined because it has been reported as stolen. Please contact your bank." msgstr "Twoja karta została odrzucona, ponieważ zgłoszono ją jako skradzioną. Proszę skontaktować się z bankiem." -#: inc/payments/payment-helper.php:499 +#: inc/payments/payment-helper.php:504 msgid "Your card has expired. Please use a different payment method." msgstr "Twoja karta wygasła. Proszę użyć innej metody płatności." -#: inc/payments/payment-helper.php:500 -#: inc/payments/payment-helper.php:521 +#: inc/payments/payment-helper.php:505 +#: inc/payments/payment-helper.php:526 msgid "Your card was declined. Please contact your bank for more information." msgstr "Twoja karta została odrzucona. Proszę skontaktować się z bankiem, aby uzyskać więcej informacji." -#: inc/payments/payment-helper.php:501 +#: inc/payments/payment-helper.php:506 msgid "Your card was declined due to restrictions. Please contact your bank." msgstr "Twoja karta została odrzucona z powodu ograniczeń. Proszę skontaktować się z bankiem." -#: inc/payments/payment-helper.php:502 +#: inc/payments/payment-helper.php:507 msgid "Your card was declined due to a security violation. Please contact your bank." msgstr "Twoja karta została odrzucona z powodu naruszenia bezpieczeństwa. Proszę skontaktować się z bankiem." -#: inc/payments/payment-helper.php:503 +#: inc/payments/payment-helper.php:508 msgid "Your card does not support this type of purchase. Please use a different payment method." msgstr "Twoja karta nie obsługuje tego typu zakupu. Proszę użyć innej metody płatności." -#: inc/payments/payment-helper.php:504 +#: inc/payments/payment-helper.php:509 msgid "A stop payment order has been placed on this card. Please contact your bank." msgstr "Na tej karcie złożono zlecenie wstrzymania płatności. Proszę skontaktować się z bankiem." -#: inc/payments/payment-helper.php:505 +#: inc/payments/payment-helper.php:510 msgid "A test card was used in a live environment. Please use a real card." msgstr "W środowisku produkcyjnym użyto karty testowej. Proszę użyć prawdziwej karty." -#: inc/payments/payment-helper.php:506 +#: inc/payments/payment-helper.php:511 msgid "Your card has exceeded its withdrawal limit. Please contact your bank." msgstr "Twoja karta przekroczyła limit wypłat. Proszę skontaktować się z bankiem." -#: inc/payments/payment-helper.php:507 +#: inc/payments/payment-helper.php:512 msgid "Your card's security code is incorrect. Please check and try again." msgstr "Kod zabezpieczający Twojej karty jest nieprawidłowy. Proszę sprawdź i spróbuj ponownie." -#: inc/payments/payment-helper.php:508 +#: inc/payments/payment-helper.php:513 msgid "Your card number is incorrect. Please check and try again." msgstr "Twój numer karty jest nieprawidłowy. Proszę sprawdź i spróbuj ponownie." -#: inc/payments/payment-helper.php:509 +#: inc/payments/payment-helper.php:514 msgid "Your card's security code is invalid. Please check and try again." msgstr "Kod zabezpieczający Twojej karty jest nieprawidłowy. Proszę sprawdź i spróbuj ponownie." -#: inc/payments/payment-helper.php:510 +#: inc/payments/payment-helper.php:515 msgid "Your card's expiration month is invalid. Please check and try again." msgstr "Miesiąc ważności Twojej karty jest nieprawidłowy. Proszę sprawdź i spróbuj ponownie." -#: inc/payments/payment-helper.php:511 +#: inc/payments/payment-helper.php:516 msgid "Your card's expiration year is invalid. Please check and try again." msgstr "Rok ważności Twojej karty jest nieprawidłowy. Proszę sprawdź i spróbuj ponownie." -#: inc/payments/payment-helper.php:512 +#: inc/payments/payment-helper.php:517 msgid "Your card number is invalid. Please check and try again." msgstr "Twój numer karty jest nieprawidłowy. Proszę sprawdź i spróbuj ponownie." -#: inc/payments/payment-helper.php:515 +#: inc/payments/payment-helper.php:520 msgid "Your card is not supported for this transaction. Please use a different payment method." msgstr "Twoja karta nie jest obsługiwana dla tej transakcji. Proszę użyć innej metody płatności." -#: inc/payments/payment-helper.php:516 +#: inc/payments/payment-helper.php:521 msgid "Your card does not support the currency used for this transaction. Please use a different payment method." msgstr "Twoja karta nie obsługuje waluty używanej w tej transakcji. Proszę użyć innej metody płatności." -#: inc/payments/payment-helper.php:517 +#: inc/payments/payment-helper.php:522 msgid "A transaction with identical details was submitted recently. Please wait a moment and try again." msgstr "Transakcja o identycznych szczegółach została niedawno złożona. Proszę poczekać chwilę i spróbować ponownie." -#: inc/payments/payment-helper.php:518 +#: inc/payments/payment-helper.php:523 msgid "The account associated with your card is invalid. Please contact your bank." msgstr "Konto powiązane z Twoją kartą jest nieprawidłowe. Proszę skontaktować się z bankiem." -#: inc/payments/payment-helper.php:519 +#: inc/payments/payment-helper.php:524 msgid "The payment amount is invalid. Please contact the site administrator." msgstr "Kwota płatności jest nieprawidłowa. Proszę skontaktować się z administratorem strony." -#: inc/payments/payment-helper.php:522 +#: inc/payments/payment-helper.php:527 msgid "Your card information needs to be updated. Please contact your bank." msgstr "Twoje dane karty muszą zostać zaktualizowane. Proszę skontaktować się z bankiem." -#: inc/payments/payment-helper.php:523 +#: inc/payments/payment-helper.php:528 msgid "The card cannot be used for this transaction. Please contact your bank." msgstr "Karta nie może być użyta do tej transakcji. Proszę skontaktować się z bankiem." -#: inc/payments/payment-helper.php:524 +#: inc/payments/payment-helper.php:529 msgid "The transaction is not permitted. Please contact your bank." msgstr "Transakcja nie jest dozwolona. Proszę skontaktować się z bankiem." -#: inc/payments/payment-helper.php:525 +#: inc/payments/payment-helper.php:530 msgid "Your card requires offline PIN authentication. Please try again." msgstr "Twoja karta wymaga uwierzytelnienia offline za pomocą kodu PIN. Proszę spróbować ponownie." -#: inc/payments/payment-helper.php:526 +#: inc/payments/payment-helper.php:531 msgid "Your card requires PIN authentication. Please try again." msgstr "Twoja karta wymaga uwierzytelnienia PIN. Proszę spróbuj ponownie." -#: inc/payments/payment-helper.php:527 +#: inc/payments/payment-helper.php:532 msgid "You have exceeded the maximum number of PIN attempts. Please contact your bank." msgstr "Przekroczyłeś maksymalną liczbę prób wprowadzenia PIN-u. Proszę skontaktować się z bankiem." -#: inc/payments/payment-helper.php:528 +#: inc/payments/payment-helper.php:533 msgid "All authorizations for this card have been revoked. Please contact your bank." msgstr "Wszystkie autoryzacje dla tej karty zostały cofnięte. Proszę skontaktować się z bankiem." -#: inc/payments/payment-helper.php:529 +#: inc/payments/payment-helper.php:534 msgid "The authorization for this transaction has been revoked. Please try again." msgstr "Autoryzacja tej transakcji została cofnięta. Proszę spróbować ponownie." -#: inc/payments/payment-helper.php:530 +#: inc/payments/payment-helper.php:535 msgid "This transaction is not allowed. Please contact your bank." msgstr "Ta transakcja nie jest dozwolona. Proszę skontaktować się z bankiem." -#: inc/payments/payment-helper.php:532 +#: inc/payments/payment-helper.php:537 msgid "Your card was declined. Your request was in live mode, but used a known test card." msgstr "Twoja karta została odrzucona. Twoje żądanie było w trybie rzeczywistym, ale użyto znanej karty testowej." -#: inc/payments/payment-helper.php:533 +#: inc/payments/payment-helper.php:538 msgid "Your card was declined. Your request was in test mode, but used a non test card. For a list of valid test cards, visit: https://stripe.com/docs/testing." msgstr "Twoja karta została odrzucona. Twoje żądanie było w trybie testowym, ale użyto karty niebędącej kartą testową. Aby uzyskać listę ważnych kart testowych, odwiedź: https://stripe.com/docs/testing." -#: inc/payments/payment-helper.php:536 +#: inc/payments/payment-helper.php:541 msgid "SureForms Subscription" msgstr "Subskrypcja SureForms" -#: inc/payments/payment-helper.php:537 +#: inc/payments/payment-helper.php:542 msgid "SureForms Payment" msgstr "Płatność SureForms" -#: inc/payments/payment-helper.php:539 +#: inc/payments/payment-helper.php:544 msgid "SureForms Customer" msgstr "Klient SureForms" -#: inc/payments/payment-helper.php:559 +#: inc/payments/payment-helper.php:564 msgid "Unknown error" msgstr "Nieznany błąd" @@ -14977,74 +14978,74 @@ msgstr "Nie udało się utworzyć duplikatu formularza." #: inc/payments/front-end.php:97 #: inc/payments/front-end.php:298 -#: inc/payments/payment-helper.php:589 +#: inc/payments/payment-helper.php:594 msgid "Invalid form configuration." msgstr "Nieprawidłowa konfiguracja formularza." -#: inc/payments/payment-helper.php:597 +#: inc/payments/payment-helper.php:602 msgid "Payment configuration not found for this form." msgstr "Nie znaleziono konfiguracji płatności dla tego formularza." #. translators: 1: expected currency, 2: received currency -#: inc/payments/payment-helper.php:608 +#: inc/payments/payment-helper.php:613 #, php-format msgid "Currency mismatch: expected %1$s, received %2$s." msgstr "Niezgodność waluty: oczekiwano %1$s, otrzymano %2$s." #. translators: 1: expected amount with currency -#: inc/payments/payment-helper.php:625 +#: inc/payments/payment-helper.php:630 #, php-format msgid "Payment amount must be exactly %1$s." msgstr "Kwota płatności musi wynosić dokładnie %1$s." #. translators: 1: minimum amount with currency -#: inc/payments/payment-helper.php:636 +#: inc/payments/payment-helper.php:641 #, php-format msgid "Payment amount must be at least %1$s." msgstr "Kwota płatności musi wynosić co najmniej %1$s." -#: inc/payments/payment-helper.php:712 +#: inc/payments/payment-helper.php:717 msgid "Invalid payment verification parameters." msgstr "Nieprawidłowe parametry weryfikacji płatności." -#: inc/payments/payment-helper.php:723 +#: inc/payments/payment-helper.php:728 msgid "Payment verification failed. Invalid payment intent." msgstr "Weryfikacja płatności nie powiodła się. Nieprawidłowy zamiar płatności." -#: inc/payments/payment-helper.php:809 -#: inc/payments/payment-helper.php:947 +#: inc/payments/payment-helper.php:814 +#: inc/payments/payment-helper.php:952 msgid "Variable amount field configuration not found." msgstr "Nie znaleziono konfiguracji pola zmiennej kwoty." -#: inc/payments/payment-helper.php:830 +#: inc/payments/payment-helper.php:835 msgid "No payment options are configured for this field." msgstr "Nie skonfigurowano opcji płatności dla tego pola." #. translators: %s: currency code -#: inc/payments/payment-helper.php:856 +#: inc/payments/payment-helper.php:861 msgid "Invalid payment amount. Please select a valid amount from the available options." msgstr "Nieprawidłowa kwota płatności. Proszę wybrać prawidłową kwotę z dostępnych opcji." #. translators: %1$s: expected amount, %2$s: payment amount -#: inc/payments/payment-helper.php:891 +#: inc/payments/payment-helper.php:896 msgid "Payment configuration not found." msgstr "Nie znaleziono konfiguracji płatności." #. translators: %1$s: expected amount, %2$s: payment amount -#: inc/payments/payment-helper.php:907 -#: inc/payments/payment-helper.php:959 -#: inc/payments/payment-helper.php:995 +#: inc/payments/payment-helper.php:912 +#: inc/payments/payment-helper.php:964 +#: inc/payments/payment-helper.php:1000 #, php-format msgid "Payment amount mismatch. Expected %1$s, received %2$s." msgstr "Kwota płatności niezgodna. Oczekiwano %1$s, otrzymano %2$s." -#: inc/payments/payment-helper.php:936 -#: inc/payments/payment-helper.php:986 +#: inc/payments/payment-helper.php:941 +#: inc/payments/payment-helper.php:991 msgid "Variable amount field value is required." msgstr "Wartość pola zmiennej kwoty jest wymagana." #. translators: %1$s: minimum amount, %2$s: payment amount -#: inc/payments/payment-helper.php:1007 +#: inc/payments/payment-helper.php:1012 #, php-format msgid "Payment amount below minimum. Minimum: %1$s, received %2$s." msgstr "Kwota płatności poniżej minimum. Minimum: %1$s, otrzymano %2$s." @@ -15130,7 +15131,7 @@ msgstr "Bramka płatności nie została znaleziona." msgid "Refund processing is not supported for %s gateway." msgstr "Przetwarzanie zwrotów nie jest obsługiwane dla bramki %s." -#: inc/payments/payment-helper.php:969 +#: inc/payments/payment-helper.php:974 msgid "Number field configuration not found." msgstr "Nie znaleziono konfiguracji pola liczbowego." @@ -15249,12 +15250,12 @@ msgid "Stripe Settings" msgstr "Ustawienia Stripe" #. translators: %1$s: SureForms version, %2$s: SureForms Pro Plugin Name, %3$s: SureForms Pro Version. -#: admin/admin.php:1376 +#: admin/admin.php:1377 #, php-format msgid "SureForms %1$s requires minimum %2$s %3$s to work properly. Please update to the latest version." msgstr "SureForms %1$s wymaga co najmniej %2$s %3$s do prawidłowego działania. Proszę zaktualizować do najnowszej wersji." -#: admin/admin.php:1389 +#: admin/admin.php:1390 msgid "Update Now" msgstr "Zaktualizuj teraz" @@ -15316,40 +15317,40 @@ msgstr "Wybierz pozycję symbolu waluty względem kwoty." msgid "Learn" msgstr "Ucz się" -#: admin/admin.php:1502 +#: admin/admin.php:1503 msgid "Amazing! SureForms is powering your forms and submissions - let's keep growing together!" msgstr "Niesamowite! SureForms napędza Twoje formularze i zgłoszenia - rozwijajmy się razem!" -#: admin/admin.php:1503 +#: admin/admin.php:1504 msgid "If SureForms has been helpful, would you mind taking a moment to leave a 5-star review on WordPress.org?" msgstr "Jeśli SureForms okazał się pomocny, czy mógłbyś poświęcić chwilę na pozostawienie 5-gwiazdkowej recenzji na WordPress.org?" -#: admin/admin.php:1506 -#: admin/admin.php:1550 +#: admin/admin.php:1507 +#: admin/admin.php:1551 msgid "Maybe later" msgstr "Może później" -#: admin/admin.php:1507 +#: admin/admin.php:1508 msgid "I already did" msgstr "Już to zrobiłem" -#: admin/admin.php:1546 +#: admin/admin.php:1547 msgid "SureForms is ready to power your forms — explore what's possible!" msgstr "SureForms jest gotowy, aby zasilić Twoje formularze — odkryj, co jest możliwe!" -#: admin/admin.php:1547 +#: admin/admin.php:1548 msgid "Manage your forms, track submissions, and discover features like AI Form Builder, payment integrations, and more from the SureForms dashboard." msgstr "Zarządzaj swoimi formularzami, śledź zgłoszenia i odkrywaj funkcje takie jak AI Form Builder, integracje płatności i inne z poziomu pulpitu SureForms." -#: admin/admin.php:1549 +#: admin/admin.php:1550 msgid "Go to Dashboard" msgstr "Przejdź do pulpitu nawigacyjnego" -#: admin/admin.php:1551 +#: admin/admin.php:1552 msgid "I already know" msgstr "Już wiem" -#: admin/admin.php:1631 +#: admin/admin.php:1632 msgid "Invalid parameters." msgstr "Nieprawidłowe parametry." @@ -15739,7 +15740,7 @@ msgstr "Ten formularz nie jest jeszcze dostępny. Sprawdź ponownie po zaplanowa #: inc/form-submit.php:99 #: inc/form-submit.php:400 #: inc/form-submit.php:445 -#: inc/form-submit.php:966 +#: inc/form-submit.php:968 #: inc/payments/front-end.php:77 #: inc/payments/front-end.php:258 #: inc/rest-api.php:98 @@ -15788,19 +15789,19 @@ msgstr "Proszę sprawdzić formularz pod kątem błędów." msgid "Your submission was flagged as spam. Please try again." msgstr "Twoje zgłoszenie zostało oznaczone jako spam. Proszę spróbuj ponownie." -#: inc/form-submit.php:649 +#: inc/form-submit.php:651 msgid "Unable to submit form. Please try again." msgstr "Nie można przesłać formularza. Proszę spróbować ponownie." -#: inc/form-submit.php:901 +#: inc/form-submit.php:903 msgid "No SMTP plugin detected. Please configure an SMTP plugin to enable email sending." msgstr "Nie wykryto wtyczki SMTP. Proszę skonfigurować wtyczkę SMTP, aby umożliwić wysyłanie e-maili." -#: inc/form-submit.php:902 +#: inc/form-submit.php:904 msgid "Email sending failed for an unknown reason." msgstr "Wysyłanie e-maila nie powiodło się z nieznanego powodu." -#: inc/form-submit.php:941 +#: inc/form-submit.php:943 msgid "No emails were sent." msgstr "Nie wysłano żadnych e-maili." @@ -15953,31 +15954,31 @@ msgstr "Nie można usunąć płatności. Proszę spróbować ponownie." msgid "Unable to process refund. Please try again." msgstr "Nie można przetworzyć zwrotu. Proszę spróbować ponownie." -#: inc/payments/payment-helper.php:491 +#: inc/payments/payment-helper.php:496 msgid "Unable to complete payment. Please try again or contact support." msgstr "Nie można zakończyć płatności. Spróbuj ponownie lub skontaktuj się z pomocą techniczną." -#: inc/payments/payment-helper.php:513 +#: inc/payments/payment-helper.php:518 msgid "Unable to process card. Please try again." msgstr "Nie można przetworzyć karty. Proszę spróbować ponownie." -#: inc/payments/payment-helper.php:514 +#: inc/payments/payment-helper.php:519 msgid "Unable to process transaction. Please try again." msgstr "Nie można przetworzyć transakcji. Proszę spróbować ponownie." -#: inc/payments/payment-helper.php:520 +#: inc/payments/payment-helper.php:525 msgid "Unable to reach card issuer. Please try again later." msgstr "Nie można połączyć się z wydawcą karty. Proszę spróbować ponownie później." -#: inc/payments/payment-helper.php:531 +#: inc/payments/payment-helper.php:536 msgid "Unable to process transaction. Please try again later." msgstr "Nie można przetworzyć transakcji. Proszę spróbować ponownie później." -#: inc/payments/payment-helper.php:541 +#: inc/payments/payment-helper.php:546 msgid "Complete the form to view the amount." msgstr "Wypełnij formularz, aby zobaczyć kwotę." -#: inc/payments/payment-helper.php:542 +#: inc/payments/payment-helper.php:547 msgid "Unable to create payment. Please contact support." msgstr "Nie można utworzyć płatności. Proszę skontaktować się z pomocą techniczną." @@ -16693,7 +16694,7 @@ msgid "Invalid webhook signature." msgstr "Nieprawidłowy podpis webhooka." #: admin/admin.php:426 -#: admin/admin.php:974 +#: admin/admin.php:975 #: assets/build/formEditor.js:172 msgid "Quizzes" msgstr "Quizy" @@ -16707,11 +16708,11 @@ msgstr "Wpisy do quizu" msgid "New" msgstr "Nowy" -#: inc/form-submit.php:975 +#: inc/form-submit.php:977 msgid "Invalid form." msgstr "Nieprawidłowy formularz." -#: inc/form-submit.php:980 +#: inc/form-submit.php:982 msgid "Too many requests. Please try again shortly." msgstr "Zbyt wiele żądań. Proszę spróbować ponownie za chwilę." @@ -17225,7 +17226,7 @@ msgstr "Wybierz to, aby utworzyć quiz z punktowanymi pytaniami i ocenianymi wyn #: admin/admin.php:458 #: admin/admin.php:459 -#: admin/admin.php:979 +#: admin/admin.php:980 msgid "Survey Reports" msgstr "Raporty z ankiet" @@ -17336,7 +17337,7 @@ msgstr "Płatność za subskrypcję" #: inc/payments/payment-history-shortcode.php:321 msgid "One-time Payment" -msgstr "" +msgstr "Płatność jednorazowa" #: inc/payments/payment-history-shortcode.php:322 msgid "Processing..." @@ -17491,7 +17492,7 @@ msgstr "Pomóż kształtować przyszłość SureForms" #: assets/build/settings.js:172 msgid "Share how you use the plugin so we can build features that matter, fix issues faster, and make smarter decisions. " -msgstr "Podziel się, jak używasz wtyczki, abyśmy mogli tworzyć funkcje, które mają znaczenie, szybciej naprawiać problemy i podejmować mądrzejsze decyzje. " +msgstr "Podziel się, jak używasz wtyczki, abyśmy mogli tworzyć funkcje, które mają znaczenie, szybciej naprawiać problemy i podejmować mądrzejsze decyzje." #: assets/build/settings.js:172 msgid "Enable Google Address Autocomplete" @@ -17569,6 +17570,14 @@ msgstr "Pokaż respondentom wyniki na żywo" msgid "Perfect for feedback, polls, and research" msgstr "Idealne do opinii, ankiet i badań" +#: inc/payments/payment-helper.php:259 +msgid "Polish Złoty" +msgstr "Polski Złoty" + +#: assets/build/blocks.js:172 +msgid "Dynamic Default Value" +msgstr "Dynamiczna wartość domyślna" + #: inc/post-types.php:205 msgctxt "post type general name" msgid "Forms" diff --git a/languages/sureforms-pt_PT-4b62e3f004dea2c587b5a3069263d994.json b/languages/sureforms-pt_PT-4b62e3f004dea2c587b5a3069263d994.json index df224358b..ca4fa991c 100644 --- a/languages/sureforms-pt_PT-4b62e3f004dea2c587b5a3069263d994.json +++ b/languages/sureforms-pt_PT-4b62e3f004dea2c587b5a3069263d994.json @@ -1 +1 @@ -{"translation-revision-date":"2025-01-02T08:44:42+00:00","generator":"WP-CLI\/2.12.0","source":"assets\/build\/blocks.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"en","plural-forms":"nplurals=2; plural=(n != 1);"},"Settings":["Configura\u00e7\u00f5es"],"Search":["Pesquisar"],"Fields":["Campos"],"Image":["Imagem"],"Submit":["Enviar"],"Required":["Obrigat\u00f3rio"],"Form Title":["T\u00edtulo do Formul\u00e1rio"],"Show":["Mostrar"],"Hide":["Esconder"],"Edit Form":["Editar Formul\u00e1rio"],"Icon":["\u00cdcone"],"Desktop":["\u00c1rea de trabalho"],"Medium":["M\u00e9dio"],"Mobile":["M\u00f3vel"],"Repeat":["Repetir"],"Scroll":["Rolar"],"Tablet":["Tablet"],"Basic":["B\u00e1sico"],"(no title)":["(sem t\u00edtulo)"],"Select a Form":["Selecione um Formul\u00e1rio"],"No forms found\u2026":["Nenhum formul\u00e1rio encontrado\u2026"],"Choose":["Escolher"],"Create New":["Criar Novo"],"Change Form":["Alterar Formul\u00e1rio"],"This form has been deleted or is unavailable.":["Este formul\u00e1rio foi exclu\u00eddo ou est\u00e1 indispon\u00edvel."],"Form Settings":["Configura\u00e7\u00f5es do Formul\u00e1rio"],"Show Form Title on this Page":["Mostrar t\u00edtulo do formul\u00e1rio nesta p\u00e1gina"],"Note: For editing SureForms, please refer to the SureForms Editor - ":["Nota: Para editar SureForms, consulte o Editor de SureForms -"],"Field preview":["Pr\u00e9-visualiza\u00e7\u00e3o do campo"],"General":["Geral"],"Style":["Estilo"],"Advanced":["Avan\u00e7ado"],"No tags available":["Sem etiquetas dispon\u00edveis"],"Device":["Dispositivo"],"Select Shortcodes":["Selecionar C\u00f3digos Curtos"],"Page Break Label":["R\u00f3tulo de Quebra de P\u00e1gina"],"Next":["Pr\u00f3ximo"],"Back":["Voltar"],"Reset":["Redefinir"],"Generic tags":["Etiquetas gen\u00e9ricas"],"Pixel":["Pixel"],"Em":["Em"],"Select Units":["Selecionar Unidades"],"%s units":["%s unidades"],"Margin":["Margem"],"Attributes":["Atributos"],"Input Pattern":["Padr\u00e3o de Entrada"],"None":["Nenhum"],"(###) ###-####":["(###) ###-####"],"(##) ####-####":["(##) ####-####"],"27\/08\/2024":["27\/08\/2024"],"23:59:59":["23:59:59"],"27\/08\/2024 23:59:59":["27\/08\/2024 23:59:59"],"Custom":["Personalizado"],"Custom Mask":["M\u00e1scara Personalizada"],"Please check the documentation to manage custom input pattern ":["Por favor, verifique a documenta\u00e7\u00e3o para gerenciar o padr\u00e3o de entrada personalizado"],"here":["aqui"],"Default Value":["Valor Padr\u00e3o"],"Error Message":["Mensagem de Erro"],"Help Text":["Texto de Ajuda"],"Number Format":["Formato de N\u00famero"],"US Style (Eg: 9,999.99)":["Estilo dos EUA (Ex: 9.999,99)"],"EU Style (Eg: 9.999,99)":["Estilo da UE (Ex: 9.999,99)"],"Minimum Value":["Valor M\u00ednimo"],"Maximum Value":["Valor M\u00e1ximo"],"Please check the Minimum and Maximum value":["Por favor, verifique o valor M\u00ednimo e M\u00e1ximo"],"Enable Email Confirmation":["Ativar Confirma\u00e7\u00e3o de E-mail"],"Checked by Default":["Marcado por padr\u00e3o"],"Error message":["Mensagem de erro"],"Checked by default":["Marcado por padr\u00e3o"],"Please add a option props to MultiButtonsControl":["Por favor, adicione uma op\u00e7\u00e3o de propriedades ao MultiButtonsControl"],"Icon Library":["Biblioteca de \u00cdcones"],"Close":["Fechar"],"All Icons":["Todas as \u00cdcones"],"Other":["Outro"],"No Icons Found":["Nenhum \u00edcone encontrado"],"Insert Icon":["Inserir \u00cdcone"],"Change Icon":["Alterar \u00cdcone"],"Choose Icon":["Escolher \u00cdcone"],"Confirm":["Confirmar"],"Cancel":["Cancelar"],"Processing\u2026":["Processando\u2026"],"Select Video":["Selecionar V\u00eddeo"],"Change Video":["Alterar V\u00eddeo"],"Select Lottie Animation":["Selecionar Anima\u00e7\u00e3o Lottie"],"Change Lottie Animation":["Alterar Anima\u00e7\u00e3o Lottie"],"Upload SVG":["Carregar SVG"],"Change SVG":["Alterar SVG"],"Select Image":["Selecionar imagem"],"Change Image":["Alterar Imagem"],"Upload SVG?":["Carregar SVG?"],"Upload SVG can be potentially risky. Are you sure?":["Fazer upload de SVG pode ser potencialmente arriscado. Tem certeza?"],"Upload Anyway":["Carregar Mesmo Assim"],"Bulk Add":["Adicionar em Massa"],"Bulk Add Options":["Adicionar Op\u00e7\u00f5es em Massa"],"Enter each option on a new line.":["Digite cada op\u00e7\u00e3o em uma nova linha."],"Insert Options":["Inserir Op\u00e7\u00f5es"],"Full Width":["Largura Total"],"Option Type":["Tipo de Op\u00e7\u00e3o"],"Edit Options":["Editar Op\u00e7\u00f5es"],"Add New Option":["Adicionar nova op\u00e7\u00e3o"],"ADD":["ADICIONAR"],"Enable Auto Country Detection":["Ativar Detec\u00e7\u00e3o Autom\u00e1tica de Pa\u00eds"],"%s Width":["Largura %s"],"Upgrade":["Atualizar"],"Clear":["Limpar"],"Select Color":["Selecionar Cor"],"Primary Color":["Cor Prim\u00e1ria"],"Text Color":["Cor do Texto"],"Field Spacing":["Espa\u00e7amento de Campo"],"Small":["Pequeno"],"Large":["Grande"],"Left":["Esquerda"],"Center":["Centro"],"Right":["Certo"],"Color":["Cor"],"Background Color":["Cor de Fundo"],"Auto":["Carro"],"Default":["Padr\u00e3o"],"Normal":["Normal"],"%":["%"],"Top":["Topo"],"Bottom":["Inferior"],"Width":["Largura"],"Size":["Tamanho"],"EM":["EM"],"Padding":["Preenchimento"],"Color 1":["Cor 1"],"Color 2":["Cor 2"],"Type":["Digite"],"Linear":["Linear"],"Radial":["Radial"],"Location 1":["Localiza\u00e7\u00e3o 1"],"Location 2":["Localiza\u00e7\u00e3o 2"],"Angle":["\u00c2ngulo"],"Classic":["Cl\u00e1ssico"],"Gradient":["Gradiente"],"Horizontal":["Horizontal"],"Vertical":["Vertical"],"Background":["Fundo"],"Cover":["Cobertura"],"Contain":["Conter"],"Layout":["Layout"],"Overlay":["Sobreposi\u00e7\u00e3o"],"No Repeat":["Sem repeti\u00e7\u00e3o"],"Overlay Opacity":["Opacidade da Sobreposi\u00e7\u00e3o"],"Conditional Logic":["L\u00f3gica Condicional"],"Upgrade to the SureForms Starter Plan to create dynamic forms that adapt based on user input, offering a personalised and efficient form experience.":["Fa\u00e7a upgrade para o Plano Starter do SureForms para criar formul\u00e1rios din\u00e2micos que se adaptam com base nas entradas do usu\u00e1rio, oferecendo uma experi\u00eancia de formul\u00e1rio personalizada e eficiente."],"Enable Conditional Logic":["Ativar L\u00f3gica Condicional"],"this field if":["este campo se"],"Configure Conditions":["Configurar Condi\u00e7\u00f5es"],"Premium":["Premium"],"Overlay Type":["Tipo de Sobreposi\u00e7\u00e3o"],"Image Overlay Color":["Cor de Sobreposi\u00e7\u00e3o da Imagem"],"Image Position":["Posi\u00e7\u00e3o da Imagem"],"Attachment":["Anexo"],"Fixed":["Fixo"],"Blend Mode":["Modo de Mesclagem"],"Multiply":["Multiplicar"],"Screen":["Tela"],"Darken":["Escurecer"],"Lighten":["Iluminar"],"Color Dodge":["Esquiva de Cor"],"Saturation":["Satura\u00e7\u00e3o"],"Repeat-x":["Repetir-x"],"Repeat-y":["Repita-y"],"PX":["PX"],"Button":["Bot\u00e3o"],"Prefix Label":["R\u00f3tulo de Prefixo"],"Suffix Label":["R\u00f3tulo de Sufixo"],"Border Radius":["Raio da Borda"],"Form Theme":["Tema do Formul\u00e1rio"],"Select Gradient":["Selecionar Gradiente"],"Unlock Conditional Logic Editor":["Desbloquear Editor de L\u00f3gica Condicional"],"Rich Text Editor":["Editor de Texto Rico"],"Read Only":["Apenas leitura"],"Select Country":["Selecionar Pa\u00eds"],"Default Country":["Pa\u00eds Padr\u00e3o"],"Subscription":["Assinatura"],"One Time":["Uma Vez"],"Unique Entry":["Entrada \u00danica"],"Maximum Characters":["M\u00e1ximo de caracteres"],"Textarea Height":["Altura da \u00c1rea de Texto"],"Minimum Selections":["Sele\u00e7\u00f5es M\u00ednimas"],"Maximum Selections":["Sele\u00e7\u00f5es M\u00e1ximas"],"Add Numeric Values to Options":["Adicionar valores num\u00e9ricos \u00e0s op\u00e7\u00f5es"],"Single Choice Only":["Apenas uma escolha"],"Enable Dropdown Search":["Ativar Pesquisa em Dropdown"],"Allow Multiple":["Permitir M\u00faltiplos"],"%1$s fields are required. Please configure these fields in the block settings.":["Os campos %1$s s\u00e3o obrigat\u00f3rios. Por favor, configure esses campos nas configura\u00e7\u00f5es do bloco."],"%1$s field is required. Please configure this field in the block settings.":["O campo %1$s \u00e9 obrigat\u00f3rio. Por favor, configure este campo nas configura\u00e7\u00f5es do bloco."],"You need to configure a payment account to collect payments from this form. Please configure your payment provider to proceed.":["Voc\u00ea precisa configurar uma conta de pagamento para coletar pagamentos deste formul\u00e1rio. Por favor, configure seu provedor de pagamento para continuar."],"Configure Payment Account":["Configurar Conta de Pagamento"],"This is a placeholder for the Payment block. The actual payment fields for your configured payment provider(s) will only appear when you preview or publish the form.":["Este \u00e9 um espa\u00e7o reservado para o bloco de Pagamento. Os campos de pagamento reais para o(s) provedor(es) de pagamento configurado(s) s\u00f3 aparecer\u00e3o quando voc\u00ea visualizar ou publicar o formul\u00e1rio."],"2 Payments":["2 Pagamentos"],"3 Payments":["3 Pagamentos"],"4 Payments":["4 Pagamentos"],"5 Payments":["5 Pagamentos"],"Never":["Nunca"],"Stop Subscription After":["Parar Assinatura Ap\u00f3s"],"Choose when to automatically stop the subscription":["Escolha quando parar automaticamente a assinatura"],"Number of Payments":["N\u00famero de Pagamentos"],"Enter a number between 1 to 100":["Insira um n\u00famero entre 1 e 100"],"Form Field":["Campo de Formul\u00e1rio"],"Payment Type":["Tipo de Pagamento"],"Subscription Plan Name":["Nome do Plano de Assinatura"],"Billing Interval":["Intervalo de Cobran\u00e7a"],"Daily":["Diariamente"],"Weekly":["Semanalmente"],"Monthly":["Mensal"],"Quarterly":["Trimestral"],"Yearly":["Anual"],"Amount Type":["Tipo de Quantia"],"Fixed Amount":["Quantia Fixa"],"Dynamic Amount":["Montante Din\u00e2mico"],"Choose whether to charge a fixed amount or charge the amount based on user input in other form fields.":["Escolha entre cobrar um valor fixo ou cobrar o valor com base na entrada do usu\u00e1rio em outros campos do formul\u00e1rio."],"Set the exact amount you want to charge. Users won\u2019t be able to change it":["Defina o valor exato que deseja cobrar. Os usu\u00e1rios n\u00e3o poder\u00e3o alter\u00e1-lo"],"Choose Amount Field":["Escolher Campo de Quantidade"],"Select a field\u2026":["Selecione um campo\u2026"],"Pick a field from your form like a number, dropdown, or multichoice whose value should decide the payment amount.":["Escolha um campo do seu formul\u00e1rio, como um n\u00famero, menu suspenso ou m\u00faltipla escolha, cujo valor deve determinar o valor do pagamento."],"Minimum Amount":["Quantidade M\u00ednima"],"Set the minimum amount users can enter (0 for no minimum)":["Defina o valor m\u00ednimo que os usu\u00e1rios podem inserir (0 para sem m\u00ednimo)"],"Customer Name Field (Required)":["Campo Nome do Cliente (Obrigat\u00f3rio)"],"Customer Name Field (Optional)":["Campo Nome do Cliente (Opcional)"],"Select the input field that contains the customer name (Required for subscriptions)":["Selecione o campo de entrada que cont\u00e9m o nome do cliente (Obrigat\u00f3rio para assinaturas)"],"Select the input field that contains the customer name":["Selecione o campo de entrada que cont\u00e9m o nome do cliente"],"Customer Email Field (Required)":["Campo de Email do Cliente (Obrigat\u00f3rio)"],"Select the email field that contains the customer email":["Selecione o campo de email que cont\u00e9m o email do cliente"],"Payment":["Pagamento"],"%s - Order ID":["%s - ID do Pedido"],"%s - Amount":["%s - Quantidade"],"%s - Customer Email":["%s - Email do Cliente"],"%s - Customer Name":["%s - Nome do Cliente"],"%s - Status":["%s - Status"],"Button Alignment":["Alinhamento do Bot\u00e3o"],"Placeholder":["Espa\u00e7o reservado"],"Preselect this option":["Pr\u00e9-selecione esta op\u00e7\u00e3o"],"Restrict Country Codes":["Restringir C\u00f3digos de Pa\u00eds"],"Restriction Type":["Tipo de Restri\u00e7\u00e3o"],"Allow":["Permitir"],"Block":["Bloquear"],"Select Allowed Countries":["Selecionar Pa\u00edses Permitidos"],"Choose countries\u2026":["Escolha pa\u00edses\u2026"],"Choose which country codes users can select in the phone number field. Leave empty to allow all country codes.":["Escolha quais c\u00f3digos de pa\u00eds os usu\u00e1rios podem selecionar no campo de n\u00famero de telefone. Deixe em branco para permitir todos os c\u00f3digos de pa\u00eds."],"Select Blocked Countries":["Selecionar Pa\u00edses Bloqueados"],"These countries will be hidden from the dropdown.":["Esses pa\u00edses ser\u00e3o ocultados do menu suspenso."],"Bulk Edit":["Edi\u00e7\u00e3o em Massa"],"Select Layout":["Selecionar Layout"],"Number of Columns":["N\u00famero de Colunas"],"Validation Message for Duplicate":["Mensagem de Valida\u00e7\u00e3o para Duplicado"],"Click here to insert a form":["Clique aqui para inserir um formul\u00e1rio"],"Inherit Form's Original Style":["Herdar o Estilo Original do Formul\u00e1rio"],"Text on Primary":["Texto no Prim\u00e1rio"],"%s - Description":["%s - Descri\u00e7\u00e3o"],"Upgrade to Unlock":["Atualize para Desbloquear"],"Custom (Premium)":["Personalizado (Premium)"],"Select a theme style for this form embed.":["Selecione um estilo de tema para este formul\u00e1rio incorporado."],"Colors":["Cores"],"Advanced Styling":["Estilo Avan\u00e7ado"],"Unlock Custom Styling":["Desbloquear Estilo Personalizado"],"Switch to Custom Mode to take full control of your form's design and spacing.":["Alterne para o Modo Personalizado para ter controle total sobre o design e o espa\u00e7amento do seu formul\u00e1rio."],"Full color control (buttons, fields, text)":["Controle total de cores (bot\u00f5es, campos, texto)"],"Row and column gap control":["Controle de espa\u00e7amento entre linhas e colunas"],"Field spacing and layout precision":["Precis\u00e3o de espa\u00e7amento e layout de campo"],"Complete button styling":["Estiliza\u00e7\u00e3o completa do bot\u00e3o"],"Payment Description":["Descri\u00e7\u00e3o do Pagamento"],"Shown on payment receipts and in your payment dashboard (Stripe and PayPal). Leave blank to use the default.":["Mostrado nos recibos de pagamento e no seu painel de pagamento (Stripe e PayPal). Deixe em branco para usar o padr\u00e3o."],"Slug":["Lesma"],"Auto-generated on save":["Gerado automaticamente ao salvar"],"This slug is already used by another field. It will revert to the previous value.":["Este slug j\u00e1 est\u00e1 sendo usado por outro campo. Ele voltar\u00e1 ao valor anterior."],"Changing the slug may break form submissions, conditional logic, integrations, or any other feature currently referencing this slug. You will need to update all such references manually.":["Alterar o slug pode quebrar envios de formul\u00e1rios, l\u00f3gica condicional, integra\u00e7\u00f5es ou qualquer outra funcionalidade que atualmente fa\u00e7a refer\u00eancia a este slug. Voc\u00ea precisar\u00e1 atualizar todas essas refer\u00eancias manualmente."],"Field Slug":["Slug do Campo"],"Location Services":["Servi\u00e7os de Localiza\u00e7\u00e3o"],"Unlock Address Autocomplete":["Desbloquear Autocompletar Endere\u00e7o"],"Upgrade to enable Google Address Autocomplete with interactive map preview, making address entry faster and more accurate for your users.":["Atualize para habilitar o Autocomplete de Endere\u00e7o do Google com visualiza\u00e7\u00e3o interativa do mapa, tornando a entrada de endere\u00e7os mais r\u00e1pida e precisa para seus usu\u00e1rios."],"Enable Google Autocomplete":["Ativar o Autocomplete do Google"],"Show Interactive Map":["Mostrar Mapa Interativo"],"Payments Per Page":["Pagamentos Por P\u00e1gina"],"Show Subscriptions Section":["Mostrar se\u00e7\u00e3o de assinaturas"],"Show a dedicated subscriptions section above payment history.":["Mostrar uma se\u00e7\u00e3o dedicada a assinaturas acima do hist\u00f3rico de pagamentos."],"Payment Dashboard":["Painel de Pagamentos"],"View your payments and manage subscriptions in a single dashboard.":["Veja seus pagamentos e gerencie assinaturas em um \u00fanico painel."]}}} \ No newline at end of file +{"translation-revision-date":"2025-01-02T08:44:42+00:00","generator":"WP-CLI\/2.12.0","source":"assets\/build\/blocks.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"en","plural-forms":"nplurals=2; plural=(n != 1);"},"Settings":["Configura\u00e7\u00f5es"],"Search":["Pesquisar"],"Fields":["Campos"],"Image":["Imagem"],"Submit":["Enviar"],"Required":["Obrigat\u00f3rio"],"Form Title":["T\u00edtulo do Formul\u00e1rio"],"Show":["Mostrar"],"Hide":["Esconder"],"Edit Form":["Editar Formul\u00e1rio"],"Icon":["\u00cdcone"],"Desktop":["\u00c1rea de trabalho"],"Medium":["M\u00e9dio"],"Mobile":["M\u00f3vel"],"Repeat":["Repetir"],"Scroll":["Rolar"],"Tablet":["Tablet"],"Basic":["B\u00e1sico"],"(no title)":["(sem t\u00edtulo)"],"Select a Form":["Selecione um Formul\u00e1rio"],"No forms found\u2026":["Nenhum formul\u00e1rio encontrado\u2026"],"Choose":["Escolher"],"Create New":["Criar Novo"],"Change Form":["Alterar Formul\u00e1rio"],"This form has been deleted or is unavailable.":["Este formul\u00e1rio foi exclu\u00eddo ou est\u00e1 indispon\u00edvel."],"Form Settings":["Configura\u00e7\u00f5es do Formul\u00e1rio"],"Show Form Title on this Page":["Mostrar t\u00edtulo do formul\u00e1rio nesta p\u00e1gina"],"Note: For editing SureForms, please refer to the SureForms Editor - ":["Nota: Para editar SureForms, consulte o Editor de SureForms -"],"Field preview":["Pr\u00e9-visualiza\u00e7\u00e3o do campo"],"General":["Geral"],"Style":["Estilo"],"Advanced":["Avan\u00e7ado"],"No tags available":["Sem etiquetas dispon\u00edveis"],"Device":["Dispositivo"],"Select Shortcodes":["Selecionar C\u00f3digos Curtos"],"Page Break Label":["R\u00f3tulo de Quebra de P\u00e1gina"],"Next":["Pr\u00f3ximo"],"Back":["Voltar"],"Reset":["Redefinir"],"Generic tags":["Etiquetas gen\u00e9ricas"],"Pixel":["Pixel"],"Em":["Em"],"Select Units":["Selecionar Unidades"],"%s units":["%s unidades"],"Margin":["Margem"],"Attributes":["Atributos"],"Input Pattern":["Padr\u00e3o de Entrada"],"None":["Nenhum"],"(###) ###-####":["(###) ###-####"],"(##) ####-####":["(##) ####-####"],"27\/08\/2024":["27\/08\/2024"],"23:59:59":["23:59:59"],"27\/08\/2024 23:59:59":["27\/08\/2024 23:59:59"],"Custom":["Personalizado"],"Custom Mask":["M\u00e1scara Personalizada"],"Please check the documentation to manage custom input pattern ":["Por favor, verifique a documenta\u00e7\u00e3o para gerenciar o padr\u00e3o de entrada personalizado"],"here":["aqui"],"Default Value":["Valor Padr\u00e3o"],"Error Message":["Mensagem de Erro"],"Help Text":["Texto de Ajuda"],"Number Format":["Formato de N\u00famero"],"US Style (Eg: 9,999.99)":["Estilo dos EUA (Ex: 9.999,99)"],"EU Style (Eg: 9.999,99)":["Estilo da UE (Ex: 9.999,99)"],"Minimum Value":["Valor M\u00ednimo"],"Maximum Value":["Valor M\u00e1ximo"],"Please check the Minimum and Maximum value":["Por favor, verifique o valor M\u00ednimo e M\u00e1ximo"],"Enable Email Confirmation":["Ativar Confirma\u00e7\u00e3o de E-mail"],"Checked by Default":["Marcado por padr\u00e3o"],"Error message":["Mensagem de erro"],"Checked by default":["Marcado por padr\u00e3o"],"Please add a option props to MultiButtonsControl":["Por favor, adicione uma op\u00e7\u00e3o de propriedades ao MultiButtonsControl"],"Icon Library":["Biblioteca de \u00cdcones"],"Close":["Fechar"],"All Icons":["Todas as \u00cdcones"],"Other":["Outro"],"No Icons Found":["Nenhum \u00edcone encontrado"],"Insert Icon":["Inserir \u00cdcone"],"Change Icon":["Alterar \u00cdcone"],"Choose Icon":["Escolher \u00cdcone"],"Confirm":["Confirmar"],"Cancel":["Cancelar"],"Processing\u2026":["Processando\u2026"],"Select Video":["Selecionar V\u00eddeo"],"Change Video":["Alterar V\u00eddeo"],"Select Lottie Animation":["Selecionar Anima\u00e7\u00e3o Lottie"],"Change Lottie Animation":["Alterar Anima\u00e7\u00e3o Lottie"],"Upload SVG":["Carregar SVG"],"Change SVG":["Alterar SVG"],"Select Image":["Selecionar imagem"],"Change Image":["Alterar Imagem"],"Upload SVG?":["Carregar SVG?"],"Upload SVG can be potentially risky. Are you sure?":["Fazer upload de SVG pode ser potencialmente arriscado. Tem certeza?"],"Upload Anyway":["Carregar Mesmo Assim"],"Bulk Add":["Adicionar em Massa"],"Bulk Add Options":["Adicionar Op\u00e7\u00f5es em Massa"],"Enter each option on a new line.":["Digite cada op\u00e7\u00e3o em uma nova linha."],"Insert Options":["Inserir Op\u00e7\u00f5es"],"Full Width":["Largura Total"],"Option Type":["Tipo de Op\u00e7\u00e3o"],"Edit Options":["Editar Op\u00e7\u00f5es"],"Add New Option":["Adicionar nova op\u00e7\u00e3o"],"ADD":["ADICIONAR"],"Enable Auto Country Detection":["Ativar Detec\u00e7\u00e3o Autom\u00e1tica de Pa\u00eds"],"%s Width":["Largura %s"],"Upgrade":["Atualizar"],"Clear":["Limpar"],"Select Color":["Selecionar Cor"],"Primary Color":["Cor Prim\u00e1ria"],"Text Color":["Cor do Texto"],"Field Spacing":["Espa\u00e7amento de Campo"],"Small":["Pequeno"],"Large":["Grande"],"Left":["Esquerda"],"Center":["Centro"],"Right":["Certo"],"Color":["Cor"],"Background Color":["Cor de Fundo"],"Auto":["Carro"],"Default":["Padr\u00e3o"],"Normal":["Normal"],"%":["%"],"Top":["Topo"],"Bottom":["Inferior"],"Width":["Largura"],"Size":["Tamanho"],"EM":["EM"],"Padding":["Preenchimento"],"Color 1":["Cor 1"],"Color 2":["Cor 2"],"Type":["Digite"],"Linear":["Linear"],"Radial":["Radial"],"Location 1":["Localiza\u00e7\u00e3o 1"],"Location 2":["Localiza\u00e7\u00e3o 2"],"Angle":["\u00c2ngulo"],"Classic":["Cl\u00e1ssico"],"Gradient":["Gradiente"],"Horizontal":["Horizontal"],"Vertical":["Vertical"],"Background":["Fundo"],"Cover":["Cobertura"],"Contain":["Conter"],"Layout":["Layout"],"Overlay":["Sobreposi\u00e7\u00e3o"],"No Repeat":["Sem repeti\u00e7\u00e3o"],"Overlay Opacity":["Opacidade da Sobreposi\u00e7\u00e3o"],"Conditional Logic":["L\u00f3gica Condicional"],"Upgrade to the SureForms Starter Plan to create dynamic forms that adapt based on user input, offering a personalised and efficient form experience.":["Fa\u00e7a upgrade para o Plano Starter do SureForms para criar formul\u00e1rios din\u00e2micos que se adaptam com base nas entradas do usu\u00e1rio, oferecendo uma experi\u00eancia de formul\u00e1rio personalizada e eficiente."],"Enable Conditional Logic":["Ativar L\u00f3gica Condicional"],"this field if":["este campo se"],"Configure Conditions":["Configurar Condi\u00e7\u00f5es"],"Premium":["Premium"],"Overlay Type":["Tipo de Sobreposi\u00e7\u00e3o"],"Image Overlay Color":["Cor de Sobreposi\u00e7\u00e3o da Imagem"],"Image Position":["Posi\u00e7\u00e3o da Imagem"],"Attachment":["Anexo"],"Fixed":["Fixo"],"Blend Mode":["Modo de Mesclagem"],"Multiply":["Multiplicar"],"Screen":["Tela"],"Darken":["Escurecer"],"Lighten":["Iluminar"],"Color Dodge":["Esquiva de Cor"],"Saturation":["Satura\u00e7\u00e3o"],"Repeat-x":["Repetir-x"],"Repeat-y":["Repita-y"],"PX":["PX"],"Button":["Bot\u00e3o"],"Prefix Label":["R\u00f3tulo de Prefixo"],"Suffix Label":["R\u00f3tulo de Sufixo"],"Border Radius":["Raio da Borda"],"Form Theme":["Tema do Formul\u00e1rio"],"Select Gradient":["Selecionar Gradiente"],"Unlock Conditional Logic Editor":["Desbloquear Editor de L\u00f3gica Condicional"],"Rich Text Editor":["Editor de Texto Rico"],"Read Only":["Apenas leitura"],"Select Country":["Selecionar Pa\u00eds"],"Default Country":["Pa\u00eds Padr\u00e3o"],"Subscription":["Assinatura"],"One Time":["Uma Vez"],"Unique Entry":["Entrada \u00danica"],"Maximum Characters":["M\u00e1ximo de caracteres"],"Textarea Height":["Altura da \u00c1rea de Texto"],"Minimum Selections":["Sele\u00e7\u00f5es M\u00ednimas"],"Maximum Selections":["Sele\u00e7\u00f5es M\u00e1ximas"],"Add Numeric Values to Options":["Adicionar valores num\u00e9ricos \u00e0s op\u00e7\u00f5es"],"Single Choice Only":["Apenas uma escolha"],"Enable Dropdown Search":["Ativar Pesquisa em Dropdown"],"Allow Multiple":["Permitir M\u00faltiplos"],"%1$s fields are required. Please configure these fields in the block settings.":["Os campos %1$s s\u00e3o obrigat\u00f3rios. Por favor, configure esses campos nas configura\u00e7\u00f5es do bloco."],"%1$s field is required. Please configure this field in the block settings.":["O campo %1$s \u00e9 obrigat\u00f3rio. Por favor, configure este campo nas configura\u00e7\u00f5es do bloco."],"You need to configure a payment account to collect payments from this form. Please configure your payment provider to proceed.":["Voc\u00ea precisa configurar uma conta de pagamento para coletar pagamentos deste formul\u00e1rio. Por favor, configure seu provedor de pagamento para continuar."],"Configure Payment Account":["Configurar Conta de Pagamento"],"This is a placeholder for the Payment block. The actual payment fields for your configured payment provider(s) will only appear when you preview or publish the form.":["Este \u00e9 um espa\u00e7o reservado para o bloco de Pagamento. Os campos de pagamento reais para o(s) provedor(es) de pagamento configurado(s) s\u00f3 aparecer\u00e3o quando voc\u00ea visualizar ou publicar o formul\u00e1rio."],"2 Payments":["2 Pagamentos"],"3 Payments":["3 Pagamentos"],"4 Payments":["4 Pagamentos"],"5 Payments":["5 Pagamentos"],"Never":["Nunca"],"Stop Subscription After":["Parar Assinatura Ap\u00f3s"],"Choose when to automatically stop the subscription":["Escolha quando parar automaticamente a assinatura"],"Number of Payments":["N\u00famero de Pagamentos"],"Enter a number between 1 to 100":["Insira um n\u00famero entre 1 e 100"],"Form Field":["Campo de Formul\u00e1rio"],"Payment Type":["Tipo de Pagamento"],"Subscription Plan Name":["Nome do Plano de Assinatura"],"Billing Interval":["Intervalo de Cobran\u00e7a"],"Daily":["Diariamente"],"Weekly":["Semanalmente"],"Monthly":["Mensal"],"Quarterly":["Trimestral"],"Yearly":["Anual"],"Amount Type":["Tipo de Quantia"],"Fixed Amount":["Quantia Fixa"],"Dynamic Amount":["Montante Din\u00e2mico"],"Choose whether to charge a fixed amount or charge the amount based on user input in other form fields.":["Escolha entre cobrar um valor fixo ou cobrar o valor com base na entrada do usu\u00e1rio em outros campos do formul\u00e1rio."],"Set the exact amount you want to charge. Users won\u2019t be able to change it":["Defina o valor exato que deseja cobrar. Os usu\u00e1rios n\u00e3o poder\u00e3o alter\u00e1-lo"],"Choose Amount Field":["Escolher Campo de Quantidade"],"Select a field\u2026":["Selecione um campo\u2026"],"Pick a field from your form like a number, dropdown, or multichoice whose value should decide the payment amount.":["Escolha um campo do seu formul\u00e1rio, como um n\u00famero, menu suspenso ou m\u00faltipla escolha, cujo valor deve determinar o valor do pagamento."],"Minimum Amount":["Quantidade M\u00ednima"],"Set the minimum amount users can enter (0 for no minimum)":["Defina o valor m\u00ednimo que os usu\u00e1rios podem inserir (0 para sem m\u00ednimo)"],"Customer Name Field (Required)":["Campo Nome do Cliente (Obrigat\u00f3rio)"],"Customer Name Field (Optional)":["Campo Nome do Cliente (Opcional)"],"Select the input field that contains the customer name (Required for subscriptions)":["Selecione o campo de entrada que cont\u00e9m o nome do cliente (Obrigat\u00f3rio para assinaturas)"],"Select the input field that contains the customer name":["Selecione o campo de entrada que cont\u00e9m o nome do cliente"],"Customer Email Field (Required)":["Campo de Email do Cliente (Obrigat\u00f3rio)"],"Select the email field that contains the customer email":["Selecione o campo de email que cont\u00e9m o email do cliente"],"Payment":["Pagamento"],"%s - Order ID":["%s - ID do Pedido"],"%s - Amount":["%s - Quantidade"],"%s - Customer Email":["%s - Email do Cliente"],"%s - Customer Name":["%s - Nome do Cliente"],"%s - Status":["%s - Status"],"Button Alignment":["Alinhamento do Bot\u00e3o"],"Placeholder":["Espa\u00e7o reservado"],"Preselect this option":["Pr\u00e9-selecione esta op\u00e7\u00e3o"],"Restrict Country Codes":["Restringir C\u00f3digos de Pa\u00eds"],"Restriction Type":["Tipo de Restri\u00e7\u00e3o"],"Allow":["Permitir"],"Block":["Bloquear"],"Select Allowed Countries":["Selecionar Pa\u00edses Permitidos"],"Choose countries\u2026":["Escolha pa\u00edses\u2026"],"Choose which country codes users can select in the phone number field. Leave empty to allow all country codes.":["Escolha quais c\u00f3digos de pa\u00eds os usu\u00e1rios podem selecionar no campo de n\u00famero de telefone. Deixe em branco para permitir todos os c\u00f3digos de pa\u00eds."],"Select Blocked Countries":["Selecionar Pa\u00edses Bloqueados"],"These countries will be hidden from the dropdown.":["Esses pa\u00edses ser\u00e3o ocultados do menu suspenso."],"Bulk Edit":["Edi\u00e7\u00e3o em Massa"],"Select Layout":["Selecionar Layout"],"Number of Columns":["N\u00famero de Colunas"],"Validation Message for Duplicate":["Mensagem de Valida\u00e7\u00e3o para Duplicado"],"Click here to insert a form":["Clique aqui para inserir um formul\u00e1rio"],"Inherit Form's Original Style":["Herdar o Estilo Original do Formul\u00e1rio"],"Text on Primary":["Texto no Prim\u00e1rio"],"%s - Description":["%s - Descri\u00e7\u00e3o"],"Upgrade to Unlock":["Atualize para Desbloquear"],"Custom (Premium)":["Personalizado (Premium)"],"Select a theme style for this form embed.":["Selecione um estilo de tema para este formul\u00e1rio incorporado."],"Colors":["Cores"],"Advanced Styling":["Estilo Avan\u00e7ado"],"Unlock Custom Styling":["Desbloquear Estilo Personalizado"],"Switch to Custom Mode to take full control of your form's design and spacing.":["Alterne para o Modo Personalizado para ter controle total sobre o design e o espa\u00e7amento do seu formul\u00e1rio."],"Full color control (buttons, fields, text)":["Controle total de cores (bot\u00f5es, campos, texto)"],"Row and column gap control":["Controle de espa\u00e7amento entre linhas e colunas"],"Field spacing and layout precision":["Precis\u00e3o de espa\u00e7amento e layout de campo"],"Complete button styling":["Estiliza\u00e7\u00e3o completa do bot\u00e3o"],"Payment Description":["Descri\u00e7\u00e3o do Pagamento"],"Shown on payment receipts and in your payment dashboard (Stripe and PayPal). Leave blank to use the default.":["Mostrado nos recibos de pagamento e no seu painel de pagamento (Stripe e PayPal). Deixe em branco para usar o padr\u00e3o."],"Slug":["Lesma"],"Auto-generated on save":["Gerado automaticamente ao salvar"],"This slug is already used by another field. It will revert to the previous value.":["Este slug j\u00e1 est\u00e1 sendo usado por outro campo. Ele voltar\u00e1 ao valor anterior."],"Changing the slug may break form submissions, conditional logic, integrations, or any other feature currently referencing this slug. You will need to update all such references manually.":["Alterar o slug pode quebrar envios de formul\u00e1rios, l\u00f3gica condicional, integra\u00e7\u00f5es ou qualquer outra funcionalidade que atualmente fa\u00e7a refer\u00eancia a este slug. Voc\u00ea precisar\u00e1 atualizar todas essas refer\u00eancias manualmente."],"Field Slug":["Slug do Campo"],"Location Services":["Servi\u00e7os de Localiza\u00e7\u00e3o"],"Unlock Address Autocomplete":["Desbloquear Autocompletar Endere\u00e7o"],"Upgrade to enable Google Address Autocomplete with interactive map preview, making address entry faster and more accurate for your users.":["Atualize para habilitar o Autocomplete de Endere\u00e7o do Google com visualiza\u00e7\u00e3o interativa do mapa, tornando a entrada de endere\u00e7os mais r\u00e1pida e precisa para seus usu\u00e1rios."],"Enable Google Autocomplete":["Ativar o Autocomplete do Google"],"Show Interactive Map":["Mostrar Mapa Interativo"],"Payments Per Page":["Pagamentos Por P\u00e1gina"],"Show Subscriptions Section":["Mostrar se\u00e7\u00e3o de assinaturas"],"Show a dedicated subscriptions section above payment history.":["Mostrar uma se\u00e7\u00e3o dedicada a assinaturas acima do hist\u00f3rico de pagamentos."],"Payment Dashboard":["Painel de Pagamentos"],"View your payments and manage subscriptions in a single dashboard.":["Veja seus pagamentos e gerencie assinaturas em um \u00fanico painel."],"Dynamic Default Value":["Valor Padr\u00e3o Din\u00e2mico"]}}} \ No newline at end of file diff --git a/languages/sureforms-pt_PT-51635fe6489fc8288d603fe596c755ca.json b/languages/sureforms-pt_PT-51635fe6489fc8288d603fe596c755ca.json index e33f7392c..814255611 100644 --- a/languages/sureforms-pt_PT-51635fe6489fc8288d603fe596c755ca.json +++ b/languages/sureforms-pt_PT-51635fe6489fc8288d603fe596c755ca.json @@ -1 +1 @@ -{"translation-revision-date":"2025-01-02T08:44:42+00:00","generator":"WP-CLI\/2.12.0","source":"assets\/build\/settings.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"en","plural-forms":"nplurals=2; plural=(n != 1);"},"Dashboard":["Painel de Controle"],"Settings":["Configura\u00e7\u00f5es"],"Entries":["Entradas"],"Activated":["Ativado"],"Activate":["Ativar"],"Monday":["Segunda-feira"],"Forms":["Formul\u00e1rios"],"GitHub":["GitHub"],"General":["Geral"],"Other":["Outro"],"Confirm":["Confirmar"],"Cancel":["Cancelar"],"Install":["Instalar"],"Plugin Installation failed, Please try again later.":["A instala\u00e7\u00e3o do plugin falhou, por favor, tente novamente mais tarde."],"Plugin activation failed, Please try again later.":["A ativa\u00e7\u00e3o do plugin falhou, por favor, tente novamente mais tarde."],"Integrations":["Integra\u00e7\u00f5es"],"What's New?":["O que h\u00e1 de novo?"],"Core":["N\u00facleo"],"Unlicensed":["Sem licen\u00e7a"],"Connecting\u2026":["Conectando\u2026"],"Install & Activate":["Instalar e Ativar"],"Send Email To":["Enviar Email Para"],"Google reCAPTCHA":["Google reCAPTCHA"],"hCaptcha":["hCaptcha"],"reCAPTCHA v2 Invisible":["reCAPTCHA v2 Invis\u00edvel"],"reCAPTCHA v3":["reCAPTCHA v3"],"Validations":["Valida\u00e7\u00f5es"],"Spam Protection":["Prote\u00e7\u00e3o contra Spam"],"Email Summaries":["Resumos de Email"],"Tuesday":["ter\u00e7a-feira"],"Wednesday":["Quarta-feira"],"Thursday":["Quinta-feira"],"Friday":["Sexta-feira"],"Saturday":["S\u00e1bado"],"Sunday":["Domingo"],"Test Email":["Email de teste"],"Schedule Reports":["Agendar Relat\u00f3rios"],"IP Logging":["Registro de IP"],"If this option is turned on, the user's IP address will be saved with the form data":["Se esta op\u00e7\u00e3o estiver ativada, o endere\u00e7o IP do usu\u00e1rio ser\u00e1 salvo com os dados do formul\u00e1rio"],"Confirmation Email Mismatch Message":["Mensagem de Incompatibilidade de E-mail de Confirma\u00e7\u00e3o"],"%s represents the minimum input value. For example: \"Minimum value is 10.\"":["%s representa o valor m\u00ednimo de entrada. Por exemplo: \"O valor m\u00ednimo \u00e9 10.\""],"%s represents the maximum input value. For example: \"Maximum value is 100.\"":["%s representa o valor m\u00e1ximo de entrada. Por exemplo: \"O valor m\u00e1ximo \u00e9 100.\""],"%s represents the minimum selections needed. For example: \u201cMinimum 2 selections are required.\u201d":["%s representa as sele\u00e7\u00f5es m\u00ednimas necess\u00e1rias. Por exemplo: \"S\u00e3o necess\u00e1rias no m\u00ednimo 2 sele\u00e7\u00f5es.\""],"%s represents the maximum selections allowed. For example: \u201cMaximum 4 selections are allowed.\u201d":["%s representa o n\u00famero m\u00e1ximo de sele\u00e7\u00f5es permitidas. Por exemplo: \"S\u00e3o permitidas no m\u00e1ximo 4 sele\u00e7\u00f5es.\""],"%s represents the minimum choices needed. For example: \u201cMinimum 1 selection is required.\u201d":["%s representa as escolhas m\u00ednimas necess\u00e1rias. Por exemplo: \u201c\u00c9 necess\u00e1ria no m\u00ednimo 1 sele\u00e7\u00e3o.\u201d"],"%s represents the maximum choices allowed. For example: \u201cMaximum 3 selections are allowed.\u201d":["%s representa o n\u00famero m\u00e1ximo de escolhas permitidas. Por exemplo: \"S\u00e3o permitidas no m\u00e1ximo 3 sele\u00e7\u00f5es.\""]," Error Message":["Mensagem de Erro"],"Auto":["Carro"],"Light":["Luz"],"Dark":["Escuro"],"Turnstile":["Catraca"],"Honeypot":["Pote de mel"],"Get Keys":["Obter Chaves"],"Documentation":["Documenta\u00e7\u00e3o"],"Site Key":["Chave do Site"],"Secret Key":["Chave Secreta"],"Cloudflare Turnstile":["Cloudflare Turnstile"],"Appearance Mode":["Modo de Apar\u00eancia"],"Enable Honeypot Security":["Ativar Seguran\u00e7a Honeypot"],"Enable Honeypot Security for better spam protection":["Ative a Seguran\u00e7a Honeypot para melhor prote\u00e7\u00e3o contra spam"],"This field cannot be left blank.":["Este campo n\u00e3o pode ficar em branco."],"OttoKit":["OttoKit"],"Connect with OttoKit":["Conectar com OttoKit"],"reCAPTCHA":["reCAPTCHA"],"Ready to go beyond free plan?":["Pronto para ir al\u00e9m do plano gratuito?"],"Upgrade now":["Atualize agora"],"and unlock the full power of SureForms!":["e desbloqueie todo o poder do SureForms!"],"Upgrade SureForms":["Atualizar SureForms"],"Upgrade Now":["Atualize agora"],"Form Validation":["Valida\u00e7\u00e3o de Formul\u00e1rio"],"Required Error Messages":["Mensagens de Erro Obrigat\u00f3rias"],"Other Error Messages":["Outras Mensagens de Erro"],"Input Field Unique":["Campo de Entrada \u00danico"],"Email Field Unique":["Campo de Email \u00danico"],"Invalid URL":["URL inv\u00e1lido"],"Phone Field Unique":["Campo de Telefone \u00danico"],"Invalid Field Number Block":["Bloco de N\u00famero de Campo Inv\u00e1lido"],"Invalid Email":["Email inv\u00e1lido"],"Number Minimum Value":["Valor M\u00ednimo do N\u00famero"],"Number Maximum Value":["Valor M\u00e1ximo do N\u00famero"],"Dropdown Minimum Selections":["M\u00ednimo de Sele\u00e7\u00f5es no Dropdown"],"Dropdown Maximum Selections":["Sele\u00e7\u00f5es M\u00e1ximas do Dropdown"],"Multiple Choice Minimum Selections":["M\u00faltipla Escolha M\u00ednima de Sele\u00e7\u00f5es"],"Multiple Choice Maximum Selections":["Sele\u00e7\u00f5es M\u00e1ximas de M\u00faltipla Escolha"],"Input Field":["Campo de Entrada"],"Email Field":["Campo de Email"],"URL Field":["Campo de URL"],"Phone Field":["Campo de Telefone"],"Textarea Field":["Campo de \u00c1rea de Texto"],"Checkbox Field":["Campo de Caixa de Sele\u00e7\u00e3o"],"Dropdown Field":["Campo suspenso"],"Multiple Choice Field":["Campo de Escolha M\u00faltipla"],"Address Field":["Campo de Endere\u00e7o"],"Number Field":["Campo Num\u00e9rico"],"reCAPTCHA v2":["reCAPTCHA v2"],"To enable reCAPTCHA feature on your SureForms Please enable reCAPTCHA option on your blocks setting and select version. Add google reCAPTCHA secret and site key here. reCAPTCHA will be added to your page on front-end.":["Para ativar o recurso reCAPTCHA no seu SureForms, ative a op\u00e7\u00e3o reCAPTCHA nas configura\u00e7\u00f5es dos seus blocos e selecione a vers\u00e3o. Adicione a chave secreta e a chave do site do Google reCAPTCHA aqui. O reCAPTCHA ser\u00e1 adicionado \u00e0 sua p\u00e1gina no front-end."],"Enter your %s here":["Insira seu %s aqui"],"To enable hCAPTCHA, please add your site key and secret key. Configure these settings within the individual form.":["Para ativar o hCAPTCHA, adicione sua chave do site e chave secreta. Configure essas configura\u00e7\u00f5es dentro do formul\u00e1rio individual."],"To enable Cloudflare Turnstile, please add your site key and secret key. Configure these settings within the individual form.":["Para ativar o Cloudflare Turnstile, adicione sua chave do site e chave secreta. Configure essas configura\u00e7\u00f5es dentro do formul\u00e1rio individual."],"Save":["Salvar"],"Anonymous Analytics":["An\u00e1lise An\u00f4nima"],"Learn More":["Saiba mais"],"Admin Notification":["Notifica\u00e7\u00e3o do Administrador"],"Enable Admin Notification":["Ativar Notifica\u00e7\u00e3o de Administrador"],"Admin notifications keep you informed about new form entries since your last visit.":["As notifica\u00e7\u00f5es de administrador mant\u00eam voc\u00ea informado sobre novas entradas de formul\u00e1rio desde sua \u00faltima visita."],"Continue":["Continuar"],"Get Started":["Come\u00e7ar"],"Integration":["Integra\u00e7\u00e3o"],"Connect Native Integrations with SureForms":["Conecte Integra\u00e7\u00f5es Nativas com SureForms"],"Unlock powerful integrations in the Premium plan to automate your workflows and connect SureForms directly with your favourite tools.":["Desbloqueie integra\u00e7\u00f5es poderosas no plano Premium para automatizar seus fluxos de trabalho e conectar o SureForms diretamente com suas ferramentas favoritas."],"Send form submissions straight to CRMs, email, and marketing platforms":["Envie envios de formul\u00e1rios diretamente para CRMs, e-mail e plataformas de marketing"],"Automate repetitive tasks with seamless data syncing":["Automatize tarefas repetitivas com sincroniza\u00e7\u00e3o de dados perfeita"],"Access exclusive native integrations for faster workflows":["Acesse integra\u00e7\u00f5es nativas exclusivas para fluxos de trabalho mais r\u00e1pidos"],"Payments":["Pagamentos"],"Stripe account disconnected successfully.":["Conta Stripe desconectada com sucesso."],"Failed to create webhook.":["Falha ao criar webhook."],"Failed to connect to Stripe.":["Falha ao conectar-se ao Stripe."],"Webhook":["Webhook"],"Knowledge Base":["Base de Conhecimento"],"What\u2019s New":["O que h\u00e1 de novo"],"delete":["excluir"],"Please type \"%s\" in the input box":["Por favor, digite \"%s\" na caixa de entrada"],"To confirm, type \"%s\" in the box below:":["Para confirmar, digite \"%s\" na caixa abaixo:"],"Type \"%s\"":["Digite \"%s\""],"Go to OttoKit Settings":["V\u00e1 para as Configura\u00e7\u00f5es do OttoKit"],"USD - US Dollar":["USD - D\u00f3lar dos EUA"],"Payment Mode":["Modo de Pagamento"],"Test Mode":["Modo de Teste"],"Live Mode":["Modo ao Vivo"],"General Settings":["Configura\u00e7\u00f5es Gerais"],"Set up email summaries, admin alerts, and data preferences to manage your forms with ease.":["Configure resumos de e-mail, alertas de administrador e prefer\u00eancias de dados para gerenciar seus formul\u00e1rios com facilidade."],"Customize default error messages shown when users submit invalid or incomplete form entries.":["Personalize as mensagens de erro padr\u00e3o exibidas quando os usu\u00e1rios enviam entradas de formul\u00e1rio inv\u00e1lidas ou incompletas."],"Enable spam protection for your forms using CAPTCHA services or honeypot security.":["Ative a prote\u00e7\u00e3o contra spam para seus formul\u00e1rios usando servi\u00e7os CAPTCHA ou seguran\u00e7a honeypot."],"Connect and manage your payment gateways to securely accept transactions through your forms.":["Conecte e gerencie seus gateways de pagamento para aceitar transa\u00e7\u00f5es com seguran\u00e7a atrav\u00e9s de seus formul\u00e1rios."],"1% transaction and payment gateway fees apply.":["Aplicam-se taxas de 1% para transa\u00e7\u00f5es e gateways de pagamento."],"2.9% transaction and payment gateway fees apply. Activate license to reduce transaction fees.":["Aplicam-se taxas de transa\u00e7\u00e3o e de gateway de pagamento de 2,9%. Ative a licen\u00e7a para reduzir as taxas de transa\u00e7\u00e3o."],"2.9% transaction and payment gateway fees apply.":["Aplicam-se taxas de transa\u00e7\u00e3o e de gateway de pagamento de 2,9%."],"Please visit %1$s, delete an unused webhook, then click below to retry.":["Por favor, visite %1$s, exclua um webhook n\u00e3o utilizado e, em seguida, clique abaixo para tentar novamente."],"SureForms could not create a webhook because your Stripe account has run out of free slots. Webhooks are needed to receive updates about payments.":["SureForms n\u00e3o p\u00f4de criar um webhook porque sua conta Stripe ficou sem slots gratuitos. Webhooks s\u00e3o necess\u00e1rios para receber atualiza\u00e7\u00f5es sobre pagamentos."],"Stripe Dashboard":["Painel do Stripe"],"Creating\u2026":["Criando\u2026"],"Create Webhook":["Criar Webhook"],"Successfully connected to Stripe!":["Conectado com sucesso ao Stripe!"],"Invalid response from server. Please try again.":["Resposta inv\u00e1lida do servidor. Por favor, tente novamente."],"Failed to disconnect Stripe account.":["Falha ao desconectar a conta do Stripe."],"Webhook created successfully!":["Webhook criado com sucesso!"],"Select Currency":["Selecionar moeda"],"Select the default currency for payment forms.":["Selecione a moeda padr\u00e3o para os formul\u00e1rios de pagamento."],"Connection Status":["Status da Conex\u00e3o"],"Disconnect Stripe Account":["Desconectar Conta do Stripe"],"Are you sure you want to disconnect your Stripe account? This will stop all active payments, subscriptions, and form transactions connected to this account.":["Tem certeza de que deseja desconectar sua conta do Stripe? Isso interromper\u00e1 todos os pagamentos, assinaturas e transa\u00e7\u00f5es de formul\u00e1rio ativas conectadas a esta conta."],"Disconnect":["Desconectar"],"Disconnecting\u2026":["Desconectando\u2026"],"Webhook successfully connected, all Stripe events are being tracked.":["Webhook conectado com sucesso, todos os eventos do Stripe est\u00e3o sendo rastreados."],"Connect your Stripe account to start accepting payments through your forms.":["Conecte sua conta Stripe para come\u00e7ar a aceitar pagamentos atrav\u00e9s de seus formul\u00e1rios."],"Connect to Stripe":["Conectar ao Stripe"],"Securely connect to Stripe with just a few clicks to begin accepting payments! ":["Conecte-se com seguran\u00e7a ao Stripe com apenas alguns cliques para come\u00e7ar a aceitar pagamentos!"],"Payment Methods":["M\u00e9todos de Pagamento"],"Test mode allows you to process payments without real charges. Switch to Live mode for actual transactions.":["O modo de teste permite processar pagamentos sem cobran\u00e7as reais. Mude para o modo ao vivo para transa\u00e7\u00f5es reais."],"General Payment Settings":["Configura\u00e7\u00f5es Gerais de Pagamento"],"These settings apply to all payment gateways.":["Essas configura\u00e7\u00f5es se aplicam a todos os gateways de pagamento."],"Stripe Settings":["Configura\u00e7\u00f5es do Stripe"],"Left ($100)":["Esquerda ($100)"],"Right (100$)":["Certo (100$)"],"Left Space ($ 100)":["Espa\u00e7o Esquerdo ($ 100)"],"Right Space (100 $)":["Espa\u00e7o Direito (100 $)"],"Currency Sign Position":["Posi\u00e7\u00e3o do Sinal de Moeda"],"Select the position of the currency symbol relative to the amount.":["Selecione a posi\u00e7\u00e3o do s\u00edmbolo da moeda em rela\u00e7\u00e3o ao valor."],"Learn":["Aprender"],"Enable email summaries":["Ativar resumos de e-mail"],"Enable IP logging":["Ativar registro de IP"],"Turn on Admin Notification from here.":["Ative a Notifica\u00e7\u00e3o de Administrador daqui."],"Send entries to 100+ popular apps.":["Envie entradas para mais de 100 aplicativos populares."],"Build automated workflows that run instantly.":["Crie fluxos de trabalho automatizados que sejam executados instantaneamente."],"Create custom app integrations using our Custom App feature.":["Crie integra\u00e7\u00f5es de aplicativos personalizadas usando nosso recurso de Aplicativo Personalizado."],"Keep your tools in sync automatically.":["Mantenha suas ferramentas sincronizadas automaticamente."],"This will install and activate OttoKit on your WordPress site to enable automation features.":["Isso instalar\u00e1 e ativar\u00e1 o OttoKit no seu site WordPress para habilitar recursos de automa\u00e7\u00e3o."],"Automate Your Forms with OttoKit":["Automatize Seus Formul\u00e1rios com OttoKit"],"Every form submission should trigger something \u2014 a Slack alert, a CRM lead, a follow-up email, or a new row in Google Sheets.":["Cada envio de formul\u00e1rio deve acionar algo \u2014 um alerta no Slack, um lead no CRM, um e-mail de acompanhamento ou uma nova linha no Google Sheets."],"MCP":["MCP"],"Configure AI client permissions and MCP server settings.":["Configure as permiss\u00f5es do cliente de IA e as configura\u00e7\u00f5es do servidor MCP."],"View documentation":["Ver documenta\u00e7\u00e3o"],"Copy to clipboard":["Copiar para a \u00e1rea de transfer\u00eancia"],"Claude Desktop":["Claude Desktop"],"~\/Library\/Application Support\/Claude\/claude_desktop_config.json (macOS) or %APPDATA%\\Claude\\claude_desktop_config.json (Windows)":["~\/Library\/Application Support\/Claude\/claude_desktop_config.json (macOS) ou %APPDATA%\\Claude\\claude_desktop_config.json (Windows)"],"Claude Code":["C\u00f3digo Claude"],".mcp.json (project) or ~\/.claude.json (global)":[".mcp.json (projeto) ou ~\/.claude.json (global)"],"Cursor":["Cursor"],"~\/.cursor\/mcp.json":["~\/.cursor\/mcp.json"],"VS Code (Copilot)":["VS Code (Copilot)"],".vscode\/mcp.json (project) or settings.json > mcp.servers (global)":[".vscode\/mcp.json (projeto) ou settings.json > mcp.servers (global)"],"~\/.continue\/config.yaml or config.json":["~\/.continue\/config.yaml ou config.json"],"Your client's MCP configuration file":["O arquivo de configura\u00e7\u00e3o MCP do seu cliente"],"Connect Your AI Client":["Conecte seu cliente de IA"],"AI Client":["Cliente de IA"],"Create an Application Password \u2014 ":["Criar uma Senha de Aplicativo \u2014"],"Open Application Passwords":["Abrir Senhas de Aplicativos"],"Or use this CLI command to add the server quickly (you will still need to set the environment variables):":["Ou use este comando CLI para adicionar o servidor rapidamente (voc\u00ea ainda precisar\u00e1 definir as vari\u00e1veis de ambiente):"],"Copy the JSON config below into: ":["Copie a configura\u00e7\u00e3o JSON abaixo em:"],"Replace \"your-application-password\" with the password from Step 1.":["Substitua \"your-application-password\" pela senha do Passo 1."],"WP_API_URL \u2014 your site's MCP endpoint. WP_API_USERNAME \u2014 your WordPress username. WP_API_PASSWORD \u2014 the application password you generated.":["WP_API_URL \u2014 o endpoint MCP do seu site. WP_API_USERNAME \u2014 seu nome de usu\u00e1rio do WordPress. WP_API_PASSWORD \u2014 a senha do aplicativo que voc\u00ea gerou."],"View setup docs":["Ver documentos de configura\u00e7\u00e3o"],"The MCP Adapter plugin is installed but not active. Activate it to configure MCP settings.":["O plugin MCP Adapter est\u00e1 instalado, mas n\u00e3o est\u00e1 ativo. Ative-o para configurar as defini\u00e7\u00f5es do MCP."],"The MCP Adapter plugin is required to connect AI clients to your forms. Download and install it from GitHub, then activate it.":["O plugin MCP Adapter \u00e9 necess\u00e1rio para conectar clientes de IA aos seus formul\u00e1rios. Baixe e instale-o do GitHub, depois ative-o."],"Download the latest release from":["Baixe a vers\u00e3o mais recente de"],"Install the plugin via Plugins > Add New Plugin > Upload Plugin.":["Instale o plugin atrav\u00e9s de Plugins > Adicionar Novo Plugin > Enviar Plugin."],"Activate the MCP Adapter plugin.":["Ativar o plugin do Adaptador MCP."],"Activating\u2026":["Ativando\u2026"],"Activate MCP Adapter":["Ativar Adaptador MCP"],"Download MCP Adapter":["Baixar Adaptador MCP"],"Experimental":["Experimental"],"Enable Abilities":["Ativar habilidades"],"Register SureForms abilities with the WordPress Abilities API. When enabled, AI clients can list, read, create, edit, and delete your forms and entries. When disabled, no abilities are registered and AI clients cannot perform any actions on your forms.":["Registre as habilidades do SureForms com a API de Habilidades do WordPress. Quando ativado, os clientes de IA podem listar, ler, criar, editar e excluir seus formul\u00e1rios e entradas. Quando desativado, nenhuma habilidade \u00e9 registrada e os clientes de IA n\u00e3o podem realizar nenhuma a\u00e7\u00e3o em seus formul\u00e1rios."],"Abilities API \u2014 Edit":["API de Habilidades \u2014 Editar"],"Enable Edit Abilities":["Ativar habilidades de edi\u00e7\u00e3o"],"When enabled, AI clients can create new forms, update form titles, fields, and settings, duplicate forms, and modify entry statuses. When disabled, these abilities are unregistered and AI clients can only read your data.":["Quando ativado, os clientes de IA podem criar novos formul\u00e1rios, atualizar t\u00edtulos, campos e configura\u00e7\u00f5es de formul\u00e1rios, duplicar formul\u00e1rios e modificar status de entradas. Quando desativado, essas habilidades s\u00e3o desregistradas e os clientes de IA s\u00f3 podem ler seus dados."],"Abilities API \u2014 Delete":["API de Habilidades \u2014 Excluir"],"Enable Delete Abilities":["Ativar habilidades de exclus\u00e3o"],"When enabled, AI clients can permanently delete forms and entries. Deleted data cannot be recovered. When disabled, delete abilities are unregistered and AI clients cannot remove any data.":["Quando ativado, os clientes de IA podem excluir permanentemente formul\u00e1rios e entradas. Os dados exclu\u00eddos n\u00e3o podem ser recuperados. Quando desativado, as habilidades de exclus\u00e3o s\u00e3o desregistradas e os clientes de IA n\u00e3o podem remover nenhum dado."],"MCP Server":["Servidor MCP"],"Enable MCP Server":["Ativar Servidor MCP"],"Creates a dedicated SureForms MCP endpoint that AI clients like Claude can connect to. When disabled, the endpoint is removed and external AI clients cannot discover or call any SureForms abilities.":["Cria um endpoint SureForms MCP dedicado ao qual clientes de IA como Claude podem se conectar. Quando desativado, o endpoint \u00e9 removido e clientes de IA externos n\u00e3o podem descobrir ou chamar nenhuma habilidade do SureForms."],"Learn more":["Saiba mais"],"MCP Adapter Required":["Adaptador MCP Necess\u00e1rio"],"Google Maps":["Google Maps"],"Configure Google Maps API key for address autocomplete and map preview.":["Configure a chave da API do Google Maps para preenchimento autom\u00e1tico de endere\u00e7o e visualiza\u00e7\u00e3o do mapa."],"Help shape the future of SureForms":["Ajude a moldar o futuro do SureForms"],"Share how you use the plugin so we can build features that matter, fix issues faster, and make smarter decisions. ":["Compartilhe como voc\u00ea usa o plugin para que possamos desenvolver funcionalidades que importam, corrigir problemas mais rapidamente e tomar decis\u00f5es mais inteligentes. "],"Enable Google Address Autocomplete":["Ativar o preenchimento autom\u00e1tico de endere\u00e7os do Google"],"Upgrade to the SureForms Business Plan to add Google-powered address autocomplete with interactive map preview to your forms.":["Fa\u00e7a upgrade para o Plano de Neg\u00f3cios SureForms para adicionar a autocompleta\u00e7\u00e3o de endere\u00e7os com tecnologia do Google e visualiza\u00e7\u00e3o interativa de mapa aos seus formul\u00e1rios."],"Auto-suggest addresses as users type for faster, error-free submissions":["Sugira automaticamente endere\u00e7os \u00e0 medida que os usu\u00e1rios digitam para envios mais r\u00e1pidos e sem erros"],"Show an interactive map preview with draggable pin for precise locations":["Mostrar uma pr\u00e9-visualiza\u00e7\u00e3o de mapa interativo com um pino arrast\u00e1vel para locais precisos"],"Automatically populate address fields like city, state, and postal code":["Preencher automaticamente campos de endere\u00e7o como cidade, estado e c\u00f3digo postal"]}}} \ No newline at end of file +{"translation-revision-date":"2025-01-02T08:44:42+00:00","generator":"WP-CLI\/2.12.0","source":"assets\/build\/settings.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"en","plural-forms":"nplurals=2; plural=(n != 1);"},"Dashboard":["Painel de Controle"],"Settings":["Configura\u00e7\u00f5es"],"Entries":["Entradas"],"Activated":["Ativado"],"Activate":["Ativar"],"Monday":["Segunda-feira"],"Forms":["Formul\u00e1rios"],"GitHub":["GitHub"],"General":["Geral"],"Other":["Outro"],"Confirm":["Confirmar"],"Cancel":["Cancelar"],"Install":["Instalar"],"Plugin Installation failed, Please try again later.":["A instala\u00e7\u00e3o do plugin falhou, por favor, tente novamente mais tarde."],"Plugin activation failed, Please try again later.":["A ativa\u00e7\u00e3o do plugin falhou, por favor, tente novamente mais tarde."],"Integrations":["Integra\u00e7\u00f5es"],"What's New?":["O que h\u00e1 de novo?"],"Core":["N\u00facleo"],"Unlicensed":["Sem licen\u00e7a"],"Connecting\u2026":["Conectando\u2026"],"Install & Activate":["Instalar e Ativar"],"Send Email To":["Enviar Email Para"],"Google reCAPTCHA":["Google reCAPTCHA"],"hCaptcha":["hCaptcha"],"reCAPTCHA v2 Invisible":["reCAPTCHA v2 Invis\u00edvel"],"reCAPTCHA v3":["reCAPTCHA v3"],"Validations":["Valida\u00e7\u00f5es"],"Spam Protection":["Prote\u00e7\u00e3o contra Spam"],"Email Summaries":["Resumos de Email"],"Tuesday":["ter\u00e7a-feira"],"Wednesday":["Quarta-feira"],"Thursday":["Quinta-feira"],"Friday":["Sexta-feira"],"Saturday":["S\u00e1bado"],"Sunday":["Domingo"],"Test Email":["Email de teste"],"Schedule Reports":["Agendar Relat\u00f3rios"],"IP Logging":["Registro de IP"],"If this option is turned on, the user's IP address will be saved with the form data":["Se esta op\u00e7\u00e3o estiver ativada, o endere\u00e7o IP do usu\u00e1rio ser\u00e1 salvo com os dados do formul\u00e1rio"],"Confirmation Email Mismatch Message":["Mensagem de Incompatibilidade de E-mail de Confirma\u00e7\u00e3o"],"%s represents the minimum input value. For example: \"Minimum value is 10.\"":["%s representa o valor m\u00ednimo de entrada. Por exemplo: \"O valor m\u00ednimo \u00e9 10.\""],"%s represents the maximum input value. For example: \"Maximum value is 100.\"":["%s representa o valor m\u00e1ximo de entrada. Por exemplo: \"O valor m\u00e1ximo \u00e9 100.\""],"%s represents the minimum selections needed. For example: \u201cMinimum 2 selections are required.\u201d":["%s representa as sele\u00e7\u00f5es m\u00ednimas necess\u00e1rias. Por exemplo: \"S\u00e3o necess\u00e1rias no m\u00ednimo 2 sele\u00e7\u00f5es.\""],"%s represents the maximum selections allowed. For example: \u201cMaximum 4 selections are allowed.\u201d":["%s representa o n\u00famero m\u00e1ximo de sele\u00e7\u00f5es permitidas. Por exemplo: \"S\u00e3o permitidas no m\u00e1ximo 4 sele\u00e7\u00f5es.\""],"%s represents the minimum choices needed. For example: \u201cMinimum 1 selection is required.\u201d":["%s representa as escolhas m\u00ednimas necess\u00e1rias. Por exemplo: \u201c\u00c9 necess\u00e1ria no m\u00ednimo 1 sele\u00e7\u00e3o.\u201d"],"%s represents the maximum choices allowed. For example: \u201cMaximum 3 selections are allowed.\u201d":["%s representa o n\u00famero m\u00e1ximo de escolhas permitidas. Por exemplo: \"S\u00e3o permitidas no m\u00e1ximo 3 sele\u00e7\u00f5es.\""]," Error Message":["Mensagem de Erro"],"Auto":["Carro"],"Light":["Luz"],"Dark":["Escuro"],"Turnstile":["Catraca"],"Honeypot":["Pote de mel"],"Get Keys":["Obter Chaves"],"Documentation":["Documenta\u00e7\u00e3o"],"Site Key":["Chave do Site"],"Secret Key":["Chave Secreta"],"Cloudflare Turnstile":["Cloudflare Turnstile"],"Appearance Mode":["Modo de Apar\u00eancia"],"Enable Honeypot Security":["Ativar Seguran\u00e7a Honeypot"],"Enable Honeypot Security for better spam protection":["Ative a Seguran\u00e7a Honeypot para melhor prote\u00e7\u00e3o contra spam"],"This field cannot be left blank.":["Este campo n\u00e3o pode ficar em branco."],"OttoKit":["OttoKit"],"Connect with OttoKit":["Conectar com OttoKit"],"reCAPTCHA":["reCAPTCHA"],"Ready to go beyond free plan?":["Pronto para ir al\u00e9m do plano gratuito?"],"Upgrade now":["Atualize agora"],"and unlock the full power of SureForms!":["e desbloqueie todo o poder do SureForms!"],"Upgrade SureForms":["Atualizar SureForms"],"Upgrade Now":["Atualize agora"],"Form Validation":["Valida\u00e7\u00e3o de Formul\u00e1rio"],"Required Error Messages":["Mensagens de Erro Obrigat\u00f3rias"],"Other Error Messages":["Outras Mensagens de Erro"],"Input Field Unique":["Campo de Entrada \u00danico"],"Email Field Unique":["Campo de Email \u00danico"],"Invalid URL":["URL inv\u00e1lido"],"Phone Field Unique":["Campo de Telefone \u00danico"],"Invalid Field Number Block":["Bloco de N\u00famero de Campo Inv\u00e1lido"],"Invalid Email":["Email inv\u00e1lido"],"Number Minimum Value":["Valor M\u00ednimo do N\u00famero"],"Number Maximum Value":["Valor M\u00e1ximo do N\u00famero"],"Dropdown Minimum Selections":["M\u00ednimo de Sele\u00e7\u00f5es no Dropdown"],"Dropdown Maximum Selections":["Sele\u00e7\u00f5es M\u00e1ximas do Dropdown"],"Multiple Choice Minimum Selections":["M\u00faltipla Escolha M\u00ednima de Sele\u00e7\u00f5es"],"Multiple Choice Maximum Selections":["Sele\u00e7\u00f5es M\u00e1ximas de M\u00faltipla Escolha"],"Input Field":["Campo de Entrada"],"Email Field":["Campo de Email"],"URL Field":["Campo de URL"],"Phone Field":["Campo de Telefone"],"Textarea Field":["Campo de \u00c1rea de Texto"],"Checkbox Field":["Campo de Caixa de Sele\u00e7\u00e3o"],"Dropdown Field":["Campo suspenso"],"Multiple Choice Field":["Campo de Escolha M\u00faltipla"],"Address Field":["Campo de Endere\u00e7o"],"Number Field":["Campo Num\u00e9rico"],"reCAPTCHA v2":["reCAPTCHA v2"],"To enable reCAPTCHA feature on your SureForms Please enable reCAPTCHA option on your blocks setting and select version. Add google reCAPTCHA secret and site key here. reCAPTCHA will be added to your page on front-end.":["Para ativar o recurso reCAPTCHA no seu SureForms, ative a op\u00e7\u00e3o reCAPTCHA nas configura\u00e7\u00f5es dos seus blocos e selecione a vers\u00e3o. Adicione a chave secreta e a chave do site do Google reCAPTCHA aqui. O reCAPTCHA ser\u00e1 adicionado \u00e0 sua p\u00e1gina no front-end."],"Enter your %s here":["Insira seu %s aqui"],"To enable hCAPTCHA, please add your site key and secret key. Configure these settings within the individual form.":["Para ativar o hCAPTCHA, adicione sua chave do site e chave secreta. Configure essas configura\u00e7\u00f5es dentro do formul\u00e1rio individual."],"To enable Cloudflare Turnstile, please add your site key and secret key. Configure these settings within the individual form.":["Para ativar o Cloudflare Turnstile, adicione sua chave do site e chave secreta. Configure essas configura\u00e7\u00f5es dentro do formul\u00e1rio individual."],"Save":["Salvar"],"Anonymous Analytics":["An\u00e1lise An\u00f4nima"],"Learn More":["Saiba mais"],"Admin Notification":["Notifica\u00e7\u00e3o do Administrador"],"Enable Admin Notification":["Ativar Notifica\u00e7\u00e3o de Administrador"],"Admin notifications keep you informed about new form entries since your last visit.":["As notifica\u00e7\u00f5es de administrador mant\u00eam voc\u00ea informado sobre novas entradas de formul\u00e1rio desde sua \u00faltima visita."],"Continue":["Continuar"],"Get Started":["Come\u00e7ar"],"Integration":["Integra\u00e7\u00e3o"],"Connect Native Integrations with SureForms":["Conecte Integra\u00e7\u00f5es Nativas com SureForms"],"Unlock powerful integrations in the Premium plan to automate your workflows and connect SureForms directly with your favourite tools.":["Desbloqueie integra\u00e7\u00f5es poderosas no plano Premium para automatizar seus fluxos de trabalho e conectar o SureForms diretamente com suas ferramentas favoritas."],"Send form submissions straight to CRMs, email, and marketing platforms":["Envie envios de formul\u00e1rios diretamente para CRMs, e-mail e plataformas de marketing"],"Automate repetitive tasks with seamless data syncing":["Automatize tarefas repetitivas com sincroniza\u00e7\u00e3o de dados perfeita"],"Access exclusive native integrations for faster workflows":["Acesse integra\u00e7\u00f5es nativas exclusivas para fluxos de trabalho mais r\u00e1pidos"],"Payments":["Pagamentos"],"Stripe account disconnected successfully.":["Conta Stripe desconectada com sucesso."],"Failed to create webhook.":["Falha ao criar webhook."],"Failed to connect to Stripe.":["Falha ao conectar-se ao Stripe."],"Webhook":["Webhook"],"Knowledge Base":["Base de Conhecimento"],"What\u2019s New":["O que h\u00e1 de novo"],"delete":["excluir"],"Please type \"%s\" in the input box":["Por favor, digite \"%s\" na caixa de entrada"],"To confirm, type \"%s\" in the box below:":["Para confirmar, digite \"%s\" na caixa abaixo:"],"Type \"%s\"":["Digite \"%s\""],"Go to OttoKit Settings":["V\u00e1 para as Configura\u00e7\u00f5es do OttoKit"],"USD - US Dollar":["USD - D\u00f3lar dos EUA"],"Payment Mode":["Modo de Pagamento"],"Test Mode":["Modo de Teste"],"Live Mode":["Modo ao Vivo"],"General Settings":["Configura\u00e7\u00f5es Gerais"],"Set up email summaries, admin alerts, and data preferences to manage your forms with ease.":["Configure resumos de e-mail, alertas de administrador e prefer\u00eancias de dados para gerenciar seus formul\u00e1rios com facilidade."],"Customize default error messages shown when users submit invalid or incomplete form entries.":["Personalize as mensagens de erro padr\u00e3o exibidas quando os usu\u00e1rios enviam entradas de formul\u00e1rio inv\u00e1lidas ou incompletas."],"Enable spam protection for your forms using CAPTCHA services or honeypot security.":["Ative a prote\u00e7\u00e3o contra spam para seus formul\u00e1rios usando servi\u00e7os CAPTCHA ou seguran\u00e7a honeypot."],"Connect and manage your payment gateways to securely accept transactions through your forms.":["Conecte e gerencie seus gateways de pagamento para aceitar transa\u00e7\u00f5es com seguran\u00e7a atrav\u00e9s de seus formul\u00e1rios."],"1% transaction and payment gateway fees apply.":["Aplicam-se taxas de 1% para transa\u00e7\u00f5es e gateways de pagamento."],"2.9% transaction and payment gateway fees apply. Activate license to reduce transaction fees.":["Aplicam-se taxas de transa\u00e7\u00e3o e de gateway de pagamento de 2,9%. Ative a licen\u00e7a para reduzir as taxas de transa\u00e7\u00e3o."],"2.9% transaction and payment gateway fees apply.":["Aplicam-se taxas de transa\u00e7\u00e3o e de gateway de pagamento de 2,9%."],"Please visit %1$s, delete an unused webhook, then click below to retry.":["Por favor, visite %1$s, exclua um webhook n\u00e3o utilizado e, em seguida, clique abaixo para tentar novamente."],"SureForms could not create a webhook because your Stripe account has run out of free slots. Webhooks are needed to receive updates about payments.":["SureForms n\u00e3o p\u00f4de criar um webhook porque sua conta Stripe ficou sem slots gratuitos. Webhooks s\u00e3o necess\u00e1rios para receber atualiza\u00e7\u00f5es sobre pagamentos."],"Stripe Dashboard":["Painel do Stripe"],"Creating\u2026":["Criando\u2026"],"Create Webhook":["Criar Webhook"],"Successfully connected to Stripe!":["Conectado com sucesso ao Stripe!"],"Invalid response from server. Please try again.":["Resposta inv\u00e1lida do servidor. Por favor, tente novamente."],"Failed to disconnect Stripe account.":["Falha ao desconectar a conta do Stripe."],"Webhook created successfully!":["Webhook criado com sucesso!"],"Select Currency":["Selecionar moeda"],"Select the default currency for payment forms.":["Selecione a moeda padr\u00e3o para os formul\u00e1rios de pagamento."],"Connection Status":["Status da Conex\u00e3o"],"Disconnect Stripe Account":["Desconectar Conta do Stripe"],"Are you sure you want to disconnect your Stripe account? This will stop all active payments, subscriptions, and form transactions connected to this account.":["Tem certeza de que deseja desconectar sua conta do Stripe? Isso interromper\u00e1 todos os pagamentos, assinaturas e transa\u00e7\u00f5es de formul\u00e1rio ativas conectadas a esta conta."],"Disconnect":["Desconectar"],"Disconnecting\u2026":["Desconectando\u2026"],"Webhook successfully connected, all Stripe events are being tracked.":["Webhook conectado com sucesso, todos os eventos do Stripe est\u00e3o sendo rastreados."],"Connect your Stripe account to start accepting payments through your forms.":["Conecte sua conta Stripe para come\u00e7ar a aceitar pagamentos atrav\u00e9s de seus formul\u00e1rios."],"Connect to Stripe":["Conectar ao Stripe"],"Securely connect to Stripe with just a few clicks to begin accepting payments! ":["Conecte-se com seguran\u00e7a ao Stripe com apenas alguns cliques para come\u00e7ar a aceitar pagamentos!"],"Payment Methods":["M\u00e9todos de Pagamento"],"Test mode allows you to process payments without real charges. Switch to Live mode for actual transactions.":["O modo de teste permite processar pagamentos sem cobran\u00e7as reais. Mude para o modo ao vivo para transa\u00e7\u00f5es reais."],"General Payment Settings":["Configura\u00e7\u00f5es Gerais de Pagamento"],"These settings apply to all payment gateways.":["Essas configura\u00e7\u00f5es se aplicam a todos os gateways de pagamento."],"Stripe Settings":["Configura\u00e7\u00f5es do Stripe"],"Left ($100)":["Esquerda ($100)"],"Right (100$)":["Certo (100$)"],"Left Space ($ 100)":["Espa\u00e7o Esquerdo ($ 100)"],"Right Space (100 $)":["Espa\u00e7o Direito (100 $)"],"Currency Sign Position":["Posi\u00e7\u00e3o do Sinal de Moeda"],"Select the position of the currency symbol relative to the amount.":["Selecione a posi\u00e7\u00e3o do s\u00edmbolo da moeda em rela\u00e7\u00e3o ao valor."],"Learn":["Aprender"],"Enable email summaries":["Ativar resumos de e-mail"],"Enable IP logging":["Ativar registro de IP"],"Turn on Admin Notification from here.":["Ative a Notifica\u00e7\u00e3o de Administrador daqui."],"Send entries to 100+ popular apps.":["Envie entradas para mais de 100 aplicativos populares."],"Build automated workflows that run instantly.":["Crie fluxos de trabalho automatizados que sejam executados instantaneamente."],"Create custom app integrations using our Custom App feature.":["Crie integra\u00e7\u00f5es de aplicativos personalizadas usando nosso recurso de Aplicativo Personalizado."],"Keep your tools in sync automatically.":["Mantenha suas ferramentas sincronizadas automaticamente."],"This will install and activate OttoKit on your WordPress site to enable automation features.":["Isso instalar\u00e1 e ativar\u00e1 o OttoKit no seu site WordPress para habilitar recursos de automa\u00e7\u00e3o."],"Automate Your Forms with OttoKit":["Automatize Seus Formul\u00e1rios com OttoKit"],"Every form submission should trigger something \u2014 a Slack alert, a CRM lead, a follow-up email, or a new row in Google Sheets.":["Cada envio de formul\u00e1rio deve acionar algo \u2014 um alerta no Slack, um lead no CRM, um e-mail de acompanhamento ou uma nova linha no Google Sheets."],"MCP":["MCP"],"Configure AI client permissions and MCP server settings.":["Configure as permiss\u00f5es do cliente de IA e as configura\u00e7\u00f5es do servidor MCP."],"View documentation":["Ver documenta\u00e7\u00e3o"],"Copy to clipboard":["Copiar para a \u00e1rea de transfer\u00eancia"],"Claude Desktop":["Claude Desktop"],"~\/Library\/Application Support\/Claude\/claude_desktop_config.json (macOS) or %APPDATA%\\Claude\\claude_desktop_config.json (Windows)":["~\/Library\/Application Support\/Claude\/claude_desktop_config.json (macOS) ou %APPDATA%\\Claude\\claude_desktop_config.json (Windows)"],"Claude Code":["C\u00f3digo Claude"],".mcp.json (project) or ~\/.claude.json (global)":[".mcp.json (projeto) ou ~\/.claude.json (global)"],"Cursor":["Cursor"],"~\/.cursor\/mcp.json":["~\/.cursor\/mcp.json"],"VS Code (Copilot)":["VS Code (Copilot)"],".vscode\/mcp.json (project) or settings.json > mcp.servers (global)":[".vscode\/mcp.json (projeto) ou settings.json > mcp.servers (global)"],"~\/.continue\/config.yaml or config.json":["~\/.continue\/config.yaml ou config.json"],"Your client's MCP configuration file":["O arquivo de configura\u00e7\u00e3o MCP do seu cliente"],"Connect Your AI Client":["Conecte seu cliente de IA"],"AI Client":["Cliente de IA"],"Create an Application Password \u2014 ":["Criar uma Senha de Aplicativo \u2014"],"Open Application Passwords":["Abrir Senhas de Aplicativos"],"Or use this CLI command to add the server quickly (you will still need to set the environment variables):":["Ou use este comando CLI para adicionar o servidor rapidamente (voc\u00ea ainda precisar\u00e1 definir as vari\u00e1veis de ambiente):"],"Copy the JSON config below into: ":["Copie a configura\u00e7\u00e3o JSON abaixo em:"],"Replace \"your-application-password\" with the password from Step 1.":["Substitua \"your-application-password\" pela senha do Passo 1."],"WP_API_URL \u2014 your site's MCP endpoint. WP_API_USERNAME \u2014 your WordPress username. WP_API_PASSWORD \u2014 the application password you generated.":["WP_API_URL \u2014 o endpoint MCP do seu site. WP_API_USERNAME \u2014 seu nome de usu\u00e1rio do WordPress. WP_API_PASSWORD \u2014 a senha do aplicativo que voc\u00ea gerou."],"View setup docs":["Ver documentos de configura\u00e7\u00e3o"],"The MCP Adapter plugin is installed but not active. Activate it to configure MCP settings.":["O plugin MCP Adapter est\u00e1 instalado, mas n\u00e3o est\u00e1 ativo. Ative-o para configurar as defini\u00e7\u00f5es do MCP."],"The MCP Adapter plugin is required to connect AI clients to your forms. Download and install it from GitHub, then activate it.":["O plugin MCP Adapter \u00e9 necess\u00e1rio para conectar clientes de IA aos seus formul\u00e1rios. Baixe e instale-o do GitHub, depois ative-o."],"Download the latest release from":["Baixe a vers\u00e3o mais recente de"],"Install the plugin via Plugins > Add New Plugin > Upload Plugin.":["Instale o plugin atrav\u00e9s de Plugins > Adicionar Novo Plugin > Enviar Plugin."],"Activate the MCP Adapter plugin.":["Ativar o plugin do Adaptador MCP."],"Activating\u2026":["Ativando\u2026"],"Activate MCP Adapter":["Ativar Adaptador MCP"],"Download MCP Adapter":["Baixar Adaptador MCP"],"Experimental":["Experimental"],"Enable Abilities":["Ativar habilidades"],"Register SureForms abilities with the WordPress Abilities API. When enabled, AI clients can list, read, create, edit, and delete your forms and entries. When disabled, no abilities are registered and AI clients cannot perform any actions on your forms.":["Registre as habilidades do SureForms com a API de Habilidades do WordPress. Quando ativado, os clientes de IA podem listar, ler, criar, editar e excluir seus formul\u00e1rios e entradas. Quando desativado, nenhuma habilidade \u00e9 registrada e os clientes de IA n\u00e3o podem realizar nenhuma a\u00e7\u00e3o em seus formul\u00e1rios."],"Abilities API \u2014 Edit":["API de Habilidades \u2014 Editar"],"Enable Edit Abilities":["Ativar habilidades de edi\u00e7\u00e3o"],"When enabled, AI clients can create new forms, update form titles, fields, and settings, duplicate forms, and modify entry statuses. When disabled, these abilities are unregistered and AI clients can only read your data.":["Quando ativado, os clientes de IA podem criar novos formul\u00e1rios, atualizar t\u00edtulos, campos e configura\u00e7\u00f5es de formul\u00e1rios, duplicar formul\u00e1rios e modificar status de entradas. Quando desativado, essas habilidades s\u00e3o desregistradas e os clientes de IA s\u00f3 podem ler seus dados."],"Abilities API \u2014 Delete":["API de Habilidades \u2014 Excluir"],"Enable Delete Abilities":["Ativar habilidades de exclus\u00e3o"],"When enabled, AI clients can permanently delete forms and entries. Deleted data cannot be recovered. When disabled, delete abilities are unregistered and AI clients cannot remove any data.":["Quando ativado, os clientes de IA podem excluir permanentemente formul\u00e1rios e entradas. Os dados exclu\u00eddos n\u00e3o podem ser recuperados. Quando desativado, as habilidades de exclus\u00e3o s\u00e3o desregistradas e os clientes de IA n\u00e3o podem remover nenhum dado."],"MCP Server":["Servidor MCP"],"Enable MCP Server":["Ativar Servidor MCP"],"Creates a dedicated SureForms MCP endpoint that AI clients like Claude can connect to. When disabled, the endpoint is removed and external AI clients cannot discover or call any SureForms abilities.":["Cria um endpoint SureForms MCP dedicado ao qual clientes de IA como Claude podem se conectar. Quando desativado, o endpoint \u00e9 removido e clientes de IA externos n\u00e3o podem descobrir ou chamar nenhuma habilidade do SureForms."],"Learn more":["Saiba mais"],"MCP Adapter Required":["Adaptador MCP Necess\u00e1rio"],"Google Maps":["Google Maps"],"Configure Google Maps API key for address autocomplete and map preview.":["Configure a chave da API do Google Maps para preenchimento autom\u00e1tico de endere\u00e7o e visualiza\u00e7\u00e3o do mapa."],"Help shape the future of SureForms":["Ajude a moldar o futuro do SureForms"],"Share how you use the plugin so we can build features that matter, fix issues faster, and make smarter decisions. ":["Compartilhe como voc\u00ea usa o plugin para que possamos desenvolver funcionalidades que importam, corrigir problemas mais rapidamente e tomar decis\u00f5es mais inteligentes."],"Enable Google Address Autocomplete":["Ativar o preenchimento autom\u00e1tico de endere\u00e7os do Google"],"Upgrade to the SureForms Business Plan to add Google-powered address autocomplete with interactive map preview to your forms.":["Fa\u00e7a upgrade para o Plano de Neg\u00f3cios SureForms para adicionar a autocompleta\u00e7\u00e3o de endere\u00e7os com tecnologia do Google e visualiza\u00e7\u00e3o interativa de mapa aos seus formul\u00e1rios."],"Auto-suggest addresses as users type for faster, error-free submissions":["Sugira automaticamente endere\u00e7os \u00e0 medida que os usu\u00e1rios digitam para envios mais r\u00e1pidos e sem erros"],"Show an interactive map preview with draggable pin for precise locations":["Mostrar uma pr\u00e9-visualiza\u00e7\u00e3o de mapa interativo com um pino arrast\u00e1vel para locais precisos"],"Automatically populate address fields like city, state, and postal code":["Preencher automaticamente campos de endere\u00e7o como cidade, estado e c\u00f3digo postal"]}}} \ No newline at end of file diff --git a/languages/sureforms-pt_PT.mo b/languages/sureforms-pt_PT.mo index 5e66eb5c0..2d9996652 100644 Binary files a/languages/sureforms-pt_PT.mo and b/languages/sureforms-pt_PT.mo differ diff --git a/languages/sureforms-pt_PT.po b/languages/sureforms-pt_PT.po index d8a37a3db..88ed2eef4 100644 --- a/languages/sureforms-pt_PT.po +++ b/languages/sureforms-pt_PT.po @@ -16,7 +16,7 @@ msgstr "" #: sureforms.php #: admin/admin.php:320 #: admin/admin.php:321 -#: admin/admin.php:1812 +#: admin/admin.php:1813 #: inc/abilities/abilities-registrar.php:133 #: inc/gutenberg-hooks.php:109 #: inc/page-builders/bricks/elements/form-widget.php:67 @@ -82,7 +82,7 @@ msgstr "Novo Formulário" #: admin/admin.php:601 #: admin/admin.php:602 -#: admin/admin.php:1849 +#: admin/admin.php:1850 #: inc/global-settings/email-summary.php:225 #: assets/build/dashboard.js:172 #: assets/build/entries.js:172 @@ -118,18 +118,18 @@ msgid "Nonce verification failed." msgstr "A verificação do nonce falhou." #. translators: %1$s: Opening anchor tag with URL, %2$s: Closing anchor tag, %3$s: SureForms Pro Plugin Name. -#: admin/admin.php:1441 +#: admin/admin.php:1442 #, php-format msgid "Please %1$sactivate%2$s your copy of %3$s to get new features, access support, receive update notifications, and more." msgstr "Por favor, %1$sative%2$s sua cópia do %3$s para obter novos recursos, acessar suporte, receber notificações de atualizações e muito mais." #. translators: %1$s: SureForms version, %2$s: SureForms Pro Plugin Name, %3$s: SureForms Pro Version, %4$s: Anchor tag open, %5$s: Closing anchor tag. -#: admin/admin.php:1459 +#: admin/admin.php:1460 #, php-format msgid "SureForms %1$s requires minimum %2$s %3$s to work properly. Please update to the latest version from %4$shere%5$s." msgstr "O SureForms %1$s requer um mínimo de %2$s %3$s para funcionar corretamente. Por favor, atualize para a versão mais recente %4$saqui%5$s." -#: admin/admin.php:1848 +#: admin/admin.php:1849 #: inc/global-settings/email-summary.php:224 #: assets/build/entries.js:172 #: assets/build/payments.js:172 @@ -197,7 +197,7 @@ msgstr "Lixo" msgid "Published" msgstr "Publicado" -#: admin/admin.php:1840 +#: admin/admin.php:1841 msgid "View" msgstr "Visualizar" @@ -323,10 +323,10 @@ msgstr "Instalado" msgid "You do not have permission to access this page." msgstr "Você não tem permissão para acessar esta página." -#: admin/admin.php:1607 -#: admin/admin.php:1706 -#: admin/admin.php:1744 -#: admin/admin.php:1765 +#: admin/admin.php:1608 +#: admin/admin.php:1707 +#: admin/admin.php:1745 +#: admin/admin.php:1766 #: inc/admin-ajax.php:162 #: inc/payments/admin/admin-handler.php:638 #: inc/payments/stripe/admin-stripe-handler.php:80 @@ -339,7 +339,7 @@ msgid "Form ID is required." msgstr "O ID do formulário é obrigatório." #: inc/admin-ajax.php:182 -#: inc/form-submit.php:970 +#: inc/form-submit.php:972 msgid "Invalid form ID." msgstr "ID de formulário inválido." @@ -513,11 +513,11 @@ msgstr "Caixa de seleção" msgid "Required" msgstr "Obrigatório" -#: inc/fields/dropdown-markup.php:83 +#: inc/fields/dropdown-markup.php:84 msgid "Dropdown" msgstr "Menu suspenso" -#: inc/fields/dropdown-markup.php:106 +#: inc/fields/dropdown-markup.php:108 #: inc/gutenberg-hooks.php:220 msgid "Select an option" msgstr "Selecione uma opção" @@ -545,7 +545,7 @@ msgstr "Eu consinto que este site armazene as informações que enviei para que msgid "Please verify that you are not a robot." msgstr "Por favor, verifique se você não é um robô." -#: inc/fields/multichoice-markup.php:113 +#: inc/fields/multichoice-markup.php:114 msgid "Multi Choice" msgstr "Escolha Múltipla" @@ -642,7 +642,7 @@ msgstr "O valor precisa ser único." msgid "Sorry, you are not allowed to perform this action." msgstr "Desculpe, você não tem permissão para realizar esta ação." -#: admin/admin.php:1505 +#: admin/admin.php:1506 msgid "Rate SureForms" msgstr "Avalie SureForms" @@ -790,7 +790,7 @@ msgid "Site URL" msgstr "URL do site" #: inc/smart-tags.php:111 -#: inc/smart-tags.php:142 +#: inc/smart-tags.php:143 msgid "Admin Email" msgstr "Email do Administrador" @@ -831,7 +831,7 @@ msgid "User Last Name" msgstr "Sobrenome do Usuário" #: inc/smart-tags.php:122 -#: inc/smart-tags.php:143 +#: inc/smart-tags.php:144 msgid "User Email" msgstr "Email do Usuário" @@ -855,11 +855,11 @@ msgstr "ID de Postagem/Página Incorporada" msgid "Embedded Post/Page Title" msgstr "Título do Post/Página Incorporado" -#: inc/smart-tags.php:128 +#: inc/smart-tags.php:129 msgid "Populate by GET Param" msgstr "Preencher por parâmetro GET" -#: inc/smart-tags.php:129 +#: inc/smart-tags.php:130 msgid "Cookie Value" msgstr "Valor do Cookie" @@ -8842,7 +8842,7 @@ msgstr "Reorganizar bloco dentro da Barra de Ação Rápida" #: admin/admin.php:409 #: admin/admin.php:410 -#: admin/admin.php:2021 +#: admin/admin.php:2022 #: assets/build/blocks.js:172 #: assets/build/dashboard.js:172 #: assets/build/entries.js:172 @@ -9185,7 +9185,7 @@ msgstr "Centro" msgid "Right" msgstr "Certo" -#: inc/form-submit.php:1147 +#: inc/form-submit.php:1149 #: assets/build/formEditor.js:172 #: assets/build/settings.js:172 msgid "Google reCAPTCHA" @@ -9195,7 +9195,7 @@ msgstr "Google reCAPTCHA" msgid "CloudFlare Turnstile" msgstr "CloudFlare Turnstile" -#: inc/form-submit.php:1151 +#: inc/form-submit.php:1153 #: assets/build/formEditor.js:172 #: assets/build/settings.js:172 msgid "hCaptcha" @@ -9487,7 +9487,7 @@ msgstr "Chave do Site" msgid "Secret Key" msgstr "Chave Secreta" -#: inc/form-submit.php:1155 +#: inc/form-submit.php:1157 #: assets/build/settings.js:172 msgid "Cloudflare Turnstile" msgstr "Cloudflare Turnstile" @@ -10485,18 +10485,18 @@ msgstr "Desbloquear Adicionar Nota" msgid "With the SureForms Starter plan, enhance your submitted form entries by adding personalized notes for better clarity and tracking." msgstr "Com o plano SureForms Starter, melhore suas entradas de formulário enviadas adicionando notas personalizadas para maior clareza e acompanhamento." -#: inc/form-submit.php:821 +#: inc/form-submit.php:823 msgid "Email notification passed to the sending server" msgstr "Notificação por email enviada para o servidor de envio" #. translators: Here, %s is the comma separated emails list. -#: inc/form-submit.php:894 +#: inc/form-submit.php:896 #, php-format msgid "Email notification recipient: %s" msgstr "Destinatário da notificação por e-mail: %s" #. translators: Here, %1$s is the comma separated emails list and %2$s is error report ( if any ). -#: inc/form-submit.php:911 +#: inc/form-submit.php:913 #, php-format msgid "Email server was unable to send the email notification. Recipient: %1$s. Reason: %2$s" msgstr "O servidor de e-mail não conseguiu enviar a notificação por e-mail. Destinatário: %1$s. Motivo: %2$s" @@ -10740,24 +10740,24 @@ msgstr "Selecionar Gradiente" msgid "reCAPTCHA" msgstr "reCAPTCHA" -#: inc/form-submit.php:1091 +#: inc/form-submit.php:1093 msgid "Captcha validation failed. No error code provided." msgstr "A validação do Captcha falhou. Nenhum código de erro fornecido." -#: inc/form-submit.php:1092 +#: inc/form-submit.php:1094 msgid "Captcha validation failed." msgstr "Falha na validação do captcha." -#: inc/form-submit.php:1159 +#: inc/form-submit.php:1161 msgid "Unknown Captcha" msgstr "Captcha Desconhecido" -#: inc/form-submit.php:1160 +#: inc/form-submit.php:1162 msgid "Invalid captcha type." msgstr "Tipo de captcha inválido." #. translators: %s is the captcha title. -#: inc/form-submit.php:1173 +#: inc/form-submit.php:1175 #, php-format msgid "%s verification failed. Please contact your site administrator." msgstr "A verificação de %s falhou. Por favor, entre em contato com o administrador do seu site." @@ -11274,28 +11274,28 @@ msgstr "Ativar Notificação de Administrador" msgid "Admin notifications keep you informed about new form entries since your last visit." msgstr "As notificações de administrador mantêm você informado sobre novas entradas de formulário desde sua última visita." -#: admin/admin.php:1611 -#: admin/admin.php:1702 -#: admin/admin.php:1740 -#: admin/admin.php:1761 +#: admin/admin.php:1612 +#: admin/admin.php:1703 +#: admin/admin.php:1741 +#: admin/admin.php:1762 msgid "Unauthorized user." msgstr "Usuário não autorizado." #. translators: 1: opening span, 2: opening strong (inline), 3: closing strong, 4: closing span, 5: opening strong (block), 6: closing strong -#: admin/admin.php:1711 +#: admin/admin.php:1712 #, php-format msgid "%1$sGet started by %2$sbuilding your first form%3$s.%4$s%5$sExperience the power of our intuitive AI Form Builder%6$s" msgstr "%1$sComece por %2$scriar o seu primeiro formulário%3$s.%4$s%5$sExperimente o poder do nosso intuitivo Criador de Formulários com IA%6$s" -#: admin/admin.php:1722 +#: admin/admin.php:1723 msgid "SureForms is waiting for you!" msgstr "SureForms está esperando por você!" -#: admin/admin.php:1724 +#: admin/admin.php:1725 msgid "Build My First Form" msgstr "Construir Meu Primeiro Formulário" -#: admin/admin.php:1725 +#: admin/admin.php:1726 msgid "Dismiss" msgstr "Dispensar" @@ -11315,51 +11315,51 @@ msgstr "Entrar" msgid "Register" msgstr "Registrar" -#: admin/admin.php:1836 +#: admin/admin.php:1837 msgid "Recent Entries" msgstr "Entradas Recentes" -#: admin/admin.php:1837 +#: admin/admin.php:1838 msgid "( Last 7 days )" msgstr "( Últimos 7 dias )" -#: admin/admin.php:1957 +#: admin/admin.php:1958 msgid "Use Conditional Logic to show only what matters" msgstr "Use lógica condicional para mostrar apenas o que importa" -#: admin/admin.php:1958 +#: admin/admin.php:1959 msgid "Split your form into steps to keep it easy" msgstr "Divida seu formulário em etapas para mantê-lo simples" -#: admin/admin.php:1959 +#: admin/admin.php:1960 msgid "Let people upload files directly to your form" msgstr "Permita que as pessoas enviem arquivos diretamente para o seu formulário" -#: admin/admin.php:1960 +#: admin/admin.php:1961 msgid "Turn responses into downloadable PDFs automatically" msgstr "Transforme as respostas em PDFs baixáveis automaticamente" -#: admin/admin.php:1961 +#: admin/admin.php:1962 msgid "Let users sign with a simple signature field" msgstr "Permita que os usuários assinem com um campo de assinatura simples" -#: admin/admin.php:1962 +#: admin/admin.php:1963 msgid "Connect your form to other tools using webhooks" msgstr "Conecte seu formulário a outras ferramentas usando webhooks" -#: admin/admin.php:1963 +#: admin/admin.php:1964 msgid "Use Conversational Forms for a chat-like experience" msgstr "Use Formulários de Conversa para uma experiência semelhante a um chat" -#: admin/admin.php:1964 +#: admin/admin.php:1965 msgid "Let users register or log in through your form" msgstr "Permita que os usuários se registrem ou façam login através do seu formulário" -#: admin/admin.php:1965 +#: admin/admin.php:1966 msgid "Build forms that create WordPress user accounts" msgstr "Crie formulários que criem contas de usuário no WordPress" -#: admin/admin.php:1966 +#: admin/admin.php:1967 msgid "Add calculations to auto-total scores or prices" msgstr "Adicione cálculos para totalizar automaticamente pontuações ou preços" @@ -11917,6 +11917,7 @@ msgid "Unable to create ZIP file." msgstr "Não foi possível criar o arquivo ZIP." #: inc/entries.php:729 +#: inc/smart-tags.php:128 #: assets/build/entries.js:172 msgid "Entry ID" msgstr "ID de entrada" @@ -11934,7 +11935,7 @@ msgid "Invalid form data structure provided." msgstr "Estrutura de dados do formulário inválida fornecida." #: inc/fields/payment-markup.php:249 -#: inc/payments/payment-helper.php:538 +#: inc/payments/payment-helper.php:543 msgid "Subscription Plan" msgstr "Plano de Assinatura" @@ -12552,301 +12553,301 @@ msgstr "Dólar de Hong Kong" msgid "Norwegian Krone" msgstr "Coroa Norueguesa" -#: inc/payments/payment-helper.php:259 +#: inc/payments/payment-helper.php:264 msgid "South Korean Won" msgstr "Won sul-coreano" -#: inc/payments/payment-helper.php:264 +#: inc/payments/payment-helper.php:269 msgid "Turkish Lira" msgstr "Lira Turca" -#: inc/payments/payment-helper.php:269 +#: inc/payments/payment-helper.php:274 msgid "Russian Ruble" msgstr "Rublo Russo" -#: inc/payments/payment-helper.php:274 +#: inc/payments/payment-helper.php:279 msgid "Indian Rupee" msgstr "Rupia Indiana" -#: inc/payments/payment-helper.php:279 +#: inc/payments/payment-helper.php:284 msgid "Brazilian Real" msgstr "Real Brasileiro" -#: inc/payments/payment-helper.php:284 +#: inc/payments/payment-helper.php:289 msgid "South African Rand" msgstr "Rand sul-africano" -#: inc/payments/payment-helper.php:289 +#: inc/payments/payment-helper.php:294 msgid "UAE Dirham" msgstr "Dirham dos EAU" -#: inc/payments/payment-helper.php:294 +#: inc/payments/payment-helper.php:299 msgid "Philippine Peso" msgstr "Peso Filipino" -#: inc/payments/payment-helper.php:299 +#: inc/payments/payment-helper.php:304 msgid "Indonesian Rupiah" msgstr "Rupia Indonésia" -#: inc/payments/payment-helper.php:304 +#: inc/payments/payment-helper.php:309 msgid "Malaysian Ringgit" msgstr "Ringgit Malaio" -#: inc/payments/payment-helper.php:309 +#: inc/payments/payment-helper.php:314 msgid "Thai Baht" msgstr "Baht Tailandês" -#: inc/payments/payment-helper.php:314 +#: inc/payments/payment-helper.php:319 msgid "Burundian Franc" msgstr "Franco Burundiano" -#: inc/payments/payment-helper.php:319 +#: inc/payments/payment-helper.php:324 msgid "Chilean Peso" msgstr "Peso Chileno" -#: inc/payments/payment-helper.php:324 +#: inc/payments/payment-helper.php:329 msgid "Djiboutian Franc" msgstr "Franco do Djibuti" -#: inc/payments/payment-helper.php:329 +#: inc/payments/payment-helper.php:334 msgid "Guinean Franc" msgstr "Franco Guineense" -#: inc/payments/payment-helper.php:334 +#: inc/payments/payment-helper.php:339 msgid "Comorian Franc" msgstr "Franco Comorense" -#: inc/payments/payment-helper.php:339 +#: inc/payments/payment-helper.php:344 msgid "Malagasy Ariary" msgstr "Ariary Malgaxe" -#: inc/payments/payment-helper.php:344 +#: inc/payments/payment-helper.php:349 msgid "Paraguayan Guaraní" msgstr "Guarani Paraguaio" -#: inc/payments/payment-helper.php:349 +#: inc/payments/payment-helper.php:354 msgid "Rwandan Franc" msgstr "Franco Ruandês" -#: inc/payments/payment-helper.php:354 +#: inc/payments/payment-helper.php:359 msgid "Ugandan Shilling" msgstr "Xelim Ugandês" -#: inc/payments/payment-helper.php:359 +#: inc/payments/payment-helper.php:364 msgid "Vietnamese Đồng" msgstr "Dong Vietnamita" -#: inc/payments/payment-helper.php:364 +#: inc/payments/payment-helper.php:369 msgid "Vanuatu Vatu" msgstr "Vatu de Vanuatu" -#: inc/payments/payment-helper.php:369 +#: inc/payments/payment-helper.php:374 msgid "Central African CFA Franc" msgstr "Franco CFA da África Central" -#: inc/payments/payment-helper.php:374 +#: inc/payments/payment-helper.php:379 msgid "West African CFA Franc" msgstr "Franco CFA da África Ocidental" -#: inc/payments/payment-helper.php:379 +#: inc/payments/payment-helper.php:384 msgid "CFP Franc" msgstr "Franco CFP" -#: inc/payments/payment-helper.php:475 +#: inc/payments/payment-helper.php:480 msgid "An unknown error occurred. Please try again or contact the site administrator." msgstr "Ocorreu um erro desconhecido. Por favor, tente novamente ou entre em contato com o administrador do site." -#: inc/payments/payment-helper.php:477 +#: inc/payments/payment-helper.php:482 msgid "Payment is currently unavailable. Please contact the site administrator." msgstr "O pagamento está atualmente indisponível. Por favor, entre em contato com o administrador do site." -#: inc/payments/payment-helper.php:478 +#: inc/payments/payment-helper.php:483 msgid "Payment is currently unavailable. Please contact the site administrator to configure the payment amount." msgstr "O pagamento está atualmente indisponível. Por favor, entre em contato com o administrador do site para configurar o valor do pagamento." -#: inc/payments/payment-helper.php:479 +#: inc/payments/payment-helper.php:484 msgid "Invalid payment amount" msgstr "Valor de pagamento inválido" -#: inc/payments/payment-helper.php:480 +#: inc/payments/payment-helper.php:485 msgid "Payment amount must be at least {symbol}{amount}." msgstr "O valor do pagamento deve ser pelo menos {symbol}{amount}." -#: inc/payments/payment-helper.php:483 +#: inc/payments/payment-helper.php:488 msgid "Payment is currently unavailable. Please contact the site administrator to configure the customer name field." msgstr "O pagamento está atualmente indisponível. Por favor, entre em contato com o administrador do site para configurar o campo do nome do cliente." -#: inc/payments/payment-helper.php:484 +#: inc/payments/payment-helper.php:489 msgid "Payment is currently unavailable. Please contact the site administrator to configure the customer email field." msgstr "O pagamento está atualmente indisponível. Por favor, entre em contato com o administrador do site para configurar o campo de e-mail do cliente." -#: inc/payments/payment-helper.php:485 +#: inc/payments/payment-helper.php:490 msgid "Please enter your name." msgstr "Por favor, insira seu nome." -#: inc/payments/payment-helper.php:486 +#: inc/payments/payment-helper.php:491 msgid "Please enter your email." msgstr "Por favor, insira seu e-mail." -#: inc/payments/payment-helper.php:489 +#: inc/payments/payment-helper.php:494 msgid "Payment failed" msgstr "Pagamento falhou" -#: inc/payments/payment-helper.php:490 +#: inc/payments/payment-helper.php:495 msgid "Payment successful" msgstr "Pagamento bem-sucedido" -#: inc/payments/payment-helper.php:494 -#: inc/payments/payment-helper.php:495 +#: inc/payments/payment-helper.php:499 +#: inc/payments/payment-helper.php:500 msgid "Your card was declined. Please try a different payment method or contact your bank." msgstr "Seu cartão foi recusado. Por favor, tente um método de pagamento diferente ou entre em contato com seu banco." -#: inc/payments/payment-helper.php:496 +#: inc/payments/payment-helper.php:501 msgid "Your card has insufficient funds. Please use a different payment method." msgstr "Seu cartão não tem fundos suficientes. Por favor, use um método de pagamento diferente." -#: inc/payments/payment-helper.php:497 +#: inc/payments/payment-helper.php:502 msgid "Your card was declined because it has been reported as lost. Please contact your bank." msgstr "Seu cartão foi recusado porque foi relatado como perdido. Por favor, entre em contato com seu banco." -#: inc/payments/payment-helper.php:498 +#: inc/payments/payment-helper.php:503 msgid "Your card was declined because it has been reported as stolen. Please contact your bank." msgstr "Seu cartão foi recusado porque foi relatado como roubado. Por favor, entre em contato com seu banco." -#: inc/payments/payment-helper.php:499 +#: inc/payments/payment-helper.php:504 msgid "Your card has expired. Please use a different payment method." msgstr "Seu cartão expirou. Por favor, use um método de pagamento diferente." -#: inc/payments/payment-helper.php:500 -#: inc/payments/payment-helper.php:521 +#: inc/payments/payment-helper.php:505 +#: inc/payments/payment-helper.php:526 msgid "Your card was declined. Please contact your bank for more information." msgstr "Seu cartão foi recusado. Por favor, entre em contato com seu banco para mais informações." -#: inc/payments/payment-helper.php:501 +#: inc/payments/payment-helper.php:506 msgid "Your card was declined due to restrictions. Please contact your bank." msgstr "Seu cartão foi recusado devido a restrições. Por favor, entre em contato com seu banco." -#: inc/payments/payment-helper.php:502 +#: inc/payments/payment-helper.php:507 msgid "Your card was declined due to a security violation. Please contact your bank." msgstr "Seu cartão foi recusado devido a uma violação de segurança. Por favor, entre em contato com seu banco." -#: inc/payments/payment-helper.php:503 +#: inc/payments/payment-helper.php:508 msgid "Your card does not support this type of purchase. Please use a different payment method." msgstr "Seu cartão não suporta este tipo de compra. Por favor, use um método de pagamento diferente." -#: inc/payments/payment-helper.php:504 +#: inc/payments/payment-helper.php:509 msgid "A stop payment order has been placed on this card. Please contact your bank." msgstr "Foi emitida uma ordem de suspensão de pagamento para este cartão. Por favor, entre em contato com o seu banco." -#: inc/payments/payment-helper.php:505 +#: inc/payments/payment-helper.php:510 msgid "A test card was used in a live environment. Please use a real card." msgstr "Um cartão de teste foi usado em um ambiente ao vivo. Por favor, use um cartão real." -#: inc/payments/payment-helper.php:506 +#: inc/payments/payment-helper.php:511 msgid "Your card has exceeded its withdrawal limit. Please contact your bank." msgstr "O seu cartão excedeu o limite de saque. Por favor, entre em contato com o seu banco." -#: inc/payments/payment-helper.php:507 +#: inc/payments/payment-helper.php:512 msgid "Your card's security code is incorrect. Please check and try again." msgstr "O código de segurança do seu cartão está incorreto. Por favor, verifique e tente novamente." -#: inc/payments/payment-helper.php:508 +#: inc/payments/payment-helper.php:513 msgid "Your card number is incorrect. Please check and try again." msgstr "O número do seu cartão está incorreto. Por favor, verifique e tente novamente." -#: inc/payments/payment-helper.php:509 +#: inc/payments/payment-helper.php:514 msgid "Your card's security code is invalid. Please check and try again." msgstr "O código de segurança do seu cartão é inválido. Por favor, verifique e tente novamente." -#: inc/payments/payment-helper.php:510 +#: inc/payments/payment-helper.php:515 msgid "Your card's expiration month is invalid. Please check and try again." msgstr "O mês de validade do seu cartão é inválido. Por favor, verifique e tente novamente." -#: inc/payments/payment-helper.php:511 +#: inc/payments/payment-helper.php:516 msgid "Your card's expiration year is invalid. Please check and try again." msgstr "O ano de validade do seu cartão é inválido. Por favor, verifique e tente novamente." -#: inc/payments/payment-helper.php:512 +#: inc/payments/payment-helper.php:517 msgid "Your card number is invalid. Please check and try again." msgstr "O número do seu cartão é inválido. Por favor, verifique e tente novamente." -#: inc/payments/payment-helper.php:515 +#: inc/payments/payment-helper.php:520 msgid "Your card is not supported for this transaction. Please use a different payment method." msgstr "Seu cartão não é aceito para esta transação. Por favor, use um método de pagamento diferente." -#: inc/payments/payment-helper.php:516 +#: inc/payments/payment-helper.php:521 msgid "Your card does not support the currency used for this transaction. Please use a different payment method." msgstr "O seu cartão não suporta a moeda utilizada para esta transação. Por favor, use um método de pagamento diferente." -#: inc/payments/payment-helper.php:517 +#: inc/payments/payment-helper.php:522 msgid "A transaction with identical details was submitted recently. Please wait a moment and try again." msgstr "Uma transação com detalhes idênticos foi enviada recentemente. Por favor, aguarde um momento e tente novamente." -#: inc/payments/payment-helper.php:518 +#: inc/payments/payment-helper.php:523 msgid "The account associated with your card is invalid. Please contact your bank." msgstr "A conta associada ao seu cartão é inválida. Por favor, entre em contato com o seu banco." -#: inc/payments/payment-helper.php:519 +#: inc/payments/payment-helper.php:524 msgid "The payment amount is invalid. Please contact the site administrator." msgstr "O valor do pagamento é inválido. Por favor, entre em contato com o administrador do site." -#: inc/payments/payment-helper.php:522 +#: inc/payments/payment-helper.php:527 msgid "Your card information needs to be updated. Please contact your bank." msgstr "As informações do seu cartão precisam ser atualizadas. Por favor, entre em contato com seu banco." -#: inc/payments/payment-helper.php:523 +#: inc/payments/payment-helper.php:528 msgid "The card cannot be used for this transaction. Please contact your bank." msgstr "O cartão não pode ser usado para esta transação. Por favor, entre em contato com seu banco." -#: inc/payments/payment-helper.php:524 +#: inc/payments/payment-helper.php:529 msgid "The transaction is not permitted. Please contact your bank." msgstr "A transação não é permitida. Por favor, entre em contato com seu banco." -#: inc/payments/payment-helper.php:525 +#: inc/payments/payment-helper.php:530 msgid "Your card requires offline PIN authentication. Please try again." msgstr "Seu cartão requer autenticação de PIN offline. Por favor, tente novamente." -#: inc/payments/payment-helper.php:526 +#: inc/payments/payment-helper.php:531 msgid "Your card requires PIN authentication. Please try again." msgstr "Seu cartão requer autenticação por PIN. Por favor, tente novamente." -#: inc/payments/payment-helper.php:527 +#: inc/payments/payment-helper.php:532 msgid "You have exceeded the maximum number of PIN attempts. Please contact your bank." msgstr "Você excedeu o número máximo de tentativas de PIN. Por favor, entre em contato com o seu banco." -#: inc/payments/payment-helper.php:528 +#: inc/payments/payment-helper.php:533 msgid "All authorizations for this card have been revoked. Please contact your bank." msgstr "Todas as autorizações para este cartão foram revogadas. Por favor, entre em contato com seu banco." -#: inc/payments/payment-helper.php:529 +#: inc/payments/payment-helper.php:534 msgid "The authorization for this transaction has been revoked. Please try again." msgstr "A autorização para esta transação foi revogada. Por favor, tente novamente." -#: inc/payments/payment-helper.php:530 +#: inc/payments/payment-helper.php:535 msgid "This transaction is not allowed. Please contact your bank." msgstr "Esta transação não é permitida. Por favor, entre em contato com seu banco." -#: inc/payments/payment-helper.php:532 +#: inc/payments/payment-helper.php:537 msgid "Your card was declined. Your request was in live mode, but used a known test card." msgstr "Seu cartão foi recusado. Sua solicitação estava em modo ao vivo, mas usou um cartão de teste conhecido." -#: inc/payments/payment-helper.php:533 +#: inc/payments/payment-helper.php:538 msgid "Your card was declined. Your request was in test mode, but used a non test card. For a list of valid test cards, visit: https://stripe.com/docs/testing." msgstr "Seu cartão foi recusado. Sua solicitação estava em modo de teste, mas usou um cartão não teste. Para uma lista de cartões de teste válidos, visite: https://stripe.com/docs/testing." -#: inc/payments/payment-helper.php:536 +#: inc/payments/payment-helper.php:541 msgid "SureForms Subscription" msgstr "Assinatura SureForms" -#: inc/payments/payment-helper.php:537 +#: inc/payments/payment-helper.php:542 msgid "SureForms Payment" msgstr "Pagamento SureForms" -#: inc/payments/payment-helper.php:539 +#: inc/payments/payment-helper.php:544 msgid "SureForms Customer" msgstr "Cliente SureForms" -#: inc/payments/payment-helper.php:559 +#: inc/payments/payment-helper.php:564 msgid "Unknown error" msgstr "Erro desconhecido" @@ -14977,74 +14978,74 @@ msgstr "Falha ao criar formulário duplicado." #: inc/payments/front-end.php:97 #: inc/payments/front-end.php:298 -#: inc/payments/payment-helper.php:589 +#: inc/payments/payment-helper.php:594 msgid "Invalid form configuration." msgstr "Configuração de formulário inválida." -#: inc/payments/payment-helper.php:597 +#: inc/payments/payment-helper.php:602 msgid "Payment configuration not found for this form." msgstr "Configuração de pagamento não encontrada para este formulário." #. translators: 1: expected currency, 2: received currency -#: inc/payments/payment-helper.php:608 +#: inc/payments/payment-helper.php:613 #, php-format msgid "Currency mismatch: expected %1$s, received %2$s." msgstr "Incompatibilidade de moeda: esperado %1$s, recebido %2$s." #. translators: 1: expected amount with currency -#: inc/payments/payment-helper.php:625 +#: inc/payments/payment-helper.php:630 #, php-format msgid "Payment amount must be exactly %1$s." msgstr "O valor do pagamento deve ser exatamente %1$s." #. translators: 1: minimum amount with currency -#: inc/payments/payment-helper.php:636 +#: inc/payments/payment-helper.php:641 #, php-format msgid "Payment amount must be at least %1$s." msgstr "O valor do pagamento deve ser pelo menos %1$s." -#: inc/payments/payment-helper.php:712 +#: inc/payments/payment-helper.php:717 msgid "Invalid payment verification parameters." msgstr "Parâmetros de verificação de pagamento inválidos." -#: inc/payments/payment-helper.php:723 +#: inc/payments/payment-helper.php:728 msgid "Payment verification failed. Invalid payment intent." msgstr "Falha na verificação do pagamento. Intenção de pagamento inválida." -#: inc/payments/payment-helper.php:809 -#: inc/payments/payment-helper.php:947 +#: inc/payments/payment-helper.php:814 +#: inc/payments/payment-helper.php:952 msgid "Variable amount field configuration not found." msgstr "Configuração do campo de quantidade variável não encontrada." -#: inc/payments/payment-helper.php:830 +#: inc/payments/payment-helper.php:835 msgid "No payment options are configured for this field." msgstr "Nenhuma opção de pagamento está configurada para este campo." #. translators: %s: currency code -#: inc/payments/payment-helper.php:856 +#: inc/payments/payment-helper.php:861 msgid "Invalid payment amount. Please select a valid amount from the available options." msgstr "Quantia de pagamento inválida. Por favor, selecione uma quantia válida entre as opções disponíveis." #. translators: %1$s: expected amount, %2$s: payment amount -#: inc/payments/payment-helper.php:891 +#: inc/payments/payment-helper.php:896 msgid "Payment configuration not found." msgstr "Configuração de pagamento não encontrada." #. translators: %1$s: expected amount, %2$s: payment amount -#: inc/payments/payment-helper.php:907 -#: inc/payments/payment-helper.php:959 -#: inc/payments/payment-helper.php:995 +#: inc/payments/payment-helper.php:912 +#: inc/payments/payment-helper.php:964 +#: inc/payments/payment-helper.php:1000 #, php-format msgid "Payment amount mismatch. Expected %1$s, received %2$s." msgstr "Diferença no valor do pagamento. Esperado %1$s, recebido %2$s." -#: inc/payments/payment-helper.php:936 -#: inc/payments/payment-helper.php:986 +#: inc/payments/payment-helper.php:941 +#: inc/payments/payment-helper.php:991 msgid "Variable amount field value is required." msgstr "É necessário o valor do campo de quantidade variável." #. translators: %1$s: minimum amount, %2$s: payment amount -#: inc/payments/payment-helper.php:1007 +#: inc/payments/payment-helper.php:1012 #, php-format msgid "Payment amount below minimum. Minimum: %1$s, received %2$s." msgstr "Valor do pagamento abaixo do mínimo. Mínimo: %1$s, recebido %2$s." @@ -15130,7 +15131,7 @@ msgstr "Gateway de pagamento não encontrado." msgid "Refund processing is not supported for %s gateway." msgstr "O processamento de reembolsos não é suportado para o gateway %s." -#: inc/payments/payment-helper.php:969 +#: inc/payments/payment-helper.php:974 msgid "Number field configuration not found." msgstr "Configuração do campo numérico não encontrada." @@ -15249,12 +15250,12 @@ msgid "Stripe Settings" msgstr "Configurações do Stripe" #. translators: %1$s: SureForms version, %2$s: SureForms Pro Plugin Name, %3$s: SureForms Pro Version. -#: admin/admin.php:1376 +#: admin/admin.php:1377 #, php-format msgid "SureForms %1$s requires minimum %2$s %3$s to work properly. Please update to the latest version." msgstr "O SureForms %1$s requer o mínimo %2$s %3$s para funcionar corretamente. Por favor, atualize para a versão mais recente." -#: admin/admin.php:1389 +#: admin/admin.php:1390 msgid "Update Now" msgstr "Atualizar agora" @@ -15316,40 +15317,40 @@ msgstr "Selecione a posição do símbolo da moeda em relação ao valor." msgid "Learn" msgstr "Aprender" -#: admin/admin.php:1502 +#: admin/admin.php:1503 msgid "Amazing! SureForms is powering your forms and submissions - let's keep growing together!" msgstr "Incrível! SureForms está alimentando seus formulários e submissões - vamos continuar crescendo juntos!" -#: admin/admin.php:1503 +#: admin/admin.php:1504 msgid "If SureForms has been helpful, would you mind taking a moment to leave a 5-star review on WordPress.org?" msgstr "Se o SureForms foi útil, você se importaria de deixar um comentário de 5 estrelas no WordPress.org?" -#: admin/admin.php:1506 -#: admin/admin.php:1550 +#: admin/admin.php:1507 +#: admin/admin.php:1551 msgid "Maybe later" msgstr "Talvez mais tarde" -#: admin/admin.php:1507 +#: admin/admin.php:1508 msgid "I already did" msgstr "Eu já fiz" -#: admin/admin.php:1546 +#: admin/admin.php:1547 msgid "SureForms is ready to power your forms — explore what's possible!" msgstr "SureForms está pronto para potencializar seus formulários — explore o que é possível!" -#: admin/admin.php:1547 +#: admin/admin.php:1548 msgid "Manage your forms, track submissions, and discover features like AI Form Builder, payment integrations, and more from the SureForms dashboard." msgstr "Gerencie seus formulários, acompanhe as submissões e descubra recursos como o Construtor de Formulários com IA, integrações de pagamento e muito mais no painel do SureForms." -#: admin/admin.php:1549 +#: admin/admin.php:1550 msgid "Go to Dashboard" msgstr "Ir para o Painel" -#: admin/admin.php:1551 +#: admin/admin.php:1552 msgid "I already know" msgstr "Eu já sei" -#: admin/admin.php:1631 +#: admin/admin.php:1632 msgid "Invalid parameters." msgstr "Parâmetros inválidos." @@ -15739,7 +15740,7 @@ msgstr "Este formulário ainda não está disponível. Verifique novamente após #: inc/form-submit.php:99 #: inc/form-submit.php:400 #: inc/form-submit.php:445 -#: inc/form-submit.php:966 +#: inc/form-submit.php:968 #: inc/payments/front-end.php:77 #: inc/payments/front-end.php:258 #: inc/rest-api.php:98 @@ -15788,19 +15789,19 @@ msgstr "Por favor, verifique o formulário em busca de erros." msgid "Your submission was flagged as spam. Please try again." msgstr "Sua submissão foi marcada como spam. Por favor, tente novamente." -#: inc/form-submit.php:649 +#: inc/form-submit.php:651 msgid "Unable to submit form. Please try again." msgstr "Não foi possível enviar o formulário. Por favor, tente novamente." -#: inc/form-submit.php:901 +#: inc/form-submit.php:903 msgid "No SMTP plugin detected. Please configure an SMTP plugin to enable email sending." msgstr "Nenhum plugin SMTP detectado. Por favor, configure um plugin SMTP para habilitar o envio de e-mails." -#: inc/form-submit.php:902 +#: inc/form-submit.php:904 msgid "Email sending failed for an unknown reason." msgstr "O envio do e-mail falhou por uma razão desconhecida." -#: inc/form-submit.php:941 +#: inc/form-submit.php:943 msgid "No emails were sent." msgstr "Nenhum e-mail foi enviado." @@ -15953,31 +15954,31 @@ msgstr "Não foi possível excluir os pagamentos. Por favor, tente novamente." msgid "Unable to process refund. Please try again." msgstr "Não foi possível processar o reembolso. Por favor, tente novamente." -#: inc/payments/payment-helper.php:491 +#: inc/payments/payment-helper.php:496 msgid "Unable to complete payment. Please try again or contact support." msgstr "Não foi possível concluir o pagamento. Por favor, tente novamente ou entre em contato com o suporte." -#: inc/payments/payment-helper.php:513 +#: inc/payments/payment-helper.php:518 msgid "Unable to process card. Please try again." msgstr "Não foi possível processar o cartão. Por favor, tente novamente." -#: inc/payments/payment-helper.php:514 +#: inc/payments/payment-helper.php:519 msgid "Unable to process transaction. Please try again." msgstr "Não foi possível processar a transação. Por favor, tente novamente." -#: inc/payments/payment-helper.php:520 +#: inc/payments/payment-helper.php:525 msgid "Unable to reach card issuer. Please try again later." msgstr "Não foi possível contatar o emissor do cartão. Por favor, tente novamente mais tarde." -#: inc/payments/payment-helper.php:531 +#: inc/payments/payment-helper.php:536 msgid "Unable to process transaction. Please try again later." msgstr "Não foi possível processar a transação. Por favor, tente novamente mais tarde." -#: inc/payments/payment-helper.php:541 +#: inc/payments/payment-helper.php:546 msgid "Complete the form to view the amount." msgstr "Preencha o formulário para ver o valor." -#: inc/payments/payment-helper.php:542 +#: inc/payments/payment-helper.php:547 msgid "Unable to create payment. Please contact support." msgstr "Não foi possível criar o pagamento. Por favor, entre em contato com o suporte." @@ -16693,7 +16694,7 @@ msgid "Invalid webhook signature." msgstr "Assinatura de webhook inválida." #: admin/admin.php:426 -#: admin/admin.php:974 +#: admin/admin.php:975 #: assets/build/formEditor.js:172 msgid "Quizzes" msgstr "Questionários" @@ -16707,11 +16708,11 @@ msgstr "Entradas do Quiz" msgid "New" msgstr "Novo" -#: inc/form-submit.php:975 +#: inc/form-submit.php:977 msgid "Invalid form." msgstr "Formulário inválido." -#: inc/form-submit.php:980 +#: inc/form-submit.php:982 msgid "Too many requests. Please try again shortly." msgstr "Solicitações demais. Por favor, tente novamente em breve." @@ -17225,7 +17226,7 @@ msgstr "Selecione isto para criar um questionário com perguntas pontuadas e res #: admin/admin.php:458 #: admin/admin.php:459 -#: admin/admin.php:979 +#: admin/admin.php:980 msgid "Survey Reports" msgstr "Relatórios de Pesquisa" @@ -17491,7 +17492,7 @@ msgstr "Ajude a moldar o futuro do SureForms" #: assets/build/settings.js:172 msgid "Share how you use the plugin so we can build features that matter, fix issues faster, and make smarter decisions. " -msgstr "Compartilhe como você usa o plugin para que possamos desenvolver funcionalidades que importam, corrigir problemas mais rapidamente e tomar decisões mais inteligentes. " +msgstr "Compartilhe como você usa o plugin para que possamos desenvolver funcionalidades que importam, corrigir problemas mais rapidamente e tomar decisões mais inteligentes." #: assets/build/settings.js:172 msgid "Enable Google Address Autocomplete" @@ -17569,6 +17570,14 @@ msgstr "Mostrar resultados ao vivo aos respondentes" msgid "Perfect for feedback, polls, and research" msgstr "Perfeito para feedback, pesquisas e sondagens" +#: inc/payments/payment-helper.php:259 +msgid "Polish Złoty" +msgstr "Złoty polonês" + +#: assets/build/blocks.js:172 +msgid "Dynamic Default Value" +msgstr "Valor Padrão Dinâmico" + #: inc/post-types.php:205 msgctxt "post type general name" msgid "Forms" diff --git a/languages/sureforms.pot b/languages/sureforms.pot index 0021d0d0d..30939bd29 100644 --- a/languages/sureforms.pot +++ b/languages/sureforms.pot @@ -2,14 +2,14 @@ # This file is distributed under the GPLv2 or later. msgid "" msgstr "" -"Project-Id-Version: SureForms 2.8.0\n" +"Project-Id-Version: SureForms 2.8.1\n" "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/sureforms\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"POT-Creation-Date: 2026-04-15T10:24:05+00:00\n" +"POT-Creation-Date: 2026-04-24T10:40:54+00:00\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "X-Generator: WP-CLI 2.12.0\n" "X-Domain: sureforms\n" @@ -19,7 +19,7 @@ msgstr "" #: sureforms.php #: admin/admin.php:320 #: admin/admin.php:321 -#: admin/admin.php:1812 +#: admin/admin.php:1813 #: inc/abilities/abilities-registrar.php:133 #: inc/gutenberg-hooks.php:109 #: inc/page-builders/bricks/elements/form-widget.php:67 @@ -83,7 +83,7 @@ msgstr "" #: admin/admin.php:409 #: admin/admin.php:410 -#: admin/admin.php:2021 +#: admin/admin.php:2022 #: assets/build/blocks.js:172 #: assets/build/dashboard.js:172 #: assets/build/entries.js:172 @@ -96,7 +96,7 @@ msgid "Quiz Entries" msgstr "" #: admin/admin.php:426 -#: admin/admin.php:974 +#: admin/admin.php:975 #: assets/build/formEditor.js:172 msgid "Quizzes" msgstr "" @@ -108,7 +108,7 @@ msgstr "" #: admin/admin.php:458 #: admin/admin.php:459 -#: admin/admin.php:979 +#: admin/admin.php:980 msgid "Survey Reports" msgstr "" @@ -154,7 +154,7 @@ msgstr "" #: admin/admin.php:601 #: admin/admin.php:602 -#: admin/admin.php:1849 +#: admin/admin.php:1850 #: inc/global-settings/email-summary.php:225 #: assets/build/dashboard.js:172 #: assets/build/entries.js:172 @@ -223,68 +223,68 @@ msgid "Installed" msgstr "" #. translators: %1$s: SureForms version, %2$s: SureForms Pro Plugin Name, %3$s: SureForms Pro Version. -#: admin/admin.php:1376 +#: admin/admin.php:1377 #, php-format msgid "SureForms %1$s requires minimum %2$s %3$s to work properly. Please update to the latest version." msgstr "" -#: admin/admin.php:1389 +#: admin/admin.php:1390 msgid "Update Now" msgstr "" #. translators: %1$s: Opening anchor tag with URL, %2$s: Closing anchor tag, %3$s: SureForms Pro Plugin Name. -#: admin/admin.php:1441 +#: admin/admin.php:1442 #, php-format msgid "Please %1$sactivate%2$s your copy of %3$s to get new features, access support, receive update notifications, and more." msgstr "" #. translators: %1$s: SureForms version, %2$s: SureForms Pro Plugin Name, %3$s: SureForms Pro Version, %4$s: Anchor tag open, %5$s: Closing anchor tag. -#: admin/admin.php:1459 +#: admin/admin.php:1460 #, php-format msgid "SureForms %1$s requires minimum %2$s %3$s to work properly. Please update to the latest version from %4$shere%5$s." msgstr "" -#: admin/admin.php:1502 +#: admin/admin.php:1503 msgid "Amazing! SureForms is powering your forms and submissions - let's keep growing together!" msgstr "" -#: admin/admin.php:1503 +#: admin/admin.php:1504 msgid "If SureForms has been helpful, would you mind taking a moment to leave a 5-star review on WordPress.org?" msgstr "" -#: admin/admin.php:1505 +#: admin/admin.php:1506 msgid "Rate SureForms" msgstr "" -#: admin/admin.php:1506 -#: admin/admin.php:1550 +#: admin/admin.php:1507 +#: admin/admin.php:1551 msgid "Maybe later" msgstr "" -#: admin/admin.php:1507 +#: admin/admin.php:1508 msgid "I already did" msgstr "" -#: admin/admin.php:1546 +#: admin/admin.php:1547 msgid "SureForms is ready to power your forms — explore what's possible!" msgstr "" -#: admin/admin.php:1547 +#: admin/admin.php:1548 msgid "Manage your forms, track submissions, and discover features like AI Form Builder, payment integrations, and more from the SureForms dashboard." msgstr "" -#: admin/admin.php:1549 +#: admin/admin.php:1550 msgid "Go to Dashboard" msgstr "" -#: admin/admin.php:1551 +#: admin/admin.php:1552 msgid "I already know" msgstr "" -#: admin/admin.php:1607 -#: admin/admin.php:1706 -#: admin/admin.php:1744 -#: admin/admin.php:1765 +#: admin/admin.php:1608 +#: admin/admin.php:1707 +#: admin/admin.php:1745 +#: admin/admin.php:1766 #: inc/admin-ajax.php:162 #: inc/payments/admin/admin-handler.php:638 #: inc/payments/stripe/admin-stripe-handler.php:80 @@ -292,91 +292,91 @@ msgstr "" msgid "Invalid nonce." msgstr "" -#: admin/admin.php:1611 -#: admin/admin.php:1702 -#: admin/admin.php:1740 -#: admin/admin.php:1761 +#: admin/admin.php:1612 +#: admin/admin.php:1703 +#: admin/admin.php:1741 +#: admin/admin.php:1762 msgid "Unauthorized user." msgstr "" -#: admin/admin.php:1631 +#: admin/admin.php:1632 msgid "Invalid parameters." msgstr "" #. translators: 1: opening span, 2: opening strong (inline), 3: closing strong, 4: closing span, 5: opening strong (block), 6: closing strong -#: admin/admin.php:1711 +#: admin/admin.php:1712 #, php-format msgid "%1$sGet started by %2$sbuilding your first form%3$s.%4$s%5$sExperience the power of our intuitive AI Form Builder%6$s" msgstr "" -#: admin/admin.php:1722 +#: admin/admin.php:1723 msgid "SureForms is waiting for you!" msgstr "" -#: admin/admin.php:1724 +#: admin/admin.php:1725 msgid "Build My First Form" msgstr "" -#: admin/admin.php:1725 +#: admin/admin.php:1726 msgid "Dismiss" msgstr "" -#: admin/admin.php:1836 +#: admin/admin.php:1837 msgid "Recent Entries" msgstr "" -#: admin/admin.php:1837 +#: admin/admin.php:1838 msgid "( Last 7 days )" msgstr "" -#: admin/admin.php:1840 +#: admin/admin.php:1841 msgid "View" msgstr "" -#: admin/admin.php:1848 +#: admin/admin.php:1849 #: inc/global-settings/email-summary.php:224 #: assets/build/entries.js:172 #: assets/build/payments.js:172 msgid "Form Name" msgstr "" -#: admin/admin.php:1957 +#: admin/admin.php:1958 msgid "Use Conditional Logic to show only what matters" msgstr "" -#: admin/admin.php:1958 +#: admin/admin.php:1959 msgid "Split your form into steps to keep it easy" msgstr "" -#: admin/admin.php:1959 +#: admin/admin.php:1960 msgid "Let people upload files directly to your form" msgstr "" -#: admin/admin.php:1960 +#: admin/admin.php:1961 msgid "Turn responses into downloadable PDFs automatically" msgstr "" -#: admin/admin.php:1961 +#: admin/admin.php:1962 msgid "Let users sign with a simple signature field" msgstr "" -#: admin/admin.php:1962 +#: admin/admin.php:1963 msgid "Connect your form to other tools using webhooks" msgstr "" -#: admin/admin.php:1963 +#: admin/admin.php:1964 msgid "Use Conversational Forms for a chat-like experience" msgstr "" -#: admin/admin.php:1964 +#: admin/admin.php:1965 msgid "Let users register or log in through your form" msgstr "" -#: admin/admin.php:1965 +#: admin/admin.php:1966 msgid "Build forms that create WordPress user accounts" msgstr "" -#: admin/admin.php:1966 +#: admin/admin.php:1967 msgid "Add calculations to auto-total scores or prices" msgstr "" @@ -937,7 +937,7 @@ msgid "OttoKit is not configured properly." msgstr "" #: inc/admin-ajax.php:182 -#: inc/form-submit.php:970 +#: inc/form-submit.php:972 msgid "Invalid form ID." msgstr "" @@ -1237,6 +1237,7 @@ msgid "Unable to generate export file." msgstr "" #: inc/entries.php:729 +#: inc/smart-tags.php:128 #: assets/build/entries.js:172 msgid "Entry ID" msgstr "" @@ -1288,11 +1289,11 @@ msgstr "" msgid "Checkbox" msgstr "" -#: inc/fields/dropdown-markup.php:83 +#: inc/fields/dropdown-markup.php:84 msgid "Dropdown" msgstr "" -#: inc/fields/dropdown-markup.php:106 +#: inc/fields/dropdown-markup.php:108 #: inc/gutenberg-hooks.php:220 msgid "Select an option" msgstr "" @@ -1325,7 +1326,7 @@ msgstr "" msgid "Text field" msgstr "" -#: inc/fields/multichoice-markup.php:113 +#: inc/fields/multichoice-markup.php:114 msgid "Multi Choice" msgstr "" @@ -1334,7 +1335,7 @@ msgid "Number" msgstr "" #: inc/fields/payment-markup.php:249 -#: inc/payments/payment-helper.php:538 +#: inc/payments/payment-helper.php:543 msgid "Subscription Plan" msgstr "" @@ -1453,7 +1454,7 @@ msgstr "" #: inc/form-submit.php:99 #: inc/form-submit.php:400 #: inc/form-submit.php:445 -#: inc/form-submit.php:966 +#: inc/form-submit.php:968 #: inc/payments/front-end.php:77 #: inc/payments/front-end.php:258 #: inc/rest-api.php:98 @@ -1523,81 +1524,81 @@ msgstr "" msgid "Form data was not found." msgstr "" -#: inc/form-submit.php:649 +#: inc/form-submit.php:651 msgid "Unable to submit form. Please try again." msgstr "" -#: inc/form-submit.php:821 +#: inc/form-submit.php:823 msgid "Email notification passed to the sending server" msgstr "" #. translators: Here, %s is the comma separated emails list. -#: inc/form-submit.php:894 +#: inc/form-submit.php:896 #, php-format msgid "Email notification recipient: %s" msgstr "" -#: inc/form-submit.php:901 +#: inc/form-submit.php:903 msgid "No SMTP plugin detected. Please configure an SMTP plugin to enable email sending." msgstr "" -#: inc/form-submit.php:902 +#: inc/form-submit.php:904 msgid "Email sending failed for an unknown reason." msgstr "" #. translators: Here, %1$s is the comma separated emails list and %2$s is error report ( if any ). -#: inc/form-submit.php:911 +#: inc/form-submit.php:913 #, php-format msgid "Email server was unable to send the email notification. Recipient: %1$s. Reason: %2$s" msgstr "" -#: inc/form-submit.php:941 +#: inc/form-submit.php:943 msgid "No emails were sent." msgstr "" -#: inc/form-submit.php:975 +#: inc/form-submit.php:977 msgid "Invalid form." msgstr "" -#: inc/form-submit.php:980 +#: inc/form-submit.php:982 msgid "Too many requests. Please try again shortly." msgstr "" -#: inc/form-submit.php:1091 +#: inc/form-submit.php:1093 msgid "Captcha validation failed. No error code provided." msgstr "" -#: inc/form-submit.php:1092 +#: inc/form-submit.php:1094 msgid "Captcha validation failed." msgstr "" -#: inc/form-submit.php:1147 +#: inc/form-submit.php:1149 #: assets/build/formEditor.js:172 #: assets/build/settings.js:172 msgid "Google reCAPTCHA" msgstr "" -#: inc/form-submit.php:1151 +#: inc/form-submit.php:1153 #: assets/build/formEditor.js:172 #: assets/build/settings.js:172 msgid "hCaptcha" msgstr "" -#: inc/form-submit.php:1155 +#: inc/form-submit.php:1157 #: assets/build/settings.js:172 msgid "Cloudflare Turnstile" msgstr "" -#: inc/form-submit.php:1159 +#: inc/form-submit.php:1161 msgid "Unknown Captcha" msgstr "" -#: inc/form-submit.php:1160 +#: inc/form-submit.php:1162 msgid "Invalid captcha type." msgstr "" #. translators: %s is the captcha title. -#: inc/form-submit.php:1173 +#: inc/form-submit.php:1175 #, php-format msgid "%s verification failed. Please contact your site administrator." msgstr "" @@ -2792,7 +2793,7 @@ msgstr "" #: inc/payments/front-end.php:97 #: inc/payments/front-end.php:298 -#: inc/payments/payment-helper.php:589 +#: inc/payments/payment-helper.php:594 msgid "Invalid form configuration." msgstr "" @@ -3121,399 +3122,403 @@ msgid "Norwegian Krone" msgstr "" #: inc/payments/payment-helper.php:259 -msgid "South Korean Won" +msgid "Polish Złoty" msgstr "" #: inc/payments/payment-helper.php:264 -msgid "Turkish Lira" +msgid "South Korean Won" msgstr "" #: inc/payments/payment-helper.php:269 -msgid "Russian Ruble" +msgid "Turkish Lira" msgstr "" #: inc/payments/payment-helper.php:274 -msgid "Indian Rupee" +msgid "Russian Ruble" msgstr "" #: inc/payments/payment-helper.php:279 -msgid "Brazilian Real" +msgid "Indian Rupee" msgstr "" #: inc/payments/payment-helper.php:284 -msgid "South African Rand" +msgid "Brazilian Real" msgstr "" #: inc/payments/payment-helper.php:289 -msgid "UAE Dirham" +msgid "South African Rand" msgstr "" #: inc/payments/payment-helper.php:294 -msgid "Philippine Peso" +msgid "UAE Dirham" msgstr "" #: inc/payments/payment-helper.php:299 -msgid "Indonesian Rupiah" +msgid "Philippine Peso" msgstr "" #: inc/payments/payment-helper.php:304 -msgid "Malaysian Ringgit" +msgid "Indonesian Rupiah" msgstr "" #: inc/payments/payment-helper.php:309 -msgid "Thai Baht" +msgid "Malaysian Ringgit" msgstr "" #: inc/payments/payment-helper.php:314 -msgid "Burundian Franc" +msgid "Thai Baht" msgstr "" #: inc/payments/payment-helper.php:319 -msgid "Chilean Peso" +msgid "Burundian Franc" msgstr "" #: inc/payments/payment-helper.php:324 -msgid "Djiboutian Franc" +msgid "Chilean Peso" msgstr "" #: inc/payments/payment-helper.php:329 -msgid "Guinean Franc" +msgid "Djiboutian Franc" msgstr "" #: inc/payments/payment-helper.php:334 -msgid "Comorian Franc" +msgid "Guinean Franc" msgstr "" #: inc/payments/payment-helper.php:339 -msgid "Malagasy Ariary" +msgid "Comorian Franc" msgstr "" #: inc/payments/payment-helper.php:344 -msgid "Paraguayan Guaraní" +msgid "Malagasy Ariary" msgstr "" #: inc/payments/payment-helper.php:349 -msgid "Rwandan Franc" +msgid "Paraguayan Guaraní" msgstr "" #: inc/payments/payment-helper.php:354 -msgid "Ugandan Shilling" +msgid "Rwandan Franc" msgstr "" #: inc/payments/payment-helper.php:359 -msgid "Vietnamese Đồng" +msgid "Ugandan Shilling" msgstr "" #: inc/payments/payment-helper.php:364 -msgid "Vanuatu Vatu" +msgid "Vietnamese Đồng" msgstr "" #: inc/payments/payment-helper.php:369 -msgid "Central African CFA Franc" +msgid "Vanuatu Vatu" msgstr "" #: inc/payments/payment-helper.php:374 -msgid "West African CFA Franc" +msgid "Central African CFA Franc" msgstr "" #: inc/payments/payment-helper.php:379 +msgid "West African CFA Franc" +msgstr "" + +#: inc/payments/payment-helper.php:384 msgid "CFP Franc" msgstr "" -#: inc/payments/payment-helper.php:475 +#: inc/payments/payment-helper.php:480 msgid "An unknown error occurred. Please try again or contact the site administrator." msgstr "" -#: inc/payments/payment-helper.php:477 +#: inc/payments/payment-helper.php:482 msgid "Payment is currently unavailable. Please contact the site administrator." msgstr "" -#: inc/payments/payment-helper.php:478 +#: inc/payments/payment-helper.php:483 msgid "Payment is currently unavailable. Please contact the site administrator to configure the payment amount." msgstr "" -#: inc/payments/payment-helper.php:479 +#: inc/payments/payment-helper.php:484 msgid "Invalid payment amount" msgstr "" -#: inc/payments/payment-helper.php:480 +#: inc/payments/payment-helper.php:485 msgid "Payment amount must be at least {symbol}{amount}." msgstr "" -#: inc/payments/payment-helper.php:483 +#: inc/payments/payment-helper.php:488 msgid "Payment is currently unavailable. Please contact the site administrator to configure the customer name field." msgstr "" -#: inc/payments/payment-helper.php:484 +#: inc/payments/payment-helper.php:489 msgid "Payment is currently unavailable. Please contact the site administrator to configure the customer email field." msgstr "" -#: inc/payments/payment-helper.php:485 +#: inc/payments/payment-helper.php:490 msgid "Please enter your name." msgstr "" -#: inc/payments/payment-helper.php:486 +#: inc/payments/payment-helper.php:491 msgid "Please enter your email." msgstr "" -#: inc/payments/payment-helper.php:489 +#: inc/payments/payment-helper.php:494 msgid "Payment failed" msgstr "" -#: inc/payments/payment-helper.php:490 +#: inc/payments/payment-helper.php:495 msgid "Payment successful" msgstr "" -#: inc/payments/payment-helper.php:491 +#: inc/payments/payment-helper.php:496 msgid "Unable to complete payment. Please try again or contact support." msgstr "" -#: inc/payments/payment-helper.php:494 -#: inc/payments/payment-helper.php:495 +#: inc/payments/payment-helper.php:499 +#: inc/payments/payment-helper.php:500 msgid "Your card was declined. Please try a different payment method or contact your bank." msgstr "" -#: inc/payments/payment-helper.php:496 +#: inc/payments/payment-helper.php:501 msgid "Your card has insufficient funds. Please use a different payment method." msgstr "" -#: inc/payments/payment-helper.php:497 +#: inc/payments/payment-helper.php:502 msgid "Your card was declined because it has been reported as lost. Please contact your bank." msgstr "" -#: inc/payments/payment-helper.php:498 +#: inc/payments/payment-helper.php:503 msgid "Your card was declined because it has been reported as stolen. Please contact your bank." msgstr "" -#: inc/payments/payment-helper.php:499 +#: inc/payments/payment-helper.php:504 msgid "Your card has expired. Please use a different payment method." msgstr "" -#: inc/payments/payment-helper.php:500 -#: inc/payments/payment-helper.php:521 +#: inc/payments/payment-helper.php:505 +#: inc/payments/payment-helper.php:526 msgid "Your card was declined. Please contact your bank for more information." msgstr "" -#: inc/payments/payment-helper.php:501 +#: inc/payments/payment-helper.php:506 msgid "Your card was declined due to restrictions. Please contact your bank." msgstr "" -#: inc/payments/payment-helper.php:502 +#: inc/payments/payment-helper.php:507 msgid "Your card was declined due to a security violation. Please contact your bank." msgstr "" -#: inc/payments/payment-helper.php:503 +#: inc/payments/payment-helper.php:508 msgid "Your card does not support this type of purchase. Please use a different payment method." msgstr "" -#: inc/payments/payment-helper.php:504 +#: inc/payments/payment-helper.php:509 msgid "A stop payment order has been placed on this card. Please contact your bank." msgstr "" -#: inc/payments/payment-helper.php:505 +#: inc/payments/payment-helper.php:510 msgid "A test card was used in a live environment. Please use a real card." msgstr "" -#: inc/payments/payment-helper.php:506 +#: inc/payments/payment-helper.php:511 msgid "Your card has exceeded its withdrawal limit. Please contact your bank." msgstr "" -#: inc/payments/payment-helper.php:507 +#: inc/payments/payment-helper.php:512 msgid "Your card's security code is incorrect. Please check and try again." msgstr "" -#: inc/payments/payment-helper.php:508 +#: inc/payments/payment-helper.php:513 msgid "Your card number is incorrect. Please check and try again." msgstr "" -#: inc/payments/payment-helper.php:509 +#: inc/payments/payment-helper.php:514 msgid "Your card's security code is invalid. Please check and try again." msgstr "" -#: inc/payments/payment-helper.php:510 +#: inc/payments/payment-helper.php:515 msgid "Your card's expiration month is invalid. Please check and try again." msgstr "" -#: inc/payments/payment-helper.php:511 +#: inc/payments/payment-helper.php:516 msgid "Your card's expiration year is invalid. Please check and try again." msgstr "" -#: inc/payments/payment-helper.php:512 +#: inc/payments/payment-helper.php:517 msgid "Your card number is invalid. Please check and try again." msgstr "" -#: inc/payments/payment-helper.php:513 +#: inc/payments/payment-helper.php:518 msgid "Unable to process card. Please try again." msgstr "" -#: inc/payments/payment-helper.php:514 +#: inc/payments/payment-helper.php:519 msgid "Unable to process transaction. Please try again." msgstr "" -#: inc/payments/payment-helper.php:515 +#: inc/payments/payment-helper.php:520 msgid "Your card is not supported for this transaction. Please use a different payment method." msgstr "" -#: inc/payments/payment-helper.php:516 +#: inc/payments/payment-helper.php:521 msgid "Your card does not support the currency used for this transaction. Please use a different payment method." msgstr "" -#: inc/payments/payment-helper.php:517 +#: inc/payments/payment-helper.php:522 msgid "A transaction with identical details was submitted recently. Please wait a moment and try again." msgstr "" -#: inc/payments/payment-helper.php:518 +#: inc/payments/payment-helper.php:523 msgid "The account associated with your card is invalid. Please contact your bank." msgstr "" -#: inc/payments/payment-helper.php:519 +#: inc/payments/payment-helper.php:524 msgid "The payment amount is invalid. Please contact the site administrator." msgstr "" -#: inc/payments/payment-helper.php:520 +#: inc/payments/payment-helper.php:525 msgid "Unable to reach card issuer. Please try again later." msgstr "" -#: inc/payments/payment-helper.php:522 +#: inc/payments/payment-helper.php:527 msgid "Your card information needs to be updated. Please contact your bank." msgstr "" -#: inc/payments/payment-helper.php:523 +#: inc/payments/payment-helper.php:528 msgid "The card cannot be used for this transaction. Please contact your bank." msgstr "" -#: inc/payments/payment-helper.php:524 +#: inc/payments/payment-helper.php:529 msgid "The transaction is not permitted. Please contact your bank." msgstr "" -#: inc/payments/payment-helper.php:525 +#: inc/payments/payment-helper.php:530 msgid "Your card requires offline PIN authentication. Please try again." msgstr "" -#: inc/payments/payment-helper.php:526 +#: inc/payments/payment-helper.php:531 msgid "Your card requires PIN authentication. Please try again." msgstr "" -#: inc/payments/payment-helper.php:527 +#: inc/payments/payment-helper.php:532 msgid "You have exceeded the maximum number of PIN attempts. Please contact your bank." msgstr "" -#: inc/payments/payment-helper.php:528 +#: inc/payments/payment-helper.php:533 msgid "All authorizations for this card have been revoked. Please contact your bank." msgstr "" -#: inc/payments/payment-helper.php:529 +#: inc/payments/payment-helper.php:534 msgid "The authorization for this transaction has been revoked. Please try again." msgstr "" -#: inc/payments/payment-helper.php:530 +#: inc/payments/payment-helper.php:535 msgid "This transaction is not allowed. Please contact your bank." msgstr "" -#: inc/payments/payment-helper.php:531 +#: inc/payments/payment-helper.php:536 msgid "Unable to process transaction. Please try again later." msgstr "" -#: inc/payments/payment-helper.php:532 +#: inc/payments/payment-helper.php:537 msgid "Your card was declined. Your request was in live mode, but used a known test card." msgstr "" -#: inc/payments/payment-helper.php:533 +#: inc/payments/payment-helper.php:538 msgid "Your card was declined. Your request was in test mode, but used a non test card. For a list of valid test cards, visit: https://stripe.com/docs/testing." msgstr "" -#: inc/payments/payment-helper.php:536 +#: inc/payments/payment-helper.php:541 msgid "SureForms Subscription" msgstr "" -#: inc/payments/payment-helper.php:537 +#: inc/payments/payment-helper.php:542 msgid "SureForms Payment" msgstr "" -#: inc/payments/payment-helper.php:539 +#: inc/payments/payment-helper.php:544 msgid "SureForms Customer" msgstr "" -#: inc/payments/payment-helper.php:541 +#: inc/payments/payment-helper.php:546 msgid "Complete the form to view the amount." msgstr "" -#: inc/payments/payment-helper.php:542 +#: inc/payments/payment-helper.php:547 msgid "Unable to create payment. Please contact support." msgstr "" -#: inc/payments/payment-helper.php:559 +#: inc/payments/payment-helper.php:564 msgid "Unknown error" msgstr "" -#: inc/payments/payment-helper.php:597 +#: inc/payments/payment-helper.php:602 msgid "Payment configuration not found for this form." msgstr "" #. translators: 1: expected currency, 2: received currency -#: inc/payments/payment-helper.php:608 +#: inc/payments/payment-helper.php:613 #, php-format msgid "Currency mismatch: expected %1$s, received %2$s." msgstr "" #. translators: 1: expected amount with currency -#: inc/payments/payment-helper.php:625 +#: inc/payments/payment-helper.php:630 #, php-format msgid "Payment amount must be exactly %1$s." msgstr "" #. translators: 1: minimum amount with currency -#: inc/payments/payment-helper.php:636 +#: inc/payments/payment-helper.php:641 #, php-format msgid "Payment amount must be at least %1$s." msgstr "" -#: inc/payments/payment-helper.php:712 +#: inc/payments/payment-helper.php:717 msgid "Invalid payment verification parameters." msgstr "" -#: inc/payments/payment-helper.php:723 +#: inc/payments/payment-helper.php:728 msgid "Payment verification failed. Invalid payment intent." msgstr "" -#: inc/payments/payment-helper.php:809 -#: inc/payments/payment-helper.php:947 +#: inc/payments/payment-helper.php:814 +#: inc/payments/payment-helper.php:952 msgid "Variable amount field configuration not found." msgstr "" -#: inc/payments/payment-helper.php:830 +#: inc/payments/payment-helper.php:835 msgid "No payment options are configured for this field." msgstr "" #. translators: %s: currency code -#: inc/payments/payment-helper.php:856 +#: inc/payments/payment-helper.php:861 msgid "Invalid payment amount. Please select a valid amount from the available options." msgstr "" #. translators: %1$s: expected amount, %2$s: payment amount -#: inc/payments/payment-helper.php:891 +#: inc/payments/payment-helper.php:896 msgid "Payment configuration not found." msgstr "" #. translators: %1$s: expected amount, %2$s: payment amount -#: inc/payments/payment-helper.php:907 -#: inc/payments/payment-helper.php:959 -#: inc/payments/payment-helper.php:995 +#: inc/payments/payment-helper.php:912 +#: inc/payments/payment-helper.php:964 +#: inc/payments/payment-helper.php:1000 #, php-format msgid "Payment amount mismatch. Expected %1$s, received %2$s." msgstr "" -#: inc/payments/payment-helper.php:936 -#: inc/payments/payment-helper.php:986 +#: inc/payments/payment-helper.php:941 +#: inc/payments/payment-helper.php:991 msgid "Variable amount field value is required." msgstr "" -#: inc/payments/payment-helper.php:969 +#: inc/payments/payment-helper.php:974 msgid "Number field configuration not found." msgstr "" #. translators: %1$s: minimum amount, %2$s: payment amount -#: inc/payments/payment-helper.php:1007 +#: inc/payments/payment-helper.php:1012 #, php-format msgid "Payment amount below minimum. Minimum: %1$s, received %2$s." msgstr "" @@ -4541,7 +4546,7 @@ msgid "Current Page URL" msgstr "" #: inc/smart-tags.php:111 -#: inc/smart-tags.php:142 +#: inc/smart-tags.php:143 msgid "Admin Email" msgstr "" @@ -4582,7 +4587,7 @@ msgid "User Last Name" msgstr "" #: inc/smart-tags.php:122 -#: inc/smart-tags.php:143 +#: inc/smart-tags.php:144 msgid "User Email" msgstr "" @@ -4606,11 +4611,11 @@ msgstr "" msgid "Embedded Post/Page Title" msgstr "" -#: inc/smart-tags.php:128 +#: inc/smart-tags.php:129 msgid "Populate by GET Param" msgstr "" -#: inc/smart-tags.php:129 +#: inc/smart-tags.php:130 msgid "Cookie Value" msgstr "" @@ -12818,6 +12823,10 @@ msgstr "" msgid "Single Choice Only" msgstr "" +#: assets/build/blocks.js:172 +msgid "Dynamic Default Value" +msgstr "" + #: assets/build/blocks.js:172 msgid "Select Country" msgstr "" diff --git a/package-lock.json b/package-lock.json index 0248f0cdd..98846cdaf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "sureforms", - "version": "2.8.0", + "version": "2.8.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "sureforms", - "version": "2.8.0", + "version": "2.8.1", "license": "GPL", "dependencies": { "@bsf/force-ui": "git+https://github.com/brainstormforce/bsf-admin-ui#v1.7.7", diff --git a/package.json b/package.json index 78f61d8c3..701ad5377 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "sureforms", - "version": "2.8.0", + "version": "2.8.1", "description": "A simple yet powerful way to add forms to your website.", "main": "index.js", "scripts": { diff --git a/readme.txt b/readme.txt index 30d0bb2b2..6bb34ee06 100644 --- a/readme.txt +++ b/readme.txt @@ -4,7 +4,7 @@ Tags: forms, contact form, custom form, payment form, form builder Requires at least: 6.4 Tested up to: 6.9.4 Requires PHP: 7.4 -Stable tag: 2.8.0 +Stable tag: 2.8.1 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html @@ -478,6 +478,14 @@ You can collect payments securely through Stripe in the free version. PayPal pay You can report the issue through our [Bug Bounty Program](https://brainstormforce.com/bug-bounty-program/). We collaborate with Patchstack to provide opportunities for researchers to report vulnerabilities. The Patchstack team will help validate, triage, and handle any reported security issues. == Changelog == += 2.8.1 - 27th April 2026 = +* New: Added support for dynamic default values on Dropdown and Multi-Choice fields. +* New: Added {entry_id} smart tag for use in email templates, confirmations, and dynamic content. +* Improvement: Added PLN (Polish Złoty) to the currency dropdown. +* Fix: Fixed background color not applying correctly in non-iframe editor mode. +* Fix: Fixed MCP endpoint REST URL resolution so it uses the correct site URL. +* Fix: Fixed Phone field country flag unexpectedly changing during browser autocomplete. +* Fix: Fixed review/validation issues in Global Settings. = 2.8.0 - 16th April 2026 = * New: Added My Account page allowing users to view and manage their payment history and subscriptions. * Improvement: Phone number country detection moved to backend with caching, reducing multiple API calls. @@ -494,16 +502,6 @@ You can report the issue through our [Bug Bounty Program](https://brainstormforc * Fix: Fixed slugs with underscores not mapping correctly during smart tag and integration processing. * Fix: Fixed textarea values losing line breaks in {form:field} smart tags. * Fix: Fixed {current_page_url} smart tag resolving to REST API URL in email notifications. -= 2.7.0 - 31st March 2026 = -* New: Added styling options for Gutenberg SureForms Form Block. -* New: Added styling options for Bricks Builder SureForms Form Element. -* New: Added styling options for Elementor SureForms Form Widget. -* Fix: Fixed "Send as Raw HTML" email option wrapping content in unwanted template markup. -* Fix: Fixed Multi Choice option labels with extra whitespace failing to resolve numeric values in payment calculations. -* Fix: Fixed block slug not locking when a smart tag is inserted via the pro plugin. -* Fix: Fixed dynamic tag URLs being auto-linked with HTML markup when used in redirect query parameters. -* Fix: Fixed theme text-transform styles cascading into form input fields. -* Fix: Fixed unique field validation endpoint exposing submitted data to unauthenticated enumeration attacks. The full changelog is available [here](https://sureforms.com/whats-new/). == Upgrade Notice == diff --git a/src/admin/settings/pages/MCP.js b/src/admin/settings/pages/MCP.js index d6fad8e78..e89c41cc8 100644 --- a/src/admin/settings/pages/MCP.js +++ b/src/admin/settings/pages/MCP.js @@ -347,7 +347,7 @@ const McpAdapterPrompt = ( { adapterStatus: initialStatus } ) => { }; const MCPPage = ( { loading, mcpTabOptions, updateGlobalSettings } ) => { - const mcpEndpointUrl = `${ srfm_admin.site_url }/wp-json/sureforms/v1/mcp`; + const mcpEndpointUrl = srfm_admin.mcp_endpoint_url; const adapterStatus = srfm_admin?.mcp_adapter_status || 'not_installed'; const isAdapterActive = 'active' === adapterStatus; diff --git a/src/admin/single-form-settings/Editor.js b/src/admin/single-form-settings/Editor.js index dcb112ce7..1c843657b 100644 --- a/src/admin/single-form-settings/Editor.js +++ b/src/admin/single-form-settings/Editor.js @@ -612,6 +612,7 @@ const SureformsFormSpecificSettings = () => { iframeBody={ documentBody } rootHtmlTag={ rootHtmlTag } editorMode={ editorMode } + shouldIframe={ shouldIframe } /> ) } diff --git a/src/admin/single-form-settings/tabs/StyleSettings.js b/src/admin/single-form-settings/tabs/StyleSettings.js index 6195ddbe6..9af385fee 100644 --- a/src/admin/single-form-settings/tabs/StyleSettings.js +++ b/src/admin/single-form-settings/tabs/StyleSettings.js @@ -34,6 +34,7 @@ function StyleSettings( props ) { iframeBody, editorMode, rootHtmlTag, + shouldIframe, } = props; let sureformsKeys = useSelect( @@ -45,7 +46,7 @@ function StyleSettings( props ) { [ editorStore ] ); const formStyling = sureformsKeys?._srfm_forms_styling || {}; - const rootRef = iframeBody; + const rootRef = shouldIframe ? iframeBody : iframeBody?.querySelector( '.editor-styles-wrapper' ); const deviceType = useDeviceType(); const [ submitBtn, setSubmitBtn ] = useState( null ); @@ -124,9 +125,9 @@ function StyleSettings( props ) { useEffect( () => { setTimeout( () => { setSubmitBtnCtn( - rootRef.querySelector( '.srfm-submit-btn-container' ) + rootRef?.querySelector( '.srfm-submit-btn-container' ) ); - setSubmitBtn( rootRef.querySelector( '.srfm-submit-richtext' ) ); + setSubmitBtn( rootRef?.querySelector( '.srfm-submit-richtext' ) ); submitButtonInherit(); }, 1000 ); }, [ diff --git a/src/admin/tw-base.scss b/src/admin/tw-base.scss index 1557c91a4..225cf68d5 100644 --- a/src/admin/tw-base.scss +++ b/src/admin/tw-base.scss @@ -70,7 +70,7 @@ } } // Hide WP notices in entries screen -#wpbody:has( #srfm-entries-root, #srfm-survey-reports-root, #srfm-quiz-entries-root, #srfm-payments-react-container, #srfm-learn-root ) { +#wpbody:has( #srfm-entries-root, #srfm-survey-reports-root, #srfm-survey-empty-state-root, #srfm-quiz-entries-root, #srfm-payments-react-container, #srfm-learn-root ) { #wpbody-content > .notice { display: none; } diff --git a/src/blocks/dropdown/edit.js b/src/blocks/dropdown/edit.js index 320c5739a..9de169548 100644 --- a/src/blocks/dropdown/edit.js +++ b/src/blocks/dropdown/edit.js @@ -58,6 +58,7 @@ const Edit = ( props ) => { maxValue, showValues, preselectedOptions = [], + dynamicDefaultValue, } = attributes; const currentFormId = useGetCurrentFormId( clientId ); const [ newOption, setNewOption ] = useState( '' ); @@ -524,11 +525,34 @@ const Edit = ( props ) => { label={ __( 'Allow Multiple', 'sureforms' ) } checked={ multiSelect } onChange={ ( checked ) => - setAttributes( { multiSelect: checked } ) + setAttributes( { + multiSelect: checked, + ...( checked && { + dynamicDefaultValue: '', + } ), + } ) } /> ), }, + { + id: 'dynamicDefaultValue', + component: ! multiSelect ? ( + + setAttributes( { dynamicDefaultValue: value } ) + } + /> + ) : null, + }, { id: 'minMaxComponent', component: minMaxComponent, diff --git a/src/blocks/multi-choice/edit.js b/src/blocks/multi-choice/edit.js index c4cb04785..6ca3740f4 100644 --- a/src/blocks/multi-choice/edit.js +++ b/src/blocks/multi-choice/edit.js @@ -61,6 +61,7 @@ const Edit = ( props ) => { maxValue, showValues, preselectedOptions = [], + dynamicDefaultValue, } = attributes; const currentFormId = useGetCurrentFormId( clientId ); @@ -619,11 +620,34 @@ const Edit = ( props ) => { label={ __( 'Single Choice Only', 'sureforms' ) } checked={ singleSelection } onChange={ ( checked ) => - setAttributes( { singleSelection: checked } ) + setAttributes( { + singleSelection: checked, + ...( ! checked && { + dynamicDefaultValue: '', + } ), + } ) } /> ), }, + { + id: 'dynamicDefaultValue', + component: singleSelection ? ( + + setAttributes( { dynamicDefaultValue: value } ) + } + /> + ) : null, + }, { id: 'min-max', component: minMaxValue, diff --git a/sureforms.php b/sureforms.php index 3ab44be0e..6681276cc 100644 --- a/sureforms.php +++ b/sureforms.php @@ -7,7 +7,7 @@ * Requires PHP: 7.4 * Author: SureForms * Author URI: https://sureforms.com/ - * Version: 2.8.0 + * Version: 2.8.1 * License: GPLv2 or later * Text Domain: sureforms * @@ -25,7 +25,7 @@ define( 'SRFM_BASENAME', plugin_basename( SRFM_FILE ) ); define( 'SRFM_DIR', plugin_dir_path( SRFM_FILE ) ); define( 'SRFM_URL', plugins_url( '/', SRFM_FILE ) ); -define( 'SRFM_VER', '2.8.0' ); +define( 'SRFM_VER', '2.8.1' ); define( 'SRFM_SLUG', 'srfm' ); // ------ ADDITIONAL CONSTANTS ------- // define( 'SRFM_FORMS_POST_TYPE', 'sureforms_form' ); @@ -35,7 +35,7 @@ define( 'SRFM_AI_MIDDLEWARE', 'https://credits.startertemplates.com/sureforms/' ); define( 'SRFM_MIDDLEWARE_BASE_URL', 'https://api.sureforms.com/' ); define( 'SRFM_BILLING_PORTAL', 'https://billing.sureforms.com/' ); -define( 'SRFM_PRO_RECOMMENDED_VER', '2.8.0' ); +define( 'SRFM_PRO_RECOMMENDED_VER', '2.8.2' ); define( 'SRFM_SURETRIGGERS_INTEGRATION_BASE_URL', 'https://app.ottokit.com/' ); diff --git a/tests/unit/inc/fields/test-dropdown-markup.php b/tests/unit/inc/fields/test-dropdown-markup.php index ca01dacc2..5708e0e8d 100644 --- a/tests/unit/inc/fields/test-dropdown-markup.php +++ b/tests/unit/inc/fields/test-dropdown-markup.php @@ -62,6 +62,50 @@ public function test_data_attribute_markup_empty_for_single_select() { $this->assertSame( '', $result ); } + /** + * Test resolve_dynamic_default pre-selects the matching option via GET param. + */ + public function test_resolve_dynamic_default() { + $_SERVER['QUERY_STRING'] = 'country=Canada'; + + $attributes = [ + 'required' => false, + 'fieldWidth' => '', + 'label' => 'Select Country', + 'help' => '', + 'block_id' => 'dd002', + 'formId' => '1', + 'slug' => 'select-country', + 'placeholder' => 'Select an option', + 'defaultValue' => '', + 'checked' => '', + 'isUnique' => false, + 'options' => [ + [ 'label' => 'USA', 'icon' => '' ], + [ 'label' => 'Canada', 'icon' => '' ], + [ 'label' => 'UK', 'icon' => '' ], + ], + 'multiSelect' => false, + 'searchable' => false, + 'preselectedOptions' => [], + 'errorMsg' => '', + 'minValue' => '', + 'maxValue' => '', + 'dynamicDefaultValue' => '{get_input:country}', + ]; + $dd = new Dropdown_Markup( $attributes ); + $markup = $dd->markup(); + + // "Canada" should have "selected" attribute. + $this->assertMatchesRegularExpression( + '/]*value="Canada"[^>]*selected/', + $markup, + 'Option "Canada" should be selected.' + ); + + unset( $_SERVER['QUERY_STRING'] ); + } + private function call_private_method( $object, $method_name, $parameters = [] ) { $reflection = new \ReflectionClass( get_class( $object ) ); $method = $reflection->getMethod( $method_name ); diff --git a/tests/unit/inc/fields/test-multichoice-markup.php b/tests/unit/inc/fields/test-multichoice-markup.php index 9d0b5cb7b..853279bdb 100644 --- a/tests/unit/inc/fields/test-multichoice-markup.php +++ b/tests/unit/inc/fields/test-multichoice-markup.php @@ -92,4 +92,50 @@ public function test_markup_uses_radio_in_single_selection() { $this->assertStringContainsString( 'srfm-radio-mode', $markup ); $this->assertStringContainsString( 'name="srfm-input-multi-choice-mc002"', $markup ); } + + /** + * Test resolve_dynamic_default pre-selects the matching option via GET param. + */ + public function test_resolve_dynamic_default() { + $_SERVER['QUERY_STRING'] = 'service=Blue'; + + $attributes = [ + 'required' => false, + 'fieldWidth' => '', + 'label' => 'Pick Color', + 'help' => '', + 'block_id' => 'mc003', + 'formId' => '1', + 'slug' => 'pick-color', + 'placeholder' => '', + 'defaultValue' => '', + 'checked' => '', + 'isUnique' => false, + 'options' => [ + [ 'optionTitle' => 'Red', 'icon' => '', 'image' => '' ], + [ 'optionTitle' => 'Blue', 'icon' => '', 'image' => '' ], + [ 'optionTitle' => 'Green', 'icon' => '', 'image' => '' ], + ], + 'singleSelection' => true, + 'choiceWidth' => '', + 'verticalLayout' => false, + 'optionType' => 'icon', + 'errorMsg' => '', + 'minValue' => '', + 'maxValue' => '', + 'preselectedOptions' => [], + 'dynamicDefaultValue' => '{get_input:service}', + ]; + $mc = new Multichoice_Markup( $attributes ); + $markup = $mc->markup(); + + // "Blue" is at index 1, its input should be checked. + $this->assertMatchesRegularExpression( + '/id="srfm-multi-choice-mc003-1"[^>]*checked/', + $markup, + 'Option "Blue" at index 1 should be checked.' + ); + + unset( $_SERVER['QUERY_STRING'] ); + } }