{"metaAdsBeta":{"title":"Want to connect your Meta Ads account?","description":"We are in closed beta. Request to participate by opening a support ticket.","request":"Request beta access","manualReview":"Support will review your request. Submitting a ticket does not automatically enable access.","loading":"Checking Meta Ads access"},"whatsappTemplateDrafts":{"title":"WhatsApp template drafts","description":"Private local workspace for an isolated Meta pilot. Create and review revisions before any provider connection or submission.","loading":"Loading local drafts…","unavailable":"This private workspace is not available for this account.","inventory":"Local drafts","new":"New draft","empty":"No local drafts yet.","more":"Load more drafts","revision":"Version {version}","history":"Revision history","older":"Older versions","latest":"Edit latest version","draftStatus":"Local draft · not submitted","historical":"This version is immutable. Open the latest version to continue editing.","name":"Technical name","language":"Template language","spanish":"Spanish","englishUS":"English (US)","englishGB":"English (UK)","category":"Category","utility":"Utility","marketing":"Marketing","identityHelp":"Use 3–128 lowercase letters, numbers or underscores, starting with a letter. Name and language are fixed after the first save.","header":"Header","none":"None","text":"Text","image":"Image","video":"Video","document":"Document","headerText":"Header text · up to 60 characters","headerSample":"Example for header variable 1, if used","mediaExample":"Example media URL (HTTPS)","mediaHelp":"The URL is stored only. Ownership, access, file type, size and expiry must be verified before any provider upload.","body":"Body · up to 1,024 characters","samples":"Body variable examples","samplesHelp":"Number variables consecutively. Enter one explicit example per line, in order. Do not put variables at the beginning or end of the body, or next to each other.","footer":"Footer · up to 60 characters, no variables","buttons":"Buttons · up to three in this pilot","buttonType":"Button type","reply":"Quick reply","url":"Open website","phone":"Call phone number","buttonLabel":"Button label","buttonUrl":"HTTPS URL; optional numbered variable at the end","urlSample":"Example replacement for URL variable 1, if used","phoneNumber":"Phone number with country code (+…)","addButton":"Add button","removeButton":"Remove button","preview":"Local preview","previewEmpty":"Your message will appear here.","mediaUnverified":"Unverified media example:","localOnly":"Saving creates an immutable local revision. It does not connect a WABA, upload media, submit a template, certify Meta approval or send messages. Authentication, location, carousel and Flow templates are not supported in this pilot.","cost":"Saving this local draft costs 0 ContentFlow credits. Provider actions remain unavailable.","save":"Save local draft","saveVersion":"Save new version","saving":"Saving…","saved":"Version {version} saved locally. No template was submitted.","retry":"Retry the same save","uncertain":"The save result is uncertain. Editing is locked. Retry this exact save with the same key to recover its result.","failed":"The local draft could not be loaded or saved.","refreshFailed":"The draft was saved, but the inventory could not be refreshed.","versionConflict":"Another revision was saved first. Reload the latest version before applying your changes.","alreadyExists":"A draft with this name and language already exists. Open it from the inventory.","invalid":"Review the name, component lengths, numbered variables, explicit examples, URLs and buttons. This draft does not meet the local pilot rules.","discard":"Discard your unsaved changes and open another draft?","open":"Open local template drafts","variableSyntax":"Variable syntax: '{{1}}', '{{2}}'.","buttonHelp":"Use unique labels. At most two URL buttons and one phone button; keep quick replies together.","reload":"Reload latest version","helpTitle":"About local drafts","helpQuestion":"Can this draft already be used in a WhatsApp campaign?","helpAnswer":"No. It has no provider template ID or approval. A later step must validate the dedicated connection and media, then submit the exact version with confirmation."},"funnelDirectosReviewHtml":{"description":"AI will use this campaign’s brief, dates, angles, David Aranzabal, and tracking. It will create a reviewable HTML version that will remain unpublished until you approve it.","costNote":"This generation does not deduct credits; provider cost is logged","publicationDomain":"HTML publication domain","selectDomain":"Select a domain","htmlPreview":"HTML preview","manageHtml":"Manage HTML","domainsLoadFailed":"Could not load HTML domains.","unknownError":"Could not complete the action. Please try again.","previewFailed":"Could not open the preview.","domainRequired":"Choose a campaign and an active HTML domain.","trackingRequired":"Publish Tracking and cookies for the HTML domain before generating Directos.","ghlRequired":"Connect a GoHighLevel account to receive Directos registrations.","draftChanged":"The HTML page has changed. Review it and generate another version.","draftMissing":"This review has no HTML version awaiting approval.","generationFailed":"Could not generate the HTML draft. You can try again."},"clickMeetingIntegration":{"publicRoomLink":"Public room link","publicRoomLinkHelp":"This link identifies the room and may open its form when registration is required. Welcome and reminder emails use each registrant’s personal access.","title":"ClickMeeting","description":"Connect the client account, link its events and analyze attendance for each session.","back":"Integrations","refresh":"Check connection and refresh","loading":"Loading…","chooseAccount":"Select an account to continue.","connectionTitle":"Secure connection","connectionHelp":"Enter only the event owner’s API key. It is validated with ClickMeeting and stored encrypted. Never paste it into chats. REST API access depends on your plan and this key’s effective permissions.","connection":"Connection","chooseConnection":"Select a connection","noConnections":"No connections yet.","label":"Connection name","apiKey":"ClickMeeting API key","connect":"Validate and save connection","providerGuide":"Official API guide","encryptionError":"ClickMeeting encryption is not configured. Ask your administrator to configure it before saving keys.","permissionError":"ClickMeeting denied access. Check this account’s key and the API and reporting access included in its plan.","error":"The request could not be completed. Check the connection and event permissions, then check again.","sessionsUnavailable":"Sessions for this event could not be retrieved from ClickMeeting. Refresh to check again; their availability has not yet been confirmed.","errorReference":"Support reference: {code}","reportsTitle":"Attendance analytics","room":"Webinar or room","chooseRoom":"Select an event","session":"Completed session","chooseSession":"Select a session","noRooms":"This connection returns no rooms.","noSessions":"No completed sessions are available for this room.","moreSessions":"Load more sessions","reportsHelp":"Select a session to retrieve its official report. Rooms without registration enabled can also show sessions when the provider makes them available.","fetchedAt":"Data retrieved: {date}","registrationsUnavailable":"Registrants are unavailable for this session. Attendance is shown without filling in registration metrics.","listeners":"Attendees with listener role","providerTotal":"Provider total visits","providerPeak":"Provider peak visitors","registered":"Identified registrants","registeredAttended":"Registrants who attended","averageMinutes":"Average measured minutes","totalHours":"Measured hours","rating":"Average rating (1–5)","coverage":"Time measured for {timed} of {total} listeners. Intervals without matching identity: {unmatched}.","engagement":"Attendance duration","buckets":{"brief":"Under 15 min","partial":"15–59 min","engaged":"60–179 min","complete":"180 min or more"},"attendees":"Participants","name":"Name","email":"Email","role":"Role","minutes":"Minutes","joined":"First join","left":"Last leave","listenerRole":"Listener","yes":"Yes","no":"No","unavailable":"Unavailable","noAttendees":"The provider returns no participants.","previous":"Previous","next":"Next","limitations":"Provider visits do not equal unique people. Duration uses only complete intervals with matching identity; overlaps count once. Registrants and attendees are matched by email. Purchases, revenue, VIP, replay and geography are not inferred from ClickMeeting.","registrationTitle":"Registrant synchronization","registrationHelp":"Select the event’s sequence to use its existing settings and status. Connecting or reading reports does not activate registrations or emails. Review audience, fields and consent before enabling. GoHighLevel enrollment is preserved.","sequence":"Event sequence","chooseSequence":"Select a sequence","moreSequences":"Load more sequences","help":"Integration help","newConnection":"Add another connection","newConnectionHelp":"This form adds a new connection. Saved keys are never shown. An existing key reuses its connection.","selectedLabel":"Selected connection name","rename":"Save name","connectionId":"Connection ID: {id}","connectionVerified":"Connection verified: event access is available.","connectionChecking":"Checking event access…","connectionFailed":"This connection could not be verified. Check the notice and try again.","campaignTitle":"Campaign event binding","campaign":"Campaign","chooseCampaign":"Select a campaign","moreCampaigns":"Load more campaigns","campaignHelp":"Each campaign can use a different event. Select its registration sequence and reminders that need personal access. Saving a draft does not register contacts.","campaignActive":"Campaign automatic registration is enabled.","campaignDraft":"Campaign automatic registration is not enabled.","openDashboard":"Open this campaign’s attendance dashboard","configureCampaign":"Configure this campaign’s event and registration","campaignAction":"ClickMeeting · event and registrations","dashboardAction":"ClickMeeting · attendance"},"clickMeetingRegistration":{"consentMapping":{"title":"Event consent","help":"Copy the reviewed version and wording of the funnel checkbox. Use the field ID and accepted value verified on this room. It is only sent when the participant’s saved acceptance matches.","enable":"The event requires this acceptance","key":"Consent version","text":"Exact consent wording","fieldId":"Consent field ID","acceptedValue":"Verified accepted value"},"participantFields":"Participant details","participantFieldsHelp":"Use numeric IDs verified on this event registration form. Every mapped field requires the participant’s declared value. Leave blank when not requested.","requireCompany":"The event requires a company","fieldIds":{"jobTitle":"Job title field ID","country":"Country field ID"},"guide":"Registration, access and recovery guide","language":"ClickMeeting confirmation language","languages":{"es":"Spanish","en":"English","pl":"Polish","ru":"Russian","de":"German","fr":"French","it":"Italian","pt":"Portuguese"},"statusPanel":{"details":{"company":"Declared company","jobTitle":"Declared job title","country":"Declared country"},"title":"Registration status","refresh":"Refresh","help":"Checking access does not repeat registration or approve a pending attendee.","error":"The registration could not be read or recovered. Refresh and check its status.","loading":"Loading registrations…","empty":"No registrations for this event yet.","firstPage":"First page","nextPage":"Next page","attempts":"Attempts: {count}","recheck":"Check access again","retryTitle":"Correct details and retry a rejected registration","retryHelp":"Use the actual first and last names. Retrying may register the attendee and send confirmation if enabled.","firstName":"First name","lastName":"Last name","retry":"Save and retry registration","states":{"pending":"Queued","processing":"Processing","registered":"Registered with access","retry":"Retry pending","reconcile":"Checking result","access_pending":"Access pending","failed":"Error"}},"accessTokenHelp":"Use {token} in welcome or reminder email bodies for personal access. Those emails wait until access is available. Bind each sequence to its corresponding event.","title":"ClickMeeting registration","help":"Register people who submit the form or receive the registration tag in GHL for the event.","active":"Enabled for room {roomId}","inactive":"Automatic registration disabled","error":"The operation could not be completed. Check the connection, room and registration tag.","connection":"This account’s connection","chooseConnection":"Choose a connection","room":"Event","chooseRoom":"Choose a room with registration enabled","tag":"Entry tag: {tag}","tagRequired":"First configure the registration tag in this sequence’s rules.","confirmation":"Send ClickMeeting confirmation with personal access","activationHelp":"Enabling also registers contacts with that tag and email consent, even while marketing emails are paused. The WhatsApp thank you remains.","enable":"Enable automatic registration","disable":"Disable automatic registration","newConnection":"Connect a ClickMeeting account","label":"Connection name","apiKey":"ClickMeeting API key","connect":"Validate and save connection","draft":"Destination saved as a draft; no contacts are registered.","saved":"Configuration saved.","campaignSequences":"Sequences in this campaign","campaignHelp":"The entry receives new registrants. Also select reminders that should use the same event. Each sequence keeps its tag and schedule. New sequences with the entry tag inherit the event once enabled.","entrySequence":"Registration entry sequence","chooseEntry":"Select the registration sequence","noCampaignSequences":"This campaign has no sequences yet. Create its registration sequence first.","zoomConflict":"Zoom is enabled; disable it before enabling ClickMeeting","saveDraft":"Save destination without enabling","saveAndDisable":"Save and disable registration","purposeConsents":{"title":"Consents by purpose","help":"Use the exact form version and wording, with IDs and values verified in ClickMeeting. Each purpose needs its own recorded acceptance. One checkbox never authorizes another.","event-registration":"Registration and event communications","sponsor-sharing":"Sharing with sponsors","required":"Require this acceptance to register"},"campaignRegistrationTag":"Campaign registrant tag","campaignTagHelp":"Use the tag applied by the signup form or GoHighLevel. Enabling assigns it to selected sequences without an entry tag. Existing entry tags are preserved."},"funnelPreparedMaterial":{"help":"Load reviewed angles into this campaign. Include fullCopy (ad copy) and voiceScript (final spoken copy shown in ElevenLabs Text); guion contains shooting directions only.","fileLabel":"Prepared angles file","load":"Load prepared angles","ready":"{count, plural, one {# angle ready to import.} other {# angles ready to import.}}","import":"Import into this campaign","importing":"Importing…","existing":"This campaign already has angles. Review them in the list.","appendReview":"{count, plural, one {# existing angle will be kept and the file's material will be added.} other {# existing angles will be kept and the file's material will be added.}}","campaignChanged":"The campaign has changed since this file was prepared. Review its angles before preparing another import.","fileInvalid":"Could not read this file for the selected account and campaign.","success":"{count, plural, one {Imported # angle.} other {Imported # angles.}}","importFailed":"Could not import the material.","reviewBeforeRetry":"Import has not been confirmed. Review the campaign before retrying.","accountMismatch":"The material belongs to another account.","invalidMaterial":"The material contains invalid options. Correct them before importing.","fileTooLarge":"The file is too large.","accessDenied":"You do not have access to this account.","profileField":"Go High Level profile field","profileHint":"Contact field ID from this account. Required to sync the profile before publishing registration.","trainingLanguageRequired":"First set the account content language in Company settings, then retry this same draft. No campaign was created.","trainingLanguageUnavailable":"The account language could not be checked. Keep this draft and try again.","trainingInstallationUnconfirmed":"Creation could not be confirmed. Retry this same draft to recover the installation without creating another campaign."},"montageReelsFlow":{"brandLabel":"Montage brand","brandAssignError":"Could not assign the montage brand","brandChangeError":"Could not change the montage brand","routeTitle":"Steps to prepare and publish","verticalReady":"This Reel is already vertical 9:16.","horizontalWarning":"For Reels or Meta Ads, we recommend creating the vertical 9:16 version in step 2. The horizontal master stays available.","stepCount":"Step {current} of {total}","horizontalMontage":"Horizontal montage","verticalMontage":"Vertical montage","verticalAdaptation":"Vertical adaptation","publish":"Publish","publishHorizontalDescription":"Publish the vertical version to Meta Ads or Social Hub.","publishVerticalDescription":"Publish the vertical Reel to Meta Ads or Social Hub.","guideHorizontalDescription":"Cover and 16:9 master","guideVerticalDescription":"Cover and final 9:16 Reel","guideAdaptationDescription":"Logo, message, and CTA in 9:16","guidePublishDescription":"Meta Ads or Social Hub","detail":{"remountingNotice":"Rebuilding Reel… the result will update automatically.","missingAssetsTitle":"The horizontal master exists, but step 1 is not complete yet","cover":"Cover","noBroll":"No B-roll","notMounted":"Not mounted","verticalOutputTitle":"Vertical montage 9:16","generatingVertical":"Generating vertical montage…","completeStepTwo":"Complete step 2 to create this file.","mountingNotice":"Building video… it updates automatically","trimming":"Trimming Reel…","trimProcessHelp":"This takes a few seconds. The new MP4 replaces the previous one.","applyTrim":"Apply trim to Reel","cancel":"Cancel","downloadCover":"Download cover","editImage":"Edit with AI","downloadHook":"Download hook","downloadMontage":"Download montage","publishReel":"Publish this Reel","publishMeta":"Publish to Meta","trimReel":"Trim Reel","metaFields":"Meta fields","downloads":"Downloads","mountingReel":"Building Reel…","montageStarted":"Montage started!","alreadyProcessing":"The montage is already in progress.","detailTitle":"Montage details","horizontalToVertical":"Horizontal → vertical","verticalFormat":"Vertical 9:16","horizontalStepDescription":"Generate the cover and horizontal 16:9 master. Then prepare the 9:16 version with a logo, message and CTA.","verticalStepDescription":"Generate the cover and final vertical 9:16 Reel. This format needs no adaptation step.","createAssets":"Create cover and copy","remountReel":"Rebuild Reel","mountReel":"Build Reel","confirmAssets":"Create cover and copy?","confirmRemount":"Confirm rebuild?","confirmMontage":"Confirm montage?","horizontalMaster":"Horizontal master 16:9","verticalFinal":"Final vertical Reel","preparingRender":"Preparing render…","verticalFailed":"The last vertical render failed","verticalStale":"The design changed: generate the 9:16 version again","verticalNotGenerated":"9:16 not generated yet","remountComplete":"Rebuild complete","remountCompleteHelp":"The cover and horizontal master have been updated. Generate the 9:16 output in step 2.","remountFailed":"Could not complete the rebuild","invalidTrim":"Invalid trim","montageNumber":"Montage #{number}","fullId":"Full ID: {id}","updatedTooltip":"Montage last updated: {date}","updated":"Updated {date}","publicPage":"Open the public page for montage {id}","shareMontage":"Share montage","missingAssetsHelp":"Create a consistent cover and publication copy. Complete this step before adapting to 9:16 or publishing to Meta.","downloadVertical":"Download vertical montage v{version}","invalidTrimHelp":"The result would be {duration}s. Adjust the In/Out markers so the final clip is at least 2s.","trimPreviewHelp":"Use the green preview button above to review the trim before applying it.","trimOverwriteWarning":"The Reel MP4 will be overwritten by the trimmed version. This action cannot be undone.","confirmTrim":"Confirm trim","pendingFields":"{count, plural, one {# pending} other {# pending}}","back":"Back","processing":"In progress","complete":"Complete","error":"Error","published":"Published","ready":"Ready for publishing","generating":"Generating","connected":"Connected","disconnected":"Disconnected","pending":"Pending","rejected":"Rejected","metaPending":"Pending publication to Meta","montageStatus":"Montage status","metaStatus":"Meta publication status","actionUnavailable":"This action is unavailable.","insufficientCredits":"Insufficient credits (need {required}, available {available})","insufficientCreditsUnknown":"Insufficient credits (need {required}). The balance could not be retrieved.","actionFailed":"Could not complete the operation.","connectionFailed":"Could not connect. Try again.","preparingMontage":"Generating the cover and preparing the montage…","resultWillAppear":"The result will appear here automatically when finished.","publishSubtitle":"Ads · Organic posts · Scheduling","brollHook":"B-roll hook","transcript":"Transcript","legacyMontage":"Montage video with hook","legacyConfirmMontage":"Confirm montage?","legacyProcessing":"Building video…","legacyStarted":"Montage started!","legacyPublishMeta":"Publish Meta Ads","legacyConfirmPublication":"Confirm publication?","legacyPublishing":"Publishing to Meta…","legacyPublished":"Publication submitted!","missingFields":"Missing: {fields}","montageReelTab":"Reel montage","publishing":"Publishing","partiallyPublished":"Partially published","scheduled":"Scheduled","notPublishedSocial":"Not published in Social Hub","generated":"Generated"},"outputVariants":{"campaignFallback":"the campaign","visualIdentity":"Visual identity","loadingDuration":"loading duration…","outputSaved":"Output design saved","saveFailed":"Could not save","designNameRequired":"Enter a design name","librarySaved":"Design saved to the library","librarySaveFailed":"Could not save the design","designApplied":"Design “{name}” applied","designAppliedHelp":"The preview is updated. Save the changes to keep this design for this montage.","deleteConfirm":"Delete design “{name}” from the library?","designDeleted":"Design deleted","deleteFailed":"Could not delete the design","waitDuration":"Wait for the video duration to load","renderStarted":"Vertical output started","renderCharged":"{credits} render credits have been applied.","renderFailed":"Could not start the render","statusReady":"Vertical ready · v{version}","statusRendering":"Rendering · {progress}%","statusStarting":"Preparing render…","statusFailed":"The last render failed","statusStale":"Changes are waiting to be rendered","statusNotRequested":"9:16 not generated yet","description":"The complete 16:9 video stays in the center. Choose what appears above and below it, then generate the vertical MP4 for Meta Ads and Social Hub.","helpToggle":"What happens next","renderProgressLabel":"Vertical render at {progress}%","renderingHelp":"Creating the vertical video. You can leave this screen open.","helpPrepareTitle":"Prepare the video here","helpPrepareDescription":"Nothing is published automatically.","helpPublishTitle":"The 9:16 version will be published","helpPublishDescription":"Meta Ads and Social Hub, including YouTube Shorts, will use this version.","helpMasterTitle":"The 16:9 version stays as the master","helpMasterDescription":"The horizontal master is kept as a separate file.","upperSection":"Upper section","upperSectionHelp":"The logo and message that introduce the video.","background":"Band background","backgroundBlur":"Blurred video","backgroundBrand":"Brand color","backgroundBlack":"Black","upperContent":"Upper content","logoAndText":"Logo + message","logoOnly":"Logo only","textOnly":"Message only","empty":"Empty","upperMessage":"Upper message","upperPlaceholder":"An idea worth seeing in full","logoSelect":"Logo to display","accountLogo":"Account logo","campaign":"Campaign","campaignNoLogo":"No campaign logo yet","noCampaign":"This video has no linked campaign","missingLogo":"The logo for {name} is missing. Upload it there or choose upper content without a logo.","lowerSection":"Lower section","lowerHelp":"The call to action at the end of the ad.","lowerContent":"Lower content","ctaButton":"CTA button","message":"Message","ctaText":"CTA text","lowerMessage":"Lower message","ctaPlaceholder":"Get your VIP ticket","lowerPlaceholder":"Discover all the details","closeLibrary":"Close library","openLibrary":"Use a saved design","libraryTitle":"Design library","libraryHelp":"Reuse the background, messages, CTA and logo source in other montages in this account.","designNamePlaceholder":"E.g. Challenge · VIP with CTA","saveDesign":"Save current design","libraryLoading":"Loading library…","libraryEmpty":"No designs have been saved in this account yet.","summaryBlur":"Blurred background","summaryBlack":"Black background","campaignLogo":"Campaign logo","identityLogo":"Identity logo","apply":"Apply","duplicate":"Duplicate","delete":"Delete","outputLoadFailed":"Could not load the output formats","verticalFailed":"The last vertical render failed","preview":"9:16 preview","safeZones":"Safe zones","logoAlt":"Logo for {name}","actionRendering":"Creating your vertical version","actionReady":"Your 9:16 version is ready","actionDirty":"The preview has changes that have not been generated","actionIdle":"When it looks right, generate the vertical video","actionHelp":"Video {duration} · generating creates a new MP4 and does not publish anything automatically.","saveWithoutRender":"Save without generating","regenerate":"Regenerate","download":"Download 9:16 video","generating":"Generating 9:16 · {progress}%","saveRegenerate":"Save and regenerate 9:16","regenerateVideo":"Regenerate 9:16 video","generateVideo":"Generate vertical 9:16 video"},"gallery":{"insufficientCreditsBalance":"Insufficient balance to start the montage (available: {balance}).","originalVideo":"Original video","archived":"Archived","building":"Building…","started":"Started!","confirmBuild":"Confirm? (10 cr)","rebuild":"Video built · Rebuild?","buildVideo":"Build video","socialPublished":"In Social Hub","socialPublishing":"Publishing now","socialPartial":"Partially published","socialQueued":"Queued in Social Hub","openMeta":"Open in our Meta Ads page","favoriteShort":"Fav","archiveConfirm":"Archive?","withoutHook":"No hook","creating":"Creating…","created":"Created!","createWithoutHook":"Create montage without a hook","originalShort":"Original","gallery":"Gallery","list":"List","calendar":"Calendar","loading":"Loading montages…","loadError":"Could not load montages","emptyTitle":"No montages","emptyHelp":"No Reel montages are linked to this video.","title":"Reel montages","queueing":"Queueing…","readyHelp":"Queue only montages marked Ready for publishing in Social Hub","pendingHelp":"Queue all unpublished montages in Social Hub","stateAll":"Status: All","organicAll":"Organic: All","adsAll":"Ads: All","landingAll":"Landing: All","hasLanding":"With landing page","noLanding":"Without landing page","published":"Published","generated":"Generated","generating":"Generating","clear":"Clear","thumbnail":"Thumbnail","columnTitle":"Title","video":"Video","columnStatus":"Status","actions":"Actions","socialHub":"Go to Social Hub","all":"All","favorites":"Favorites","archivedFilter":"Archived","removeFavorite":"Remove favorite","markFavorite":"Mark favorite","unarchive":"Unarchive","archive":"Archive","confirmClick":"Click to confirm","updated":"Updated {date}","updatedHelp":"Montage last updated: {date}","linkedCount":"{count, plural, one {# linked montage} other {# linked montages}}","archivedCount":" · {count, plural, one {# archived} other {# archived}}","publishReady":"Publish all ready ({count})","publishPending":"Publish pending ({count})","undated":"Undated ({count})","emptyArchived":"No archived montages","emptyFavorites":"No favorite montages","emptyAll":"All montages are archived","montageFallback":"Montage","brandCount":"{count, plural, one {Brand} other {# brands}}","publishedSuffix":" (published)","scheduledSuffix":" (scheduled)","previousMonth":"Previous month","nextMonth":"Next month","buildError":"Could not start the montage.","createError":"Could not create the montage.","bulkError":"Could not queue publication. Try again.","insufficientCredits":"Insufficient balance to start the montage."},"fanout":{"loading":"Loading clip distribution…","groupLabel":"Clip distribution by platform","clipsPerNetwork":"Clips per network","customHelp":"Custom settings for this video. Reset to return to system defaults.","custom":"Custom","defaults":"Defaults","defaultsHelp":"Using system defaults.","platformDisabled":"{platform}: do not send clips","platformDistribution":"{platform}: send the top {count} clips by viral score","platformLabel":"Clips to {platform}","resetHelp":"Return to system defaults and remove this video’s custom settings","reset":"Reset","saved":"Saved","loadError":"Could not load clip distribution.","saveError":"Could not save clip distribution.","resetError":"Could not reset clip distribution."}},"presentationPrivacy":{"show":"Show sensitive data","hide":"Hide sensitive data","title":"Presentation privacy","description":"Hide names, contact details, revenue, spend and KPIs while presenting or sharing your screen.","saving":"Saving preference…","error":"The preference could not be saved. Sensitive data remains hidden."},"senderIdentity":{"noBrand":"No brand was found for this account. Connect GHL first or create a brand in Airtable.","title":"Sender identity","subtitle":"Company details shown in the legal footer of each sent email","refresh":"Refresh from GHL","preview":"Footer preview","privacy":"Privacy policy","contact":"Contact","unsubscribeNote":"GHL automatically adds its own unsubscribe link (in English) at the end of each email. It is not duplicated here.","imported":"Automatically imported from Go High Level","dnsTitle":"DNS health check","dnsDescription":"Check which subdomains are ready to send email","dnsLoading":"Checking common subdomains (email.*, mail.*, send.*, mg.*, go.*, news.*)…","dnsNotConfigured":"No common subdomain is configured for email. To improve broadcast deliverability, configure one in GHL (Settings → Email Services → Dedicated Domain), then return here.","overrides":"Manual overrides","overrideHelp":"(optional — only to use values different from GHL)","legal":"Optional legal details","legalHelp":"(Spain LSSI, GDPR — enter only the details you have)","save":"Save changes","emptyGhl":"— empty in GHL —","recommendedBadge":"recommended","back":"Back to Settings","company":"Company name","email":"Contact email","address":"Address","website":"Website","companyOverride":"Legal company name override","emailOverride":"Contact email override","addressOverride":"Postal address override","taxId":"Tax ID","privacyUrl":"Privacy policy URL","registry":"Company registration","registryPlaceholder":"Registered with the company register of …, volume X, page Y, entry Z","companyPlaceholder":"e.g. My Company Ltd.","emailPlaceholder":"e.g. hello@...","addressPlaceholder":"e.g. Street, postal code, city, country","neverSynced":"Never synced","spfMissing":"No SPF record","spfReady":"SPF authorizes GHL/Mailgun ✓","spfWarning":"SPF exists but does NOT authorize GHL/Mailgun","dkimMissing":"No published DKIM","dmarcMissing":"No DMARC","mxReady":"MX → Mailgun ✓","mxMissing":"No MX (sending-only domain, OK)","legalPreview":"Data controller: {company} · Legal basis: consent (GDPR Art. 6(1)(a))","recommended":"✅ Recommended: {domain}","synced":"Synced: {date}","dkimReady":"DKIM at selector “{selector}” ✓","dmarcReady":"DMARC policy: {policy} ✓","mxOther":"MX → {host} (not Mailgun)","loadError":"Could not load sender details.","saveError":"Could not save changes. Please try again.","refreshError":"Could not start syncing. Please try again.","saved":"Changes saved","refreshStarted":"Sync started. Wait about 30 seconds and reload the page.","retry":"Try again","loading":"Loading sender details","selectAccount":"Select an account"},"billingSubscription":{"cycleEnd":"the end of your current billing cycle","annualPlan":"{name} — {price}/year","monthlyPlan":"{name} — {price}/month","paymentRequired":"First add a payment method in Manage billing. No charge has been enabled.","walletAccepted":"Authorization saved. The prepaid wallet may recharge automatically when it reaches its threshold, and GHL usage will be charged at 1.5× the base cost.","walletRemoved":"Authorization withdrawn. GHL rebilling has been disabled; your card remains saved for your Content Flow subscription.","unchanged":"You are already on that plan; nothing has changed.","scheduledCancelled":"You have cancelled the scheduled plan change. You remain on your current plan.","walletReady":"Your Content Flow payment method can be linked to the GHL wallet when you authorize it; you do not need to enter another card.","walletMissing":"Add a payment method to recharge the wallet and use metered services.","confirmChange":"Confirm change","confirmCancel":"Yes, cancel","walletError":"Could not save wallet authorization. Please try again.","portalError":"Could not open the billing portal. Please try again.","changeError":"Could not change the plan. Please try again.","cancelError":"Could not cancel the subscription. Please try again.","companiesUpdated":"Contracted companies updated to {count}.","upgradeResult":"Plan updated to {plan}. The prorated difference has been charged and your new plan credits are now available.","downgradeResult":"Change to {plan} scheduled for {date}. Until then, you keep your current plan and credits; after that, your plan will be {plan}.","cancelResult":"Cancellation scheduled. You keep full access and your credits until {date}; then your subscription ends and you will not be charged again. You can reactivate it before that date in Manage billing.","currentPlan":"Current plan: {plan} ({cycle})","scheduledCancellation":"Your subscription will end on {date}. You keep access and your credits until then.","scheduledChange":"On {date}, you will move to {plan} ({cycle}). Until then, you keep your current plan and credits.","renews":"Renews on {date}.","dunningDay":"Renewal pending · day {day}","dunningAvailable":"No new credits will be added until payment is complete. A controlled downgrade is now available.","dunningWaiting":"No new credits will be added until payment is complete. Downgrading becomes available on day 21; {count, plural, one {# day remains} other {# days remain}}.","changeTitle":"Change to {plan}","upgradeIntro":"You are upgrading your plan:","downgradeIntro":"You are downgrading your plan:","unknownUpgrade":"If you upgrade: the prorated difference is charged and credits are available immediately.","unknownDowngrade":"If you downgrade: the change takes effect at the end of your current cycle.","cancelIntro":"Your subscription will end at the end of the period already paid for:","walletConsent":"I authorize Content Flow to use this payment method for the GoHighLevel prepaid wallet and automatic top-ups when it reaches the configured threshold. Email, WhatsApp, phone, AI and other GHL usage will be charged at 1.5× GHL’s base cost. Content Flow credits are separate. I can withdraw rebilling authorization at any time; my card will remain saved for my subscription.","dunningBlock":"Normal plan changes are paused while an invoice is outstanding. Use Resolve billing; from day 21 you can request a controlled downgrade there.","downgradeHelp":"The change takes effect at the end of your current cycle. Until then, you keep your plan and credits; the current period is not refunded.","upgradeHelp":"The prorated difference is charged to your card now and you receive the new plan credits immediately.","reactivate":"You can reactivate it before that date in Manage billing.","description":"Manage your payment method, invoices, plan changes and cancellation.","cancelRefund":"You will not be charged again; the current period is not refunded.","cancelAccess":"You keep full access and your credits until that date.","savingConsent":"Saving authorization…","walletTitle":"GoHighLevel wallet","manageBilling":"Manage billing","loadingPlan":"Loading current plan…","resolveBilling":"Resolve billing","cancelSubscription":"Cancel subscription","unlimitedCompanies":"Unlimited companies","beforeConfirm":"Before confirming:","annualOffer":"· 2 months free","changePlan":"Change plan","title":"Subscription","changeTo":"Change to","monthly":"Monthly","back":"Back","annual":"Annual","currentMarker":" · current plan","companies":"{count, plural, one {# company} other {# companies}}","planSelector":"Target plan","companySelector":"Number of companies"},"billingRecovery":{"timelineHelp":"We send five reminders, one every four days. The account status changes on day 21; we do not send a sixth email.","stripeHelp":"Payments and billing details are handled securely in Stripe.","downgradeHelp":"Request a lower plan and we will review the change before applying it.","preview":"Staging simulation · no charges or messages","loadError":"Could not load billing","timelineTitle":"View the reminder and restriction schedule","noNewCredits":"No new credits until payment","downgradeTitle":"Need a smaller plan?","specialSituation":"Have special circumstances?","currentDescription":"There are no outstanding invoices.","currentTitle":"Your billing is up to date","changeCard":"Update card or details","choosePlan":"Choose a lower plan","manage":"Manage billing","support":"Contact support","back":"Back to billing","requestChange":"Request change","pay":"Pay invoice","retry":"Try again","outstanding":"Outstanding","pausedTitle":"Your account is temporarily paused","paymentTitle":"There is an outstanding payment","pausedHelp":"Complete payment to restore access. If the plan no longer suits you, you can request a lower plan below.","graceHelp":"Your account remains active during the grace period. Complete payment to continue as usual.","currentPlan":"Current plan","savedWork":"Work preserved","activeAccess":"Access still active","planLabel":"Requested lower plan","pausedDay":"Day {day} · access paused","graceDay":"Day {day} · {count, plural, one {# day remaining} other {# days remaining}}","pausedCredits":"{credits} credits preserved and paused","availableCredits":"{credits} previous credits available","restrictionDate":"Expected date for day 21: {date}.","monthlyPlan":"{name} — {price}/month","sixMonths":"6 months","day":"Day {day}","portalError":"Could not open the billing portal. Please try again.","retryHelp":"Please try again in a few seconds.","loading":"Loading billing","timeline":{"first":"First email reminder","second":"Second email reminder","third":"Third email reminder","fourth":"Fourth email reminder","last":"Final email reminder","restricted":"Temporary pause and lower plan option","retention":"Internal retention review"}},"publicationSettings":{"retry":"Try again","title":"Signature and AI transparency","staffOnly":"ContentFlow365 manages this signature. Only platform administrators can disable it for this account.","aiLabel":"Apply AI transparency text (European Union)","textLabel":"Text appended to publications","help":"Applies to new Reel and poster copy. You can edit or disable it. Review the obligations and platform labels that apply to your content.","save":"Save publication settings","saving":"Saving…","saved":"Settings saved.","loading":"Loading settings…","error":"Could not load or save settings. Please try again."},"socialPublisherMode":{"fixed":"Fixed","pinterestFixedReason":"Manage the Pinterest connection in Social network connections, not with this selector.","fixedAria":"Publishing mode: {mode}. {reason}","selectorTitle":"Publishing mode (admin)","selectorLabel":"Publishing mode","ghl":"GHL","automatic":"Auto (native when available)","native":"Native","nativeForced":"Native (forced)","httpError":"Error {status}","unknownError":"The publishing mode could not be changed."},"localQa":{"readOnlyBanner":"LOCAL QA · READ ONLY · mutations and external connections are blocked"},"whatsappCampaigns":{"pilot":{"title":"Private template pilot","description":"Readiness for an isolated Meta Cloud API pilot. Connections, submissions and messaging remain unavailable.","loading":"Checking pilot readiness…","unavailable":"Pilot readiness could not be loaded.","unverified":"Connection records are historical. Meta publication and provider availability have not been checked live.","empty":"No native connection is registered for this account.","conflict":"This asset is also registered in another account. It cannot be treated as an isolated pilot.","auditRequired":"Provider ownership and exclusive use still require verification.","templateCount":"Registered templates: {count}"},"connections":{"title":"WhatsApp Business connection","description":"Choose the transport for this account. GHL remains available as the immediate fallback.","phase2Title":"Available when phase 2 is enabled","phase1Notice":"Phase 1 · preparation: Go High Level remains the active transport. You can verify and save native connections, but Twilio and Meta will not replace GHL until phase 2 is explicitly enabled.","updateTwilio":"Update Twilio","connectTwilio":"Connect Twilio","reconnectMeta":"Reconnect Meta","connectMeta":"Connect Meta","storedEncrypted":"Stored encrypted","whatsappNumber":"WhatsApp number","optionalSid":"{prefix} (optional)","verifySave":"Verify and save","connected":"Connected","errors":{"load":"Could not load the connection","connection":"Connection error","changeProvider":"Could not change the provider","twilioRejected":"Twilio rejected the connection","metaSdk":"Could not load the Meta SDK","metaNotConfigured":"Meta Embedded Signup is not configured in production yet","metaAuthorization":"Meta did not return authorization","metaAssets":"Meta did not return the WhatsApp assets","metaRejected":"Meta rejected the connection"}},"page":{"title":"WhatsApp campaigns","subtitle":"Send approved templates to opted-in audiences through WhatsApp Business","refresh":"Refresh list","createTemplate":"Create template","newCampaign":"New campaign","activeTemplateRequired":"You need an approved template from the active provider","templates":"Templates","readyToSend":"Ready to send","inReview":"In review","rejected":"Rejected","totalCampaigns":"Total campaigns","inventoryTitle":"Account-scoped inventory","inventoryDescription":"ContentFlow stores templates and their variables for this account. The active delivery provider is {provider}. Only templates approved in that provider can be used in campaigns.","templatesTab":"Templates","campaignsTab":"Campaigns","loadTitle":"WhatsApp could not be loaded","all":"All","emptyTemplates":"There are no templates yet.","emptyTemplatesHelp":"Select Create template to prepare a local draft or record a template approved in GHL. Publish and manage its approval in GHL.","savedText":"Text stored in ContentFlow","showText":"Show full text","hideText":"Hide text","notUsable":"Not usable","editText":"Edit text","editTextAria":"Edit {name} text","providerSync":"Twilio sync: {status}","createInTwilio":"Create in Twilio","submitApproval":"Submit for approval","refreshStatus":"Refresh status","manualReview":"Review manually before retrying","variables":"{count, plural, one {# variable} other {# variables}}","provider":"Provider: {provider}","providerId":"ID: {id}","notCreatedTwilio":"Not yet created in Twilio","providerIdPending":"Waiting for the provider's real ID","verified":"Verified: {date}","notVerified":"not checked","emptyBroadcasts":"You haven't sent any campaigns yet.","emptyBroadcastsHelp":"Select New campaign to begin.","contacts":"{count, plural, one {# contact} other {# contacts}}","sent":"{count} sent","delivered":"{count} delivered","read":"{count} read"},"broadcast":{"title":"New WhatsApp campaign","subtitle":"Send an approved template to your audience","steps":{"template":"Template","variables":"Variables","audience":"Audience","confirm":"Confirm"},"selectTemplate":"Select an approved template:","noApprovedTemplates":"You don't have any approved templates. Create one in GHL and register it, or check its status in ContentFlow.","variableCount":"{count, plural, one {# variable} other {# variables}}","noVariables":"This template has no variables. Continue.","variableHelpBefore":"Map each template variable","variableHelpAfter":". You can use tokens such as","variableHelpEnd":"for contact data, or enter literal text.","variableLabel":"Variable","variablePlaceholder":"Literal text or token","summary":{"title":"Summary","template":"Template","language":"Language","variables":"Variables","audience":"Audience","variablesMapped":"{count, plural, one {# mapped} other {# mapped}}","none":"None","smartList":"Smart List","tags":"Tags","advancedFilters":"Advanced filters"},"dryRun":{"title":"DRY RUN mode (simulate)","description":"Calculates the audience without sending. Useful for validation before the real send."},"realSend":{"title":"Real send","description":"WhatsApp charges per conversation (approximately $0.04–0.15 depending on country). Messages are only sent to contacts with a valid E.164 phone number and opt-in."},"result":{"dryRunTitle":"DRY RUN — simulation","startedTitle":"Campaign started","failedTitle":"Campaign not started","noContactsTitle":"No contacts","dryRunDescription":"{count, plural, one {# contact matches (nothing was sent)} other {# contacts match (nothing was sent)}}","queuedDescription":"{count, plural, one {# message queued} other {# messages queued}}","failedDescription":"The campaign could not be started. Nothing was sent.","noContactsDescription":"No contacts were found for this audience."},"buttons":{"close":"Close","back":"Back","cancel":"Cancel","next":"Next","simulating":"Simulating…","sending":"Sending…","simulate":"Simulate (DRY RUN)","confirmSend":"Confirm send"}},"actions":{"registryUpdated":"The ContentFlow registry has been refreshed. Approval is verified with the active provider and stored with its exact technical identifier.","providerCheckFailed":"The provider could not be checked.","confirmCreate":"This will create “{name}” in Twilio. The external action won't be retried automatically. Continue?","confirmSubmit":"This will submit “{name}” for WhatsApp review. Meta can take up to one business day. Continue?","created":"The template was created in Twilio. Review it before submitting it for approval.","submitted":"The template was submitted once for WhatsApp review.","refreshed":"The status was refreshed from Twilio.","failed":"The operation could not be completed."},"dialog":{"createTitle":"Create template draft","editTitle":"Edit template draft","description":"Prepare the text and variables here. Saving updates the local record; publication and approval are managed in GHL.","close":"Close","providerLabel":"Template provider","providerGhl":"GoHighLevel (existing template)","providerTwilio":"Twilio Content API","providerMeta":"Meta Cloud API (manual record)","connectionLabel":"{provider} connection","chooseConnection":"Choose a connection","connectFirst":"Connect this provider in the panel above first.","technicalName":"Technical name","language":"Language","providerIdLabel":"Provider technical ID (optional)","sidPlaceholder":"Assigned when the template is created in Twilio","externalIdPlaceholder":"Meta ID or GHL ID","sidHelp":"ContentFlow stores the Content SID returned by Twilio here.","externalIdHelp":"Required for automatic sending. Use the provider's real internal ID.","purpose":"Campaign family","category":"Meta category","providerStatus":"Provider-verified status","body":"Template body","bodyPlaceholder":"Enter the exact template text, including numbered variables...","variablesDetected":"Variables detected: {count}","characterCount":"{count}/1,024 characters","bodyTooLong":"Twilio supports up to 1,024 characters for this template.","previewTitle":"WhatsApp preview","previewEmpty":"Your template text will appear here.","previewSamples":"Variable samples are applied in this preview only.","optOutTitle":"Required WhatsApp opt-out","optOutIntro":"ContentFlow adds the compliance text when it is missing.","optOutTwilio":"When it creates the template in Twilio, it also adds the opt-out button.","optOutManual":"When publishing with the provider, you must also include the opt-out button.","addText":"Add text","optOutConfirmed":"I added the {button} Marketing Opt-Out button in the provider.","variableMap":"Variable mapping","variableMapHelp":"Document which ContentFlow value belongs to each position.","variableLabelPlaceholder":"Event name","variableKeyPlaceholder":"event_name","variableSamplePlaceholder":"Sample for Meta","rejectionReason":"Reason / replacement","rejectionPlaceholder":"Rejected by Meta; replaced by...","notSelectable":"This template appears in the inventory but can't be selected for a campaign.","authenticationUnsupported":"Authentication templates need a dedicated one-time-code editor. In this first version, create Marketing or Utility templates.","saveDoesNotPublish":"Saving doesn't publish the change to WhatsApp","draftHelp":"Review the draft here. When final, open it in the provider to update it or create a new version. Meta might review it again.","openGhl":"Open GHL to publish","cancel":"Cancel","saveDraft":"Save draft in ContentFlow","save":"Save in ContentFlow"},"purpose":{"invitation":"Invitation","attendance":"Attendance and live sessions","monetization":"Monetization / VIP","followUp":"Follow-up and close","other":"Other"},"status":{"approved":"Approved","pending":"In review","draft":"Draft","rejected":"Rejected","paused":"Paused","disabled":"Disabled"},"category":{"marketing":"Marketing","utility":"Utility","authentication":"Authentication"},"errors":{"unknown":"The operation couldn't be completed.","invalidTemplateName":"Use lowercase letters, numbers, and underscores in the technical name.","templateBodyRequired":"The template body is required.","marketingOptOutRequired":"Confirm the Marketing opt-out button.","invalidProvider":"The selected provider isn't valid.","invalidConnection":"The selected WhatsApp connection isn't valid.","channelDisabled":"The WhatsApp channel is disabled.","contentSidManaged":"ContentFlow assigns the Content SID when it creates the Twilio template.","connectionMissing":"This account has no active WhatsApp connection for that provider.","templateImmutable":"Twilio templates can't be edited after creation. Create a new draft with another name.","authenticationUnsupported":"Authentication templates need the dedicated one-time-code editor.","operationRequiresReconciliation":"The previous result wasn't confirmed. Refresh or review Twilio before retrying.","operationNotAvailable":"This action isn't available for the template's current state.","contentSidMissing":"Create the template in Twilio first.","bodyTooLong":"The template exceeds Twilio's 1,024-character limit.","variablesNotSequential":"Numbered variables must be sequential.","variableAtEdge":"A variable can't begin or end the template body.","variablesAdjacent":"Variables need explanatory text between them.","variableRatioLow":"Add more explanatory text for the number of variables.","twilioRejected":"Twilio rejected the request. Review the template and connection.","twilioUnknown":"Twilio didn't return a confirmed result. Automatic retry is blocked.","twilioConnectionIncomplete":"The template has no valid Twilio connection.","database":"ContentFlow couldn't save the template.","metaRejectedCheckProvider":"Meta rejected the template. Review the provider's rejection details."}},"personaWizard":{"common":{"back":"Back","previous":"Previous","next":"Next","saving":"Saving…","edit":"Edit","virtual":"Virtual Influencer","clone":"Persona Clone","draft":"Draft","draftTitle":"Draft saved automatically — select to discard it","discardDraftConfirm":"Discard this draft and start again?","loadingPersona":"Loading Persona…","personaNotFound":"This Persona could not be found. It may have been deleted.","loadPersonaFailed":"The Persona could not be loaded. Try again.","activeAccountMissing":"No active account is selected","unknownError":"Unknown error"},"steps":{"identity":"Identity","appearance":"Appearance","personality":"Personality","storyboard":"Storyboard","expresividades":"Expressivities","voice":"Voice","review":"Summary"},"identity":{"createTitle":"Create Persona","editTitle":"Identity","description":"Choose the Persona type and enter its basic details. Later steps adapt to this choice.","typeLabel":"Persona type *","virtualTitle":"Virtual Influencer","virtualDescription":"Build a synthetic Persona with an AI face, storyboard, and voice.","cloneTitle":"Clone (real person)","cloneDescription":"Clone a real person —you or a client— using a photo and optional video.","name":"Name *","virtualNamePlaceholder":"E.g. Lucy, Aurora, Alex…","cloneNamePlaceholder":"e.g. Antonia Padilla","minimumCharacters":"At least 2 characters","sex":"Sex *","male":"Male","female":"Female","nationality":"Nationality","accent":"Accent","accentDefault":"Based on nationality","accentHint":"You can choose an accent independently of nationality. It will be used for name suggestions and voice design.","ageRange":"Age range","select":"— Select —","years":"{range} years","notes":"Notes (optional)","notesPlaceholder":"Short bio, context, associated brand, etc.","donorTitle":"Donate expressivities to similar Virtual Personas","donorBadge":"CF365 admin","donorWomen":"female Virtual Personas","donorMen":"male Virtual Personas","donorPeople":"Virtual Personas","donorDescription":"{group} in any client account with the same age range ({ageRange}) may inherit this Persona's expressivities as templates (Stop Scrollers, Avatar V…). Only CF365 super-admins can see this control.","suggestTitle":"Suggest from your brand with AI (optional)","suggestDescription":"Analyzes your brand strategy, audience, and visual identity to complete personality, communication style, and focus. It does not change name, sex, or nationality.","suggestAction":"Suggest with AI","suggestFailed":"The brand suggestion could not be loaded. Try again.","analyzing":"Analyzing your brand…","proposal":"Proposal:","traits":"Traits: {value}","communication":"Communication: {value}","focus":"Focus: {value}","lifestyle":"Lifestyle: {value}","visualStyle":"Visual style: {value}","socialLevel":"Social level: {value}/5","age":"Age: {value}","apply":"Apply","anotherSuggestion":"Another suggestion","initialSaveFallback":"The Persona could not be saved yet. You can continue in this draft and retry at the end; no creation has been confirmed.","discard":"Discard","nationalities":{"spain":"Spain","mexico":"Mexico","argentina":"Argentina","colombia":"Colombia","chile":"Chile","peru":"Peru","venezuela":"Venezuela","usa":"United States","uk":"United Kingdom","france":"France","germany":"Germany","italy":"Italy","brazil":"Brazil","portugal":"Portugal","ecuador":"Ecuador","uruguay":"Uruguay"},"deferredNameHint":"Not sure yet? You can leave this blank and generate a name later, once you have chosen a photo and defined all the attributes."},"appearance":{"mixedModels":"6 candidates: 2 from Seedream 4.5, 2 from Nano Banana 2 and 2 from GPT Image 2.","mixedModelsLocal":"1K test: 2 from Seedream 5 Pro, 2 from Nano Banana 2 and 2 from GPT Image 2.","refinementTitle":"Refine your choice · Optional","refinementHelp":"Generate four variations with small changes to the face contour. You can keep the original. All proposals are saved to Library.","confirmRefinements":"Generate 4 subtle variations with Nano Banana 2 for {credits} credits? The original photo is kept.","generateRefinements":"Generate 4 variations ({credits} cr)","originalFace":"Selected original photo","keepOriginal":"Choose the original","enlargeSample":"Enlarge photo {number}","selectSample":"Select photo {number}","selectFace":"Select","selectedFace":"Selected","previewHelp":"Browse photos with the arrow keys. Your selection changes only when you press Select.","priceUnavailable":"The generation cost could not be loaded. Try again.","retryPrice":"Check cost again","recoverySaved":"Your generation is saved. You can move between steps; the remaining images are still being processed.","recoveryUnconfirmed":"We are checking the original generation. Your received images are safe and no new generation will be charged.","checkGeneration":"Check existing generation","fastTestMode":"Testing · 1K · fast generation","standardResolution":"Final quality · 4K","loadingPrice":"Checking resolution and credits…","presence":{"title":"Camera presence","hint":"Choose the casting style you imagine for your character.","natural":{"label":"Natural","description":"An everyday, relatable and familiar appearance."},"charming":{"label":"Charming","description":"Distinctly attractive, with an approachable feel."},"model":{"label":"Top model","description":"A striking presence for an editorial campaign."}},"reference":{"title":"How would you like to create the face?","new":"Create a new face","newHelp":"Generate different people from your chosen appearance.","inspired":"Based on another","inspiredHelp":"Upload a photo to create different people with similar features and style.","exact":"Same as another","exactHelp":"Upload a photo to preserve the same person. Only the pose, expression and lighting will vary slightly.","upload":"Upload reference image","replace":"Change image","remove":"Remove reference","photo":"Reference image","uploading":"Uploading image…","required":"Upload an image to generate with this option.","accountRequired":"Select an account before uploading the image.","dragHere":"Drag your image here","chooseFile":"Choose image","requirements":"JPG, PNG or WebP · Up to 25 MB","dropNow":"Drop your image to upload"},"virtualTitle":"Appearance (virtual)","cloneTitle":"Master photo (clone)","virtualDescription":"Define how your virtual influencer looks and generate {count} AI faces to choose the base.","cloneDescription":"Upload the person's main photo. Use an image with a visible face, good lighting, and a clean background.","mainAvatarPhoto":"Avatar main photo","openLarger":"Open full size","ethnicity":"Ethnicity *","trendingSummary":"Trending look (optional) — {count} styles","hairColor":"Hair color","hairStyle":"Hair style","bodyType":"Body type","visualStyle":"Visual style","facialFeatures":"Facial features","facialFeaturesFree":"Facial features (free text)","facialFeaturesPlaceholder":"e.g. blue eyes, defined cheekbones, freckles...","facialFeaturesClonePlaceholder":"e.g. blue eyes, defined cheekbones, beard…","generateFacesTitle":"Generate {count} AI faces","creditConfirmation":"{credits} credits · confirmation required","generating":"Generating…","generate":"Generate ({credits} cr)","regenerate":"Regenerate ({credits} cr)","generateInfinitive":"generate","regenerateInfinitive":"regenerate","confirmFaces":"Confirm that you want to {action} the {count} AI faces?\n\nCost: {credits} credits.\n{count} images at 4K.\n\nThis action cannot be reversed: credits are deducted when generation starts.","confirmCollage":"Generate the multi-angle view for this master photo?\n\nCurrent balance: {balance} credits. Cost: {credits} credits.\n\nCredits are charged when generation starts.","collageBalanceUnavailable":"We could not read the cost and balance for the multi-angle view.","collageInsufficient":"Insufficient credits for the multi-angle view: you have {balance} and need {credits}.","collageMasterChanged":"The master photo changed during generation. The resulting view was not applied to the new photo.","sample":"Sample {number}","error":"Error","generateHint":"Complete ethnicity and sex, then select “Generate”.","dropImage":"Drag an image here or select to choose one","imageRequirements":"JPG, PNG, or WebP · Max. {max} MB","masterPhoto":"Master photo","removeMasterPhoto":"Remove master photo","uploading":"Uploading…","uploaded":"Uploaded","physicalTraitsOptional":"Physical traits (optional)","errors":{"imageType":"The file must be a JPG, PNG, or WebP image.","imageSize":"The maximum size is {max} MB.","upload":"The image could not be uploaded.","supportExpired":"The support session has expired. Enter the account again from Support and retry the upload.","supportReadOnly":"This view is read-only. Enter the account again from Support and retry the upload.","supportUploadBlocked":"Support mode is blocking image uploads. The file has not been uploaded.","uploadStatus":"The image could not be uploaded (HTTP {status}). Try again.","uploadTimeout":"The upload timed out. Check your connection and choose the image again.","collage":"The multi-angle view could not be generated.","generation":"The faces could not be generated.","quoteChanged":"The generation price has changed. Review the updated price before confirming again."},"ethnicities":{"european":"European","caucasian":"Caucasian","latino":"Latino","asian":"Asian","african":"African","arab":"Arab","indian":"Indian","mixed":"Mixed"},"trendingLooks":{"vitiligo":{"label":"Vitiligo beauty","description":"Skin with vitiligo and a unique natural contrast"},"heterochromia":{"label":"Heterochromia","description":"Eyes of different colors"},"albinoAfro":{"label":"Albino Afro","description":"African features with very light skin and white hair"},"freckleGoddess":{"label":"Freckled face","description":"Prominent freckles across the face"},"mixedKoreanBrazilian":{"label":"Korean-Brazilian mix","description":"A mix of Asian and Latino features"},"silverFox":{"label":"Silver hair","description":"Premature gray or white hair on a young person"}},"options":{"hairColors":{"brown":"Brown","blonde":"Blonde","black":"Black","red":"Red","gray":"Gray","white":"White","highlights":"Highlights"},"hairStyles":{"short":"Short","medium":"Medium","long":"Long","curly":"Curly","straight":"Straight","wavy":"Wavy","braids":"Braids","updo":"Updo"},"bodyTypes":{"athletic":"Athletic","slim":"Slim","curvy":"Curvy","muscular":"Muscular","average":"Average","plus":"Plus size"},"stylePresets":{"professional":"Professional","casual":"Casual","glamorous":"Glamorous","sporty":"Sporty","bohemian":"Bohemian","minimalist":"Minimalist","vintage":"Vintage","streetwear":"Streetwear"},"eyeColors":{"brown":"Brown","blue":"Blue","green":"Green","hazel":"Hazel","gray":"Gray","amber":"Amber","black":"Black"}},"eyeColor":"Eye color"},"personality":{"title":"Personality and style","description":"Define how the Persona behaves and communicates. This information helps design its voice, suggest scenes, and build its description.","traits":"Personality traits","multiSelect":"(select multiple)","selectedCount":"{count, plural, one {# selected} other {# selected}}","socialLevel":"Social level","introverted":"Introverted","extroverted":"Extroverted","communicationStyle":"Communication style","professionalFocus":"Professional focus","lifestyle":"Lifestyle","traitOptions":{"charismatic":"Charismatic","sophisticated":"Sophisticated","energetic":"Energetic","thoughtful":"Thoughtful","inspiring":"Inspiring","professional":"Professional","approachable":"Approachable","disruptive":"Disruptive","empathetic":"Empathetic","analytical":"Analytical","creative":"Creative","disciplined":"Disciplined"},"communicationOptions":{"motivational":"Motivational","educational":"Educational","entertaining":"Entertaining","direct":"Direct","thoughtful":"Thoughtful","storytelling":"Storytelling","provocative":"Provocative","empathetic":"Empathetic"},"focusOptions":{"finance":"Finance","technology":"Technology","health":"Health","wellness":"Wellness","business":"Business","marketing":"Marketing","lifestyle":"Lifestyle","education":"Education","creativity":"Creativity","leadership":"Leadership"},"lifestyleOptions":{"luxury":"Luxury","active":"Active","minimalist":"Minimalist","nomadic":"Nomadic","urban":"Urban","family":"Family-oriented","adventurous":"Adventurous","conservative":"Conservative"}},"storyboard":{"title":"Storyboard","existingPhoto":"Photo {number}","description":"{count} photos of the Persona in different settings, generated from the master photo. They provide varied avatar contexts without taking new photos.","masterPhoto":"Master photo","enlargeMaster":"Enlarge master photo","sixAngleView":"Six-angle avatar view","generateTitle":"Generate {count} storyboard photos","readyCount":"{count, plural, one {# ready} other {# ready}}","errorCount":"{count, plural, one {# error} other {# errors}}","totalCount":"{count} total","generating":"Generating…","regenerateAll":"Regenerate all","generate":"Generate","masterHint":"Upload or choose the master photo in Appearance before generating the storyboard.","openScene":"Open scene {number}","regenerateScene":"Regenerate this scene","error":"Error","retry":"Retry","close":"Close","errors":{"masterRequired":"Add a master photo in Appearance first.","generation":"This scene could not be generated.","regeneration":"This scene could not be regenerated.","sceneRequest":"Scene {number} could not be generated (status {status}).","regenerationRequest":"The scene could not be regenerated (status {status})."},"scenes":{"office":"Professional office","street":"Casual urban street","cafe":"Lifestyle café","studio":"Creator studio","outdoor":"Athletic outdoors","event":"Elegant event","unknown":"Scene"}},"expressivities":{"defaults":{"podcast_seated":{"label":"Podcast seated","description":"Seated facing mic/camera, hands on table, medium expressiveness — ideal for interviews and long episodes.","recordingHint":"Sit facing the camera with a visible microphone or hands on the table. Speak looking forward with natural but contained expressiveness. Background: clean studio."},"standing_professional":{"label":"Standing professional","description":"Standing frontal, neutral posture, contained gestures — ideal for corporate ads and B2B presentations.","recordingHint":"Stand facing the camera, upright posture, arms relaxed at sides or occasionally gesturing. Speak in a professional tone. Background: office or neutral wall."},"high_energy":{"label":"High energy","description":"Standing with lots of gestures, big arm/head movement, animated expression — ideal for motivational reels and viral hooks.","recordingHint":"Stand up and speak with lots of energy, wide hand gestures, frequent smiles, head movements. As if motivating an audience. Background: clean so motion shows clearly."},"casual_relaxed":{"label":"Casual relaxed","description":"Seated on couch or informal setting, soft gestures, frequent smiles — ideal for personal storytelling, vlogs and lifestyle content.","recordingHint":"Sit comfortably on a couch or casual chair, relaxed posture, speak naturally like a friendly conversation. Background: living room, cafe, warm space."},"static_cinematic":{"label":"Static cinematic","description":"Standing, arms at sides, minimal motion, frontal — ideal for premium ads in Apple/brand-film style.","recordingHint":"Stand fully frontal to camera, arms at sides, minimal body movement. Speak with calm reflective voice. Background: clean, possibly with dramatic light or elegant solid color."}},"title":"Expressivities","optional":"(optional)","virtualSkipHint":"You can skip this step and use the five included standard movements. Custom Expressivities are generated separately and use credits.","virtualDescription":"Generate 15-second videos to create motion profiles: the Persona's characteristic way of moving. These profiles are used when creating an Avatar V.","cloneDescription":"Upload videos of at least 15 seconds showing the person moving in different styles. Each video can become a motion profile for Avatar V.","skipHint":"If you skip this step, you can start with Avatar IV and add Expressivities later from the Persona page.","generateAllTitle":"Optional: generate {count} custom Expressivities","generateAllDescription":"Five standard movements are included. Generate these {count} custom 15-second videos only if you want additional movements for this Persona. Cost: <strong>{totalCredits} credits</strong> ({credits} cr × {count} videos). They may take several minutes.","generateCount":"Generate {count} custom videos","generateIndividually":"Or generate them individually:","viewPose":"View pose example: {label}","poseExample":"Example of {label}","generateCredits":"Generate ({credits} cr)","confirmOne":"Confirm that you want to generate “{label}”?\n\nCost: {credits} credits.\n15-second vertical video (9:16).\n\nCredits are deducted when generation starts, and the action cannot be reversed.","confirmCustom":"Confirm that you want to generate the custom Expressivity “{label}”?\n\nCost: {credits} credits.\n15-second vertical video (9:16).\n\nCredits are deducted when generation starts, and the action cannot be reversed.","confirmAll":"Confirm that you want to generate the {count} custom Expressivities?\n\nTotal cost: {totalCredits} credits.\n{credits} cr × {count} 15-second videos.\n\nCredits are deducted as each generation starts, and the action cannot be reversed.","thisExpressivity":"this Expressivity","confirmDelete":"Are you sure you want to delete “{label}”?\n\nThis action cannot be undone. If it was an uploaded video, you will need to upload it again. If it was generated, you will need to spend credits again to regenerate it.","closeWarning":"Close warning","createdCount":"Created Expressivities ({count})","errors":{"videoType":"The file must be an MP4, MOV, or WebM video.","videoSize":"The maximum size is {max} GB.","videoTooShort":"The video is {duration} seconds long. Avatar V requires at least {minimum} seconds. Record a longer video.","save":"The Expressivity could not be saved."},"warnings":{"untrimmedWithDetail":"The complete video ({duration} seconds) was uploaded. It could not be adjusted now ({detail}); processing will try again.","untrimmed":"The complete video ({duration} seconds) was uploaded. It could not be adjusted now; processing will try again.","optimizing":"The video was uploaded ({size} MB) and is being optimized. You can continue; this normally takes 1–2 minutes."},"recording":{"recommendedTitle":"For the best results, we recommend recording {count} types","pdfTitle":"Download the guide to recording your digital clone","pdfAction":"Recording PDF guide","countHint":"You can upload one video, the {count} recommended videos, or as many as you need. Each video must be at least {minimum} seconds long.","dropVideos":"Drag videos here or select to choose them; you can upload several at once","videoRequirements":"MP4, MOV, or WebM · Minimum duration: {minimum} seconds","addType":"Add a specific type:"},"disclaimer":{"preview":"<strong>These videos are only expression and movement samples.</strong> They do not exactly represent how the final avatar will look.","audio":"The final avatar will use the selected Persona's <strong>authentic voice</strong>, not necessarily the temporary audio in these samples."},"card":{"heygenQueued":"Avatar: queued","heygenProcessing":"Avatar: processing","heygenReady":"Avatar: ready","heygenFailed":"Avatar: failed","play":"Play video","generating":"Generating video with AI…","unavailable":"Video not available yet","closePlayer":"Close player","heygenStatusTitle":"Avatar processing status; separate from upload status","generatingLong":"Generating video. This may take several minutes.","ready":"Ready","aiGenerated":"AI-generated","uploaded":"Uploaded","uploadingPercent":"Uploading {percent}%","processing":"Processing…","uploading":"Uploading","setDefault":"Set as default","delete":"Delete"},"custom":{"title":"Need another movement? Generate a custom Expressivity","namePlaceholder":"Name (e.g. Laughing out loud)","promptPlaceholder":"Describe the movement or expression. Example: Persona seated, laughing naturally, looking at the camera, with a neutral background and medium shot. You can use [SEX], [AGE_RANGE], and [ETHNICITY] to insert the Persona's details.","cost":"Cost: {credits} credits (15-second video)","generate":"Generate custom","defaultLabel":"Custom"},"typeSelector":{"custom":"Custom…","customName":"Custom name"},"consent":{"signedTitle":"Image consent signed","unsignedTitle":"Image consent needs to be signed","signedBy":"Signed by <strong>{name}</strong> on {date}","unsignedDescription":"Without consent, videos will not be sent to the provider to generate the avatar.","hide":"Hide","showText":"View text","nameToken":"[name]","legalName":"Full legal name of the image-rights holder","legalNamePlaceholder":"e.g. David Aranzabal Rodriguez","legalNameHint":"It must match the person's identity document. It is stored with the accepted text as evidence of consent.","accept":"I have read the complete text and, as the image-rights holder identified above, I give my consent.","enterLegalName":"Enter the legal name before signing.","revoke":"Withdraw consent","revokeConfirm":"Withdraw consent? New avatar generations will stop. Content already produced will remain."}},"voice":{"title":"Voice","optional":"(optional)","virtualDescription":"Generate {count} AI voice variants and choose the one that best matches the Persona's personality.","cloneDescription":"You can skip voice setup and configure it later, or upload an audio sample to clone it.","additionalVariants":"You can also generate additional variants:","errors":{"designRequest":"The voices could not be generated (status {status}).","design":"The voices could not be generated.","saveRequest":"The voice could not be saved (status {status}).","save":"The voice could not be saved.","audioType":"The file must be an MP3, WAV, M4A, or another supported audio format."},"default":{"title":"Default voice","viewTitle":"Open the voice record","viewAction":"View voice","selectorLabel":"Default voice","loadingAudio":"Loading voice audio…","audioUnavailable":"This voice is saved. An audio preview is not available.","createWithAi":"Create voice with AI"},"design":{"accountTitle":"Account that will generate the voice","managedDescription":"System managed by ContentFlow365","externalTitle":"My ElevenLabs","checkingConnection":"Checking connection…","externalConnected":"Uses your company's connected API plan","externalUnavailable":"Connect and enable ElevenLabs in Integrations","billingNotice":"ContentFlow365 credits will be deducted. If you choose “My ElevenLabs”, ElevenLabs will also bill usage to the connected API account.","title":"Design {count} voices with ElevenLabs","generating":"Generating…","otherVariants":"Another {count} variants ({credits} cr)","generate":"Generate ({credits} cr)","variant":"Variant {number}","savingVoice":"Saving voice","generateHint":"Select Generate to create {count} AI voices based on your influencer's personality.","confirmManaged":"Confirm that you want to generate {count} voice variants?\n\nCost: {credits} ContentFlow365 credits.\n\nCredits are deducted when generation starts.","confirmExternal":"Confirm that you want to generate {count} voice variants with your ElevenLabs account?\n\nCost: {credits} ContentFlow365 credits. ElevenLabs will also bill usage to the connected API account.\n\nCredits are deducted when generation starts."},"clone":{"skipTitle":"Skip — manage later in Voices","skipDescription":"The Persona will be created without a voice. You can associate or create one later from the Voices module.","trainingTitle":"Use audio from the training video","trainingDescription":"This option will use audio from a training video to create the voice when processing becomes available.","trainingUnavailable":"Not available yet. No action or charge will start.","audioTitle":"Upload audio to clone","audioDescription":"Upload at least one minute of the person speaking clearly. The next flow lets you choose a supported engine.","removeAudio":"Remove audio file"},"creator":{"identity":{"title":"Voice identity","hint":"The initial voice description is based on these Persona traits. Review the full description before generating.","sex":"Sex","age":"Age","nationality":"Nationality","accent":"Accent and language","unspecified":"Not specified","prompt":"View full voice description"},"common":{"personaFallback":"the Persona","setDefault":"Set as {name}'s primary voice","unnamed":"Unnamed","expression":"Expression","video":"video","favorite":"Favorite","playPreview":"Play {label} sample","pausePreview":"Pause {label} sample"},"errors":{"design":"The voice samples could not be generated.","descriptionRequired":"Write a voice description before generating samples.","descriptionTooLong":"The voice description is too long. Shorten it to 1,000 characters or fewer.","insufficientCredits":"Not enough credits to design this voice. You need {credits} credits.","permission":"You do not have permission to perform this voice action. Refresh the page and try again.","selectPersonaForExternal":"Select a Persona before using My ElevenLabs.","saveExternal":"The provider created the voice, but ContentFlow365 could not register it.","save":"The voice could not be saved.","createRecord":"The voice record could not be created in ContentFlow365.","createRecordMissingId":"The provider responded, but ContentFlow365 did not return a verifiable voice identifier.","audioType":"Select an MP3, WAV, M4A, or another supported audio file.","fileTooLarge":"The file is too large. Maximum: {max} MB.","selectExistingVoice":"Select a voice that has an audio sample.","unknown":"unknown error","downloadExistingVoice":"The selected voice sample could not be downloaded ({error}).","selectExpression":"Select an expression that has a video.","registerExternal":"The provider created the voice, but ContentFlow365 could not register it.","clone":"The voice could not be cloned.","prepareUpload":"The temporary audio upload could not be prepared.","upload":"The temporary audio could not be uploaded (status {status})."},"warnings":{"avatarSetsNotRelinked":"The voice was created, but its update in the avatar sets could not be confirmed. Review those sets before generating content."},"design":{"accountTitle":"Account that will generate the voice","managedDescription":"System managed by ContentFlow365","externalTitle":"My ElevenLabs","checkingConnection":"Checking connection…","externalConnected":"Your company's API plan","externalUnavailable":"Enable it in Integrations","selectPersona":"Select a Persona","billingNotice":"Designing deducts ContentFlow365 credits. My ElevenLabs also uses the connected API plan.","previewTitle":"Listen and select the best variant","generating":"Generating…","regenerate":"Regenerate","personaData":"Persona data:","missingPersona":"Define the Persona's name and sex before designing a synthetic voice.","modelTitle":"ElevenLabs model","v3Description":"More expressive · Recommended for Reels","v2Description":"More consistent · Recommended for YouTube","descriptionTitle":"Voice description","suggestions":"AI suggestions","suggestionsPending":"The request is still in progress. Select again to recover the same suggestions.","suggestionsPreviousRecovered":"The previous request has been recovered. Select again for suggestions based on the current details.","suggestionsUnavailable":"Suggestions cannot be recovered right now. Try again; you can keep editing the description.","closeSuggestions":"Close suggestions","descriptionPlaceholder":"Describe tone, warmth, energy, and style…","descriptionHint":"This is the full description sent to ElevenLabs. You can edit it and expand the field. Keep the age, sex, nationality and accent you want.","accentTitle":"Language and accent","accentHint":"The option is added to the description to guide language and accent.","accents":{"esSpain":"🇪🇸 Spanish (Spain)","esMexico":"🇲🇽 Spanish (Mexico)","esLatam":"🇱🇦 Spanish (Latin America)","enUs":"🇺🇸 English (US)","enUk":"🇬🇧 English (UK)","de":"🇩🇪 German","esCanary":"Spanish (Canary Islands)","esAndalusia":"Spanish (Andalusia)","fr":"French","it":"Italian","ptBr":"Portuguese (Brazil)"},"recoverAttempt":"The voice attempt has not been confirmed. Select generate again to inspect the same attempt without starting another charge.","saveConfirm":"Save “{name}”? Additional cost: {credits} credits. Current balance: {balance}.","sampleConfirm":"Generate the saved voice sample? Cost: {credits} credits. Current balance: {balance}.","balanceUnavailable":"unavailable","quoteBalance":"Cost: {credits} credits · Available balance: {balance} credits","quoteUnavailable":"The current cost and balance could not be checked. Please try again.","insufficientBalance":"You do not have enough credits for these voice samples.","generatingCount":"Generating {count} voice variants…","confirm":"Confirm — {credits} credits · select again","regeneratePreviews":"Regenerate samples","generatePreviews":"Generate {count} voice samples","saving":"Saving the voice and generating a sample…","save":"Save voice"},"clone":{"notesTitle":"Notes (optional)","notesPlaceholder":"Audio source, adjustments, and any useful detail for identifying this voice.","externalBilling":"ElevenLabs exclusively uses your company's API connection; usage is billed to that plan.","confirmCredits":"Clone this voice? ContentFlow credit cost: {credits}. Current balance: {balance} credits. Your voice provider may bill usage separately.","balanceUnavailable":"We could not check your balance before cloning the voice. Please try again.","outcomeUnresolved":"The provider request has no confirmed result yet. We kept the attempt so its status can be checked; try again later without creating another clone.","guidance":"Use a sample of at least {seconds} seconds, with a clean voice and no background music.","guidanceFish":"Fish Audio accepts under 4 min 30 sec; a longer file is prepared as a temporary 4:20 sample.","guidanceVoxtral":"Voxtral accepts up to 30 sec; a longer file is prepared as a temporary 28 sec sample.","guidanceElevenLabs":"ElevenLabs accepts up to 11 MB per file; a longer file is prepared as a temporary sample of up to 8 min.","guidanceDefault":"A clean, sufficient sample improves the result.","sourceUpload":"Upload file","sourceRecord":"Record","sourceExisting":"Existing voice","sourceExpression":"Expression video","selectExistingOption":"Select existing voice: {name}","selectExpressionOption":"Select expression video: {name}","loadingVoices":"Loading voices…","noVoices":"No voices with an audio sample are available.","selectPersonaForExpressions":"Select a Persona to view its expressions.","loadingExpressions":"Loading expressions…","noExpressions":"This Persona has no expression videos available.","extractAudio":"The flow will automatically extract audio from the selected video to clone the voice.","audioPreview":"Selected audio sample","dropAudio":"Drag an audio file or","chooseFile":"select one from your device","fileHintFish":"MP3, WAV, or M4A · temporary sample under 4:30","fileHintVoxtral":"MP3, WAV, or M4A · temporary 28 sec sample","fileHintElevenLabs":"MP3, WAV, or M4A · temporary sample up to 8 min","fileHintDefault":"MP3, WAV, or M4A · maximum 25 MB","changeFile":"Change","cloningUploaded":"Cloning and generating a sample in {engine}…","cloningExisting":"Cloning from the existing voice in {engine}…","cloningExpression":"Extracting audio and cloning in {engine}…","action":"Clone voice with"},"engine":{"title":"Voice engine","recommended":"Recommended","elevenlabs":{"sublabel":"Design and cloning","features":{"0":"Design from a description","1":"Your own API connection","2":"Cloning from 30 sec"}},"voxtral":{"sublabel":"Mistral · short sample","features":{"0":"Cloning from 3 sec","1":"Managed path","2":"Maximum 30 sec sample"}},"fish":{"sublabel":"Fish Audio · flexible sample","features":{"0":"Cloning from 10 sec","1":"Managed path","2":"Reference under 4:30"}}},"recorder":{"errors":{"unsupported":"This browser cannot record audio here. Use Upload file.","permissionDenied":"Microphone permission was denied. Enable it in your browser and retry.","notFound":"No microphone was detected.","access":"The microphone could not be accessed."},"guidance":"Record at least {min} sec · recommended: {recommended} sec · maximum: {max}. Speak clearly with no background music.","stop":"Stop","minimum":"· minimum {seconds} sec","requesting":"Requesting microphone…","record":"Record","duration":"Duration: {duration}","tooShort":"The recording is too short. Record at least {seconds} sec.","repeat":"Record again","useRecording":"Use recording"},"main":{"success":"Voice “{name}” created successfully","opening":"Opening the voice details…","close":"Close","designTab":"Design voice with AI","cloneTab":"Clone from audio","virtualNotice":"For a Virtual Influencer, the voice is designed with AI from its characteristics. To clone a real voice, change the Persona type to Clone.","cancel":"Cancel"}}},"review":{"editTitle":"Summary","createTitle":"Review and create","editDescription":"Changes in each step are saved automatically. This is the Persona overview.","createDescription":"Review what you are about to create. If everything is correct, select Create Persona.","type":"Type","name":"Name","sex":"Sex","nationality":"Nationality","age":"Age","ethnicity":"Ethnicity","traits":"Traits","masterPhoto":"Master photo","masterDefined":"✓ defined","masterMissing":"— not defined","storyboard":"Storyboard","storyboardScenes":"{count} AI scenes","expressivities":"Expressivities","expressivitiesValue":"{count} ({defaults} default)","voice":"Voice","voiceRecoveryTitle":"The Persona is saved; the voice still needs saving","voiceRecoveryDescription":"The selected voice could not be saved. Retry the same voice without creating another Persona or generating new samples.","voiceRecoveryRetry":"Retry saving the voice","voiceRecoveryClose":"Close without saving the voice","voiceRecoveryFailed":"The voice could not be saved. You can try again.","voiceExisting":"Existing voice linked","voiceSkipped":"Skipped (manage in Voices)","voiceDesigned":"ElevenLabs design (variant {variant})","voiceClonedAudio":"Cloned from audio","voiceFromTraining":"Taken from the training video","uploadingVideos":"Uploading videos ({done}/{total})…","uploadingAssets":"Uploading files…","creatingPersona":"Creating Persona…","personaCreated":"Persona created!","createPersona":"Create Persona","errors":{"create":"The Persona could not be created. No creation has been confirmed. Review the error and try again.","upload":"Some files could not be uploaded. Your draft is still available; check the files before trying again.","createUnconfirmed":"Persona creation could not be confirmed. Check the list before trying again to avoid duplicates."},"autoSaved":"Changes save automatically. You can close now.","close":"Close","retryAndClose":"Retry save and close","saveFailed":"Some changes could not be saved. Retry saving before closing."},"naming":{"title":"A name that fits your character","description":"Using the chosen photo, age, nationality, accent, appearance and personality, AI will suggest ten first names: five everyday names and five with an epic twist.","name":"First name","placeholder":"For example: Lucy, Aurora, Alex…","required":"Enter a name or choose a suggestion to continue.","generate":"Suggest 10 names with AI","regenerate":"Suggest 10 more ideas","generating":"Finding names…","imageRequired":"Choose a photo in Appearance first so it can inform the suggestions.","error":"The ten suggestions could not be generated. Try again or enter a name.","natural":"Everyday","epic":"An epic twist"},"legacyVirtual":{"back":"Back to Personas","title":"Persona Builder","progress":"Step {current} of {total}","previous":"Previous","next":"Next","basics":{"type":"Persona type","virtualInfluencer":"Virtual influencer","clone":"Clone","name":"Influencer name","namePlaceholder":"For example: Sofia, Alex, Aurora…","nameHint":"If you have not chosen a name yet, you can leave it blank and ask AI for ten ideas after choosing a photo and defining their attributes.","sex":"Sex","male":"Male","female":"Female","nationality":"Nationality / accent","ageRange":"Age range","nationalities":{"spain":"Spain","mexico":"Mexico","argentina":"Argentina","colombia":"Colombia","chile":"Chile","peru":"Peru","venezuela":"Venezuela","ecuador":"Ecuador","unitedStates":"United States","unitedKingdom":"United Kingdom","france":"France","italy":"Italy","germany":"Germany","brazil":"Brazil","portugal":"Portugal","other":"Other"}},"appearance":{"ethnicityLabel":"Ethnicity / appearance","trendingLabel":"Trending Instagram looks (optional)","hairColorLabel":"Hair color","eyeColorLabel":"Eye color","hairStyleLabel":"Hairstyle","bodyTypeLabel":"Body type","facialFeaturesLabel":"Facial features (optional)","facialFeaturesPlaceholder":"For example: light eyes, short beard, freckles…","visualStyleLabel":"Visual style","options":{"bald":"Bald","normal":"Average","robust":"Stocky","artistic":"Artistic"},"trending":{"mixedNordicIndian":{"label":"Nordic–Indian mix","description":"Nordic features with an Indian skin tone"},"gapTooth":{"label":"Gap tooth","description":"A distinctive gap between the front teeth"},"androgynous":{"label":"Androgynous","description":"Fluid beauty with ambiguous gender features"},"redAfro":{"label":"Red afro","description":"Natural red afro hair and freckled light skin"},"melaninQueen":{"label":"Deep melanin","description":"Deep, luminous dark skin tones"},"faeEthereal":{"label":"Ethereal","description":"Elfin features and sharply defined cheekbones"},"albinoAsian":{"label":"Albino Asian","description":"Asian features with albinism, platinum hair and light eyes"},"bicolorLips":{"label":"Bicolor lips","description":"Naturally two-toned lips with pink and brown pigmentation"},"redFreckles":{"label":"Red freckles","description":"Reddish freckles on dark skin"}}},"summary":{"name":"Name: {value}","sex":"Sex: {value}","age":"Age: {value} years","nationality":"Nationality: {value}","appearance":"Appearance: {details}","ethnicity":"Ethnicity: {value}","hairColor":"Hair color: {value}","eyeColor":"Eye color: {value}","presence":"Camera presence: {value}","hairStyle":"Hairstyle: {value}","bodyType":"Body type: {value}","facialFeatures":"Facial features: {value}","stylePreset":"Visual style: {value}","personality":"Personality: {details}","traits":"Traits: {value}","social":"Social level: {value}","communication":"Communication: {value}","focus":"Professional focus: {value}","lifestyle":"Lifestyle: {value}"},"face":{"title":"Choose a face","generating":"Generating faces…","confirm":"Confirm — use {credits} credits","confirmShort":"Confirm ({credits} credits)","insufficientCredits":"Not enough credits to generate faces.","generate":"Generate {count} faces ({credits} credits)","selectHint":"Choose the face you like best for your influencer.","regenerateAll":"Regenerate all"},"storyboard":{"title":"Generate storyboard","description":"Six additional 4K images will be generated with different outfits and locations. The selected face will be used as the master image.","generating":"Generating…","generate":"Generate {count} scenes","sceneSummary":"Master face + {count} storyboard scenes","regenerate":"Regenerate scenes","enlarge":"Enlarge image","editWithAi":"Edit with AI","regenerateOne":"Regenerate image","generationFailed":"This scene could not be generated.","retry":"Retry","scenes":{"master":"Master — close-up","professional":"Professional — office","casual":"Casual — city street","lifestyle":"Lifestyle — café","creator":"Creator — studio","sport":"Sport — outdoors","elegant":"Elegant — event"}},"voice":{"title":"Design a voice with AI","model":{"title":"ElevenLabs speech model","stableOption":"Consistent narration","expressiveOption":"More expressive","help":"V2 prioritizes consistent narration. V3 offers more expressive delivery. Default: V2 for YouTube and V3 for Reels, unless you choose a model."},"description":"ElevenLabs will generate {count} synthetic voice options based on your virtual influencer. You can listen and choose one.","generating":"Generating voices…","generate":"Generate {count} voices","optionalHint":"This step is optional. You can create the Persona without a voice and add one later.","selectHint":"Listen and select the voice you like best.","regenerate":"Regenerate","play":"Play {name}","pause":"Pause {name}","generatedByAi":"AI-generated voice"},"review":{"masterImage":"Master image","enlargeMaster":"Enlarge master image","name":"Name","type":"Type","sex":"Sex","nationality":"Nationality","age":"Age","ethnicity":"Ethnicity","style":"Style","personality":"Personality","communication":"Communication","images":"Images","imageCount":"{count} of {total}","voice":"Voice","voiceSelected":"Selected","noVoice":"No voice","savedDescription":"Saved description","creating":"Creating Persona…","confirm":"Confirm — use {credits} credits","insufficientCredits":"Not enough credits to create the Persona.","create":"Create virtual influencer ({credits} credits)"},"lightbox":{"close":"Close image","previous":"Previous image","next":"Next image","face":"Face {index}","scene":"Scene {index}","preview":"Image preview"},"personality":{"traitsLabel":"Personality traits (choose several)","socialLevel":"Social level: {value}","focusLabel":"Intellectual / professional focus","lifestyleLabel":"Lifestyle","communicationLabel":"Communication style","traits":{"charismatic":"Charismatic","serious":"Serious","fun":"Fun","inspiring":"Inspiring","calm":"Calm","energetic":"Energetic","sophisticated":"Sophisticated","approachable":"Approachable","authoritative":"Authoritative","empathetic":"Empathetic","creative":"Creative","analytical":"Analytical"},"social":{"veryIntroverted":"Very introverted","introverted":"Introverted","balanced":"Balanced","extroverted":"Extroverted","veryExtroverted":"Very extroverted"},"focus":{"business":"Business","technology":"Technology","art":"Art","science":"Science","sports":"Sports","wellness":"Wellness","finance":"Finance"},"lifestyles":{"luxury":"Luxury","active":"Active","minimalist":"Minimalist","urban":"Urban","natural":"Natural","technology":"Technology-focused"},"communication":{"formal":"Formal","colloquial":"Conversational","technical":"Technical","narrative":"Narrative","motivational":"Motivational","educational":"Educational"}},"aiSuggestion":{"title":"AI suggestion based on your brand","description":"AI analyzes your marketing strategy, audience and visual identity to suggest adjustments to your virtual Persona.","loading":"Analyzing brand…","generate":"Get AI suggestion","error":"The AI suggestion could not be generated. Try again.","result":"AI suggestion","name":"Name","age":"Age","ethnicity":"Ethnicity","style":"Style","personality":"Personality","communication":"Communication","apply":"Apply suggestion","currentSummary":"Current summary","emptySummary":"Complete the previous steps to see the summary."},"steps":{"basics":{"label":"Basics","description":"Type and basic details"},"aiSuggestion":{"label":"Brand AI","description":"AI brand suggestion"},"appearance":{"label":"Appearance","description":"Physical appearance"},"personality":{"label":"Personality","description":"Traits and style"},"faceSamples":{"label":"Face","description":"Choose a face with AI"},"storyboard":{"label":"Storyboard","description":"AI scenes"},"voice":{"label":"Voice","description":"Synthetic voice"},"review":{"label":"Create","description":"Review and create"}}},"legacyClone":{"back":"Back","progress":"Clone Persona · {current}/{total}","previous":"Previous","next":"Next","create":"Create Persona","creating":"Creating…","created":"Persona created!","steps":{"basics":"Basics","masterPhoto":"Master photo","trainingVideo":"Video (optional)","voice":"Voice"},"basics":{"title":"Basics","description":"The essential details to identify the person being cloned.","name":"Name *","namePlaceholder":"For example, Antonia Padilla","sex":"Sex *","male":"Man","female":"Woman","nationality":"Nationality / accent","notes":"Notes (optional)","notesPlaceholder":"Short bio, context, associated brand…"},"nationality":{"spain":"Spain","mexico":"Mexico","argentina":"Argentina","colombia":"Colombia","chile":"Chile","peru":"Peru","venezuela":"Venezuela","usa":"United States","uk":"United Kingdom","france":"France","germany":"Germany","italy":"Italy"},"photo":{"title":"Master photo","description":"The main photo defines the person's appearance across their avatars. Choose a clear, well-lit face with an uncluttered background.","dropHint":"Drop an image here or select a file","fileHint":"JPG, PNG or WebP · Max {max} MB","previewAlt":"Master photo preview","remove":"Remove photo"},"video":{"title":"15-second training video (optional)","description":"Avatar V needs a training video for a consistent identity. You can add one later and upload more videos from the Persona page.","durationBadge":"15s","durationTitle":"Only 15 seconds of your video will be used","durationExplanation":"Upload the complete video, whatever its length or file size. The best 15-second segment is extracted for HeyGen.","rulesTitle":"How to record a useful 15-second clip","doTitle":"✓ Include","dontTitle":"✗ Avoid","dropHint":"Drop a video here or select a file","fileHint":"MP4, MOV or WebM · Any length or file size · Only 15 seconds are used","skipHint":"You can skip this step and add a video later","remove":"Remove video"},"rules":{"stillFront":"Still, front-facing person looking at the camera","staticBackground":"Still background without moving people or pets","evenLight":"Good, even lighting","cleanAudio":"Clean audio with natural speech","faceFraming":"Face fills 30–50% of the frame","walking":"Walking or moving around the space","traffic":"Cars or traffic moving behind the person","passersBy":"Other people passing or gesturing behind them","noise":"Background music or loud noise","changingLight":"Moving shadows or flickering light","faceCutOff":"Face too far away or cut off by the frame"},"voice":{"title":"Voice","withVideoDescription":"Manage the voice in Voices after creating the Persona. Processing the training video may make a voice available there.","withoutVideoDescription":"You can link a custom voice later from Voices.","skipAction":"Skip — manage in Voices","withVideoHint":"Check Voices after the training video has been processed.","withoutVideoHint":"Create or link a custom voice from Voices.","cloneNow":"Clone a custom voice now (ElevenLabs)","comingSoon":"Coming to this wizard later","separateFlow":"Available as a separate flow in Voices."},"errors":{"invalidPhoto":"Choose an image file (JPG, PNG or WebP).","photoTooLarge":"The image must be no larger than {max} MB.","invalidVideo":"Choose a video file (MP4, MOV or WebM).","noAccount":"Select an active account first.","masterPhotoRequired":"Add a master photo in step 2.","create":"The Persona could not be created. Check your files and try again."}}},"personaHub":{"header":{"backToList":"Back to My Personas","insidePersona":"Everything shown here belongs to this persona.","title":"Persona","subtitle":"Your AI clone: identity, brain, voice, image, and video — all in one place."},"list":{"label":"My Personas","hint":"Your Persona is your clone: identity, voice, image, and video in one place.","info":"A Persona is your AI clone. Create it once and use it across all your videos: clone yourself, build a virtual influencer, or use voice-over only. Open one to review and complete its parts."},"tabs":{"resumen":{"label":"Overview","hint":"The central dashboard for this Persona and the status of every clone component.","info":"This is your Persona dashboard: each card is one part of the clone (identity, brain, voice, avatars, video, and presets) with its current status. Open the part you want to work on."},"identidad":{"label":"Identity","hint":"Your Persona profile: master photo, other photos, and identity details.","info":"Your Persona identity lives here: the master photo used by image generators, its storyboard, and its profile data. Keep it current so avatars stay consistent."},"cerebro":{"label":"Brain","hint":"The brain stores how you think and speak so your clone can write like you.","info":"Complete a short interview that you can pause and resume. Your answers become the Persona master document: who you are, how you speak, your stories, and your boundaries. This makes content sound like you."},"voz":{"label":"Voice","hint":"The voice your clone uses in videos. A Persona can have more than one.","info":"Clone your voice with one minute of audio or choose a synthetic voice. A Persona can have several voices; the default is used by montages unless an ad set selects another one."},"avatares":{"label":"Avatars","hint":"Avatars are the images and shots of your Persona used to generate videos.","info":"Each avatar is an image or shot of your Persona, such as a studio, close-up, or vertical setup. Reuse multiple avatars from the same Persona in all your videos."},"entrenamiento":{"label":"Video · Training","hint":"Short clips of your real gestures, previously called expressions, that train the video avatar.","info":"These short clips, also called expressions, teach the AI how you move and gesture so your video avatar feels more natural. A 30–60 second video is enough to start."},"presets":{"label":"Recording presets","hint":"A preset combines an avatar set, voice, and format so it can be reused.","info":"A preset stores a ready-to-use combination: avatar set, voice, and format, such as horizontal YouTube or vertical Reels. Choose it while assembling a video instead of configuring everything again."}},"education":{"whatIsThis":"What is this?","hide":"Hide","recordingGuide":"How to record well (photo, voice, and video)","recordingGuideModal":{"title":"How to record your clone well","intro":"You do not need professional equipment. A phone and these tips can greatly improve the result. The effort you put in now will show in every video your clone makes later.","photoTitle":"The master photo","photoSmile":"Smile with your teeth visible. If they are hidden, AI may invent them when your clone speaks on video.","photoFraming":"Keep the camera at eye level, with your head and shoulders in frame.","photoBackground":"Use a simple background, with no other people or objects close to your face.","lightTitle":"Lighting","lightWindow":"Face a window so the light falls on your face, not your back. This free change often improves the result most.","lightCeiling":"Avoid ceiling lights directly overhead; they cast strong shadows under your eyes.","lightHand":"Quick check: look at your palm where you will record. Soft, even light on your hand is a good sign.","voiceTitle":"Voice","voiceQuiet":"Choose a quiet place without fans, traffic, or an echoing room.","voiceDistance":"Keep the same distance from the microphone throughout. About a handspan from your phone works well.","voiceNatural":"Speak as you normally do. One natural minute is enough; a flat reading will make the clone sound flat too.","voiceVariety":"Vary your delivery: explain something calmly, share something exciting, and tell a memory. Variety helps the clone sound natural.","videoTitle":"Training video","videoDuration":"Record 30–60 continuous seconds without cuts, speaking to the camera about something you know well.","videoGestures":"Gesture naturally. These clips teach AI how you move.","videoAvoid":"Avoid coughing, looking away, or touching your hair: actions in the clip may appear in your avatar later.","videoFraming":"Record horizontally at 1080p or better, with your head filling about one third of the frame height.","academyHint":"Need help with a step? Academy has the complete course on creating your clone."}},"type":{"clone":"Clone (real person)","virtual":"Virtual Influencer"},"hero":{"title":"Create Persona","description":"One guided flow to build a Virtual Influencer with AI or clone a real person. Master photo, storyboard, expressions (motion baselines for Avatar V), and voice in seven steps.","featureUnified":"Virtual or Clone in one flow","featureStoryboard":"Six-scene AI storyboard","featureExpressions":"Expressions (Avatar V)","featureVoice":"Voice: design / clone / skip","action":"Create Persona"},"personas":{"heading":"Your personas","complete":"Clone complete","progress":"{done} of {total} steps","sharedReadOnly":"Shared from another account (read only)","masterPhoto":"Master photo","voice":"Voice","voiceCount":"Voice ({count})","avatar":"Avatar","avatarCount":"Avatar ({count})","trainingVideo":"Training video","trainingVideoCount":"Training video ({count})","brain":"Brain","brainProgress":"Brain ({done}/{total})","customVoice":"Custom voice","linkedVoice":"Linked voice","directUrl":"Direct URL","loading":"Loading…","enter":"Open","loadFailed":"Your Personas could not be loaded. Please try again.","retryLoad":"Try again","empty":"You do not have a Persona yet. Create the first one with the guided flow above: clone yourself or build a virtual influencer."},"summary":{"identityTitle":"Identity","identityDescription":"Your Persona profile: master photo used by generators, other photos, and identity details.","masterPhoto":"Master photo","missingMasterPhoto":"Master photo missing","photoCount":"{count, plural, one {# photo} other {# photos}}","brainTitle":"Brain","brainDescription":"A short interview that teaches your clone to think and write like you.","masterDocument":"Master document","masterDocumentReady":"Master document ready","interviewInProgress":"Interview in progress ({done}/{total})","trainingPending":"Training pending","voiceTitle":"Voice","voiceDescription":"Clone your voice with one minute of audio or choose a synthetic narration voice.","voiceCount":"{count, plural, one {# voice} other {# voices}}","noVoices":"No voice yet","avatarsTitle":"Avatars","avatarsDescription":"The Persona images and shots used to generate videos.","avatarCount":"{count, plural, one {# avatar} other {# avatars}}","noAvatars":"No avatars yet","trainingTitle":"Video · Training","trainingDescription":"Short clips of your real gestures that teach the avatar to move like you.","videoCount":"{count, plural, one {# video} other {# videos}}","noVideos":"No videos yet","presetsTitle":"Recording presets","presetsDescription":"Reusable avatar, voice, and format combinations for assembling videos without configuring everything again.","presetCount":"{count, plural, one {# preset} other {# presets}}","noPresets":"No presets yet","thingsTitle":"Things","thingsDescription":"Account objects that go with this persona. The list still belongs to the account.","thingsCount":"{count, plural, one {# Thing} other {# Things}}","noThings":"No linked Things","openThings":"Open the list","loadFailed":"The complete profile could not be loaded —","retry":"retry"},"brain":{"loadingPersonas":"Loading personas…","createFirstTitle":"Create your Persona first","createFirstDescription":"The brain is trained per Persona. Create your first Persona in My Personas, then return here to train how it thinks and speaks.","sharedDescription":"{name} is shared from another account. Its brain is trained and edited in the source account.","personaLabel":"Persona:","sharedReadOnly":"Shared from another account (read only)","retry":"Retry","empty":"You do not have a Persona yet. Create one in My Personas, then train its brain here.","loading":"Loading…","introTitle":"{name}'s brain","introMeta":"{count} questions · about 10 minutes · pause whenever you want","introDescription":"I will interview you like a good podcast host: one question at a time, with follow-ups based on your answers. Those answers form the master document —who you are, how you speak, your stories, and your boundaries— so reels, ads, and scripts sound like you.","createBrain":"Create {name}'s brain","interviewComplete":"Interview complete","questionProgress":"Question {current} of {total}","previousAnswers":"View previous answers ({count})","answerPlaceholder":"Answer as if you were telling a friend — the more specific you are, the more your clone will sound like you…","characterCount":"{count} characters","minimumCharacters":"minimum {count}","autoSaveHint":"Saved automatically — leave and continue later · ⌘+Enter","thinking":"Preparing the next question…","answer":"Answer","completedTitle":"Interview complete!","compileDescription":"I will now compile your {count} answers into {name}'s master document. This takes a few seconds.","compiling":"Compiling…","createMasterDocument":"Create master document","masterDocumentTitle":"{name}'s master document","copied":"Copied!","copy":"Copy","edit":"Edit","regenerate":"Regenerate","regenerateHint":"Regenerate the document from the interview","cancel":"Cancel","saving":"Saving…","saveChanges":"Save changes","comingSoon":"Coming soon: Chat with your Persona and automatic copy-generation integration — this document will be its master context.","loadError":"The brain status could not be loaded","startError":"The interview could not be started","answerError":"The answer could not be saved","compileError":"The document could not be compiled","saveError":"The document could not be saved","creditCost":"Brain interview, compilation and document editing: {cost} credits.","creditBalance":"Last checked balance: {balance} credits.","creditBalanceUnavailable":"Balance is unavailable or loading.","recoverQuestion":"Recover next question","operationPending":"A previous operation is still pending. Your answer is saved. Retry to check its result.","operationFailed":"The operation failed. Your draft is preserved; review it before trying again.","versionConflict":"The brain changed in another session. Copy your draft before reloading, then review the latest version.","regenerateConfirm":"You are about to regenerate the master document. The current version, including manual edits, will be overwritten. Continue?"},"identity":{"loadFailed":"This Persona profile could not be loaded.","retryLoad":"Try again","donor":"Donor","donorHint":"Expression donor — visible to CF365 admins only","fullWizard":"Full guided flow","fullWizardHint":"Open the complete guided flow with every tab","identity":"Identity","name":"Name","namePlaceholder":"Persona name","sex":"Sex","unspecified":"Not specified","male":"Male","female":"Female","status":"Status","active":"Active","done":"Complete","personaType":"Persona type","clone":"Clone","virtualInfluencer":"Virtual Influencer","fullDescription":"Full description","descriptionPlaceholder":"Detailed Persona description…","defaultVoice":"Default voice","viewVoice":"View voice","viewVoiceHint":"View voice record","loadingVoice":"Loading voice audio…","createVoice":"Create Voice with AI","linkedRecords":"Linked records ({count})","avatars":"Avatars","notes":"Notes","notesPlaceholder":"Internal notes…","close":"Close","masterPhotos":"Master and uploaded photos ({count})","identityPhoto":"Main image","identityPhotoHelp":"One image defines this persona’s visual identity. Storyboard scenes are generated from it in the guided flow.","viewIdentityPhoto":"View main image","identityPhotoEmpty":"Complete the guided flow to define the main image.","manageInWizard":"Open image wizard","storyboardWizardHelp":"Generate and update scenes with AI in the guided flow. View them here at full size.","storyboardWizardEmpty":"There are no storyboard scenes yet. Generate them with AI in the guided flow.","masterExplanation":"The master photo (★) is primarily used to generate portraits and avatars. Use a sharp, well-lit, front-facing close-up. Upload photos and press ★ to choose the master; switching it never deletes a photo.","photoAlt":"{name} — photo {number}","maximize":"Enlarge","editWithAi":"Edit with AI","makePrimary":"Make master","delete":"Delete","primary":"Master","uploadPhoto":"Upload photo","qaSimulationBanner":"Academy QA simulation: all photos and saves on this screen are synthetic. Nothing is written to the database or storage.","uploadStoryboardSlot":"Upload photo {number}: {label}","photoAction":"{action}: {label}","invalidImageType":"Choose an image file such as JPG, PNG, or WebP.","imageTooLarge":"The image is larger than {max} MB. Choose a smaller file and try again.","uploadFailed":"The image could not be uploaded. Choose the file again and retry.","saveFailed":"The change could not be saved. Nothing has been confirmed; try the action again.","retryUpload":"Choose again","confirmMaster":"Use this as the master photo? The master is the source for cloning the avatar and generating the storyboard. The previous photo will not be deleted.","cancel":"Cancel","confirmMakeMaster":"Confirm master photo","cannotDeleteMaster":"The master photo cannot be deleted. Choose another master first.","storyboard":"Storyboard ({count} photos)","photo":"Photo {number}","view":"View","replace":"Replace","masterPhoto":"Master photo","master":"Master","sixAngleView":"Six-angle avatar view","sixAngleViewHint":"Six-angle avatar view · Select to enlarge","appearance":"Appearance","nationality":"Nationality","ageRange":"Age range","ethnicity":"Ethnicity","hairColor":"Hair color","hairStyle":"Hair style","bodyType":"Body type","facialFeatures":"Facial features","facialFeaturesPlaceholder":"blue eyes, defined cheekbones…","visualStyle":"Visual style","personality":"Personality","traits":"Traits","communication":"Communication","professionalFocus":"Professional focus","lifestyle":"Lifestyle"},"voiceScreen":{"originalCreationPrompt":"Original voice creation prompt","acousticDescription":"Acoustic voice description","create":"Create Voice with AI","title":"Voices","description":"Voice profiles for narration","selectPersona":"Select a Persona for this voice","selectedPersona":"Persona: {name}","changePersona":"Change","closeCreator":"Close voice creator","personaVoiceHint":"The voice will be generated using the selected Persona's characteristics.","loadingPersonas":"Loading Personas","noPersonas":"No Personas yet. Create a Persona first in App Data → Persona.","genderUnknown":"Gender not specified","allPersonas":"All"},"voiceDrawer":{"sampleTitle":"Voice sample","playSample":"Play voice sample","pauseSample":"Pause voice sample","referenceAudio":"This is the original reference audio, not a sample generated by {engine}. Generate a sample to hear the actual result.","generatingSample":"Generating a sample with {engine}…","missingVoiceId":"No voice ID for {engine}. Clone the voice first.","generateSample":"Generate a sample with {engine}","regenerateSample":"Regenerate the sample with {engine}","sampleGenerationFailed":"The voice sample could not be generated. Try again.","sampleSaveFailed":"The sample was generated but could not be saved. Check the voice record before retrying.","analyzing":"Analyzing voice tone…","refreshAcoustic":"Update acoustic description","analysisStarted":"Acoustic analysis is in progress; the field will update automatically.","analysisFailed":"Acoustic analysis could not be started. Try again.","engineTitle":"Voice engine","engineElevenLabs":"Premium · Voice Design","engineVoxtral":"Mistral · Strong Spanish voices","engineFish":"S2-Pro · Emotions","modelTitle":"Model","automaticModel":"By format (YouTube V2 / Reels V3)","stableModel":"Consistent narration","expressiveModel":"More expressive","modelHelp":"V2 prioritizes consistent narration. V3 offers more expressive delivery. Default: V2 for YouTube and V3 for Reels, unless you choose a model.","voxtralMini":"9 languages · 70 ms","fishS2":"80+ languages · Emotions","adSets":{"personaFallback":"this Persona","checking":"Checking this Persona's ad sets…","loadFailed":"The ad sets could not be checked. No voice was applied.","retry":"Try again","apply":"Apply this voice to {count, plural, one {# ad set} other {# ad sets}} of {name}","confirm":"Confirm {count, plural, one {# ad set} other {# ad sets}} and the default voice — click again","applying":"Applying voice…","applied":"Voice applied to {count, plural, one {# ad set} other {# ad sets}} of {name} and set as the default voice.","explanation":"This replaces the voice in all of {name}'s ad sets and sets it as the default. You must click twice to confirm.","applyFailed":"We could not confirm whether all ad sets were updated. Check their voice settings before trying again."}},"avatarScreen":{"title":"Avatars","description":"Manage avatars for video production","create":"Create Avatar with AI","needsVerification":"Verification required","needsVerificationHint":"Show only avatars that require identity verification","trash":"Trash","backFromTrash":"Back to avatars","trashHint":"View deleted avatars so they can be restored"},"motionProfile":{"title":"Persona motion profile","description":"Choose up to six traits, one per category, to build a concise motion description. It is combined with each scene prompt.","recommended":"Use recommended subtle profile","categories":{"energy":"Energy","pace":"Pace","expressiveness":"Expressiveness","hands":"Hands","posture":"Posture","gaze":"Gaze"},"options":{"energy-soft":"Subtle","energy-balanced":"Balanced","energy-high":"Energetic","pace-calm":"Calm","pace-natural":"Natural","pace-dynamic":"Dynamic","expression-contained":"Contained","expression-warm":"Warm","expression-high":"Very expressive","hands-minimal":"Almost still","hands-subtle":"Subtle gestures","hands-open":"Open gestures","posture-relaxed":"Relaxed","posture-confident":"Confident","posture-elegant":"Elegant","gaze-steady":"Direct","gaze-warm":"Warm","gaze-curious":"Curious"},"finalDescription":"Final description — editable","englishPrompt":"English prompt","placeholder":"Select the traits above or write a short body-language description.","example":"Example: subtle movement, calm pace, restrained hand gestures, and a warm gaze."},"trainingScreen":{"title":"Expressions","description":"Avatar V (HeyGen) motion baselines shared across the Persona. Manage every expression for this account here.","total":"Total","readyPlural":"Ready","ready":"Ready","noVideo":"No video","error":"Error","donors":"Donors","search":"Search by label or persona…","allStatuses":"All statuses","allSources":"All sources","uploaded":"Uploaded","generatedAi":"AI generated","all":"All","allFeminine":"All","expressionType":"Expression type","custom":"Custom","video":"Video","typeLabel":"Type / Label","persona":"Persona","size":"Size","duration":"Duration","status":"Status","source":"Source","actions":"Actions","clone":"Clone","empty":"There are no expressions yet. Create a Persona and add videos from the Expressions tab.","noResults":"No results match the current filters.","refresh":"Refresh expressions","loading":"Loading expressions","loadingProfile":"Loading motion profile","loadFailed":"Expressions could not be loaded. Try refreshing.","motionProfileLoadFailed":"The motion profile could not be loaded. Refresh and try again.","motionProfileSaving":"Saving motion profile…","motionProfileSaved":"Motion profile saved","motionProfileSaveFailed":"The motion profile could not be saved. Try again.","donorFilterHint":"Filter donor Personas whose expressions can be inherited","allDonors":"Donors and own Personas","onlyDonors":"Donors only","onlyOwn":"Own Personas only","favorite":"Favorite","addFavorite":"Mark as favorite","removeFavorite":"Remove from favorites","playVideo":"Play video","videoUnavailable":"Video unavailable","trimming":"Trimming","done":"Done","editType":"Edit type or name","virtual":"Virtual","donorBadge":"Donor","donorHint":"Donor Persona: other accounts can inherit these expressions when creating a matching avatar.","processingFailed":"Video processing failed","retry":"Retry","openPersona":"Open Persona","delete":"Delete","close":"Close","cancel":"Cancel","closeNotice":"Dismiss notice","confirmRemove":"Delete this expression? This cannot be undone.","removeFailed":"The expression could not be deleted. Try again.","reprocessFailed":"Processing could not be restarted. Try again.","updateLabelFailed":"The expression type could not be saved. Try again.","favoriteFailed":"The favorite status could not be saved. Try again.","confirmTrim":"Trim {start}s from the start and {end}s from the end? The video will be replaced and this cannot be undone.","trimSelection":"Trim {start}s from start · {end}s from end","trimHint":"Drag the edges to choose a trim","trimStartEnd":"Trim start/end","applyTrim":"Apply trim","trimmingProgress":"Trimming…","trimBackgroundStarted":"Trimming in the background. You can close this page while it continues.","trimProcessingCount":"{count, plural, one {Trimming one video in the background. You can close this page while it continues.} other {Trimming # videos in the background. You can close this page while they continue.}}","trimFailed":"The video could not be trimmed. Try again.","types":{"podcastSeated":"Podcast seated","standingProfessional":"Standing professional","highEnergy":"High energy","casualRelaxed":"Casual relaxed","staticCinematic":"Static cinematic"}},"presetScreen":{"voice":"Voice","avatar":"Avatar","format":"Format","title":"Avatar Sets","description":"Predefined avatar collections","create":"New Set","expand":"Expand","closePreview":"Close preview","linkedAvatars":"Avatars ({count})","univocalDetail":"This set is linked one to one to its avatar. Their names stay in sync and the avatar in this set cannot be changed; the voice and other settings can. To use another avatar, create a new one with its own set.","oneToOneAvatar":"1:1 with its avatar","oneToOneAvatarShort":"1:1 avatar","loading":"Loading…","usageCamera":"Camera","usageReels":"Reels & Ads","usageYoutube":"YouTube","usageYoutubeSettings":"YouTube settings","usageReelsSettings":"Reels settings","productionUsage":"Production use","records":"{count, plural, one {# record} other {# records}}","persona":"Persona","allPersonas":"All","filterByVoiceEngine":"Filter by {engine}","onlyUnivocalHint":"Show only sets linked one to one to their original avatar","filterByAvatarEngine":"Sets with a {engine} avatar","filterByFormat":"Sets in {format} format (from the set or its avatar)","vertical":"Vertical","horizontal":"Horizontal","deleteConfirmDescription":"Only this Avatar Set will be deleted. Its linked avatars will be kept.","createDescription":"Create an avatar set grouped by orientation and type for video production.","univocalBadgeHint":"One-to-one set: its name stays in sync with its avatar. The avatar cannot be changed, but the voice can."},"legacyIndex":{"previousWizards":"Show earlier wizards (legacy; being retired)","virtualTitle":"Create a virtual AI influencer","virtualDescription":"Create a unique AI influencer. Define their appearance, personality and voice, then generate a complete image storyboard and a custom synthetic voice.","virtualAppearance":"Custom appearance","virtualStoryboard":"6–7 storyboard images","virtualVoice":"AI synthetic voice","virtualBrand":"Based on your brand","createVirtual":"Create AI Persona","cloneTitle":"Clone a real person","cloneDescription":"Clone yourself or a client to create videos with their real face and voice. HeyGen Avatar V keeps their identity consistent. You only need a photo; a short video is optional.","cloneMasterPhoto":"Master photo + optional video","cloneAvatarV":"Avatar V with a consistent identity","cloneVoice":"Automatically cloned voice","cloneLooks":"Multiple AI looks","cloneAction":"Clone Persona","title":"Persona","description":"Presenter and Persona profiles","sharedReadOnly":"Shared · read only","expressionDonor":"Expression donor","customVoice":"Custom voice","linkedVoice":"Linked voice","directUrl":"Direct URL","loading":"Loading…","unnamed":"Unnamed","createAvatar":"Create avatar","viewAvatars":"View avatars"}},"common":{"ctas":{"title":"CTAs & intros","description":"Reusable text to open your videos and guide your audience to the next step.","category":"CTA / Intro","status":"Status","format":"Format","funnel":"Funnel stage","type":"Content type","text":"Text","action":"Action","destinationUrl":"Destination link","facebookPolicies":"Facebook policies","notes":"Notes","create":"New CTA or intro","createDescription":"Choose the content type, write your message and define the next step for your audience.","context":"Context","destination":"Destination","general":"General information"},"contentLanguage":{"voiceSampleUnsupported":"Voice design samples are not available in this language yet. Choose another primary language in Persona settings.","newRecordDescription":"The saved account language is suggested. You can change it for this creation; it will then be stored independently.","accountTitle":"Account content language","brandTitle":"Brand content language","campaignTitle":"Campaign languages","personaTitle":"Persona primary language","accountDescription":"Save a shared preference for future multilingual creations. Your interface language is chosen separately.","brandDescription":"This preference applies when you explicitly select this Brand as context. You can inherit the account language.","campaignDescription":"Choose a primary language and the working languages for this campaign.","personaDescription":"Save the primary language for future multilingual samples of this Persona. Accent is configured separately.","primary":"Primary language","choose":"Choose a language","search":"Search language or region…","noResults":"No languages found.","inheritAccount":"Use the account language","unset":"Not selected yet","loading":"Loading preferences…","loadError":"Could not load language preferences.","retry":"Retry","unconfigured":"No language has been saved yet. Choose one before generating multilingual content.","campaignLocales":"Working languages","addLanguage":"Add language","preserveExisting":"Saving does not translate, regenerate or relabel existing content.","readOnly":"You have read-only access to this preference.","save":"Save language","saving":"Saving…","saved":"Preference saved.","saveError":"Could not save the preference. Check your permissions and try again.","conflict":"Someone else changed this preference. Load the current version before saving.","unconfirmed":"We could not confirm the save. Read the current version before trying again.","reloadCurrent":"Load current preferences","creationUnconfirmed":"Creation is not confirmed yet. Continuing retries the same request and preserves its language without creating another campaign."},"save":"Save","saved":"Saved","cancel":"Cancel","delete":"Delete","edit":"Edit","add":"Add","create":"Create","close":"Close","back":"Back","next":"Next","previousPage":"Previous page","nextPage":"Next page","loading":"Loading...","loadingAccount":"Loading account...","search":"Search","noResults":"No results","confirm":"Confirm","yes":"Yes","no":"No","actions":"Actions","status":"Status","all":"All","none":"None","required":"Required","optional":"Optional","error":"Error","success":"Success","warning":"Warning","info":"Info","retry":"Retry","refresh":"Refresh","copy":"Copy","move":"Move","activate":"Enable","pause":"Pause","copied":"Copied","download":"Download","upload":"Upload","muteAllPreviews":"Mute all","unmuteAllPreviews":"Turn sound on for all","select":"Select","selected":"Selected","selectedCount":"{count} selected","filter":"Filter","sort":"Sort","open":"Open","share":"Share","archive":"Archive","areSure":"Are you sure?","viewAll":"View all","showMore":"Show more","showLess":"Show less","duplicate":"Duplicate","exit":"Exit","new":"New","clear":"Clear","clearFilters":"Clear ({count})","deselectAll":"Deselect all","perPage":"per page","of":"of","errorLoading":"Error loading data. Please try again.","errorCreating":"Error creating","unknownError":"Unknown error","noResultsFilters":"No results found. Try changing the filters.","editMode":"Edit mode","exitEditMode":"Exit edit mode","copyOf":"Copy of {name}","list":"List","calendarView":"Calendar","records":"records","recordCount":"{count, plural, one {# record} other {# records}}","pending":"Pending","noTitle":"No title","noDate":"No date","noDescription":"No description","view":"View","noRecords":"No records","creating":"Creating...","writePlaceholder":"Write {label}...","namePlaceholder":"Name...","deleting":"Deleting...","saving":"Saving...","sending":"Sending...","processing":"Processing...","generating":"Generating...","launching":"Launching...","ready":"Ready","done":"Done","enabled":"Enabled","disabled":"Disabled","viewGallery":"Gallery view","viewList":"List view","viewCalendar":"Calendar view","gallery":"Gallery","deleteRecords":"Delete records","deleteConfirmTitle":"Delete records","deleteConfirmMessage":"{count} records will be permanently deleted. This action cannot be undone.","cannotUndo":"This action cannot be undone","confirmExecution":"Confirm execution","confirmClick":"Confirm — Click to execute","autoResetWarning":"Will reset in 5s if you don't confirm","copyLink":"Copy link","errorRetryClick":"Error — click to retry","unlink":"Unlink","today":"Today","yesterday":"Yesterday","tomorrow":"Tomorrow","now":"now","ago":"ago","seconds":"seconds","minuteAgo":"{count} minute ago","minutesAgo":"{count} minutes ago","hourAgo":"{count} hour ago","hoursAgo":"{count} hours ago","dayAgo":"{count} day ago","daysAgo":"{count} days ago","weekAgo":"{count} week ago","weeksAgo":"{count} weeks ago","monthAgo":"{count} month ago","monthsAgo":"{count} months ago","loadingTitle":"Loading {title}...","searchInTitle":"Search in {title}...","noDataInTitle":"No data in {title}.","duplicating":"Duplicating...","discard":"Discard","noVisibleFields":"No visible fields for this record.","loadingRecord":"Loading record...","unassigned":"Unassigned","loadingOptions":"Loading options...","noRecordsAvailable":"No records available","removeSelection":"Remove selection","linkedSelector":{"loadFailed":"The options could not be loaded. Try again.","retry":"Retry"},"confirmCreation":"Confirm creation","createNewVideo":"Create New Video","goToVideoStudio":"Go to Video Studio","errorSaving":"Error saving","saveCrop":"Save Crop","crop":"Crop","recordDrawer":{"editorTitle":"Record editor","emptyText":"— empty —","newRecord":"New record","createFailed":"The record could not be created. Check the fields and try again.","saveFailed":"The changes could not be saved. Check the fields and try again.","created":"Created","creating":"Creating…","create":"Create","saving":"Saving…","autoSaving":"Auto-saving…","savingChanges":"Saving changes…","savingSoon":"Saving in {seconds} s…","close":"Close record editor","unsavedTitle":"Unsaved changes","unsavedDescription":"You have {count, plural, one {# modified field} other {# modified fields}}. Closing now will discard those changes.","continueEditing":"Continue editing","closeWithoutSaving":"Close without saving","settingsSection":"Settings","imagesSection":"Images","attachmentsSection":"Attachments","generalSection":"General information","numbersSection":"Numbers and metrics","datesSection":"Dates","urlsSection":"URLs and links","optionsSection":"Options","tagsSection":"Tags","contentSection":"Content","accountSection":"Account","linkedRecords":"Linked records","other":"Other","addFavorite":"Add to favorites","removeFavorite":"Remove from favorites","recommended":"Recommended","viewPrice":"View price","audioUnavailable":"No audio available","removeImage":"Remove image","uploading":"Uploading…","addAttachment":"Add","clickToUpload":"Click to upload","uploadFailed":"The file could not be uploaded. Try again.","doubleClickEdit":"Double-click to edit","clickLock":"Click to lock","protected":"Protected","editing":"Editing","readOnly":"Read-only","openLink":"Open","invalidUrl":"Invalid URL. It must start with https:// or http://.","fieldLocked":"This field is locked for this record","selectPlaceholder":"— Select —","nonePlaceholder":"— None —","tagSelectOrWrite":"Select or type…","tagAdd":"Add…","estimatedCredits":"Estimated total credits","creditsShort":"credits","copy":"Copy","fileFallback":"File","imageLoadFailed":"The image could not be loaded","imageUrlExpired":"The image URL may have expired","imagePreviewAlt":"Image preview","dropImage":"Drag an image here or click to upload"},"dataTable":{"pipeline":"Pipeline","createRecord":"Create record","deleteRecordTitle":"Delete record","deleteRecordDescription":"This record will be permanently deleted.","link":"Open link","actions":"Record actions","duplicateFailed":"The record could not be duplicated. Try again.","deleteFailed":"The record could not be deleted. Try again.","saveFailed":"The record could not be updated. Try again."},"weekdayShort":{"mon":"Mon","tue":"Tue","wed":"Wed","thu":"Thu","fri":"Fri","sat":"Sat","sun":"Sun"},"weekdayLong":{"mon":"Monday","tue":"Tuesday","wed":"Wednesday","thu":"Thursday","fri":"Friday","sat":"Saturday","sun":"Sunday"},"weekdayMini":{"mon":"M","tue":"T","wed":"W","thu":"T","fri":"F","sat":"S","sun":"S"},"monthLong":{"jan":"January","feb":"February","mar":"March","apr":"April","may":"May","jun":"June","jul":"July","aug":"August","sep":"September","oct":"October","nov":"November","dec":"December"},"monthShort":{"jan":"Jan","feb":"Feb","mar":"Mar","apr":"Apr","may":"May","jun":"Jun","jul":"Jul","aug":"Aug","sep":"Sep","oct":"Oct","nov":"Nov","dec":"Dec"},"selectAccount":"Select Account","active":"Active","trimOriginal":"Original","trimStart":"Trim start","trimEnd":"Trim end","trimResult":"Result","trimType":"Type","change":"Change","remove":"Remove","justNow":"Just now","confirmDelete":"Confirm deletion","linkedRecordUnavailable":"That link is no longer available or belongs to another account. Showing the list instead."},"mediaLibrary":{"title":"Library","description":"Every image, video, audio and text generated for this account, brought together without changing the workflows that create them.","currentSection":"Library","archivedSection":"Archived","archive":"Archive","confirmArchive":"Archive?","restore":"Restore","archiveSuccess":"Resource archived. The original remains intact.","restoreSuccess":"Resource restored to the Library.","archiveError":"The archive status could not be updated","refresh":"Refresh","searchPlaceholder":"Search by title or source…","filterByType":"Source or type","filterByKind":"Asset type","imageTypes":"Images","videoTypes":"Videos","audioTypes":"Audio","documentTypes":"Texts and documents","campaignFilter":"Campaign","filterByOrientation":"Orientation","dateFilter":"Date","sortLabel":"Order","batchSize":"Progressive loading","batchOption":"{count} at a time","all":"All","assetCount":"{count, plural, =0 {No assets} one {# asset} other {# assets}}","loadMore":"Loading more…","calculatingTotal":"Calculating the exact total…","totalUnavailable":"The total could not be calculated","showingCount":"{visible} visible","searchingMore":"Searching the archive for assets…","endOfLibrary":"You have reached the end of the Library","clearFilters":"Clear filters","partialNotice":"One source is temporarily unavailable. The rest of the library remains visible and no generation workflow was affected.","noAccountTitle":"Select an account","noAccountDescription":"The Library is always isolated by account.","errorTitle":"The Library could not be loaded","errorDescription":"Try again. This error does not affect any generation or previously saved material.","emptyTitle":"No assets match these filters","emptyDescription":"Try another orientation or source. New generations will appear here automatically.","archivedEmptyTitle":"No archived resources","archivedEmptyDescription":"Resources you archive will appear here and can be restored at any time.","openAsset":"Open {title}","expandAsset":"Expand {title}","playAsset":"Play {title}","voiceSampleTitle":"Voice sample","openFullVideo":"Watch full video","downloadAsset":"Download {title}","download":"Download","previewUnavailable":"Preview unavailable. You can open the original file.","openOriginal":"Open original","readDocument":"Read {title}","readMore":"Read document","documentFileDetails":"{format} · {size, number} bytes","documentFileNotice":"Download the complete file to open it. This document is stored as a file, without a text preview.","viewDocumentFile":"View file","openSource":"Open the source of {title}","openSourceButton":"Open at source","copyText":"Copy text","copied":"Copied","kinds":{"image":"Images","video":"Videos","audio":"Audio","document":"Texts"},"dates":{"all":"Any date","last7":"Last 7 days","last30":"Last 30 days","last90":"Last 90 days","thisYear":"This year","custom":"Custom range","from":"From","to":"To"},"sort":{"newest":"Newest first","oldest":"Oldest first"},"sources":{"avatar":"Avatar","persona":"Persona","youtube":"YouTube","reel":"Reel","youtube-thumbnail":"YouTube thumbnail","reel-thumbnail":"Reel thumbnail","background":"Background / scene","thumbnail":"Thumbnail","poster":"Poster","carousel":"Carousel","image-editor":"Image editor","avatar-video":"Avatar video","voice-sample":"Voice sample","b-roll":"B-roll","render":"Render / montage","video-editor":"Video editor","ai-playbook":"AI task / Playbook","angle-copy":"Angle copy","youtube-copy":"YouTube copy","reel-copy":"Reel copy","ad-copy":"Ad copy","campaign-copy":"Campaign copy","social-copy":"Social copy","email-copy":"Email","blog-copy":"Article","landing-copy":"Landing page","vsl-script":"VSL script","app-specification":"App specification","strategy-document":"Strategy document","cinema-script":"Cinema script","tiktok-ads-report":"TikTok Ads reports","other":"Other images","other-video":"Other videos"},"orientations":{"horizontal":"Horizontal","vertical":"Vertical","square":"Square","unknown":"Not detected"}},"thingsHub":{"header":{"title":"Things","subtitle":"Reusable objects for your avatars: perfume, ring, tattoo or product.","backToList":"Back to library"},"hero":{"title":"Create Thing","description":"Upload an image, generate with AI, or paste a public product page URL. Save it to your library and reuse it when creating avatars.","action":"Create Thing"},"library":{"heading":"Your library","empty":"You do not have any Things yet. Create the first one with the button above.","noDescription":"No description","viewGallery":"Gallery view","viewList":"List view","edit":"Edit","exitEdit":"Exit","selectedCount":"{count, plural, one {# selected} other {# selected}}","deleteSelected":"Delete","deleteManyTitle":"Delete Things","deleteManyConfirm":"{count, plural, one {This Thing will be removed from the library.} other {These # Things will be removed from the library.}}","deleting":"Deleting...","cancel":"Cancel","nameColumn":"Name","typeColumn":"Type","descriptionColumn":"Description","search":"Search by name or description","typeFilter":"Type","filterAll":"All","avatarFilter":"Avatar","anyAvatar":"Any avatar","unassigned":"Not linked","noMatches":"No Things match these filters.","personaFilter":"Persona","anyPersona":"Any persona","allPersonas":"All","filterByPersona":"Filter by {name}"},"detail":{"delete":"Delete","deleteConfirm":"Delete this Thing from the library?","save":"Save changes","saving":"Saving...","nameLabel":"Name","descriptionLabel":"Description","typeLabel":"Type"},"common":{"close":"Close"},"types":{"product":"E-commerce","accessory":"Accessory","bodyDetail":"Body detail","other":"Other"},"wizard":{"title":"New Thing","stepIndicator":"Step {step} of {total}","originHint":"Choose how you want to bring the master image.","origin":{"upload":"Upload image","ai":"Generate with AI","url":"Product URL"},"uploadCta":"Drag or select JPG, PNG or WebP","aiPromptPlaceholder":"Describe the object: golden perfume on marble, silver ring with sapphire…","aiCredits":"Cost: {credits} credits · Balance: {balance}","aiStudioHint":"The image is generated on a plain light background. Tattoos and other body details are isolated, without a person, so they can be placed on an avatar.","generateImage":"Generate image","urlPlaceholder":"https://store.example.com/product/…","urlHint":"Public https pages only. We extract name, description and images.","extractFromUrl":"Extract from URL","nameLabel":"Name","descriptionLabel":"Description","descriptionPlaceholder":"1–3 sentences for generation prompts","typeLabel":"Type","types":{"product":"E-commerce","accessory":"Accessory","bodyDetail":"Body detail","other":"Other"},"next":"Next","back":"Back","save":"Save to library"},"errors":{"invalidUrl":"Invalid URL.","privateHost":"That address cannot be analyzed.","noKey":"Automatic extraction is not available in this environment.","unreachable":"Could not access that page.","empty":"The page did not return enough content.","blocked":"This page blocks data import.","noLlm":"AI generation is not available.","noResult":"Could not extract information from that URL.","uploadFailed":"Could not upload the image.","generationFailed":"Could not generate the image.","generationPolicy":"The image was blocked by the content filter. Describe the design on its own, without a person.","insufficientCredits":"Insufficient credits to generate the image.","nameRequired":"Name is required.","saveFailed":"Could not save the Thing.","updateFailed":"Could not save the changes.","deleteFailed":"Could not delete the Thing."},"upload":{"dropOr":"Drag a file or","browse":"click to choose","formats":"JPG, PNG, WebP · Max 10MB","uploading":"Uploading...","failed":"Could not upload the image.","invalidType":"Choose an image file.","tooLarge":"The image is larger than 10MB.","adjust":"Adjust image","zoom":"Zoom","zoomLevel":"{level}×","cancel":"Cancel","save":"Save","customRatio":"Custom","width":"Width","height":"Height","remove":"Remove image","imageAlt":"Thing image"},"avatarSelector":{"label":"Thing (optional)","hint":"Include an object from your library in avatar generation.","none":"None","previewAlt":"Preview of selected Thing","linkedHint":"Things linked to this Persona come first. E-commerce products left unlinked stay available for any persona.","forPersona":"For this Persona","ecommerceGroup":"E-commerce","otherGroup":"Other Things"},"personas":{"label":"Personas","hint":"A Thing can belong to several personas, and a persona can use several Things. Only personas from this account are listed.","loading":"Loading personas...","empty":"This account has no personas yet."},"share":{"tab":"Things","title":"Shared Things","hint":"Move each Thing to the companies in this group. The star is the company that owns it.","edit":"Edit sharing","cancel":"Cancel","empty":"This group has no Things yet.","loading":"Loading Things...","noChanges":"No changes","changeCount":"{count, plural, one {# Thing with changes} other {# Things with changes}}","save":"Save sharing","columnThing":"Thing","errorLoad":"Could not load the Things in this group.","errorSave":"Could not save the sharing."},"navLab":{"createRequirementDescription":"Upload a photo, generate with AI, or paste a public product page URL."}},"sidebar":{"brandTranslations":"App Translation","overview":"Overview","agencyFlow":"Agency Flow","agencyCreateApp":"Create App","agencyDetectProblems":"1 · Find Problems","agencyAiSolutions":"2 · AI Solutions","agencyNiche":"3 · Niche","agencyPricing":"4 · Pricing","agencyLandingPages":"5 · Landing Pages","agencyAgent247":"6 · 24/7 Agent","agencyAgentDemo":"7 · Agent Demo","agencyProposal":"8 · Proposal","agencyAcquisition":"9 · Lead Generation","adsReels":"Ads & Reels","campaigns":"Campaigns","linkInBio":"Link in bio","emailSequences":"Email Sequences","funnelGenerator":"Funnel Generator","ideas":"Ideas","leadMagnets":"Lead Magnets","angles":"Angles","videoStudio":"Video Studio","thumbnails":"Thumbnails","montageVideo":"Video Montage","montageList":"Montage List","montageReel":"Montaje Reel","metaAds":"Meta Ads","googleAds":"Google Ads","xAds":"X Ads","chatgptAds":"ChatGPT Ads","linkedinAds":"LinkedIn Ads","inbox":"Inbox","stopScrollers":"Stop Scrollers","cineVideo":"Cine Video","productionReels":"Reels & ADs Production","productionYT":"YT Production","youtubeStats":"YouTube Stats","youtubeComments":"YouTube Comments","landings":"Landings","templateLab":"Template Lab","blogSeo":"Blog SEO","funnels":"Funnels","pages":"Pages","traffic":"Traffic","appData":"App Data","formatDesign":"Slide Design Format","musicStyles":"Music Styles","slideEngines":"Slide Engines","voices":"Voices","avatars":"Avatars","cfElementManagement":"CF. Element Management","crmMarketing":"CRM & Marketing","cfBusinessManagement":"CF. Business Management","accounts":"Accounts","users":"Users","cfProjectManagement":"CF. Project Management","projectTasks":"Tasks","cfOfferManagement":"CF. Offer Management","products":"Products","cfTransactionManagement":"CF. Transaction Management","orders":"Orders","subscriptions":"Subscriptions","cfManagement":"CF. Management","support":"Support","conversations":"Conversations","knowledgeBase":"Knowledge Base","inngestTest":"Inngest Test","inngestRuns":"Inngest Runs","inngestAudit":"Inngest Audit","supabaseSchema":"Supabase Schema","iaTemplates":"AI Templates","templateBuilder":"Builder","team":"Team","helpCenter":"Help Center","settings":"Settings","notifications":"Notifications","signOut":"Sign out","dashboard":"Dashboard","agencyFlowStep1":"1 · Find Problems","agencyFlowStep2":"2 · AI Solutions","agencyFlowStep3":"3 · Niche","agencyFlowStep4":"4 · Pricing","agencyFlowStep5":"5 · Landing Pages","agencyFlowStep6":"6 · 24/7 Agent","agencyFlowStep7":"7 · Agent Demo","agencyFlowStep8":"8 · Proposal","agencyFlowStep9":"9 · Lead Generation","zoomReports":"Zoom Dashboard","academy":"Academy","academyClient":"Academy","onboardingNav":"Onboarding","marketingStrategy":"Marketing Strategy","cartel":"Poster","carousels":"Carousels","marketingSkillsContentCalendar":"Marketing Skills & Content Calendar","igPhotos":"IG Photos","angleSelection":"Angle Selection","copyCreation":"Copy Creation","ideasInspiration":"Inspiration Ideas","reelsList":"Reels List","reelStudio":"Reel Studio","research":"Research","videoList":"Video List","clipsOpus":"Clips Opus","remotionPro":"Remotion Pro","remotionLite":"Remotion Lite","remotionProxy":"Remotion Proxy","templates":"Templates","tabCopy":"Copy","tabAudio":"Audio","tabThumbnails":"Thumbnails","tabRender":"Render","tabClips":"Clips","avatarsSet":"Avatars Set","persona":"Persona","ctas":"CTAs","brollCustom":"Custom B-roll","inspirationSources":"Inspiration Sources","voiceDna":"VoiceDNA","voiceDnaSources":"VoiceDNA Sources","audience":"Audience","guardarails":"Guardrails","pinnedComment":"Pinned Comment","sponsors":"Sponsors","brands":"Brands","visualIdentity":"Visual Identity","socialProfiles":"Social Profiles","defaultSettings":"Default Settings","spyAdsReels":"Spy Ads & Reels","aeTemplates":"AE Templates","aeTemplatesEdition":"AE Templates Edition","premiumTemplates":"Premium templates","slideFormats":"Slide Formats","videosBroll":"B-roll Videos","iconsImages":"Icons/Images","bgMusicStyles":"BG Music Styles","account":"Account","credentials":"Credentials","opportunities":"Opportunities","calendar":"Calendar","leads":"Leads","accountsProspect":"Prospect Accounts","calls":"Calls","cfPlans":"CF Plans","cfAddOns":"CF Add-Ons","cfServices":"CF Services","cfTransactions":"CF Transactions","cfUsageLogs":"CF Usage Logs","cfBillingCycles":"CF Billing Cycles","n8nMonitor":"n8n Monitor","iaTemplatesRemotion":"AI Templates Remotion","visualTemplates":"Visual Templates","searchPlaceholder":"Search...","creditBalanceTitle":"{balance} of {plan} credits","defaultUser":"User","myProfile":"My Profile","globalSearchPlaceholder":"Search videos, pages...","globalSearchNoResults":"No results found.","globalSearchPages":"Pages","globalSearchQuickAccess":"Quick Access","globalSearchNavigate":"Navigate","globalSearchOpen":"Open","globalSearchClose":"Close","globalSearchEntireApp":"Search entire app","globalSearchNoTitle":"No title","globalSearchVideos":"Videos","thumbnailExpressions":"Thumbnail Expressions","ideasInspirationReels":"Inspiration Ideas (Reels)","scriptAudioReels":"Script & Audio (Reels)","fullVideoReels":"Full Video (Reels)","fullListReels":"Full List (Reels)","general":"General","contacts":"Contacts","botsQualification":"AI Bots","personaSection":"Persona","thingsSection":"Things","things":"Things","academySection":"Academy","multiTenant":"Multi-account","cfLegacy":"CF. Legacy","integrations":"Integrations","library":"Library","aiAssistant":"AI Assistant","aiPlaybooks":"AI Playbooks","myPersonas":"My Personas","summary":"Overview","identity":"Identity","brain":"Brain","voice":"Voice","videoTraining":"Video training","recordingPresets":"Recording presets","offerIntelligence":"Offer Intelligence","vslGenerator":"VSL Generator","versionedHtml":"Versioned HTML","instagramCommentDm":"Instagram Comment → DM","whatsappBroadcaster":"WhatsApp Broadcaster","editorPro":"Editor Pro","editorPro3":"Editor Pro 3 β","iphone":"iPhone","trending":"Trending","socialHub":"Social Hub","marketingSkillsCalendar":"Marketing Skills & Content Calendar","viralRadar":"Viral Radar","newBrandWizard":"+ New brand (Wizard)","famousPeople":"Famous people","community":"Community","liveSessions":"Live sessions","sfxLibrary":"SFX Library","myAccounts":"My Accounts","whiteLabel":"White Label","podcast":"Podcast","domains":"Domains","socialProof":"Social Proof","cookieConsent":"Cookie Consent","multiAccount":"Multi-account","coupons":"Coupons","executions":"Executions","affiliateProgram":"Affiliates","purchasesCustomers":"Purchases and customers","challengeSales":"Clonia Challenge sales","browserRenders":"Browser Renders","systemHealth":"System Health","infrastructureCosts":"Infrastructure Costs","deliveryMonitor":"Deliveries and costs","apiCosts":"API Costs (Actual)","apiCatalogue":"API Catalogue","metaTokenScanner":"Meta Token Scanner","instagramEvents":"Instagram Events","analyticsPostHog":"Analytics (PostHog)","brandBlocks":"Brand Blocks","menuSearchPlaceholder":"Search menu…","clearMenuSearch":"Clear menu search","cloniaNotIncluded":"Not included in your Clonia pass","cloniaAvailableDate":"Available from 25 July","availableFromPlan":"Available from {plan}","newBadge":"New","betaBadge":"BETA","comingSoonBadge":"Coming soon","expandSidebar":"Expand sidebar","collapseSidebar":"Collapse sidebar","deployedVersion":"Deployed version","clickMeetingReports":"ClickMeeting attendance"},"settings":{"avatarVBudgetLink":"Avatar V delegated budget","accountIdCopyError":"The ID could not be copied. Try again.","inactiveAccount":"Inactive","sharedErrorsEditor":"Shared notices and errors","privateAccount":"Private account","billingPlanName":"{name} plan","accountIdLabel":"Account ID: {accountId}","accountIdCopied":"Copied","notificationLoadError":"Could not load notification preferences.","notificationRetry":"Try again","notificationEmpty":"No notification preferences are available.","notificationLoading":"Loading notification preferences","notificationCategories":{"credits":"Credits & billing","videos":"Videos & production","content":"Content & publishing","integrations":"Integrations","support":"Support","system":"System","other":"Other notifications"},"connectedApps":{"title":"Connected apps","activeCount":"{count, plural, one {# active app} other {# active apps}}","description":"External apps (Claude, ChatGPT, Cursor, etc.) that access your account via OAuth. You can revoke access at any time.","loading":"Loading…","empty":"No connected apps. When you connect ContentFlow365 to an external tool via OAuth (Claude, ChatGPT, etc.), it will appear here.","connectedAt":"Connected {time}","lastUsedAt":"Last used {time}","revokeAccess":"Revoke access","revoke":"Revoke","confirmTitle":"Revoke access for {name}?","confirmDescription":"This app will immediately lose access to read or modify your account. If you reconnect it later, you will need to authorize it again.","cancel":"Cancel","loadError":"Could not load connected apps. Please try again.","revokeError":"Could not revoke access. Please try again.","never":"never","justNow":"a few seconds ago","minutesAgo":"{count, plural, one {# minute ago} other {# minutes ago}}","hoursAgo":"{count, plural, one {# hour ago} other {# hours ago}}","daysAgo":"{count, plural, one {# day ago} other {# days ago}}","scopes":{"brandRead":"Read brands","brandWrite":"Edit brands","accountRead":"View holding companies","accountManage":"Create holding companies","contentCreate":"Create content","contentPublish":"Publish content","metricsRead":"Read metrics","editorRead":"Read Editor Pro 2","editorPropose":"Propose changes in Editor Pro 2","editorApply":"Apply accepted proposals","editorRender":"Render in Editor Pro 2","editorPublish":"Publish from Editor Pro 2","supportRead":"Read support","supportWrite":"Manage support","communityRead":"Read community","communityWrite":"Participate in community","communityModerate":"Moderate community","adminAll":"Full access"}},"mcpSpendGrants":{"permissionId":"Permission ID","appBuilder":"Create App · AI Studio","reelHyperframes":"Reels · HyperFrames","webAnalysis":"Website analysis","podcastIdeas":"Podcast show ideas","googleAdsLandscape":"Google Ads horizontal images","unknownAction":"Unrecognized action","family":"Allowed action","title":"MCP spending permissions","description":"OAuth access alone never permits spending. Authorize one connected app for a specific action with separate dollar, operation and time limits. You can revoke new spending at any time.","loadError":"Could not load spending permissions.","noClients":"Connect an app with content creation access before authorizing spending.","client":"Connected app","chooseClient":"Choose an app","perOperation":"Maximum USD per operation","total":"Maximum total USD","operations":"Maximum operations","expiryHours":"Expires after hours (maximum 720)","creditNotice":"These dollar limits cap provider spending. Normal customer credits apply separately where required by the selected action.","authorize":"Authorize bounded spending","issued":"Spending permission created.","issueError":"Could not create the permission. Check its limits and connected app, then retry.","grantSummary":"USD {perOperation} per operation · USD {total} total · {operations} operations","usage":"Reserved or spent: USD {used} across {operations} operations","expires":"Expires: {date}","revoke":"Revoke","revoked":"Spending permission revoked.","revokeError":"Could not revoke the permission. Please retry.","avatarContextDiscovery":"Avatars · Find events","avatarContextBrief":"Avatars · Summarize a URL","cinematicDirection":"Suggest cinematic avatar movement","cinematicAvatar":"Cinematic Avatar · OmniHuman 2"},"title":"Settings","subtitle":"Manage your profile, appearance and preferences.","profile":"Profile","profileDesc":"Basic account information.","name":"Name","email":"Email","role":"Role","account":"Account","quickAccess":"Quick access","quickAccessDesc":"Open account-wide tools without adding permanent rows to the sidebar.","integrationsQuickDesc":"Connect channels, providers and AI services.","teamQuickDesc":"Manage members, roles and account access.","createHoldingTitle":"Create holding","createHoldingDesc":"Create a mother account that only manages companies. This Pro keeps producing and billing; the holding does not count as a contracted company.","createHoldingCta":"Create holding","createAgencyTitle":"Create agency","createAgencyDesc":"Create an Agency mother account with White Label. This company keeps producing; the Agency does not count as a contracted company.","createAgencyCta":"Create agency","createHoldingCreating":"Creating…","createHoldingError":"The mother account could not be created. Try again.","createHoldingUnavailable":"This plan cannot create a holding. Contract Creator 2/3 or Pro.","createHoldingAlreadyExists":"This company already has a holding account. Open it from the account selector or My Accounts.","shellExplainerHoldingTitle":"This account is the holding","shellExplainerAgencyTitle":"This account is the Agency","shellExplainerBody":"Use the account selector to enter a producing company. The mother account does not produce content and does not open Agency Flow or Overview: it only manages My Accounts.","shellExplainerHoldingBody":"Manage your companies from this holding workspace. Open a company when you want to create, launch or publish.","shellExplainerAgencyBody":"Manage your companies from this Agency workspace. Open a company when you want to create, launch or publish, including White Label for your clients.","appearance":"Appearance","appearanceDesc":"Customize the look and feel of the application.","theme":"Theme","light":"Light","dark":"Dark","system":"System","language":"Language","languageDesc":"Select the interface language.","billing":"Billing & Credits","billingDesc":"Manage your plan and available credits.","currentPlan":"Current plan","creditsLeft":"Credits remaining","unlimited":"Unlimited","danger":"Danger zone","dangerDesc":"Irreversible actions on your account.","accountConfig":"Account Settings","accountConfigDesc":"Access production configuration data","sectionAvatars":"Avatars & Persona","sectionAvatarsDesc":"HeyGen avatars, combined sets and presenter identity","sectionVoices":"Voices & VoiceDNA","sectionVoicesDesc":"ElevenLabs voice profiles and writing style DNA","sectionVisual":"Visual Identity","sectionVisualDesc":"Branding, slide formats and thumbnail expressions","sectionMusic":"Music Styles","sectionMusicDesc":"Background music preferences and sound effects","sectionGuardrails":"GuardRails & Audience","sectionGuardrailsDesc":"AI content rules, target audience and CTAs","sectionDefaults":"Default Settings","sectionDefaultsDesc":"General default account settings","sectionGhl":"GoHighLevel","sectionGhlDesc":"Access, connection and native two-way synchronization","sectionGhlLink":"Configure GoHighLevel","transactions":"Transaction History","transactionsDesc":"Complete log of movements, filters and CSV export","pricing":"Credit Pricing","pricingDesc":"Credit cost per service — full transparency","active":"Active","billingPlanCredits":"{credits} cr/month","billingPlanCreditsWithPrice":"{credits} cr/month · {price}€/month","billingDefaultDesc":"Balance, usage and current cycle transactions","billingCreditsOf":"of {total} cr","notifications":"Notifications","notificationsDesc":"Control how you want to receive each type of alert.","notificationChannelsDesc":"Choose by type whether to receive it in the notification bell, by email or in shared Slack channels.","notificationConfigureSlack":"Configure Slack","notificationCatalog":"Catalog","notificationSlackNeedsChannel":"Select at least one channel in the Slack integration to enable this column.","notificationSlackNeedsConnection":"Connect Slack to enable notifications in your team's channels.","notificationSaveError":"The preference could not be saved. The previous value has been restored.","notificationColumn":"Notification","notificationChannelBell":"Bell","notificationChannelEmail":"Email","notificationChannelSlack":"Slack","notificationChannelMobile":"Mobile app","notificationMobileSoon":"Coming soon"},"chat":{"greeting":"Hi, I'm Valentina.","greetingDesc":"Ask me what to do on this Persona screen. I'll guide you using verified controls and won't make changes on my own.","placeholder":"Type your message...","support":"ContentFlow Support","personaSupport":"Valentina · AI Persona Director","personaDirectorAlt":"Valentina, AI Persona Director","openPersonaSupport":"Open Persona help with Valentina","supportIncluded":"Technical help included · no credits used","loadingHistory":"Loading conversations…","generationHandoff":"Creation continues in the main AI Companion, where you have more space and the relevant widgets. Nothing was generated here.","continueInCompanion":"Continue in AI Companion","conversationMismatch":"This conversation does not belong to the current account or screen. No information has been shown.","retryConflict":"This exact request could not be reconciled safely. Review it before sending a new message.","errorConnectHonest":"I couldn't connect to contextual help. No action has been confirmed. You can retry safely.","invalidAssistantResponse":"The assistant returned an invalid or incomplete response. No action has been confirmed.","retrySafely":"Retry safely","runCancelled":"This request was cancelled. No action has been confirmed.","runIncomplete":"The assistant could not complete this request. No action has been confirmed.","operationPhase":{"validating":"Validating account, screen and permissions","requested":"Request received","executing":"Consulting the verified guide","confirmed":"Response confirmed","failed":"Request not completed"},"minimize":"Minimize","close":"Close","viewing":"Viewing","newConversation":"New conversation","conversations":"Conversations","noConversations":"No conversations","errorConnect":"Could not connect to the assistant","helpful":"Helpful","improvable":"Improvable","feedbackThanks":"Thanks for your feedback","toolGetVideoStatus":"Checking video status","toolSearchVideos":"Searching videos","toolGetAccountInfo":"Checking account","toolSearchArticles":"Searching articles","toolRetryStep":"Retrying step","toolDiagnosePipeline":"Diagnosing pipeline","toolCreateTicket":"Creating support ticket","toolProcessing":"Processing","activeProcesses":"Active processes","recentFailures":"Recent failures","noPipelineActivity":"No pipeline activity in the last 24h","healthStatus_healthy":"Pipeline healthy","healthStatus_warning":"Pipeline with warnings","healthStatus_critical":"Pipeline with issues","viewOnYoutube":"View on YouTube","ticketCreated":"Ticket created successfully","priorityLabel":"Priority: {priority}","priorityLow":"Low","priorityNormal":"Normal","priorityHigh":"High","priorityUrgent":"Urgent","videosFound":"{count} video(s) found","noArticlesFound":"No articles found","moreArticles":"+{count} more article(s)","relevance":"{score}% relevance","stepRetriggered":"Step retriggered","questionPlaceholder":"Type your question...","history":"History","timeNow":"now","noPreviousConversations":"No previous conversations","noTitle":"No title","calloutTip":"Tip","calloutWarning":"Warning","calloutSuccess":"Done","calloutInfo":"Info","calloutError":"Error","legacyVisualUnavailable":"This view belongs to an earlier conversation. Ask me to create it again using the new visual format.","open":"Open ContentFlow Support","send":"Send message","assistantTyping":"The assistant is typing","historyLoadError":"Conversation history could not be loaded.","conversationLoadError":"This conversation could not be loaded.","feedbackSaveError":"Your feedback could not be saved. Try again.","toolUpdatePageContent":"Updating content","toolUpdatePageStyle":"Changing style","toolUpdatePageSeo":"Updating SEO","toolRegenerateSection":"Regenerating section","toolGenerateImage":"Generating image","toolCompleted":"Completed","contentUpdated":"Content updated","styleUpdated":"Style changed to {style}","seoUpdated":"SEO updated","sectionRegenerated":"Section regenerated","imageGenerated":"Image generated","imageGenerationFailed":"The image could not be generated","generatedImageAlt":"Image generated by the assistant","pipelineCopy":"Copy","pipelineAudio":"Audio","pipelineVideo":"Video","pipelineRender":"Render","pipelinePhases":{"copy":"Copy","audio":"Audio","slides":"Slides","cameras":"Avatars","broll":"B-Roll","ae_renders":"After Effects renders","ideas":"Ideas","miniaturas":"Thumbnails","render":"Final render","publicacion":"Publishing"},"stepRetriggeredDetail":"Step {step} restarted for video #{number}","pageLabels":{"dashboard":"Dashboard","research":"Research","ideas":"Ideas","scripts":"Scripts","videos":"Videos","scenes":"Scenes","renders":"Renders","remotion":"Remotion","settings":"Settings","team":"Team","campaigns":"Campaigns","help":"Help Center","videoAssembly":"Video Assembly","avatars":"Avatars","avatarSets":"Avatar Sets","persona":"Persona","guardrails":"Guardrails","ctas":"CTAs","broll":"B-Roll","voices":"Voices","voiceDna":"VoiceDNA","audience":"Audience","sponsors":"Sponsors","brands":"Brands","visualIdentity":"Visual Identity","defaultSettings":"Default Settings","sources":"Sources","spy":"Spy","socialProfiles":"Social Profiles","onboarding":"Onboarding","adminSupport":"Admin · Support","adminConversations":"Admin · Conversations","adminKnowledgeBase":"Admin · Knowledge Base","copyScript":"Video · Copy/Script","audio":"Video · Audio","assembly":"Video · Assembly","thumbnails":"Video · Thumbnails","render":"Video · Render","ideasResearch":"Ideas & Research","videoStudio":"Video Studio","remotionPreview":"Remotion Preview"},"suggestions":{"personaScreenHelp":"What can I do on this screen?","personaAvatarHelp":"Which button should I use to create an avatar?","personaNextStep":"Explain my next step without making changes.","latestVideoStatus":"What is the status of my latest video?","createVideo":"How do I create a new video?","audioFailure":"What should I do if audio fails?","videosInProduction":"How many videos are in production?","latestCompletedVideo":"Show me the latest completed video","switchAccount":"How do I switch accounts?","copyGeneration":"How does copy generation work?","editScript":"Can I edit the script after generating it?","keyboardShortcuts":"Which keyboard shortcuts can I use here?","audioGeneration":"How is audio generated with ElevenLabs?","changeNarratorVoice":"Can I change the narrator voice?","navigateScenes":"How can I move quickly between scenes?","changeSceneAvatar":"Can I change a scene's avatar?","renderDuration":"How long does the final render take?","videoPublishing":"Where is the video published?","thumbnailGeneration":"How are thumbnails generated?","uploadThumbnail":"Can I upload my own thumbnail?","thumbnailFormats":"Which formats are supported?","pipelineSteps":"What are the pipeline steps?","failedStep":"What should I do if a step fails?","firstVideo":"I want to create my first video","changePassword":"How do I change my password?","notifications":"How do I configure notifications?","planBilling":"Where can I see my plan and billing?","assemblyGallery":"How does the assembly gallery work?","reorderScenes":"Can I reorder scenes?","regenerateClip":"A clip failed. How do I regenerate it?","editorShortcuts":"Which shortcuts does the editor have?","timelineZoom":"How do I zoom the timeline?","splitClip":"Can I split a clip in two?","manageTickets":"How do I manage support tickets?","ticketPriority":"How do I change a ticket's priority?","filterTickets":"How do I filter tickets by status?","chatHistory":"How do I view a chat history?","findConversations":"Can I search conversations by user?","exportConversation":"How do I export a conversation?","createArticle":"How do I create a new article?","editArticle":"How do I edit an existing article?","organizeArticles":"How do I organize articles by category?"},"toolErrors":{"VIDEO_NOT_FOUND":"The video could not be found or you do not have access to it.","VIDEO_IDENTIFIER_REQUIRED":"Choose a video before continuing.","PIPELINE_STATUS_UNAVAILABLE":"The video status is temporarily unavailable.","VIDEO_SEARCH_FAILED":"Videos could not be searched right now.","ACCOUNT_UNAVAILABLE":"No account is available for this request.","ACCOUNT_NOT_FOUND":"The account could not be found.","ACCOUNT_LOOKUP_FAILED":"The account details are temporarily unavailable.","HELP_SEARCH_UNAVAILABLE":"Help Center search is temporarily unavailable.","INVALID_PIPELINE_STEP":"That pipeline step cannot be restarted.","PIPELINE_RETRY_UNAVAILABLE":"The retry service is temporarily unavailable.","PIPELINE_RETRY_FAILED":"The pipeline step could not be restarted.","PIPELINE_DIAGNOSTICS_TIMEOUT":"Diagnostics took too long. Try again shortly.","PIPELINE_DIAGNOSTICS_FAILED":"Pipeline diagnostics are temporarily unavailable.","TICKET_CONTEXT_UNAVAILABLE":"Your user details could not be verified for the support ticket.","TICKET_CREATE_FAILED":"The support ticket was not created. Please try again.","UNKNOWN":"The action could not be completed. Try again."}},"help":{"title":"Help Center","subtitle":"Find answers, guides and resources to get the most out of ContentFlow365.","searchPlaceholder":"Search articles, guides, tutorials...","categories":"Categories","articles":"articles","popularArticles":"Popular Articles","relatedArticles":"Related articles","readArticle":"Read article","moreArticles":"More articles from {category}","backToHelp":"Help Center","readingTime":"{minutes} min read","articleNotFound":"Article not found","loading":"Loading Help Center…","loadError":"We could not load the Help Center. Try again.","retry":"Try again","translationUnavailable":"This guide is being prepared in English.","translationUnavailableDescription":"We will show it here as soon as the English version is ready. No Spanish content will be displayed.","translationCoverageTitle":"English Help coverage","refreshCoverage":"Refresh English Help coverage","coveragePublished":"{count} published","coverageCurrent":"{count} current","coveragePending":"{count} pending","coverageFailed":"{count} failed","coverageReady":"English coverage is ready ({percent}%).","coverageNotReady":"English coverage is not ready yet ({percent}%).","coverageUnavailable":"English Help coverage is temporarily unavailable.","backToHelpCenter":"Back to Help Center","wasHelpful":"Was this article helpful?","thanksFeedback":"Thanks for your feedback","yesHelped":"Yes, it helped","notReally":"Not really","feedbackPositive":"Glad it was helpful.","feedbackNegative":"Sorry about that. You can ask the chatbot for more personalized help.","gettingStarted":"Getting Started","copyScript":"Copy & Script","audio":"Audio","video":"Video & Avatars","render":"Render & Publishing","troubleshooting":"Troubleshooting","accountConfig":"Account & Settings","remotion":"Video Editor","appDataCat":"App Data","navigation":"Navigation","chatAssistant":"Chat & AI Assistant","calloutTip":"Tip","calloutWarning":"Warning","calloutSuccess":"Done","calloutInfo":"Info","calloutError":"Error","heroArticleCount":"{totalArticles} articles in {totalCategories} categories","heroSubtitle":"Guides, tutorials and solutions to master your video production pipeline","searching":"Searching...","resultsCount":"{count} result(s)","noArticlesInCategory":"No articles in this category yet","backToCategoryList":"Back to Help Center","articleCount":"{count, plural, one {# article} other {# articles}}","askChatbot":"Can't find what you need? Ask the chatbot","gettingStartedDesc":"Learn the basics to get started with ContentFlow365","copyScriptDesc":"AI-powered script creation and editing","audioDesc":"Voice generation with ElevenLabs and audio settings","videoDesc":"Avatar creation with HeyGen and video production","renderDesc":"Final render with Shotstack and YouTube publishing","troubleshootingDesc":"Common errors and how to fix them","accountConfigDesc":"Account management, avatars, voices and settings","remotionDesc":"Video preview and editing with Remotion","appDataDesc":"Avatar, voice, audience and app data configuration","navigationDesc":"How to navigate the platform and find what you need","chatAssistantDesc":"Using the AI assistant and frequently asked questions","officialGuides":"Official section guides","officialGuidesDesc":"Step by step, what to choose for your goal and common mistakes for each section.","guideBadge":"Official guide","guideMeta":"Version {version} · reviewed {date}","guideConcepts":"Concepts","guideSteps":"Step by step","guideDecisions":"What to choose for your goal","guideMistakes":"Common mistakes","guideFaqs":"Frequently asked questions","guidePrice":"Price","guidePriceNotice":"The price depends on what you choose. Before you confirm, the app shows the exact quote and your balance. If your balance is not enough, nothing is charged.","guideNotFound":"Guide not found","guideSectionAvatares":"Avatars","guideSectionPersona":"Persona","guideSectionFunnel":"Funnel, CRM, emails and bots","guideSectionAngulos":"Angles and copy","guideSectionCarteles":"Posters","guideSectionEmpresasUsuarios":"Companies and users","guideSectionPublicacion":"Publishing","guideSectionVideo":"Video","guideSectionConexionMcp":"Connect your AI assistant","guideSectionAnuncios":"Ads","guideSectionImagenes":"Image editing","guideSectionThings":"Things","guideSectionAudiencia":"Audience","guideSectionGuardarrailes":"GuardaRails","guideSectionDefaultSettings":"Default Settings","guideSectionFuentesInspiracion":"Inspiration sources","guideSectionOnboarding":"Onboarding","guideSectionComercial":"Sales: opportunities, sales and appointments","guideSectionDominios":"Domains"},"pipeline":{"createCopy":"Create Copy","createAudio":"Create Audio","createVideo":"Create Video","finalRender":"Final Render","processing":"Processing...","completed":"Completed","failed":"Failed","pending":"Pending","inProgress":"In progress","step":"Step {number}","progress":"Progress","insufficientCredits":"Insufficient credits: you have {balance} cr, need {needed} cr","statusAudio":"Audio Pipeline Status","scenesWithAudio":"Scenes with Audio","generatingCopy":"Generating copy…","generatingAudio":"Generating audio…","generatingVideo":"Generating full video…","copyGenerated":"Copy generated!","audioGenerated":"Audio generated!","avatarsRegenerated":"Avatars regenerated!","confirmAudioCreation":"Confirm audio creation","sublabelCopy":"AI Script Generation","sublabelAudio":"ElevenLabs + HeyGen","sublabelVideo":"Full Video Generation","sublabelRender":"Shotstack + YouTube","controlPanel":"Control Panel","sceneMatrix":"Scene Matrix ({count})","type":"Type","notPublished":"Not published","pipelineActions":"Pipeline Actions","confirm":"Confirm","switchVideo":"Switch video","recentVideos":"10 most recent videos","noStatus":"No status","current":"Current","noVideosAvailable":"No videos available","words":"words"},"videoStudio":{"chatRequestFailed":"The request could not be completed. Your text is preserved so you can try again.","scriptCopy":"Script & Copy","audio":"Audio","scenes":"Scenes","createCopyScript":"Create Copy (Script)","createScenesVsl":"Create Scenes","vslMode":"VSL","vslDescription":"Skips copy generation: uses the ElevenLabs text and creates the scenes directly.","vslTooltip":"Turn on for a VSL, or when you already have the copy written (by hand, ChatGPT or Claude via API). It skips copy generation and research: the ElevenLabs text is used as-is and scenes are created directly. Intro/CTA, VoiceDNA and Pre-Feedback are hidden.","scriptFinal":"Final Script · {wordCount} words · {lineCount} lines","noScriptFinal":"No final script","preFeedback":"Pre Feedback for copy creation","preFeedbackPlaceholder":"Write instructions and feedback for copy creation here...","titlePlaceholder":"Write the temporary video title...","searchXVideos":"Search Videos on X","keywordsSearch":"Keywords to Search","increaseText":"Increase text","sceneClassification":"Scene Classification","classification":"Classification","clickEditScene":"Click to edit Scene No.","observations":"Observations","comparison":"Comparison","comparisonDesc":"How much it differs from the original source.","author":"Author","channel":"Channel","format":"Format","duration":"Duration","totalDuration":"Total Duration","sceneInstructions":"Instructions to modify the script of this scene...","emotionInstructions":"Emotion or intonation instructions...","feedbackAudio":"Audio ElevenLabs Feedback","feedbackCopy":"Copy Feedback","engineCopy":"Copy Engine","extensionList":"Extension List","introBroll":"Intro B-roll","introText":"Intro (Text)","audioReviewed":"Audio Reviewed OK","copyReviewed":"Copy Reviewed OK","copyOK":"Copy OK","generateReels":"Generate Reels","voiceAnalysis1":"Voice Analysis 1","voiceAnalysis2":"Voice Analysis 2","voiceAnalysis3":"Voice Analysis 3","analyzing":"Analyzing...","avatarSet":"Avatar Set","noScheduledDate":"No scheduled date","ideaNoTitle":"Idea without title","tempTitle":"Temporary Title","basedOn":"Based on","viewSource":"View source","viewScript":"View script","elevenlabsWarning":"Changes to this text will not be reflected in the final copy, as the text decision is made per scene individually.","scriptElevenlabs":"Script ElevenLabs","elevenlabsScript":"Script for ElevenLabs...","searchOnX":"Search on X","voiceDnaExtension":"VoiceDNA & Extension","selectExtension":"Select extension...","removeSelection":"Remove selection","scriptCopyByScene":"Script & Copy by Scene","copyOkCount":"{ok}/{total} copy OK","navigateShortcut":"navigate","copyOkShortcut":"Copy OK","editDone":"Done","selectedCount":"{count} selected","duplicateSceneTitle":"Duplicate Scene #{num}","sceneCopyLabel":"Scene No. of the copy","sceneCopyDesc":"Script, Type, Role, Importance and Topic will be copied","createScene":"Create Scene","confirmDelete":"Confirm deletion","deleteScenesMsg":"Will be permanently deleted. This action cannot be undone.","moreDetails":"More details","report":"Report","guardrails":"Guardrails","conflicting":"Conflicting","conclusionLabel":"Conclusion","copyWithObs":"Copy w/ Obs","fullScript":"Full script","noOK":"Not OK","reduceText":"Reduce text","modifyingScriptDots":"Modifying script...","escToExit":"Esc to exit · navigate","generatingNewScript":"Generating new script...","previousScriptReplaced":"The previous script will be replaced","modifyScript":"Modify Script","confirmQuestion":"Confirm?","scriptModified":"Script modified!","errorClickRetry":"Error — click to retry","audioByScene":"Audio by Scene","audioSummary":"{withAudio}/{total} audio · {reviewed} reviewed · {duration}","navigatePlayPause":"navigate · play/pause","noAudio":"No audio","generatingNewAudio":"Generating new audio...","elevenlabsV3":"ElevenLabs Text v3","noIntonationTags":"No intonation tags","noAvailableScenes":"No scenes available","scenesGeneratedDuring":"Scenes are generated during the Copy process","scenesCount":"{count} scenes","importanceLabel":"Importance","completedStatus":"Completed","pendingStatus":"Pending","ideasInspiration":"Inspiration Ideas","noIdeasType":"No ideas of type {type} for this video","noIdeasStatus":"No ideas with status \"{status}\" in {tab}","xVideoResearch":"X Video Research AI","webResearchIA":"Web Research AI","publish":"Publishes","noPublish":"Does not publish","matchesCopy":"Matches Copy","confirmExecution":"Confirm execution","clickToExecute":"Click to execute","processingN8n":"Processing in n8n... the table will update automatically","resetIn5s":"Will reset in 5 seconds if you don't confirm","modifyCreateAudioScene":"Modify / Create Scene Audio","audioReadyAnalyzing":"Audio ready, analyzing...","completeBang":"Complete!","loadingVideo":"Loading video...","viewPostOnX":"View post on X","introAndCTA":"Intro & CTA","today":"Today","tomorrow":"Tomorrow","yesterday":"Yesterday","inDays":"In {days} days","daysAgo":"{days} days ago","allIdeas":"All","forPublishing":"For Publishing","pendingIdea":"Pending","disabledIdea":"Disabled","noticias":"News","videosX":"X Videos","sceneLabel":"Scene","publicaLabel":"Publishes","publicaVideoLabel":"Publishes Video","fuentesLabel":"Sources","summaryLabel":"Summary","domainLabel":"Domain","handleLabel":"Handle","viewsLabel":"Views","likesLabel":"Likes","retweetsLabel":"Retweets","scoreLabel":"Score","classificationLabel":"Classification","priorityLabel":"Priority","createdLabel":"Created","startLabel":"Start","authorLabel":"Author","sendingDots":"Sending...","generatingAudioElapsed":"Generating audio... {elapsed}","audioReadyAnalyzingElapsed":"Audio ready, analyzing... {elapsed}","errorClickRetryScene":"Error — click to retry","scriptMetaLabel":"Script","audioMetaLabel":"Audio","charsLabel":"{count} chars","statusLabel":"Status","startStatusLabel":"Start","statusCopyLabel":"Copy Status","statusAudioLabel":"Audio Status","formatoLabel":"Format","statusAgentsLabel":"AI Agents Status","processingDots":"Processing...","engineCopyTitle":"Engine Copy","statusCopyAnalysis":"Status & Copy Analysis","tagsIA":"AI Tags","elevenlabsV3Tooltip":"If using ElevenLabs V3, shows intonation tags.","feedbackAudioTooltip":"If using ElevenLabs V3 Voice, you can provide emotion or intonation guidance","reportAgentTooltip":"Created by the Report Agent, reviewing the copy and consulting dozens of external sources.","favorites":"Favorites","dropImageHere":"Drop image here","noThumbnail":"No thumbnail","createThumbnail":"Create Thumbnail","noThumbnailsForVideo":"No thumbnails for this video","thumbnailsGeneratedDuringCopy":"Thumbnails are generated during the Copy phase","noFavorites":"No favorites","markFavoritesFromDetail":"Mark thumbnails as favorites from the detail view","manualCovers":"Manual Covers","uploadOrDragCovers":"Upload or drag your own cover images","coverYoutube":"YouTube Cover {letter}","removeImage":"Remove image","clickImageToCrop":"Click the image to crop","dragOrUploadImage":"Drag or upload an image","orSelectFromGenerated":"or select from generated","autoCovers":"Automatic Covers","generatedThumbnailsAsCovers":"Generated thumbnails marked as cover","noThumbnailMarkedAsCover":"No thumbnail marked as cover","youtubeTitles":"YouTube Titles","youtubeTitlePlaceholder":"YouTube Title {letter}...","multipleTitleVariations":"Multiple Title Variations","additionalTitleVariations":"Additional title variations...","updating":"Updating...","uploading":"Uploading...","uploadImage":"Upload image","noBrollAssigned":"No B-Roll assigned","noAvatarAssigned":"No avatar assigned","noAudioAssigned":"No audio assigned","createFullVideo":"Create Full Video","confirmFullVideoCreation":"Confirm full video creation","regenerateAvatars":"Regenerate Avatars","confirmAvatarRegeneration":"Confirm avatar regeneration","regenerateRenders":"Regenerate AE Renders","confirmRenderRegeneration":"Confirm AE Renders regeneration","noLinkedIdeas":"No ideas linked to this video","ideasFromResearch":"Ideas are generated from Research","confirmFinalRender":"Confirm final render","waitingAvatars":"Waiting for avatars","avatarRendered":"Avatar Rendered","renderingAvatar":"Rendering Avatar...","avatarError":"Avatar Error","retryingAvatar":"Retrying render...","retryingAvatarHint":"An error was detected and the render is being relaunched automatically.","notStarted":"Not started","step1Avatars":"Step 1 — Avatars","production":"Production","contentGroup":"Content","thumbnails":"Thumbnails","delivery":"Delivery","noVideosForDay":"No videos for this day","viewVideo":"View Video","searchVideos":"Search videos...","pipelineActions":"Pipeline Actions","sceneMatrix":"Scene Matrix ({count})","controlPanel":"Control Panel","notPublished":"Not published","confirmAction":"Confirm","coversAndTitles":"Covers & Titles","pinnedComment":"Pinned Comment","partialStatus":"Partial","createScenesWithCopy":"Create scenes with copy","confirmScenesCreation":"Confirm scenes creation?","campaignLabel":"Campaign","campaignNoName":"Campaign without name","angleLabel":"Angle","angleNoTitle":"No title","viewAngle":"View angle","tipoReelLabel":"Reel Type","nSegCambioEscena":"Scene Change Time (s)","nSegCambioTooltip":"Number of seconds between scene changes in the reel. Leave blank for default.","nSegPlaceholder":"e.g. 3","modoAudioReels":"Audio Mode (Reels)","modoAudioLabel":"Audio Mode","noSelection":"Not selected","voiceDurationLabel":"Voice Duration","modoAudioSoloLabel":"Single audio","modoAudioSoloDesc":"One single audio for the entire reel","modoAudioPerSceneLabel":"Audio per scene","modoAudioPerSceneDesc":"One audio per scene of the reel","modoAudioV3Tooltip":"V3 detected: If using ElevenLabs V3, select '1 solo audio' for best results.","detectedModel":"Detected model","v3VoiceDetected":"V3 voice detected","feedbackAudioElevenlabs":"Audio ElevenLabs Feedback","feedbackAudioElevenlabsTooltip":"If using ElevenLabs V3 Voice, you can provide emotion or intonation guidance for the audio.","feedbackAudioPlaceholder":"Emotion or intonation instructions...","reelFullAudioTitle":"Reel Full Audio","audioNotGenerated":"Audio not yet generated","audioNotGeneratedDesc":"Generate the audio from the Audio pipeline to hear the complete reel.","voiceNivelada":"Leveled Voice","voiceOriginal":"Original Voice","voiceAnalysisTitle":"Voice Analysis","analysisN":"Analysis {n}","statusInDevelopment":"In Development","statusActivada":"Active","statusDesactivada":"Disabled","statusInProgress":"In Progress","statusPendingReview":"Pending review","statusDone":"Done","statusDisabled":"Disabled","generatingCopyLabel":"Generating copy...","copyGeneratedLabel":"Copy generated!","generatingEscenasLabel":"Creating scenes...","escenasGeneratedLabel":"Scenes created!","generatingAudioLabel":"Generating audio...","audioGeneratedLabel":"Audio generated!","generatingFullVideoLabel":"Generating full video...","fullVideoGeneratedLabel":"Full video generated!","renderingVideoLabel":"Rendering final video...","renderCompletedLabel":"Render completed!","renderingRemotionLabel":"Rendering with Remotion...","renderRemotionCompletedLabel":"Remotion render completed!","regeneratingAvatarsLabel":"Regenerating avatars...","avatarsRegeneratedLabel":"Avatars regenerated!","regeneratingRendersLabel":"Regenerating AE Renders...","rendersRegeneratedLabel":"AE Renders regenerated!","generatingClipsLabel":"Generating clips…","clipsGeneratedLabel":"Clips generated!","generatingThumbnailsLabel":"Generating thumbnails…","thumbnailsGeneratedLabel":"Thumbnails generated!","modifyingScriptLabel":"Modifying script...","scriptModifiedLabel":"Script modified!","createBackgroundMusic":"Regenerate Background Music","confirmBackgroundMusicCreation":"Generate background music for all scenes?","generatingBackgroundMusicLabel":"Generating background music...","backgroundMusicGeneratedLabel":"Background music generated!","generaReelsOption":"Generate Reels","activeToggleOn":"Active — click to deactivate","activeToggleOff":"Inactive — click to activate","active":"Active","inactive":"Inactive","modificaSlide":"Modify Slide","confirmQuestion2":"Confirm?","sendingDots2":"Sending...","generatingSlideElapsed":"Generating slide... {elapsed}","slideReady":"Slide ready!","errorClickRetry2":"Error — click to retry","modifying":"Modifying","generatingNewSlide":"Generating new slide...","copySceneN":"Copy Scene {n}","scoreOutOf10":"Score: {score}/10","slideEngine":"Slide Engine","feedbackSlide":"Feedback Slide","feedbackSlidePlaceholder":"Instructions to regenerate the slide...","videoBroll":"Video B-Roll","brollDuration":"Duration","brollOffset":"Offset","brollCustom":"Custom","favoriteLabel":"Favorite","styleN":"Style {n}","cameraRender":"Camera Render","zoomPercent":"Zoom: {zoom}%","scenesMontaje":"Scenes — Montage","slidesCount":"{count} slides","slidesActive":"{count} act","brollCount":"{count} broll","brollActive":"{count} act","avatarCount":"{count} avatar","audioCount":"{count} audio","navigateUpDown":"navigate","sceneGroupLabel":"Scene","typeLabel":"Type","durLabel":"Dur.","imgLabel":"Img","styleLabel":"Style","substituteRender":"Substitute Render","confirmClickExecute":"Confirm? Click to execute","generatingRenderElapsed":"Generating render... {elapsed}","renderReady":"Render ready!","substituteRenderSection":"Substitute Render for another","feedbackRender":"Feedback Render","feedbackRenderPlaceholder":"Instructions for the new render...","substituteRenderHelp":"Press to substitute this Render with another. Use when it came out wrong or is not suitable. Takes a few minutes. No need to press Modify Render afterwards because it renders automatically.","videoRender":"Video Render","muestraAeTemplate":"AE Template Sample","afterEffectsTemplates":"After Effects Templates","copyEsLabel":"Copy ES","opacityLabel":"Opacity","aeRenders":"AE Renders","activeCountLabel":"{count} active","samplesCountLabel":"{count} samples","aeRenderSlides":"AE Render Slides","videoHooksStopScroller":"Video Hooks — Stop Scroller","instructions":"Instructions","tipPonePersona":"\"Pone Persona\" will try to put a \"Person\" in the Video, depending on the Engine.","tipVeo3":"Veo 3.1 Fast is the quick option; Cinematic adds motion, performance, and advanced voice processing.","tipRecommendedModel":"Recommended model by quality/price: VEO 3.1 Fast.","tipMultipleScenes":"We recommend selecting \"Multiple Scenes\" for more dynamism.","tipFeedbackPriority":"The Feedback has priority over all parameters.","generateMoreVideoHooks":"Generate More Video Hooks","confirmHookGeneration":"Confirm Hook Generation","generatingDots":"Generating...","hooksInProcess":"Hooks in Process","errorRetryButton":"Error — Retry","noVideoHooksGenerated":"No video hooks generated","pressGenerateToCreate":"Press \"Generate More Video Hooks\" to create","noVideoAvailable":"No video available","ideaHookLabel":"Idea Hook","origenVideoLabel":"Video Origin","ponePersonaLabel":"Puts Person","estiloVideoHookLabel":"Video Hook Style","escenasVideoHookLabel":"Video Hook Scenes","veo3HookStyleLabel":"Veo3 Hook Style","videoUpscaleLabel":"Video Upscale","readOnlySystem":"Read only — configured by system","nVideoHooksLabel":"N. Video Hooks","feedbackVideoHookLabel":"Feedback Video Hook Initial","feedbackVideoHookPlaceholder":"Write specific instructions for the video hooks. Feedback has priority over all parameters...","autoSaveDebounce":"Auto-saved with 800ms debounce","videosBrollHooks":"Videos Broll Hooks","unassigned":"— Unassigned —","selectPlaceholder":"Select...","ideaHookPlaceholder":"Describe the hook idea...","veo3StylePlaceholder":"Visual style of the Veo3 hook...","removeFavorite":"Remove favorite","markAsFavorite":"Mark as favorite","removeNoSirve":"Remove 'Not useful'","markAsNoSirve":"Mark as 'Not useful'","forceScenesOnlyCamera":"Force Scenes Only Camera","firstScene":"First Scene","lastScene":"Last Scene","onlyCameraNoSlides":"Only camera, no slides","avatarEngine":"Avatar Engine","avatarIV30x":"~4x credits","currentlyLabel":"Currently: {value}","avatarIVInfo":"Avatar 5 uses ~4x more credits than Avatar Standard. Select carefully.","avatarIVRequired":"For Avatar 5, \"Only 1 Avatar\" in Render Mode is mandatory.","avatarRenderMode":"Avatar Render Mode","solo1AvatarInfo":"\"Only 1 Avatar\" selects the Avatar from the first scene and renders the video with just this single Avatar.","solo1AudioRequired":"If \"1 solo Audio\" was selected in the Audio Tab, \"Only 1 Avatar\" is mandatory.","avatarIV30xInfo":"For Avatar 5 (~4x more credits), we always choose \"Only 1 Avatar\".","v3MultiSceneInfo":"V3 mode always renders multi-scene: the master audio is sliced automatically into one clip per scene, so each scene gets its own avatar.","modoAudioLocked":"Audio Mode = \"1 solo audio\" → Only 1 Avatar is mandatory","avatarIVLocked":"Avatar IV selected → Only 1 Avatar is mandatory","scenesToggle":"Scenes","stopScrollerToggle":"Stop Scroller","aeRendersToggle":"AE Renders","rendersProcessing":"Processing Renders...","rendersComplete":"Renders Complete","step2RenderFinal":"Step 2 — Final Render","avatarsNotRendered":"Avatars not rendered","avatarsNotRenderedDesc":"Cannot launch the final render until the avatars have finished. This is the process that takes the longest.","renderModeLabel":"Render Mode","bothLabel":"Both","remotionEditor":"Remotion Editor","renderVideoStatus":"Render Video","pendingFallback":"Pending","notPublishedFallback":"Not published","montajeFinal":"Final Montage","videoNumber":"Video #{name}","openLink":"Open","downloadLink":"Download","personaLabel":"Person","principalPerson":"Main","secondaryPerson":"Secondary","escenasLabel":"Scenes","hookClassification":"Hook","introClassification":"Intro","desarrolloClassification":"Development","ctaClassification":"CTA","estadoLabel":"Status","actLabel":"Act","aeTemplateLabel":"AE Template","opacLabel":"Opac.","startColLabel":"Start","minimize":"Minimise","viewFullDetail":"View full details","structureLabel":"Structure","descriptionLabel":"Description","transcriptWords":"Transcript ({count, plural, one {# word} other {# words}})","languageLabel":"Voice language","languageSpanish":"Spanish","languageEnglish":"English","languageGerman":"German","languageFrench":"French","languagePortuguese":"Portuguese","languageItalian":"Italian","actionServerFailed":"The process failed on the server. Try again.","insufficientCredits":"Not enough credits: you have {balance} and need {needed}.","eventSendFailed":"We could not start the process.","reelReservationRefused":"This Reel's avatar reservation was already refunded, so it cannot be launched again. Create a new Reel.","reelReservationRefusedScenesKept":"This Reel's avatar reservation was already refunded, so it cannot be launched again. Your scenes are untouched. Create a new Reel.","actionNotConfigured":"The {action} action is not available. Contact support.","networkError":"We could not connect. Check your connection and try again.","noCredits":"No credits","audioRequiresScenesTitle":"Generate the scripted scenes first","audioRequiresScenesDescription":"Audio is synthesised from each scene's script. You need at least one scripted scene before you can create the audio.","regeneratingAudioWith":"Regenerating audio with {engine}...","previousAudioWillBeReplaced":"The previous audio will be replaced when the new version is ready.","sceneCreateError":"We could not create the scene.","sceneNumberUseDecimalPoint":"Use a full stop (.) instead of a comma (,).","sceneNumberPositive":"The number must be greater than 0.","sceneNumberWhole":"The number must be a whole number.","scenesWillRenumber":"Scenes {scenes} will be renumbered by +1.","sceneWillBeAddedAfter":"It will be added after scene {scene}.","followingScenesWillRenumber":"The following scenes will be renumbered automatically.","showLess":"Show less","showMore":"Show more","imageText":"Text in the image","visualDescription":"Visual description","play":"Play","pause":"Pause","audioStatusGenerated":"Audio generated","audioStatusGenerating":"Generating audio","audioStatusFailed":"Audio failed","audioStatusIdle":"Pending","funnelZoneTraffic":"Traffic","funnelZoneRegistration":"Registration invitation","funnelZoneReplay":"Replay reminder","funnelZoneCall":"Call","reelAudioRecommended":"Recommended: one audio file","reelAudioRecommendationDescription":"{engine} does not yet support exact tone synchronisation between separately generated scenes. Generate one complete audio file to avoid tonal jumps at the joins.","reelAudioSelectionWarning":"Your current selection is “{value}”; the joins may sound uneven."},"soporte":{"title":"Support","subtitle":"Support ticket management center","workspaceTickets":"Tickets","workspaceAgency":"Agency","proactiveAlerts":"Proactive Alerts","markAttended":"Mark as attended","discard":"Discard","openTickets":"Open","inProgressTickets":"In Progress","resolvedTickets":"Resolved","totalTickets":"Total","avgResponse":"Avg Response","csat":"CSAT","npsScore":"Global NPS","npsAverage":"NPS average","feedbackResponses":"{count} responses","noFeedback":"No responses","noFeedbackValue":"—","noFeedbackDetail":"No responses have been recorded yet","feedbackLoading":"Loading…","feedbackUnavailable":"Unavailable","feedbackUnavailableHelp":"Could not load; please try again","npsBreakdown":"{promoters} promoters · {detractors} detractors","feedbackPending":"Pending","feedbackPendingHelp":"Open or in-progress tickets","searchPlaceholder":"Search by subject, email or description...","filters":"Filters","sortBy":"Sort by:","sortCreated":"Created","sortUpdated":"Updated","sortPriority":"Priority","errorLoadTickets":"Error loading tickets","noTicketsFilter":"No tickets found with these filters","noTickets":"No support tickets","showingTickets":"Showing {count} ticket(s)","statusOpen":"Open","statusInProgress":"In Progress","statusResolved":"Resolved","statusClosed":"Closed","priorityLow":"Low","priorityNormal":"Normal","priorityHigh":"High","priorityUrgent":"Urgent","filterAll":"All","filterOpen":"Open","filterInProgress":"In Progress","filterResolved":"Resolved","filterClosed":"Closed","alertMultiTickets":"Multiple tickets","alertNoResponse":"No response >48h","alertRecurringErrors":"Recurring errors","alertPipelineStuck":"Pipeline stuck","aiSummary":"AI Summary","regenerate":"Regenerate","generate":"Generate","noSummary":"No summary generated","createdBy":"Created by","description":"Description","chatConversation":"Chat Conversation","hide":"Hide","show":"Show","noMessages":"No messages","user":"User","assistant":"Assistant","helpCenter":"Help Center","searchingArticles":"Searching related articles...","relatedArticlesAuto":"Auto-related articles:","searchHelpCenter":"Search Help Center...","relatedArticles":"Related articles","ticketStatus":"Ticket Status","advanceTo":"Advance to:","userResponse":"Response to User","templates":"Templates","suggestAI":"Suggest with AI","responsePlaceholder":"Write the response for the user...","visibleToUser":"Visible to user in Notifications","sendResponse":"Send Response","internalNotes":"Internal Notes (Admin)","internalNotesPlaceholder":"Add internal notes about this ticket...","onlyAdmins":"Only visible to administrators","saveNotes":"Save Notes","generateArticle":"Generate Help Center Article","suggestArticle":"Suggest Article","articlePreview":"Article preview:","publishHelpCenter":"Publish to Help Center","userRating":"User Rating","openInChat":"Open in chat","hideConversation":"Hide conversation","showConversation":"View conversation above","firstResponse":"1st Response","resolved":"Resolved","thisWeek":"This week","weekAgo1":"Week -1","weekAgoN":"Week -{n}","ticketsCreatedResolved":"Tickets created and resolved per week","analytics":"Analytics","ticketsPerWeek":"Tickets per Week (8 weeks)","created":"Created","resolvedLabel":"Resolved","csatDistribution":"CSAT Distribution","noRatings":"No ratings","noResponseData":"No response data","byPriority":"By Priority","topAccountsWithTickets":"Top 5 Accounts with most Tickets","noAccountData":"No account data","resolutionRate":"Resolution rate:","avgCsat":"Average CSAT:","totalAnalyzed":"Total analyzed:","aiAnalysisRecurring":"AI Analysis — Recurring Questions","msgsAnalyzed":"{count} msgs analyzed","analyzingWithAi":"Analyzing conversations with AI...","supportAddress":"Support address","supportAddressHelp":"Customers can write to or reply to our emails at any of these addresses; their response returns to the same ticket.","supportAddressSpanish":"Español","supportAddressEnglish":"English","supportAddressTechnical":"Technical inbox","copy":"Copy","copied":"Copied","refreshTickets":"Refresh tickets","refreshConversation":"Refresh conversation and tracking","allPriorities":"All priorities","sortRecent":"Recent","sortOld":"Oldest","dateRange":"Ticket period","dateToday":"Today","dateLast7Days":"Last 7 days","dateLast30Days":"Last 30 days","dateAll":"All","awaitingReply":"Awaiting reply","createAccessLink":"Create 7-day link","accessLinkReady":"The personal link was created and added to the draft. Review it before sending.","accessLinkFailed":"The personal access link could not be created.","selectTicket":"Choose a ticket to view the conversation.","customerPanelEmpty":"Customer details and tickets will appear here.","externalContact":"External contact","identityAmbiguous":"More than one possible match was found. Sensitive context is hidden until identity is reviewed.","account":"Account","plan":"Plan","subscription":"Subscription","monthly":"Monthly","annual":"Annual","openSupportSession":"Open support session in their account","openSupportSessionHelp":"Opens the exact account in a new tab and starts in read-only mode","supportSessionUnavailable":"Support session unavailable: a unique account has not been linked","supportSessionUnavailableHelp":"For safety, no account is opened when the email does not identify one unique ContentFlow365 account","openCustomer":"Open customer profile","openInbox":"Open communications in Inbox","inboxFilteredByEmail":"No linked thread was found; Inbox will open filtered by this email.","noCrmContactFound":"No unique CRM contact was found for this email.","contactWorkspace":"Contact, opportunities and projects","contactWorkspaceHelp":"Shared with Inbox; changes are reflected in both places.","customerContextUnavailable":"The customer context could not be loaded right now. This does not mean they have no contact, purchases or feedback.","openPurchases":"Open purchase center","purchasesAndInvoices":"Purchases, receipts and invoices","subscriptionPurchase":"Subscription · {interval}","oneTimePurchase":"One-time purchase","openInvoice":"Open invoice in Stripe","noPurchasesFound":"No purchases were found for this email.","loadingCustomerContext":"Loading customer context…","refundedAmount":"Refunded: {amount}","customerFeedback":"Customer feedback","copyTicketLink":"Copy direct ticket link","addFavorite":"Add to favorites","removeFavorite":"Remove from favorites","customerTickets":"Their tickets ({count})","noThreadMessages":"There are no messages in this thread yet.","threadLoadFailed":"The conversation could not be loaded.","ticketUpdateFailed":"The ticket could not be updated.","suggestFailed":"The suggestion could not be generated.","sendFailed":"The reply could not be sent.","emailRejected":"The provider did not accept the email. The ticket remains pending and can be retried.","emailAccepted":"The provider accepted the email and the reply was saved.","sendShortcut":"⌘/Ctrl + Enter: send and leave in progress","sendInProgress":"Send and leave in progress","sendResolved":"Send and resolve","noTemplates":"There are no templates yet.","deliverySent":"Sent","deliveryDelivered":"Delivered","deliveryBounced":"Bounced","deliveryViewed":"Viewed","deliveryClicked":"Clicked","attachImage":"Attach image","attachImageHelp":"JPG, PNG, WebP or HEIC. 25 MB maximum.","removeAttachment":"Remove image","attachmentNotStored":"not stored","attachmentNotStoredHelp":"This file type is not stored","attachmentTypeRejected":"You can only attach JPG, PNG, WebP or HEIC images.","attachmentTooLarge":"The image exceeds the 25 MB size limit.","attachmentLimit":"You can attach up to 5 images per reply.","attachmentUploadFailed":"The image could not be saved. Try again.","customerTitle":"Your tickets","customerSubtitle":"Open a ticket or reply with text and images.","customerNewTicket":"New ticket","customerSubject":"Subject","customerSubjectPlaceholder":"How can we help?","customerMessage":"Message","customerMessagePlaceholder":"Describe the issue. You can attach an image.","customerCreate":"Create ticket","customerEmpty":"You do not have any tickets yet. Create one to reach the team.","customerLoadFailed":"Your tickets could not be loaded.","customerSendFailed":"The message could not be sent. Try again.","customerEmptySubject":"Enter a subject for the ticket.","customerEmptyReply":"Write a message or attach an image.","customerSelectTicket":"Select a ticket to view the thread.","customerThreadFailed":"The thread could not be loaded.","customerEmptyThread":"This ticket does not have messages yet.","customerYou":"You","customerTeam":"Team","customerReplyPlaceholder":"Reply or attach an image…","customerSendReply":"Send reply","customerWorkspaceLoading":"Loading support…","deliveryTracking":"Email tracking","deliveryTrackingHelp":"Each reply shows whether it was accepted, delivered, opened, and whether a link was clicked.","analysisMayTake":"This may take 15-30 seconds","retry":"Retry","recurringTopics":"Recurring Topics ({count})","toolUsage":"Tool Usage","noToolData":"No tool data","unresolvedPatterns":"Unresolved Patterns","noPatternsDetected":"No patterns detected","suggestedKbArticles":"Suggested KB Articles ({count})","kbWellCovered":"KB well covered — no gaps detected","analysisFooterStats":"{messages} messages, {summaries} summaries, {tools} tool calls","generatedAt":"Generated","errorGeneratingAnalysis":"Error generating analysis","severityInfo":"Info","severityFriction":"Friction","severityBlocking":"Blocking","toolGetVideoStatus":"Video Status","toolSearchVideos":"Search Videos","toolGetAccountInfo":"Account Info","toolSearchHelpArticles":"Search KB Articles","toolRetryPipeline":"Retry Pipeline","toolCreateTicket":"Create Support Ticket"},"campaigns":{"liveRecording":{"addButton":"Add live recording","startedToast":"Transcribing the recording. The transcript and summary will appear here in a few minutes.","title":"Add live recording","description":"We transcribe the recording in the cloud, add it as the campaign transcript and generate the detailed summary.","sourceLabel":"Mux video link","sourcePlaceholder":"https://stream.mux.com/… or the playback ID","sourceHelp":"The playback link, the Mux player link or just its ID.","startLabel":"Starts at","startPlaceholder":"0:22:38","startHelp":"Time when the content starts, to skip the waiting room.","titleLabel":"Title","quoteButton":"Calculate cost","quoteDuration":"{duration} of recording will be transcribed.","quoteCredits":"Cost: {credits} credits (transcription + summary).","quoteInsufficient":"You don't have enough credits (balance: {balance}).","confirmButton":"Confirm ({credits} cr)","errors":{"INVALID_SOURCE":"The link is not a valid Mux video.","INVALID_START":"The start time is not valid. Use h:mm:ss or mm:ss.","RECORDING_NOT_FOUND":"We couldn't find the recording in Mux or it isn't public.","START_AFTER_END":"The start time is after the end of the video.","RECORDING_TOO_LONG":"The recording is longer than 6 hours.","QUOTE_STALE":"The cost has changed. Calculate it again.","INSUFFICIENT_CREDITS":"You don't have enough credits.","CAMPAIGN_NOT_FOUND":"We couldn't find this campaign in your account.","DISPATCH_FAILED":"It couldn't start. You haven't been charged.","WORKER_UNAVAILABLE":"The transcription service isn't available right now. You haven't been charged.","UNKNOWN":"Something went wrong. Please try again."}},"descriptionEditor":{"expand":"Expand","heading":"Heading","bold":"Bold","italic":"Italic","list":"List","preview":"Preview","edit":"Edit text","emptyPreview":"Write a description to preview its formatting.","hint":"Use headings, bold, italic and lists. Drag the bottom edge to resize the field.","expandedHint":"Edit with Markdown formatting and check the preview. Apply changes to return to the form.","cancel":"Cancel","apply":"Apply changes"},"title":"Campaigns","subtitle":"Products and advertising campaigns","loadingCampaigns":"Loading campaigns...","noCampaigns":"No campaigns.","searchPlaceholder":"Search Campaigns...","newCampaign":"New Campaign","createHintDetail":"Other fields can be edited in the campaign detail panel.","angles":"Angles","campaignPosters":"Campaign Posters","funnelPages":"Funnel Pages","campaignFeatures":"Campaign Features","generateAngles":"Generate Angles","confirmGeneration":"Confirm generation","anglesGenerating":"Angles generating!","detailsGenerating":"Details generating!","viewAngles":"View Angles for this Campaign","createPage":"Create Page","campaignName":"Campaign Name","anglesFeedback":"Angles Feedback","funnelPageLink":"Funnel Page Link","statusExecuting":"In Progress","statusFinished":"Finished","statusPlanned":"Planned","statusDesign":"In Design","statusPublished":"Published","statusApproved":"Approved","statusPending":"Pending","statusRejected":"Rejected","noName":"No name","noCampaignsForDay":"No campaigns for this day","campaignCount":"{count, plural, one {# campaign} other {# campaigns}}","campaignCountDay":"{count, plural, one {# campaign for this day} other {# campaigns for this day}}","more":"+{count} more","viewYear":"Year","viewMonth":"Month","viewWeek":"Week","viewDay":"Day","selectDate":"Select date...","hour":"Time:","noPosters":"No posters","noVideos":"No videos","noMontajes":"No montages","noSubject":"No subject","createNewPage":"Create new page","newFunnelPage":"New Funnel Page","createNewEmail":"Create new email","newEmail":"New Email","createNewPoster":"Create new poster","newPoster":"New Poster","createPoster":"Create Poster","createEmail":"Create Email","generateProductDetails":"Generate Product Details","productDetailsSection":"Product / Service Details","competitionStudy":"Competition Study","emailsFunnel":"Funnel Emails","eventPosters":"Event Posters","videoAds":"Video Ads","montageAds":"Montage Ads","textAds":"Ad Texts","textAdsWarning":"This data is ONLY for uploading image ads (posters). Reels are uploaded from Montage Video Reels.","anglesTypeLabel":"Angles Type","funnelLevel":"Funnel Level","funnelZone":"Funnel Zone","anglesFeedbackPlaceholder":"Pre-feedback before generating angles...","anglesFeedbackHint":"Pre-feedback before generating angles","viewResults":"View results","clickToExecute":"Click to execute","created":"Created:","sectionInfo":"Info","sectionPosters":"Posters","sectionAngles":"Angles","sectionProduct":"Product","sectionFunnel":"Funnel","sectionEmails":"Emails","sectionEvent":"Event","sectionVideos":"Videos","sectionMontage":"Montage","sectionConfig":"Config","sectionTexts":"Ad Texts","noProductInfo":"No product information","labelName":"Name","labelNameRequired":"Name *","labelUrl":"URL","labelPageType":"Page Type","labelSubject":"Subject","labelSubjectRequired":"Subject *","labelCopy":"Copy","labelEmailType":"Email Type","labelTitleRequired":"Title *","labelStatus":"Status","labelStatusCampaign":"Campaign Status","labelStatusPipeline":"Pipeline Status","labelStartDate":"Start Date","labelEndDate":"End Date","labelProductDetails":"Product Details","labelProductNotes":"Product Notes","labelBrollThumbnails":"Broll Thumbnails","labelMetaAdset":"Meta Adset","labelMetaAdsetPlaceholder":"Adset ID","labelMetaText":"Meta Text","labelMetaCta":"Meta CTA","labelMetaHashtags":"Meta Hashtags","labelGoogleAdsTexts":"Google Ads Texts","placeholderFunnelPage":"E.g.: Landing Webinar January","placeholderEmailSubject":"E.g.: Webinar invitation...","placeholderEmailCopy":"Email text...","placeholderPosterTitle":"E.g.: Webinar Poster February","file":"file","importFromOnboarding":"Create from Onboarding","importDescription":"A new campaign will be created importing all onboarding data: product report, competitor study, ICP, offer, differentiation and more.","importData":"Import data","noStrategyFound":"No marketing strategy found for this account. Complete the onboarding first.","campaignCreatedSuccess":"Campaign created successfully","productReport":"Product Report","competitorReport":"Competitor Study","strategyData":"Strategy Data","strategyFieldCount":"{count} fields from onboarding","importedSections":"{count} sections imported","reportReady":"Ready to import","reportNotGenerated":"Not yet generated in onboarding","wizard":{"steps":{"concept":"Concept","research":"Research","funnel":"Funnel","landing":"Landing","emails":"Emails","bot":"Bot","angles":"Angles","review":"Review"},"loading":"Loading campaign...","backToCampaigns":"Back to campaigns","editTitle":"Edit campaign","createTitle":"New campaign","creditsRemaining":"{count, plural, one {# credit available} other {# credits available}}","stepProgress":"Step {current} of {total}","confirmCredits":"Confirm · {count} credits","noCredits":"No credits","skipStep":"Skip this step","showOptions":"Show options","continueWithoutWaiting":"Continue without waiting","tryAgain":"Try again","stepSkipped":"Step skipped","previous":"Previous","creating":"Creating...","next":"Next","concept":{"title":"Define your campaign concept","description":"Tell us what you want to promote and what you want to achieve.","onboardingData":"Onboarding data","business":"Business","offer":"Main offer","competitors":"Competitors","researchAvailable":"Market research available","nameLabel":"Campaign name","namePlaceholder":"E.g. Spring launch","descriptionLabel":"Description","descriptionPlaceholder":"Summarise the campaign proposition and audience...","destinationUrlLabel":"Ad destination URL (optional)","destinationUrlPlaceholder":"https://example.com","destinationUrlHelp":"Ads can use this URL without creating a landing page. A URL entered for an individual ad takes priority.","destinationUrlInvalid":"Enter a valid destination URL starting with http:// or https://.","objectiveLabel":"Objective","startDate":"Start date","endDate":"End date","presenter":"Presenter","funnelLevel":"Funnel level","customerAvatars":"Customer personas","customerAvatarsDescription":"Define the people this campaign is intended for.","noAvatars":"You have not added any customer personas yet.","avatarNamePlaceholder":"Persona name","avatarDescriptionPlaceholder":"Needs, context and objections...","removeAvatar":"Remove persona","addAvatar":"Add persona","allFunnelLevels":"All 3 (TOFU, MOFU and BOFU)"},"objectives":{"awareness":{"label":"Awareness","description":"Build awareness of the brand or product"},"leads":{"label":"Lead generation","description":"Generate sign-ups and contacts"},"sales":{"label":"Direct sales","description":"Sell a product or service"},"launch":{"label":"Launch","description":"Launch a new product or service"}},"funnels":{"title":"Choose the conversion journey","intro":"Select the funnel type that best fits this campaign.","betaDescription":"This option is in beta and will continue to gain automations.","beta":"Beta","emailPhase":"Sequence phase","social":{"label":"Social funnel","description":"Social content where a comment starts the conversation"},"webinar":{"label":"Webinar funnel","description":"Webinar, registration, replay and close"},"launch":{"label":"Launch","description":"Pre-launch, launch and cart close"},"evergreen":{"label":"Evergreen","description":"Welcome, nurture and sales"},"none":{"label":"No funnel","description":"Content and ads only, with no pages or emails"},"phases":{"post":"Post","comment":"Comment","message":"Message","registration":"Registration","replay":"Replay","finalHours":"Final hours","preLaunch":"Pre-launch","launch":"Launch","cartClose":"Cart close","welcome":"Welcome","nurturing":"Nurture","pitch":"Pitch"}},"research":{"title":"Market research","description":"Generate the strategic context used by the rest of the campaign.","completed":"Research complete","productDetails":"Product details","competitionStudy":"Competitor study","runAgain":"Run research again · {count} credits","contextTitle":"Context that will be used","campaign":"Campaign","campaignDescription":"Description","icpPainPoints":"Ideal customer pain points","start":"Start research","skippedDescription":"You skipped market research.","backgroundDescription":"You can continue. Research will keep running in the background."},"progress":{"almostReady":"Almost ready","slowWarning":"This is taking longer than usual, but the work is still running in the background.","research":{"launching":"Preparing the research","searching":"Analysing the market and competitors","synthesising":"Synthesising the findings","timing":"Elapsed time: {elapsed}"},"angles":{"readingBrief":"Reading the brief","generating":"Generating angles","saving":"Saving results","timing":"Elapsed time: {elapsed}"}},"landing":{"title":"Landing page and funnel","description":"Define the page's style, tone and core message.","htmlDomain":"HTML landing domain","chooseHtmlDomain":"Choose a domain","htmlDomainUnavailable":"Connect an active HTML domain before creating the funnel.","htmlTrackingFromSettings":"The landing reads published pixels and code from Tracking and cookies.","htmlPrerequisites":"Save the headline and choose an active HTML domain before generating the landing.","htmlTrackingUnavailable":"Publish Tracking and cookies for this domain before generating the landing.","htmlGhlUnavailable":"Connect a GoHighLevel account to receive landing registrations.","style":"Visual style","tone":"Tone","generateHeadlines":"Generate headlines","generatingHeadlines":"Generating headlines...","headlineTiming":"This may take a few minutes.","headlinesGenerated":"{count, plural, one {# headline generated} other {# headlines generated}}","createFunnel":"Create funnel","creatingFunnel":"Creating funnel...","generatingLanding":"Generating the landing page...","imagesBackground":"Images may continue generating in the background.","created":"Landing page created","view":"View landing page","regenerate":"Generate again","generatedFunnelDescription":"Funnel generated for {name}","styles":{"minimal":{"label":"Minimal","description":"Clean and elegant"},"bold":{"label":"Bold","description":"Vibrant and eye-catching"},"corporate":{"label":"Corporate","description":"Professional and serious"},"startup":{"label":"Startup","description":"Modern and fresh"}},"tones":{"direct":"Direct","empathic":"Empathetic","provocative":"Provocative","aspirational":"Aspirational"}},"emails":{"title":"Email sequence","description":"Generate emails for the {phase} phase of the {funnel} funnel.","countLabel":"Number of emails","count":"{count, plural, one {# email} other {# emails}}","senderLabel":"Sender","senderPlaceholder":"Sender name","copyStyle":"Copy style","generate":"Generate sequence","generating":"Generating {count, plural, one {# email} other {# emails}}...","timing":"The sequence may take a few minutes.","generated":"{count, plural, one {# email generated} other {# emails generated}}","backgroundSubject":"Email in progress","backgroundPreheader":"Generation is continuing in the background.","backgroundGoal":"Complete the campaign sequence","engines":{"classic":{"label":"Direct response","description":"AIDA, PAS, BAB and PASTOR"},"david":{"label":"David style","description":"Storytelling and data"},"isra":{"description":"True stories with a twist"},"soapOpera":{"description":"Episodic narrative sequence"},"hormozi":{"description":"Value and an irresistible offer"}}},"bot":{"title":"Qualification bot","description":"Decide whether this campaign needs a bot to qualify contacts.","enableQuestion":"Do you want to enable a qualification bot?","enable":"Yes, enable the bot","configureLater":"You can adjust the configuration later.","disable":"No, continue without a bot","addLater":"You can also add one later.","questionsLabel":"Qualification questions","questionsPlaceholder":"One question per line...","enabled":"Bot enabled","enabledDescription":"The bot will be included in the campaign configuration.","changeConfiguration":"Change configuration","disabledDescription":"The campaign will continue without a qualification bot."},"angles":{"title":"Content angles","description":"Generate creative approaches aligned with the funnel and research.","typeLabel":"Angle type","funnelZone":"Funnel stage","instructionsLabel":"Additional instructions","instructionsPlaceholder":"Add constraints, ideas or references...","generate":"Generate angles","backgroundDescription":"You can continue. Angles will keep generating in the background.","generated":"{count, plural, one {# angle generated} other {# angles generated}}","skippedDescription":"You skipped angle generation.","types":{"organicFunnel":"Organic funnel (L0, L1, L2)","longFormToReels":"Long form to Reels"},"zones":{"registrationInvitation":"Registration invitation","replayReminder":"Replay reminder","call":"Call"}},"review":{"title":"Campaign review","description":"Review the configuration and open the results from each phase.","name":"Name","objective":"Objective","funnelLevel":"Funnel level","angleType":"Angle type","funnelZone":"Funnel stage","startDate":"Start date","endDate":"End date","funnelType":"Funnel type","funnelPhase":"Funnel phase","marketResearch":"Market research","funnelLanding":"Funnel and landing page","emailSequence":"Email sequence","qualificationBot":"Qualification bot","contentAngles":"Content angles","campaignPoster":"Campaign poster","goToCampaigns":"Go to campaigns","viewAngles":"View angles","status":{"completed":"Complete","generated":"{count} generated","skipped":"Skipped","pending":"Pending"}},"errors":{"createCampaign":"We could not create the campaign. Try again.","insufficientCredits":"Not enough credits: you have {balance} and need {needed}.","startResearch":"We could not start the research.","researchFailed":"The research could not be completed.","researchTimeout":"The research is still running. You can continue and return later.","startAngles":"We could not start angle generation.","anglesFailed":"The angles could not be generated.","anglesTimeout":"The angles are still generating. You can continue and return later.","generateHeadlines":"We could not generate the headlines.","createLanding":"We could not create the landing page.","generateEmails":"We could not generate the email sequence."}}},"montaje":{"title":"Video Montaje","subtitle":"Video clips and montages for social media","loadingMontajes":"Loading montages...","searchPlaceholder":"Search Video Montaje...","noRecords":"No records","noDataIn":"No data in Video Montaje.","loadingClips":"Loading clips...","noClips":"No montage clips yet.","newMontaje":"New Video Montaje","newMontajeDesc":"Create a new record and it will be initialized with account defaults.","nameLabel":"Name *","namePlaceholder":"Clip name...","elevenLabsTextPlaceholder":"Sales text / copy for audio...","formatLabel":"Format","clipsTitle":"Clips Opus","clipsSubtitleVideo":"Video #{name}{title}","clipsSubtitleAll":"All video montages and clips","clips":"clips","searchClips":"Search clips...","filterByVideo":"Filter by #{name}","showAll":"Show all","viewVideoMontaje":"View Video Montaje","noClipsEmpty":"No clips","noClipsYet":"No montage clips yet.","generateClips":"Generate Clips","confirmGenerateClips":"Generate clips from this video?","trimClip":"Clip trim","transcript":"Transcript","saving":"Saving...","saved":"Saved","publishingFields":"Publishing fields","metaTitle":"Meta Title","metaTitlePlaceholder":"Custom title for Meta...","metaDescription":"Meta Description","metaDescriptionPlaceholder":"Description text for the post...","metaHashtags":"Meta Hashtags","metaHashtagsPlaceholder":"#hashtag1 #hashtag2 #hashtag3","metaOrganicStatus":"Meta Organic","metaAdsStatus":"Meta Ads","metricoolUuid":"Metricool UUID","coverImage":"Cover Image","coverImageExists":"Current clip cover. You can generate a new one with AI.","noCover":"No cover image. Generate one with AI to publish on Meta.","generateCover":"Generate AI Cover","generatingCover":"Generating...","coverTriggered":"Cover in progress"},"research":{"newResearch":"New Research","launched":"Research launched","noResearch":"No research available","conclusion":"Conclusion","perplexityResearch":"Perplexity Research","fullAnalysis":"Full Analysis","noThumbnail":"No thumbnail","noEntriesFound":"No research entries found","markFavorite":"Mark as favorite","removeFavorite":"Remove favorite","all":"All","favorites":"Favorites","noFavorites":"No favorite ideas yet. Mark some with the star."},"dashboard":{"defaultSupportView":"This user has no saved dashboard. Showing the general view without saving changes.","emptyReadOnly":"This saved dashboard has no widgets.","createFailed":"The dashboard could not be created.","loadFailed":"The dashboards could not be loaded.","retry":"Try again","readOnly":"Dashboard · read-only support view","hello":"Hello","bestDay":"Best Day","todayUpper":"TODAY","researchForYou":"Research for you","noResearchYet":"No research yet. Generate your first Research from the Research page.","goToResearch":"Go to Research","viewResearch":"View Research","recommendedTopics":"Recommended Topics","inspirationIdeas":"Inspiration Ideas ({count})","openFullResearch":"Open full Research","now":"now","recentActivity":"Recent Activity","noRecentActivity":"No recent activity","untitled":"Untitled","statusPublished":"Published","statusDraft":"Draft","statusInProduction":"In production","statusScheduled":"Scheduled","statusCompleted":"Completed","statusProcessing":"Processing","statusPaused":"Paused","statusCancelled":"Cancelled","statusReady":"Ready","statusUnknown":"Status unavailable","topVideos":"Top Videos","last10Videos":"Last 10 Videos","youtubePerformance":"YouTube Performance","fullStats":"Full stats","trend":"Trend","growing":"Growing","declining":"Declining","stable":"Stable","topThumbnails":"Top Thumbnails","bestPerformingThumbnails":"Best performing thumbnails","aiAnalysis":"AI Analysis","upcomingPublications":"Upcoming Publications","scheduled":"{count} scheduled","calendar":"Calendar","tomorrow":"Tomorrow","connectYouTube":"Connect your YouTube channel to see AI insights","goToYouTubeStats":"Go to YouTube Stats","channelRecommendations":"Recommendations based on your channel","support":"Support","activeTickets":"{count} active ticket(s)","statusOpen":"Open","statusInProgress":"In progress","statusResolved":"Resolved","statusClosed":"Closed","statsOpen":"Open","statsInProgress":"In progress","statsResolved":"Resolved","noTickets":"No pending tickets","response":"Response:","forPublishing":"For publishing","credits":"Credits","plan":"Plan {name}","cr":"cr","used":"{pct}% used","remaining":"~{days}d remaining","lowBalance":"Low balance — {pct}% remaining","topConsumption":"Top consumption","noConsumption":"No consumption recorded this cycle","healthScore":"Health Score","viewsTrend":"Views Trend","avgPerVideo":"{avg} avg/video","topKeyword":"Top Keyword","avgViews":"{avg} avg views","engagement":"Engagement","user":"User","videosInProduction":"videos in production","published":"Published","inProduction":"In Production","thisMonth":"This Month","totalVideos":"Total Videos","vsPreviousMonth":"vs previous month","statusActive":"Active","videos":"videos","inProgressCount":"{count} in progress","productionPipeline":"Production Pipeline","pipelineCopy":"Copy","pipelineAudio":"Audio","pipelineVideo":"Video","pipelineRender":"Render"},"videos":{"deleteConfirm":"{count} records will be permanently deleted. This action cannot be undone.","allVideos":{"title":"All videos","countSummary":"{filtered} of {total} videos","filterFormat":"Format","formatNormal":"Standard","formatImported":"Podcast / keynote","emptyFilteredTitle":"No videos found","emptyTitle":"No videos yet","emptyFilteredDescription":"Try adjusting the filters to see more results.","emptyDescription":"Videos will appear here when they are created from inspiration ideas.","deleteSuccess":"{count, plural, one {# video deleted} other {# videos deleted}}","duplicateSuccess":"{count, plural, one {# video duplicated} other {# videos duplicated}}","deleteError":"We could not delete the selected videos.","duplicateError":"We could not duplicate the selected videos.","scheduleUpdateError":"We could not update the scheduled date.","scheduledTime":"Scheduled publication time","clearSelection":"Clear video selection","selectAll":"Select all videos on this page","selectVideo":"Select video {name}","montageCovers":"Montage covers","avatars":"Avatars","logoAlt":"Account logo","importedTooltip":"Imported as a podcast or keynote breakdown","reelTypeTooltip":"Type: {type}","reelTypes":{"normal":"Standard","mundos_imaginarios":"Surreal worlds","instagram_viral":"Viral Instagram","vsl_horizontal":"Horizontal VSL"}},"viewYear":"Year","viewMonth":"Month","viewWeek":"Week","viewDay":"Day","viewVideo":"View Video","videoCount":"{count} {count, plural, one {video} other {videos}}","videosScheduled":"{count} {count, plural, one {video scheduled} other {videos scheduled}}","noVideosForDay":"No videos for this day","more":"+{count} more","topThumbnailTooltip":"Top 10 — High-impact thumbnail","untitled":"Untitled","content":"Content","production":"Production","thumbnails":"Thumbnails","delivery":"Delivery","searchPlaceholder":"Search videos...","filterEstado":"Status","filterStatusYoutube":"Status YouTube...","filterSponsors":"Sponsors","topThumbnail":"Top Thumbnail","reset":"Reset","noVideosFound":"No videos found","noVideosHint":"Try adjusting your filters or create videos from inspiration ideas.","link":"Link","pipelineSummary":"Pipeline {completed}/{total}","pipeCopy":"Copy","pipeAudio":"Audio","pipeScenes":"Scenes","pipeAvatars":"Avatars","pipeRenders":"Renders","pipeCovers":"Covers","pipeVideo":"Video","pipeYoutube":"YouTube","colName":"Name","colPipeline":"Pipeline","colScheduledDate":"Scheduled Date","colTitleYoutubeA":"YouTube Title A","colEstado":"Status","colStatusCopyAnalysis":"Status & Copy Analysis","colStatusAudio":"Status Audio","colStatusAvatarsRender":"Status Avatars Render","colStatusRenderingVideo":"Status Rendering Video","colStatusYTPublishing":"Status YT Publishing","colLogoAccount":"Logo (from AI Account)","colStatusAgents":"Status AI Agents","colHorizontalVertical":"Horizontal/Vert","colPostContent":"Post Content","colPortadaA":"YouTube Cover A","colPortadaB":"YouTube Cover B","colPortadaC":"YouTube Cover C","colSponsors":"Sponsors","colUrlYoutube":"URL YouTube","colStatusManualEditing":"Status Manual Editing","colRevisionNotes":"Revision Notes","colCreatedTime":"Created Time","colUrlDrive":"URL Drive","colUrlShotstackProduction":"URL Shotstack Production","colYtVideoId":"YT Video ID","colYtViews":"YT Views","colYtLikes":"YT Likes","colYtComments":"YT Comments","colLastSync":"Last Sync","colLogoSources":"Logo Sources Insp.","colPodcastChapter":"Podcast Chapter No.","colRecordId":"Record ID","filterAll":"All","filterDraft":"Draft","filterInProgress":"In Progress","filterPublished":"Published","tableTitle":"Title","tableStatus":"Status","tablePipeline":"Pipeline","tableFormat":"Format","tableDuration":"Duration","tableDate":"Date","metaDetails":"Details","metaStatus":"Status","metaFormat":"Format","metaDuration":"Duration","metaPlatform":"Platform","metaDescription":"Description","metaProductionStatus":"Production Status","metaFlagCopy":"Copy","metaFlagScenes":"Scenes","metaFlagAudio":"Audio","metaFlagAvatars":"Avatars","metaFlagRenders":"Renders","metaFlagVideo":"Video","metaFlagPublished":"Published","videoNotFound":"Video not found","videoNotFoundDescription":"This video does not exist or you do not have access","noCopyYet":"No copy generated yet. Click \"Create Copy\" to generate the script.","copyTitleOptions":"Title Options","copyScript":"Script","copyFeedback":"Feedback","statusDraft":"Draft","statusInProgress":"In Progress","statusGenerating":"Generating","statusPublished":"Published","statusError":"Error","statusCompleted":"Completed","statusPending":"Pending","statusReady":"Ready","statusRetrying":"Retrying","statusNotPublished":"Not published","statusUnknown":"Unknown status","pipelineStepsTooltip":"Copy / Audio / Video / Render","percentCompleted":"{percent}% completed"},"youtube":{"years2":"2 years","years5":"5 years","trendUp":"Going up","trendDown":"Going down"},"notifications":{"title":"Notifications","whatsNew":"What's New","supportTickets":"Support tickets","noTickets":"You have no support tickets","rateExperience":"Rate your experience","ratingSubmitted":"Rating submitted","agency":{"tab":"Agency","title":"Conversation with your Agency team","subtitle":"This history combines messages sent from ContentFlow and Slack.","guideTitle":"How your support channel works","guideChat":"Write here or attach a document or voice note. Your support team and the bot can reply in this conversation; voice notes are transcribed.","guideSlack":"If you prefer Slack, the support team can invite you to a private channel explicitly linked to this conversation. You can connect your company's Slack workspace for app notifications; selecting a notification channel does not make it a support channel. Only invited members can see a private channel.","guideSlackLink":"Set up Slack notifications","guideWhatsApp":"If WhatsApp alerts are enabled for your account, you will receive a notice when there is an update and can open the conversation here or in Slack. WhatsApp is used for alerts; outside 24 hours from your last WhatsApp message, an approved template is required.","guideBot":"The support bot can help in this same thread. The ContentFlow team can step in when needed.","empty":"There are no messages yet.","you":"You","team":"ContentFlow team","remove":"Remove","attach":"Attach file","placeholder":"Write a message to your team…","send":"Send message","loadError":"The conversation could not be loaded","sendError":"The message could not be sent","attachmentMessage":"Attached file: {filename}","recordVoice":"Record voice note","stopRecording":"Stop recording","playVoice":"Play voice note","microphoneUnavailable":"This browser cannot record audio. You can attach a voice file.","microphoneDenied":"Microphone access failed. Check your browser permission.","voiceTooLarge":"Voice notes must be under 4 MB.","voiceTypeError":"This audio format is not supported.","transcriptionUnavailable":"Transcription is unavailable right now. Please try again later.","transcriptionFailed":"The voice note could not be transcribed. Please try again.","transcriptionInvalid":"No valid transcript was detected. Please try again.","voiceUploadFailed":"The audio could not be saved. Please try again."},"tickets":{"conversation":"Conversation","emptyThread":"There are no messages on this ticket yet.","loadFailed":"The conversation could not be loaded.","sendFailed":"The message could not be sent.","emptyReply":"Write a message or attach an image.","you":"You","team":"ContentFlow team","attach":"Attach image","remove":"Remove image","placeholder":"Write a reply or attach an image…","send":"Send message","invalidType":"You can only attach JPG, PNG, WebP or HEIC images.","invalidSize":"The image exceeds the 25 MB size limit.","tooMany":"You can attach up to 5 images.","notStored":"not stored","notStoredHelp":"This file type is not stored","showMore":"Show more","showLess":"Show less","created":"Created","resolved":"Resolved"}},"auth":{"signIn":"Sign in","signOut":"Sign out","email":"Email address","password":"Password","forgotPassword":"Forgot your password?","noAccount":"Don't have an account?","signUp":"Sign up"},"authPages":{"metadata":{"auth":"Sign in","profile":"Profile"},"common":{"tagline":"AI marketing and video platform","email":"Email","emailPlaceholder":"you@example.com","password":"Password","newPassword":"New password","confirmPassword":"Confirm password","minimumPassword":"At least 8 characters","repeatPassword":"Repeat your password","saving":"Saving…","loading":"Loading…","showPassword":"Show password","hidePassword":"Hide password"},"login":{"activationSent":"We sent a link to {email} so you can create your password and activate your account.","resetSent":"We sent a password reset link to {email}.","checkInbox":"Check your inbox.","back":"Back to sign in","activationInstructions":"Enter the email address used for your purchase and we will send a link to create your password and activate your account.","resetInstructions":"Enter your email address and we will send a password reset link.","sending":"Sending…","sendLink":"Send link","google":"Continue with Google","or":"or","forgot":"Forgot your password?","signingIn":"Signing in…","signIn":"Sign in"},"reset":{"title":"Reset your password","subtitle":"Enter your new password","submit":"Save new password"},"accountAccess":{"activationTitle":"Activate your account","resetTitle":"Create a new password","subtitle":"One simple step to access ContentFlow365","account":"Account: {email}","submit":"Save password and continue","validity":"This personal, one-time link remains valid for seven days.","requestAnother":"Request another link"},"set":{"title":"Create your password","subtitle":"Choose a password to access your account","submit":"Save password"},"welcome":{"returningTitle":"Welcome back","redirecting":"Taking you to onboarding…","title":"Welcome to ContentFlow365","purchaseConfirmed":"Purchase confirmed","subscriptionActive":"Your subscription is now active.","checkEmailTitle":"Check your email","checkEmailBody":"We sent an access link to the email address used for your purchase. Open it to set up your account.","step1Title":"Open your email","step1Description":"Look for the message from ContentFlow365","step2Title":"Create your password","step2Description":"Open the link and choose a secure password","step3Title":"Set up your brand","step3Description":"Complete a short guide to tailor your experience","step4Title":"Start creating","step4Description":"Create your first AI video in minutes","deliveryNote":"The email may take a few minutes to arrive. Check your spam and promotions folders too.","existingAccount":"I already have an account — Sign in","supportIntro":"If you need help, email"},"billingWelcome":{"previewPerson":"Your name","previewCompany":"Your company","greeting":"Hello, {name} 👋","welcome":"Welcome! 👋","activePlan":"Your {plan} plan is active.","accountReady":"Your account is ready.","accountCreated":"Account created","onboardingBrief":"All that remains is a short onboarding to tailor everything to you.","reassurance":"You can complete it in stages. Your progress is saved automatically, so you can return whenever you like.","start":"Start onboarding","explore":"Explore the dashboard first","loadingLabel":"Loading your account","tryAgain":"Try again","backToLogin":"Back to sign in"},"billingSuccess":{"previewPerson":"Your name","missingSession":"The payment reference is missing.","paymentUnconfirmed":"We could not find a confirmed payment for this session.","purchaseLoadFailed":"We could not load your purchase. Check your activation email or try again.","step":"Step {step} of 2","passwordTitle":"Payment confirmed! 🎉","passwordSubtitle":"Create your password to access your account","dataTitle":"Nearly there 🚀","dataSubtitle":"Confirm these details to set up your account","goToLogin":"Go to sign in","loadingPurchase":"Loading your purchase…","activating":"Activating…","continue":"Continue","personName":"Your name","personPlaceholder":"Full name","companyName":"Company or brand name","optional":"optional","companyPlaceholder":"Your company or brand","companyHint":"If you do not have a company yet, leave this blank and we will use your name.","slugLabel":"Your account URL","slugPlaceholder":"my-company-or-brand","slugChecking":"Checking URL availability","slugAvailable":"The URL is available","slugTaken":"That URL is already in use. Choose another one.","slugInvalid":"Use 2–40 characters: letters, numbers and hyphens.","slugFixed":"You can change the name later, but this URL will be permanent.","website":"Website","websitePlaceholder":"https://yourcompany.com","saving":"Saving…","enter":"Enter ContentFlow365","personRequired":"Enter your name.","slugRequired":"Choose a valid account URL.","networkError":"Check your connection and try again."},"oauth":{"pageTitle":"CF - OAuth","brandAlt":"ContentFlow365","v2Preparing":"Preparing authorization…","v2NoAccounts":"You have no available accounts to authorize.","v2AllBrands":"This application may use every brand in this account, including future brands.","v2AccountsLabel":"Companies this connection may access","v2AllAccounts":"All my companies","v2AllAccountsHelp":"Includes your {count} current companies. A company you create later is not added automatically: you will need to connect again.","v2AccountsHelp":"Choose one, several or all. With several, each request says which company it acts on and the answer names it.","v2ChildOf":"subsidiary of {parent}","v2Allow":"Authorize","invalidRequestTitle":"Invalid authorisation request","missingParameter":"The {parameter} parameter is missing.","unknownAppTitle":"Unknown application","unknownAppMessage":"The application requesting access is not registered with ContentFlow365.","invalidRedirectTitle":"Invalid redirect URL","invalidRedirectMessage":"The redirect URL does not match this application's registered URLs.","scopeRecoveryExplanation":"This connection can request only the permissions already registered for this application. Other capabilities will remain unavailable. Nothing has been authorized.","scopeRecoveryRejected":"Permissions that cannot be included","scopeRecoveryRetained":"Permissions available for this request","scopeRecoveryContinue":"Continue with these permissions","scopeRecoveryConsent":"Next you will review the normal consent screen. Continuing does not authorize access or change the application’s registered permissions.","noPermissionsTitle":"Incompatible permission request","noPermissionsMessage":"The request includes permissions that are not available to this application. Review the connector configuration before reconnecting.","errorHelp":"If an external application sent you here, go back and try again. Contact support if the problem continues.","eyebrow":"Allow external access","connectRequest":"wants to connect to your ContentFlow365 account","returnsTo":"After authorizing you return to {host}.","nameUnverified":"The application provides this name itself; ContentFlow365 has not verified it.","requestedPermissions":"Requested permissions","creditsTitle":"Credit notice.","creditsBody":"Operations started by this application use credits at the same rate as actions on the web. You can revoke access under Settings → Connected applications.","trustPassword":"ContentFlow365 never shares your password with this application.","trustToken":"It only receives a token with the permissions you approve.","accountLabel":"ContentFlow365 account","whereToFind":"Where can I find it?","accountHelp":"Copy your account identifier from Settings, in the chip next to the account name.","accountLoading":"Loading your accounts…","accountChoose":"Choose an account","accountLoadError":"We couldn't load your accounts. Enter your account ID from Settings to continue.","accountChooseFromList":"Choose from my accounts","accountEnterId":"Enter an account ID instead","accountRequired":"Choose an account to allow access.","accountInvalid":"Enter a valid account ID from Settings.","deny":"Deny","allow":"Allow {clientName}","allowing":"Allowing…","redirectNotice":"You will be redirected to {host}.","authorizingAs":"You are authorising as {email}.","scopes":{"brandRead":"Read your brands, voice profiles and settings.","brandWrite":"Create brands and update voice settings.","accountRead":"View the child companies of your holding or agency.","accountManage":"Create child companies under your holding or agency. A current administrator role is required.","contentCreate":"Create reels, videos, carousels and copy on your behalf; this uses credits.","contentPublish":"Publish or schedule content on your connected social accounts.","metricsRead":"Read analytics, post metrics and account dashboards.","editorRead":"Read Editor Pro 2 projects, reviews, assets and operations.","editorPropose":"Create, validate and preview proposals without changing the active edit.","editorApply":"Apply a proposal you explicitly accepted with a single-use token.","editorRender":"Estimate, start and cancel Editor Pro 2 review renders.","editorPublish":"Publish approved Editor Pro 2 renders to selected destinations.","supportRead":"Read internal support tickets, messages and delivery status.","supportWrite":"Create support tickets and send email replies.","communityRead":"Read community content and conversations available to you.","communityWrite":"Create content and participate in community conversations on your behalf.","communityModerate":"Moderate community content and members within your permissions.","adminAll":"Full access to your account. Use only with trusted administration tools."}}},"profilePage":{"title":"My profile","subtitle":"Personal settings and display preferences","imageTitle":"Profile image","avatarAlt":"Profile image","changeImage":"Change profile image","imageUpdated":"Image updated","uploadError":"Image upload failed","uploading":"Uploading…","dropPrompt":"Drop an image here or click to choose one","formats":"JPG, PNG, WebP or GIF · Maximum 5 MB · Crop and adjust before saving","adjustImage":"Adjust image","closeCrop":"Close image editor","zoom":"Image zoom","cancel":"Cancel","save":"Save","personalInfo":"Personal information","name":"Name","email":"Email","role":"Role","roleAdmin":"Administrator","roleUser":"User","roleEditor":"Editor","roleSupport":"Support","roleOwner":"Owner","roleUnknown":"Member","memberSince":"Member since","appearance":"Appearance","appearanceDescription":"Choose the interface theme","themeLight":"Light","themeDark":"Dark","themeSystem":"System","accounts":"Accounts"},"emailUnsubscribe":{"pageTitle":"Email preferences","successTitle":"You have unsubscribed ✅","invalidTitle":"Invalid link","successBody":"You will no longer receive marketing emails. You will still receive important security, billing and renewal notices.","invalidBody":"We could not process this request using that link. Email soporte@contentflow365.com if you need help.","confirmTitle":"Unsubscribe?","confirmBody":"Confirm and you will stop receiving emails from this list.","confirmButton":"Confirm unsubscribe","sequenceSuccessBody":"You will no longer receive emails from this list."},"angulos":{"copyFailedToast":"The copy for “{headline}” could not be generated","copyNotAdaptedBadge":"Not adapted","copyReviewBadge":"Review details","copyNotAdaptedToast":"“{headline}”: the reference could not be adapted","copyNotAdaptedBody":"This reference ad could not be adapted to your offer without copying its details{claims}. This copy was not charged. Try another reference.","copyReviewToast":"“{headline}”: review these details before using the copy","copyReviewBody":"This script still includes details from the reference ad that are not in your offer: {claims}. Review them before using it in a video.","chooseOtherReference":"Choose another reference","savedAdCopy":"Saved ad copy","spokenCopyMissingWithAdCopy":"Ad copy is saved, but the spoken copy in ElevenLabs Text is missing. Review the ad below and enter only what the voice will say in the spoken copy field, without headlines or shooting directions.","title":"Angle Selection","subtitle":"Scripting angles for campaigns","searchPlaceholder":"Search Angles...","loadingAngles":"Loading angles...","noAngles":"No angles.","noResults":"No results found.","noRecords":"No records","generateAngles":"Generate Angles","selectCampaign":"Select Campaign","selectCampaignLabel":"Select campaign:","confirmClickExecute":"Confirm — Click to execute","anglesLaunched":"Angles launched","waitingAngles":"Waiting for angles...","generatingAngles":"Generating angles...","autoResetWarning":"Will reset in 5s if you don't confirm","selectedCount":"{count, plural, one {# selected} other {# selected}}","selectAll":"Select all","deleteRecordsTitle":"Delete records","deleteCannotUndo":"This action cannot be undone","deleteConfirmMessage":"Are you sure you want to delete {count} record{count, plural, one {} other {s}}?","createScriptCopy":"Create Script / Copy","confirmGeneration":"Confirm generation","scriptInGeneration":"Script generating!","moveToProduction":"Move to Production","confirmCreation":"Confirm creation","videoCreated":"Video created!","videoCreatedName":"Video #{name} created","openReelStudio":"Open Reel Studio","openDuplicateAngle":"Open duplicated angle","duplicatedCorrectly":"Duplicated successfully","duplicateAngle":"Duplicate Angle","duplicateAngleDesc":"Modify the parameters for the new variant","sectionActions":"Actions","sectionEngineIA":"AI Engine","sectionConfig":"Configuration","sectionStatus":"Status & Classification","sectionCTA":"CTA","sectionInspiration":"Based on","sectionScript":"Script","sectionAngle":"Angle","sectionInfo":"Information","generationEngine":"Generation Engine","noEngineAssigned":"Not assigned","noEngine":"No Engine","noSelection":"No selection","scriptDuration":"Script Duration","favorite":"Favorite","writeFeedbackPlaceholder":"Write your feedback...","writeHerePlaceholder":"Write here...","scriptTextPlaceholder":"Script text...","scriptNotesPlaceholder":"Notes about the script...","inspirationDesc":"Enable and choose a Reel / Ad from Inspiration Ideas so the ad is based on that selected content.","basedOnOther":"Based on Another","words":"words","estimatedDuration":"Estimated duration","scriptReady":"Script ready!","scriptCompleted":"Script Completed","duplicateAngleTitle":"Duplicate angle","duplicating":"Duplicating...","newAngle":"New angle","loadingIdea":"Loading idea...","couldNotLoadIdea":"Could not load the idea","metaAdsInfo":"AI AD Information","metaDetailsTitle":"Meta AD Details","startDate":"Start date","endDate":"End date","sceneDescription":"Scene Description","nVideo":"Video No.","campaigns":"Campaigns","perPage":"/ page","sending":"Sending...","errorClickRetry":"Error — click to retry","active":"Active","noStatus":"No status","searchDropdown":"Search...","engineIALabel":"AI Engine","duplicateAngleTooltip":"Duplicate angle","favorita":"Favorite","hookViralUsed":"Hook Viral Used","feedbackLabel":"Feedback","scriptLabel":"Script","notesLabel":"Notes","angleLabel":"Angle","campaignLabel":"Campaign","videosLabel":"Videos","metaAdsTitle":"Meta ADs & Reels","clickToExecute":"Click to execute","paramTipoAngulo":"Angle Type","paramNivelFunnel":"Funnel Level","paramZonaFunnel":"Funnel Zone","paramTipoProduccion":"Production Type","paramTipoGancho":"Hook Type","paramEstructuraNarrativa":"Narrative Structure","paramHookViral":"Viral Hook","newBadge":"New","fav":"Fav","favorites":"Favorites","archiveQuestion":"Sure?","quickReelButton":"A single angle with copy","quickReelCost":"{credits} cr","quickReelHint":"The best angle of a run with its copy, to make a quick Reel without choosing among many.","quickReelRunning":"Creating your angle and its copy...","quickReelReady":"Your angle and its copy are ready. You can create the Reel from here.","quickReelNotDone":"The copy could not be finished. Check the angle or try another reference.","quickReelStillRunning":"It is still running. It will appear in the list when it finishes.","configuring":"Configuring...","configureGeneration":"Configure Angle Generation","configureGenerationDesc":"Set parameters before generating angles","anglesTypeLabel":"Type of Angles to Generate","funnelLevelLabel":"Funnel Level","funnelZoneLabel":"Funnel Zone","genFeedbackPlaceholder":"Specific instructions for the AI...","genFeedbackHint":"Optional: indicate preferences or restrictions for generation","expandAngle":"Full angle info","collapse":"Collapse","styledEngines":"Styled engines","engineDescriptions":{"engineOriginalPipeline":"Original pipeline","engineAgencyStyle":"Agency style","engineRawStorytelling":"Raw storytelling","engineValueFirstHooks":"Value-first hooks","engineDataAuthority":"Data + authority","engineInsightProof":"Insight + proof","engineOpenLoops":"Open loops","engineDirectResponse":"AIDA / PAS / BAB"},"customOption":"Custom option","scriptLengthLabel":"Script length","manageCtas":"Manage CTAs","loadingIdeas":"Loading ideas...","browseMoreIdeas":"Browse more ideas","browseInspirationIdeas":"Browse inspiration ideas","removeIdea":"Remove idea","openIdea":"Open idea","desiresLabel":"Desires","insufficientCredits":"Insufficient credits","copyRequiredForReel":"Complete the spoken copy in ElevenLabs Text before creating the Reel.","createReelAdvanced":"Create Reel (Advanced)","createReelWizard":"Create Reel (Wizard)","storedOptionLabels":{"optionStatusNoCopy":"Copy not created","optionStatusGeneratingCopy":"Generating copy","optionStatusCopyGenerated":"Copy generated","optionStatusInPublishMachine":"In publishing pipeline","optionStatusIdle":"Idle","optionStatusCopyError":"Copy generation error","optionStatusCopyCreated":"Copy created","optionStatusExperimentNew":"Try a new version","optionStatusInProduction":"In production","optionStatusPublished":"Published","optionStatusDiscarded":"Discarded","optionStatusPaused":"Paused","optionLength15Seconds":"15 sec. (45 words)","optionLength30Seconds":"0–30 sec. (up to 90 words)","optionLength45Seconds":"45 sec. (135 words)","optionLength1Minute":"1 min. (180 words)","optionLength75Seconds":"1 min. 15 sec. (225 words)","optionLength90Seconds":"1 min. 30 sec. (270 words)","optionLength105Seconds":"1 min. 45 sec. (315 words)","optionLength2Minutes":"2 min. (360 words)","optionLengthOver2Minutes":"More than 2 min. (360–480 words)","optionTalkToCamera":"1. Talk to camera","optionAutomaticModeAi":"0. Automatic mode (AI)","optionAutomaticMode":"Automatic mode","optionPersonalStory":"A. Personal story","optionBigPromiseSecret":"A. The Big Promise / The Secret","optionBeliefChallenge":"A. Pattern Interrupt (Belief Challenge)","optionCaseStudy":"B. Case study","optionCurrentMarketCaseStudy":"B. Case study (Current Market Analysis)","optionMetaphor":"C. Metaphor","optionThoughtExperiment":"D. Thought experiment","optionNewPerspective":"E. New perspective","optionIfThenHook":"F. 'If... then...' hook (Direct qualification)","optionSubscriberQuestion":"F. Subscriber question","optionImminentDangerHook":"'Imminent Danger / Costly Error' hook","optionResultHook":"H. Result hook","optionContrarianHook":"I. Contrarian hook","optionExplainerHook":"J. Explainer hook","optionMythBusting":"K. Myth-busting","optionCommonMistake":"L. Common mistake ('Stop Doing This')","optionExpressTutorial":"M. Express tutorial (3 steps / 60 sec.)","optionUrgentPrediction":"N. Urgent prediction","optionRealTimeChallenge":"O. Real-time challenge","optionExpertReaction":"P. Expert reaction","optionBackstage":"Q. Backstage / Day in the Life","optionNumericImpactSubtitle":"R. Numeric-impact subtitle","optionTopStory":"S. YouTube: Cover a top story","optionStepByStepTutorial":"U. YouTube: Step-by-step tutorial","optionWorstWayHook":"2. 'Worst Way' hook","optionCounterintuitiveStatement":"10. Counterintuitive statement","optionCounterintuitivePattern":"Counterintuitive statement (Pattern Interrupt)","optionEverydayAnalogy":"Everyday analogy (iPhone / sales)","optionHypotheticalScenario":"Hypothetical scenario (Reframing)","optionBreakInvoicePattern":"Pattern Interrupt (Tear up an invoice)","optionPainFearQuestion":"Pain / fear identification question","optionProvocativeQuestion":"Provocative question (Pattern Interrupt)","optionRhetoricalScenario":"Rhetorical hypothetical-scenario question","optionSecretReveal":"Secret reveal","optionYourStyle":"Your style","optionLongSentences":"Long sentences","optionMediumSentences":"Medium-length sentences","optionUltraShort":"Ultra short","optionAllFunnelLevels":"All three (TOFU, MOFU and BOFU)","optionOrganicFunnelLevels":"Organic funnel (L0, L1, L2)","optionLongFormToReels":"Long form to Reels","optionOrganicFunnel":"Organic funnel","optionRegistrationInvite":"Registration invitation","optionReplayReminder":"Replay reminder","optionCall":"Call"}},"videoTrim":{"editorTitle":"Video trim player","trimmed":"Trimmed","result":"Result","in":"In","out":"Out","playPause":"Play or pause (Space)","loopTrimmed":"Loop trimmed video (L)","loopIndicator":"Loop","speed":"Playback speed (J/K)","mute":"Mute or unmute (M)","volume":"Volume","timelineScale":"Timeline scale","timelineZoom":"Timeline ×{scale}","zoomOut":"Make the timeline shorter","resetScale":"Reset timeline scale","zoomIn":"Make the timeline wider","fullscreen":"Full screen","captureFrame":"Save current frame","copyTimecodes":"Copy trim timecodes","clipboardTimecodes":"In: {start} | Out: {end} | Result: {result} ({seconds}s)","trimStartHandle":"Drag to trim the start","trimEndHandle":"Drag to trim the end","saving":"Saving trim","saved":"Trim saved","shortcutFrame":"← → Frame","shortcutSecond":"Shift+← → 1s","shortcutTrim":"I/O Trim","shortcutPlay":"Space Play","shortcutLoop":"L Loop","shortcutSpeed":"J/K Speed","shortcutMute":"M Mute"},"ideas":{"searchPlaceholder":"Search ideas...","favorite":"Favorite","unfavorite":"Not favorite","createTranscript":"Create Transcript","generatingTranscript":"Generating...","transcriptStarted":"Transcript + Summary started in n8n","unknownError":"Unknown error","mainInfo":"Main Information","tipoIdea":"Idea Type","urlSource":"Source URL","videoStructure":"Video Structure","researchResumen":"Summary","notasIA":"AI Notes","allSources":"All Sources","reset":"Reset","untitledIdea":"Untitled Idea","source":"Source","today":"Today","yesterday":"Yesterday","daysAgo":"{count}d ago","weeksAgo":"{count}w ago","monthsAgo":"{count}mo ago","filterVideoYoutube":"YouTube Video","filterUrl":"URL","filterReelInstagram":"Instagram Reel","filterPostInstagram":"Instagram Post","filterAdMeta":"Meta Ad","filterPostMeta":"Meta Post","filterPostX":"X Post","filterTikTokVideo":"TikTok Video","filterXVideo":"X Video","filterPostLinkedIn":"LinkedIn Post","filterManual":"Manual","editMode":"Edit","deleteSelected":"Delete","duplicateSelected":"Duplicate","confirmDeleteTitle":"Delete ideas","confirmDeleteMessage":"{count} selected ideas will be deleted. This action cannot be undone.","confirmDelete":"Delete","cancel":"Cancel","selected":"{count} selected","gallery":"Gallery","list":"List","calendarView":"Calendar","channel":"Channel","type":"Type","titleColumn":"Title","scoreColumn":"Score","statusTranscript":"Transcript Status","dateColumn":"Date","shortLong":"Short/Long","status":"Status","priorityLevel":"Priority Level","created":"Created","youtubeInfo":"YouTube Info","duration":"Duration","views":"Views","comments":"Comments","subs":"Subscribers","summary":"Summary","description":"Description","transcript":"Transcript","evaluation":"Evaluation","score":"Score","trimmed":"Trimmed","result":"Result","shortcutFrame":"← → Frame","shortcutSecond":"Shift+← → 1s","shortcutTrim":"I/O Trim","shortcutPlay":"Space Play","shortcutLoop":"L Loop","shortcutSpeed":"J/K Speed","shortcutMute":"M Mute","createIdea":"Create Idea","createIdeaDescription":"Enter the YouTube URL and optionally paste the video transcript.","youtubeUrl":"YouTube URL","transcriptLabel":"Transcript","transcriptPlaceholder":"Paste the video transcript here if you have it...","creatingIdea":"Creating idea...","ideaCreatedSuccess":"Idea created successfully","viewCreatedIdea":"View created idea"},"thumbnails":{"thumbnail":"Thumbnail","createNew":"Create New Thumbnail","configureAndGenerate":"Configure options and generate a thumbnail from scratch","feedbackDescription":"Feedback / Description","feedbackPlaceholder":"Describe what you want in the thumbnail... (auto-filled when analyzing an image)","ponePersona":"Include Person","variations":"Variations","expression":"Expression","createThumbnail":"Create Thumbnail","confirmCreation":"Confirm creation — Click to execute","creatingRecord":"Creating record...","sendingToN8n":"Sending to n8n...","sentAutoUpdate":"Sent — will update automatically","favorite":"Favorite","archived":"Archived","fav":"Fav","removeFavorite":"Remove favorite","markFavorite":"Mark as favorite","removePortada":"Remove Cover {letter}","portada":"Cover","portadaLetter":"Cover {letter}","unarchive":"Unarchive","clickToConfirm":"Click to confirm","archiveQuestion":"Archive?","noImage":"No image","saveChanges":"Save changes","thumbnailTips":"Thumbnail tips","tipSimplicity":"Keep it simple, cinematic, with very little text.","tipPersonName":"For known personalities: include the <strong>person's name</strong> in the thumbnail.","titleLabel":"Title","titlePlaceholder":"Thumbnail title...","descriptionLabel":"Description","descriptionPlaceholder":"Thumbnail description...","feedbackLabel":"Feedback","feedbackImprovePlaceholder":"Write feedback to improve the thumbnail...","generatingVariations":"Generating variations...","sentToN8nAutoUpdate":"Sent to n8n — will update automatically","createNewVariations":"Create New Variations","errorCreatingVariations":"Error creating variations","selectedCount":"{count} selected","tipoCreativity":"Creativity Type","format":"Format","prompt":"Prompt","tabThumbnails":"Thumbnails","tabFavorites":"Favorites","tabCoversAndTitles":"Covers & Titles","tabPinnedComment":"Pinned Comment","noVideoSelected":"No video selected","selectVideoFromList":"Select a video from the Videos list","updating":"Updating...","noThumbnailsForVideo":"No thumbnails for this video","thumbnailsGeneratedDuringCopy":"Thumbnails are generated during the Copy phase","noFavorites":"No favorites","markFavoritesFromDetail":"Mark thumbnails as favorites from the detail view","youtubeCoversVideo":"YouTube Covers (Video)","coverAlt":"Cover {letter}","youtubeCoverFallback":"YouTube Cover {letter}","imageLoaded":"Image loaded","thumbnailsMarkedAsCover":"Thumbnails marked as Cover ({count})","noThumbnailMarkedAsCover":"No thumbnail marked as cover","youtubeTitles":"YouTube Titles","youtubeTitlePlaceholder":"YouTube Title {letter}...","multipleTitleVariations":"Multiple Title Variations","additionalTitleVariationsPlaceholder":"Additional title variations...","saveTitles":"Save titles","referenceImage":"Reference image","dragImageOrClick":"Drag an image or click","pasteWithCtrlV":"You can also paste with Ctrl+V","analyzingImage":"Analyzing image...","analyzeWithAi":"Analyze with AI","personaLabel":"Person"},"onboarding":{"voiceDnaTitle":"Your Voice (VoiceDNA)","voiceDnaDesc":"Define your brand's communication style. You can automatically analyze your style from a URL or fill in the fields manually.","analysisComplete":"Analysis complete. Review and adjust the fields below.","styleName":"Style name","styleLabel":"Style","styleNameDesc":"A descriptive name for this voice profile.","styleNamePlaceholder":"E.g.: David Style - Approachable Professional","toneLabel":"Tone","tone":{"professional":"Professional","casual":"Casual","inspirational":"Inspirational","educational":"Educational","motivational":"Motivational","friendly":"Friendly","authoritative":"Authoritative"},"style":{"narrative":"Narrative","conversational":"Conversational","technical":"Technical","informative":"Informative","persuasive":"Persuasive","storytelling":"Storytelling"},"vocabularyLevel":"Vocabulary level","narrativePerspective":"Narrative perspective","generalType":"General type","customInstructions":"Custom AI instructions","customInstructionsDesc":"Specific instructions for AI to replicate your style when generating content.","customInstructionsPlaceholder":"E.g.: Use short, direct sentences. Include practical examples. Use informal tone. Avoid excessive jargon...","back":"Back","personaTitle":"Your Persona","personaDesc":"Define who will be the face of your content. This person will represent your brand in videos.","personaName":"Person name","personaNameDesc":"Can be your real name or a brand name.","personaNamePlaceholder":"E.g.: David Aranzabal","descriptionLabel":"Description","descriptionDesc":"Briefly describe this person: their role, experience, or communication style.","descriptionPlaceholder":"E.g.: Digital marketing expert with 10 years of experience. Approachable and practical style...","gender":"Gender","genderMale":"Male","genderFemale":"Female","genderNonBinary":"Non-binary","audienceTitle":"Your Audience","audienceDesc":"Define who your videos are aimed at to personalize content and tone.","targetAudience":"Target audience","targetAudienceDesc":"Describe your ideal viewer profile.","targetAudiencePlaceholder":"E.g.: Digital entrepreneurs aged 25-45","mainProblem":"Main problem you solve","mainProblemDesc":"What pain or need does your content address.","mainProblemPlaceholder":"E.g.: They don't know how to create video content consistently and professionally...","brandTitle":"Your Brand","brandDesc":"Tell us about your company to personalize the content we'll create.","companyName":"Company name","companyNamePlaceholder":"My Company","industryLabel":"Industry","industry":{"marketingDigital":"Digital Marketing","ecommerce":"Ecommerce","saasTech":"SaaS / Technology","coachingTraining":"Coaching / Training","financeInvestments":"Finance / Investments","healthWellness":"Health / Wellness","realEstate":"Real Estate","creativeAgency":"Creative Agency","consulting":"Consulting","other":"Other"},"selectIndustry":"Select an industry","selectBusinessType":"Select a business type","fieldBusinessType":"Business type","businessType":{"ecommerce":"E-commerce","saas":"SaaS","consulting":"Consulting","coaching":"Coaching","localBusiness":"Local Business","agency":"Agency","other":"Other"},"mainProduct":"Main product or service","mainProductDesc":"Briefly describe what you offer your clients.","mainProductPlaceholder":"E.g.: Online digital marketing course for entrepreneurs...","selectOption":"Select","saving":"Saving...","next":"Next","configTitle":"Summary","configDesc":"Review that all steps are completed before continuing.","stepLabel":{"brand":"Brand","persona":"Persona","voicedna":"VoiceDNA","audiencia":"Audience"},"completed":"Completed","configIncomplete":"Complete all previous steps to finish the configuration.","finalizing":"Finalizing...","completeConfig":"Complete configuration","voiceAnalyzerTitle":"Automatic AI analysis","voiceAnalyzerDesc":"Paste a YouTube URL or a blog article and we'll automatically analyze your communication style.","voiceAnalyzerPlaceholder":"https://youtube.com/watch?v=... or https://yourblog.com/article","voiceAnalyzing":"Analyzing...","voiceAnalyzeButton":"Analyze","vocab":{"basic":"Basic","intermediate":"Intermediate","advanced":"Advanced","technicalVocab":"Technical"},"perspective":{"firstPerson":"First person (I)","secondPerson":"Second person (you)","thirdPerson":"Third person"},"type":{"expert":"Expert","mentor":"Mentor","friend":"Friend","reporter":"Reporter","influencer":"Influencer","teacher":"Teacher"},"wizardBrand":"Your Brand","wizardPersona":"Your Persona","wizardQuickWin":"Quick Win","wizardVoice":"Your Voice","wizardAudience":"Your Audience","wizardFinish":"Finish"},"marketingStrategy":{"loadingTable":"Loading {tableName}...","noDataYet":"No {tableName} data yet.","noDataYetWithCreate":"No {tableName} data yet. Create a new one or use 'Analyze Web' to auto-fill.","noDataYetWithAnalyze":"No {tableName} data yet. Use 'Analyze Web' to auto-detect.","autoGeneratedOnComplete":"Will be auto-generated by AI when you complete the onboarding.","createTable":"Create {tableName}","viewTable":"View {tableName} table","noName":"No name","visualIdentityRegistered":"Visual identity registered. See full details in the table.","analyzingWebsite":"Analyzing website","analyzingWebsiteDetail":"Extracting colors, links, testimonials, text...","researchingIndustry":"Researching industry","researchingIndustryDetail":"Analyzing competition and market trends...","generatingStrategy":"Generating strategy","generatingStrategyDetail":"Claude analyzes everything and fills ~35 fields...","savingData":"Saving data","savingDataDetail":"Saving to Social Profiles, Audience, Strategy...","analysisComplete":"Analysis complete","analysisError":"Analysis error","analyzing":"Analyzing...","completed":"Completed","estimatedTimeRemaining":"Estimated time remaining: ~{minutes} min","selectOption":"Select an option...","autoFieldsCount":"{count} fields auto-filled","autoFieldsDesc":"From website and AI research. Review and adjust as needed.","reAnalyze":"Re-analyze","confirmAnalyze":"Confirm analysis","analyzeWithAI":"Analyze with AI","analyzeWithAIDesc":"Enter your URL and AI will analyze your website, competition, and industry to auto-fill ~30 form fields (business, ICP, competitors, social media, colors, testimonials).","analyzeWithAITooltip":"If you have a website, this step greatly accelerates your onboarding. We extract real data from your site (text, colors, social links, testimonials) and enrich it with AI research about your industry and competition. This saves up to 80% of manual work.","autoFillError":"Auto-fill error: {error}. Fields can be filled manually.","magicPreviewTitle":"Discovering your business...","magicPreviewComplete":"Analysis complete","magicPreviewFieldsFound":"fields detected","magicPreviewSearching":"Searching...","magicPreviewNoData":"Not detected","magicPreviewMore":"more","magicPreviewBrand":"Brand & Business","magicPreviewColors":"Brand Colors","magicPreviewAudience":"Audience & ICP","magicPreviewSocial":"Competition & Positioning","magicPreviewHighConf":"high confidence","magicPreviewMedConf":"medium confidence","magicPreviewSourceWeb":"Web","magicPreviewSourceAI":"AI","magicPreviewSourceInferred":"Inferred","chatModeTitle":"Conversation Mode","chatModeProgress":"Question {current} of {total}","chatModeComplete":"All questions answered","chatSwitchToForm":"Form View","chatSwitchToChat":"Chat Mode","chatGreeting":"Hi! I'm your onboarding assistant. I'll ask you a few quick questions to set up your content strategy. Let's get started!","chatAcknowledge":"Got it! Next question...","chatComplete":"Great! You've completed all the key questions. You can now review and complete the details in the form, or proceed with what we have.","chatAllAnswered":"All questions answered","chatGoToForm":"View form","chatSkip":"Skip","chatSkipped":"(Skipped)","chatQBusinessName":"What's the name of your business or brand?","chatQMainOffer":"What's your main product or service? Briefly describe what you offer and who you help.","chatQWebsite":"Do you have a website? If so, share the URL and I'll analyze it automatically.","chatQAudience":"Who is your ideal customer? Describe their age, location, profession, or any relevant details.","chatQProblems":"What are the main problems or frustrations your ideal customer faces?","chatQGoals":"What does your ideal customer want to achieve? What are their goals and aspirations?","chatQCompetitor":"Who is your main competitor? Share their name and website if you know it (e.g., 'Competitor - https://example.com').","chatQUnique":"What makes you different from the competition? What's your unique method or approach?","chatQPricing":"What's your pricing model? Describe your rates, packages, or how you charge.","chatQDifferentiation":"What's your positioning statement? In other words, why should a customer choose you?","chatQBeliefWrong":"What do you think most of your industry does WRONG? What misguided approach do you see in your competitors?","chatPlaceholderBusinessName":"E.g., My Company LLC","chatPlaceholderMainOffer":"E.g., We offer business coaching for entrepreneurs...","chatPlaceholderWebsite":"https://www.mycompany.com","chatPlaceholderAudience":"E.g., Entrepreneurs aged 30-50, in the US...","chatPlaceholderProblems":"E.g., They don't have time, don't know how to scale...","chatPlaceholderGoals":"E.g., Earn more revenue, have more free time...","chatPlaceholderCompetitor":"Name - https://competitor.com","chatPlaceholderUnique":"E.g., Our patented 3-step method...","chatPlaceholderPricing":"E.g., Basic package $99/mo, premium $299/mo...","chatPlaceholderDifferentiation":"E.g., We're the only ones who guarantee results...","chatPlaceholderBeliefWrong":"E.g., Most focus on volume, not quality...","phase":"Phase {number}","tipExample":"Example:","tipBusinessName":"The name your audience knows you by. It can be your brand name or personal name if you're a content creator.","tipExBusinessName":"\"ContentFlow365\", \"Maria Garcia Coaching\", \"Lopez Real Estate\"","tipMainOffer":"Describe what you sell, to whom, and what result they get. Be specific — AI will use this to generate all your content.","tipExMainOffer":"\"I help digital entrepreneurs create automated content systems that generate leads 24/7 without recording a single video\"","tipDemographics":"Who is your ideal customer? Think about age, gender, location, profession, income level, family status.","tipExDemographics":"\"Digital entrepreneurs, 28-45 years old, US/UK, making $3K-$15K/month, want to scale but don't have a team\"","tipProblems":"What keeps them up at night? What frustrations do they have? What have they tried without success?","tipExProblems":"\"They don't have time to create content, post without strategy, can't convert followers into customers\"","tipGoals":"What do they want to achieve? What would their ideal life/business look like?","tipExGoals":"\"Earn $10K/month predictably, have social media presence without working 8 hours daily on content\"","tipFears":"What scares them? What holds them back from taking action?","tipExFears":"\"Investing money without seeing results, exposing themselves publicly, AI sounding robotic\"","tipPricing":"How much do you charge? Describe your packages, plans, or rates. Include prices if possible.","tipExPricing":"\"Starter Plan $97/mo (5 videos), Pro Plan $297/mo (20 videos + strategy), Enterprise custom\"","tipUnique":"What do you do differently that nobody else does? What's your \"secret sauce\"?","tipExUnique":"\"Our ContentLoop™ system analyzes your audience, generates content in your voice, and optimizes based on real data\"","tipObjections":"What do customers say before buying? What excuses do they make?","tipExObjections":"\"It's too expensive\", \"I've tried other tools\", \"I don't think AI can sound like me\"","tipDifferentiation":"Why should they choose YOU over the competition? Summarize in one powerful statement.","tipExDifferentiation":"\"We're the only platform combining AI + content strategy + automatic publishing in one place\"","tipBeliefWrong":"What do you think your industry fundamentally does WRONG? What misguided approach do you see?","tipExBeliefWrong":"\"Most marketing agencies sell long-term results without any guarantees or transparency\"","achvFirstField":"First step!","achvFirstFieldDesc":"You completed your first field","achvIdentity":"Identity defined","achvIdentityDesc":"Your brand has a name, industry, and offer","achvAIBoost":"AI Boost","achvAIBoostDesc":"AI filled 5+ fields for you","achvAudience":"Audience expert","achvAudienceDesc":"You know your ideal customer inside out","achvHalfway":"Halfway there","achvHalfwayDesc":"You've completed more than half the form","achvStrategist":"Strategist","achvStrategistDesc":"Your positioning and differentiation are ready","scoreIdentity":"Brand Identity","scoreAudience":"Audience & ICP","scoreCompetition":"Competition & Offer","scoreStrategy":"Strategy & Authority","scoreSocial":"Profile & Contact","scoreExcellent":"Excellent","scoreGood":"Good","scoreFair":"In progress","scoreNeedsWork":"Needs attention","scoreDesc":"Your readiness to generate AI content","scoreImprove":"Improve","scoreSuggestions":"Suggestions to improve","scoreComplete":"Complete","roleSelectTitle":"What best describes you?","roleSelectDesc":"This helps us personalize your onboarding and prioritize the most relevant questions for you.","roleSelectSkip":"Skip and start directly","roleEntrepreneur":"Entrepreneur / Founder","roleEntrepreneurDesc":"You have your own product or service and want to scale with content.","roleAgency":"Agency / Freelancer","roleAgencyDesc":"You manage content and marketing for multiple clients.","roleCreator":"Content Creator","roleCreatorDesc":"Your personal brand is your business. You live off your audience.","roleLocalBusiness":"Local Business","roleLocalBusinessDesc":"You have a physical business and want to attract local customers.","phaseOf":"Phase {current} of {total}","previous":"Previous","completeStrategy":"Complete Strategy","summaryTab":"Summary","summaryTabDesc":"Your AI-generated resources","sourceLabel":"Source: {source} · Confidence: {confidence}","saving":"Saving...","next":"Next","notDetected":"Not detected","phaseBusinessIdentityTitle":"Business & Identity","phaseBusinessIdentityDesc":"Your business, visual identity and social presence","phaseAudienceVoiceTitle":"Audience & Voice","phaseAudienceVoiceDesc":"Your ideal client, persona and communication style","phaseCompetitionOfferTitle":"Competition & Offer","phaseCompetitionOfferDesc":"Competitor analysis and offer development","phaseStrategyAuthorityTitle":"Strategy & Authority","phaseStrategyAuthorityDesc":"Positioning, social proof and credibility","sectionContact":"Contact","sectionBusiness":"Business","sectionMainOffer":"Main Offer","sectionVisualIdentity":"Visual Identity","sectionSocialMedia":"Social Media","sectionICP":"Ideal Customer Profile (ICP)","sectionPersona":"Persona","sectionCompetitor":"Competitor #{number}","sectionCompetitors":"Competitors","competitorNumber":"Competitor {number}","competitorSearchPlaceholder":"Search by business name...","competitorEnriching":"Discovering profiles and social media...","competitorEnriched":"Profiles found","competitorSearchInfo":"Search competitors by name and we'll auto-fill their website and social media (up to {max})","competitorAddAnother":"Add another competitor","sectionReviewSites":"Review Sites","sectionOtherProducts":"Other Products/Services","sectionPricing":"Pricing","sectionUniqueMechanism":"Unique Mechanism","sectionObjections":"Objections","sectionOfferOptimization":"Offer Optimization","sectionMarketImprovements":"Market Improvements","sectionBenchmarks":"Benchmarks","sectionPositioning":"Positioning","sectionCoreBeliefs":"Core Beliefs","sectionBrandVoiceVideos":"Brand Voice Reference Videos","sectionAdditionalClaims":"Additional Claims","sectionSocialProof":"Social Proof #{number}","sectionTestimonial":"Testimonial #{number}","sectionCaseStudy":"Case Study #{number}","sectionAuthorityCredibility":"Authority & Credibility","fieldName":"Name","fieldEmail":"Email","fieldBusinessName":"Business name","fieldIndustry":"Industry","fieldBusinessType":"Business type","fieldWebsiteUrl":"Website URL","fieldMainOfferDesc":"Description of your main offer/product/service","fieldDemographics":"Demographics","fieldProblemsAndPains":"Problems & Pains","fieldGoalsAndDesires":"Goals & Desires","fieldFears":"Fears","fieldMainFunnel":"Main funnel","fieldReviewUrl":"Review URL #{number}","fieldOtherProducts":"Other products or services you sell","fieldPricingModel":"Pricing model","fieldUniqueMechanism":"What makes your approach different?","fieldCustomerObjections":"Typical customer objections","fieldOfferOptimization":"How can you make your offer more attractive?","fieldMarketImprovements":"What changes would your audience value most?","fieldTargetAnnualRevenue":"Target annual revenue","fieldDeliveryCostPct":"Delivery cost (% revenue)","fieldSalesCommissionPct":"Sales commission (%)","fieldCloseRatePct":"Close rate (%)","fieldMonthlyAdBudget":"Monthly ad budget","fieldDifferentiationStatement":"Differentiation statement","fieldBeliefIndustryWrong":"Most in my industry are wrong about...","fieldBeliefWorkShouldBe":"I believe [my type of work] should be...","fieldBeliefSuccessMeans":"Success really means...","fieldYouTubeVideo":"YouTube Video #{number}","fieldAdditionalClaims":"Additional claims or proof points","fieldDescription":"Description","fieldClientName":"Client name","fieldVideoUrlYouTube":"Video URL (YouTube)","fieldTranscription":"Transcription","fieldTransformation":"Transformation (before/after)","fieldProcess":"Process (what you did)","fieldTestimonialVideoUrl":"Testimonial Video URL","fieldVideoTranscript":"Video transcription","fieldAuthorityClaims":"Authority claims","placeholderContactName":"Main contact name","placeholderContactEmail":"email@company.com","placeholderBusinessName":"My Company Inc","placeholderMainOffer":"Include pricing, features, benefits and what makes it unique","placeholderDemographics":"Age, gender, location, income, education, occupation...","placeholderProblemsAndPains":"Main problems and frustrations of your ideal client...","placeholderGoalsAndDesires":"What does your ideal client want to achieve...","placeholderFears":"What scares them or creates objections...","placeholderCompetitorName":"Competitor name","placeholderOtherProducts":"Upsells, downsells, continuity products...","placeholderPricingModel":"Describe your pricing structure and payment terms...","placeholderUniqueMechanism":"Your main differentiator...","placeholderCustomerObjections":"List the most common objections...","placeholderOfferOptimization":"Ideas to reduce risk, facilitate the decision...","placeholderMarketImprovements":"Improvements based on market feedback...","placeholderDifferentiation":"My approach is different because...","placeholderAuthorityClaims":"Experience, qualifications, media mentions, notable results...","helperMainOffer":"Describe your main product or service in detail","helperDemographics":"Saved to your Audience table for reuse across the app","helperDifferentiation":"When a prospect asks 'How is your approach different?'","industry":{"marketingAdvertising":"Marketing & Advertising","healthWellness":"Health & Wellness","financeInvesting":"Finance & Investing","realEstate":"Real Estate","educationTraining":"Education & Training","technology":"Technology","ecommerce":"E-commerce","legal":"Legal","beautyFashion":"Beauty & Fashion","foodBeverage":"Food & Beverage","travelHospitality":"Travel & Hospitality","entertainment":"Entertainment","nonProfit":"Non-Profit","other":"Other"},"businessType":{"ecommerce":"E-commerce","saas":"SaaS","consulting":"Consulting","coaching":"Coaching","localBusiness":"Local Business","agency":"Agency","other":"Other"},"pageTitle":"Onboarding","pageDescription":"Complete this guide to set up your account. AI will analyze your website and market to pre-fill as many fields as possible.","loading":"Loading onboarding...","infoBanner":"This information is not final. You can edit it at any time. We just need to understand your business to configure the AI.","infoBannerShort":"This information is not final, you can edit it at any time.","infoBannerComplete":"Your strategy is already complete. You can keep adding information to any phase — the more detail, the better the AI results.","featureWebsiteAnalysis":"Website Analysis","featureWebsiteAnalysisDesc":"Automatically extracts colors, tone of voice, testimonials and success stories","featureAutoFill":"AI Auto-Fill","featureAutoFillDesc":"AI fills fields using market research and web analysis","featureICP":"ICP & Competition","featureICPDesc":"Define your ideal customer and analyze up to 5 competitors","featureActivation":"Auto Activation","featureActivationDesc":"When you complete the guide, AI automatically fills all your tables","startOnboarding":"Start Onboarding","phaseIdentity":"Identity","phaseAudience":"Audience","phaseCompetition":"Competition","phaseStrategy":"Strategy","phasesCompleted":"{completed} of {total} phases completed","allPhasesComplete":"You have completed the entire onboarding guide","researchTitle":"AI Deep Research","researchDescription":"Analyze your product, market and competition with Perplexity Deep Research using all onboarding information.","researchRunning":"Researching...","researchRunningDesc":"Perplexity is analyzing your business in depth. This may take 2-5 minutes.","researchCompleted":"Research completed","researchConfirm":"Confirm research?","researchRerun":"Re-run research","researchLaunch":"Launch product research","researchProductTitle":"Product & Market Research","researchCompetitorTitle":"Competitor Analysis","wizardAITitle":"AI Assistant","wizardAIWelcome":"Hi! I'm your AI assistant. I can help you with any questions about the form.","wizardAIPlaceholder":"Type your question...","wizardAIHelpGeneral":"What information do I need to complete?","wizardAIHelpBusiness":"Help me define my business","wizardAIHelpAudience":"How do I identify my ideal customer?","wizardAIHelpCompetitor":"How do I analyze my competition?","wizardAIHelpStrategy":"Help me with my differentiation strategy","inlineAIGenerate":"Generate AI suggestion","inlineAISuggestion":"AI Suggestion","inlineAIApply":"Apply","inlineAIRetry":"Regenerate","inlineAIDismiss":"Dismiss","qaTitle":"Next steps","qaCreateVideo":"Create a Reel","qaCreateVideoDesc":"Generate your first AI Reel using your strategy","qaCreateAngles":"Create angles (copy) for your Reels","qaCreateAnglesDesc":"Generate the hooks and copy you'll record with","qaEditPersona":"Edit persona","qaEditPersonaDesc":"Customize your virtual avatar and brand identity","qaVisualIdentity":"Visual identity","qaVisualIdentityDesc":"Review and adjust your brand colors and typography","copilotAddWebsite":"Add your website so AI can analyze your business and auto-fill fields","copilotCompleteICP":"Complete your ideal customer profile — it's key to generating relevant content","copilotAddCompetitor":"Add at least one competitor so AI can identify differentiation opportunities","copilotDifferentiation":"Define your unique positioning — this will make your content stand out","copilotAlmostDone":"Almost there! Just a few more fields to complete your strategy","strategyAgentTitle":"AI Strategy Agent","strategyAgentGenerate":"Generate personalized content strategy","strategyAgentLoading":"Analyzing your business and generating strategy...","strategyAgentError":"Could not generate strategy. Try again.","strategyAgentRegenerate":"Regenerate strategy","strategyPositioning":"Positioning","strategyPillars":"Content pillars","strategyWeeklyPlan":"Weekly plan","strategyQuickWins":"Quick wins"},"proposals":{"selectService":"Select at least one service.","proposalAccepted":"Proposal accepted","errorAccepting":"Error accepting the proposal.","connectionError":"Connection error. Please try again.","acceptProposal":"Accept Proposal","subscribeToPlan":"Subscribe to {plan} Plan","trialDays":"days free trial","goToCheckout":"Go to checkout","redirectToCheckout":"You will be redirected to the secure checkout page","offerTermsTitle":"Offer Terms","offerValidUntil":"Offer valid until {date}","offerLimitedTime":"Limited time offer","noCommitment":"No commitment — cancel anytime","satisfactionGuarantee":"If you don't like the AI resource generation, you can repeat it at no extra cost","summary":"Summary","interest":"Interest","urgency":"Urgency","sentiment":"Sentiment","sentimentPositive":"Positive","sentimentNegative":"Negative","sentimentNeutral":"Neutral","painPoints":"Pain Points","noPainPoints":"No pain points identified","objections":"Objections","noObjections":"No objections recorded","desires":"Desires","noDesires":"No desires identified","kpiGoals":"KPIs & Goals","noKpis":"No KPIs identified","nextSteps":"Next Steps","personalizedProposal":"Personalized proposal","hello":"Hello","preparedForYou":"Prepared for you","proposalExpiresOn":"This proposal expires on {date}","loadingStep1":"Connecting to your analysis...","loadingStep2":"Processing meeting data...","loadingStep3":"Generating personalized proposal...","loadingStep4":"Calculating optimal budget...","loadingStep5":"Ready! Preparing your experience...","preparingProposal":"Preparing the best proposal for {name}","tabMeetingBrief":"Meeting Brief","tabHowItWorks":"How it works","tabCustomProposal":"Custom Proposal","tabCustomProposalShort":"Proposal","queryAnalysis":"Analysis of your inquiry","objectives":"Goals","concerns":"Concerns","recommendedNextStep":"Recommended next step","contentPlan":"Your content plan","adjustQuantities":"Adjust the monthly quantities based on your needs","videoProduction":"Video Production","additionalServices":"Additional Services","howItWorksTitle":"How ContentFlow365 works","howItWorksSubtitle":"From idea to published video in minutes","stepAiAnalysis":"AI Analysis","stepAiAnalysisDesc":"Our AI analyzes your industry, competition and audience to create content that connects.","stepAutomatedCreation":"Automated Creation","stepAutomatedCreationDesc":"We generate scripts, voices, editing and graphics automatically with professional quality.","stepReviewApproval":"Review & Approval","stepReviewApprovalDesc":"Preview and approve each piece before publishing. You have full control.","stepMultiPlatform":"Multi-Platform Publishing","stepMultiPlatformDesc":"We publish simultaneously across all your networks with optimized formats for each one.","statMoreContent":"10x more content","statMoreContentDesc":"Produce 10 times more content than a traditional team","statLessTime":"80% less time","statLessTimeDesc":"Drastically reduce video production time","statPersonalized":"100% personalized","statPersonalizedDesc":"Each piece tailored to your brand, voice and audience","faqTitle":"Frequently Asked Questions","faqSubtitle":"Everything you need to know about ContentFlow365","questionsCount":"{count} questions","executiveSummaryTitle":"Executive Summary","executiveWithAnalysis":"{name}, after analyzing your situation, we have designed a solution that perfectly fits your needs.","executivePainRef":" We know that {pain} is an important challenge for you.","executiveGoalRef":" Your goal of {goal} is our priority.","executivePlanBelow":"Below we present the ideal plan for you.","executiveWithoutAnalysis":"{name}, we have prepared a personalized proposal to boost your digital presence with professional video content.","executiveWithoutAnalysisCompany":"{name}, we have prepared a personalized proposal to boost {company}'s digital presence with professional video content.","choosePlan":"Choose your Plan","recommended":"Recommended","perMonth":"month","creditsPerMonth":"credits/month","creditsPerEuro":"credits/EUR","keyBenefits":"Key Benefits","benefit10xTitle":"10x more content","benefit10xDesc":"Produce 10 times more video content than a traditional team, without sacrificing quality.","benefitAiTitle":"Cutting-edge AI","benefitAiDesc":"Voices, scripts and editing generated by the most advanced AI models on the market.","benefitMultiPlatformTitle":"Native multi-platform","benefitMultiPlatformDesc":"Each video is automatically optimized for Instagram, TikTok, YouTube, LinkedIn and more.","benefitRoiTitle":"Guaranteed quality with retry","benefitRoiDesc":"If you don't like the AI resource generation, you can repeat it at no extra cost.","creditCalculator":"Credit Calculator","creditCalculatorDesc":"Set up the amount of content you need per month","credits":"credits","yourSelection":"Your Selection","totalCredits":"Total Credits","creditUsage":"Credit usage","exceedsPlanWarning":"Your selection exceeds the credits of the {plan} plan. Consider a higher plan.","planLabel":"Plan {name}","singlePayment":"Single payment","bestPrice":"Best price","threeInstallments":"3 payments","sixInstallments":"6 payments","paymentMethod":"Payment method","subtotalPerMonth":"Monthly subtotal","discountPercent":"Discount ({percent}%)","totalPerMonth":"Monthly total","paymentsOf":"{count} payments of {amount}","creditsIncluded":"{credits} credits included","proposalExpired":"This proposal has expired","proposalExpiredDesc":"Contact us to generate an updated proposal.","proposalAcceptedDesc":"You have already accepted this proposal. We will be in touch soon.","noAnalysisAvailable":"No meeting analysis available for this proposal.","footerTagline":"AI Marketing & Video Platform"},"cartel":{"detail":{"detailsTitle":"Poster details","back":"Back","editWithAi":"Edit with AI","resize":"Resize","downloadImage":"Download image","publishPoster":"Publish this poster","publishSubtitle":"Ads · Organic posts · Scheduling","information":"Poster information","concept":"Concept","type":"Type","format":"Format","description":"Description","status":"Status","landing":"Landing page","url":"URL"},"title":"Poster","subtitle":"Event posters and ads","infoBanner":"Generates <themes>2, 4, or 8 posters</themes> per call. Those marked as <fav>Favorites</fav> and with status <status>\"Ready For Publishing\"</status> will be automatically uploaded to Meta Ads.","selectCampaign":"Select a campaign...","createTitle":"Create Poster / Ads","createSelectFirst":"Create Poster / Ads — Select a campaign","createWithCampaign":"Create Poster / Ads — {campaign}","confirmedBalance":"Available balance: {balance} credits. Cost: {credits} credits.","operationStatusUnavailable":"The status could not be checked. This same operation will be checked again; you do not need to repeat it.","operationDelivered":"Images delivered: {delivered} of {requested}.","operationPartial":"Delivery is partial. Available images have been preserved.","operationFailed":"The operation failed. See the actual credit movements below.","operationAccounting":"Credits charged: {charged}. Refunded: {refunded}. Balance at last check: {balance}.","operationUnknown":"unavailable","createConfirm":"Sure? — Click to generate {count} posters","creating":"Generating posters...","createDone":"Posters generating!","loadingPosters":"Loading posters...","noPosters":"No posters.","searchPlaceholder":"Search Posters...","resetFilters":"Reset filters","archiveConfirm":"Archive?","archived":"Archived","withLanding":"With landing page","readyForPublishing":"Ready to publish","published":"Published","error":"Error","posterType":"Poster type","pinterestInspirationHint":"Paste a Pinterest board to use as inspiration","instagramInspirationHint":"Paste an Instagram profile, post, or hashtag to use as inspiration","freeStyleNeedsBrief":"With the Free style, write the text and design you want here: the poster follows only your instructions.","inspirationMode":"Mode","inspirationExact":"Exact","inspirationExactHint":"Images are passed directly to the model. The result stays visually close to the board.","inspirationSimilar":"Similar","inspirationSimilarHint":"AI analyzes the images and extracts a style description. Only text is added to the prompt to avoid copying specific people.","inspirationExactFlow":"images → model","inspirationSimilarFlow":"description → model","loading":"Loading...","load":"Load","retry":"Retry","inspirationNoImages":"No images were found on the board","inspirationLoadError":"Could not load the inspiration","pinterestUrlPlaceholder":"https://pinterest.com/user/board/...","instagramUrlPlaceholder":"https://instagram.com/user/ or /explore/tags/...","imageCount":"{count} images","inspirationImageAlt":"Inspiration {index}","insufficientCredits":"Not enough credits: you have {balance} cr available and need {needed} cr","selectAllPublishHint":"Select all visible posters to publish them as ads; you will choose one ad set next, and each poster will use its avatar landing page.","allSelected":"All selected","selectAllPublish":"Select all to publish ({count})","generatingPoster":"Generating poster...","posterStyles":{"liveEvent":{"label":"Live event","description":"Webinars, summits, and live events with a LIVE badge"},"promotion":{"label":"Ad / Promotion","description":"Launches, offers, and direct calls to action"},"educational":{"label":"Educational / Tips","description":"Advice, how-to content, infographics, and key facts"},"testimonial":{"label":"Testimonial / Success story","description":"Social proof, reviews, and customer results"},"personalBrand":{"label":"Personal brand / Branding","description":"Positioning, authority, and professional lifestyle"},"community":{"label":"Community / Engagement","description":"Questions, polls, and calls for interaction"},"news":{"label":"News / Trending","description":"Industry news, trends, and current events"},"behindScenes":{"label":"Behind the scenes","description":"Process, team, and authentic behind-the-scenes content"},"corporate":{"label":"Corporate","description":"A polished institutional style using the corporate visual identity"},"replay":{"label":"Recording available","description":"After the live session: replay, \"Did you miss it?\" and \"Watch the replay\", no LIVE badge"},"free":{"label":"Free","description":"No template: only your instructions and your brand identity"}},"freePosterName":"Free poster","uploadedPosterName":"Uploaded poster","generateWithAi":"Generate poster with AI","activeCampaign":"Active campaign","activeCampaignHint":"The list is filtered by this campaign.","wizardBackToMethods":"Back to creation methods","wizardCreateTitle":"Create poster","wizardGuidedTitle":"Guided generation","wizardChooseMethod":"Choose how you want to create the new poster","wizardStepProgress":"Step {step} of 5","wizardClose":"Close assistant","wizardRecommended":"Recommended","wizardGuidedDescription":"The assistant guides you through campaign, person, type, inspiration, and settings.","wizardStart":"Start","wizardFreeTitle":"Free generation","wizardFreeDescription":"Create from scratch in the AI image editor with complete freedom.","wizardOpenEditor":"Open editor","wizardUploadTitle":"Upload my own poster","wizardUploadDescription":"Add your own image to the list without AI editing.","wizardUploadAction":"Upload image","wizardUploadHint":"Drag or choose a file and lock it to 16:9, 9:16, 1:1, or 4:5.","wizardUploadAspectHint":"The poster must use one of these formats: 16:9, 9:16, 1:1, or 4:5.","wizardUploadLabel":"Poster image","wizardUploadDropHint":"JPG, PNG, or WebP · cropped to the chosen format","wizardUploadNoCampaign":"No active campaign: the poster will be created without one. You can assign it later.","uploadPosterFailed":"Could not upload the image","uploadPosterPersistFailed":"The image uploaded, but it could not be saved to the poster list.","wizardTemplatesTitle":"Templates","wizardTemplatesComingSoon":"Templates (Coming soon)","wizardTemplatesDescription":"Start from a predesigned template and customize it in this assistant.","wizardOpenTemplates":"Open templates","wizardStepCampaign":"Campaign","wizardStepPersona":"Person","wizardStepType":"Type","wizardStepInspiration":"Inspiration","wizardStepSettings":"Settings","wizardCampaignQuestion":"Which campaign is this for?","wizardCampaignHint":"Confirm the campaign before continuing.","wizardPersonaQuestion":"Who will appear?","wizardPersonaHint":"Choose a person or generate the poster without one.","wizardTypeQuestion":"What type of poster do you need?","wizardTypeHint":"You can select one or more types.","wizardInspirationQuestion":"Would you like to add inspiration?","wizardInspirationHint":"This step is optional. You can continue without adding a URL.","wizardSettingsQuestion":"Final settings","wizardSettingsHint":"Review the quantity and add instructions if needed.","wizardBack":"Back","wizardSelectCampaign":"Select a campaign","wizardSelectType":"Select at least one type","wizardCountCredits":"{count} posters · {credits} credits","wizardNext":"Next","publish":"Publish","filters":"Filters","filterByAvatar":"Filter by client avatar","allAvatars":"All avatars","downloadZip":"Download ZIP","downloadFavoritesOnly":"Only favorites will be downloaded","persona":"Person","allPersonas":"All","filterByPersona":"Filter by {name}","noPersona":"No person","excludePersonaHint":"When enabled, posters will not include the person. Useful when your inspiration is a scene without people.","showPersonaName":"Show name on the poster","showPersonaNameHint":"With a persona, its name is used, never the campaign speaker's. Turn it off for a poster with no name.","editorialImported":"Imported from Editorial Plan","editorialBriefing":"Editorial brief","inspirationFrom":"Inspiration from","optional":"optional","genericUrlComingSoon":"Coming soon: generic URL","quantity":"Quantity","aiInstructionsOptional":"Instructions for the AI (optional)","aiInstructionsPlaceholder":"E.g. Use blue and gold tones, include the €997 price, make the text large and centered, minimalist style...","selectPosterType":"Select at least one poster type","backToPosters":"Back to Posters","backToDashboard":"Back to Dashboard","visualTemplates":{"openHint":"Choose an active visual template and generate without editing every element","open":"Create from template","comingSoon":"Coming soon","comingSoonHint":"This feature is temporarily unavailable while we finish preparing it.","editorialPrefill":"Campaign, persona, brief, style, and minimum quantity are prefilled. Review and confirm before using credits.","batchEdit":"Batch edit images"}},"nps":{"title":"How likely are you to recommend ContentFlow365?","subtitle":"From 0 (not likely) to 10 (very likely)","thanksTitle":"Thanks for your feedback","thanksDesc":"Your feedback helps us improve ContentFlow365","tellUsMore":"Tell us more (optional)","placeholder":"What could we improve?","notNow":"Not now","submit":"Send feedback","submitting":"Sending...","close":"Close","notLikely":"Not likely","veryLikely":"Very likely","retryHint":"Your score and comment are still here. You can submit them again."},"teamInvite":{"title":"Invite member","subtitle":"The user will receive an email with a link to set up their access.","email":"Email","name":"Name","role":"Role","roleAdmin":"Admin — Full access","roleEditor":"Editor — Can edit content","roleViewer":"Viewer — Read only","send":"Send invitation","emailPlaceholder":"user@email.com","namePlaceholder":"Full name","cancel":"Cancel","submitting":"Sending...","errorInvite":"Failed to invite user","successMessage":"Invitation sent successfully","networkError":"Network error. Please try again."},"team":{"editMember":"Edit member","editMemberDescription":"Edit the details of {name} in this account.","name":"Name","email":"Email","role":"Role","fullNamePlaceholder":"Full name","emailPlaceholder":"email@example.com","cancel":"Cancel","save":"Save","saving":"Saving...","adjustImage":"Adjust image","cropAction":"Crop","imageTooLarge":"Image too large (max 10MB)","errorCroppingImage":"Error cropping image","errorUploadingImage":"Error uploading image","errorUpdating":"Error updating","userUpdated":"User updated","networkError":"Network error. Please try again.","removeAccess":"Remove access","removeAccessDescription":"You are about to revoke access for {name} to this account. The user will still exist but won't be able to access account data.","accessRevoked":"Access revoked","removing":"Removing...","resendInvite":"Resend invite","errorResending":"Error resending"},"youtubeStats":{"totalViews":"Total Views","avgViewsPerVideo":"Avg Views/Video","avgEngagement":"Avg Engagement","bestVideo":"Best Video (views)","videosPublished":"Videos Published","channelPerformance":"Channel Performance","channelPerformanceDesc":"Views and engagement per video (last 60 videos)","top5Videos":"Top 5 Videos","top5Desc":"Most viewed videos","last5Videos":"Last 5 Videos","last5Desc":"Most recently published videos","aboveAvg":"Above average","belowAvg":"Below average","monthlySummary":"Monthly Summary","monthlySummaryDesc":"Last 6 months of activity","noDataAvailable":"No data available","monthHeader":"Month","videosHeader":"Videos","viewsHeader":"Views","avgEngHeader":"Avg Eng","productionPipeline":"Production Pipeline","productionPipelineDesc":"Video status in Airtable vs YouTube","noVideosAirtable":"No videos in Airtable","total":"TOTAL","onYoutube":"On YouTube","notLinked":"Not linked","byStatus":"By status","vsPrevious":"vs previous","views":"Views","engagementPct":"Engagement %","avgScore":"Average Score","topPerformers":"Top Performers (>80)","underPerformers":"Under Performers (<30)","avgSpeed":"Average Speed (views/day)","video":"Video","score":"Score","engagement":"Engagement","viewsPerDay":"Views/Day","days":"Days","noDataScorecard":"No video data available to generate the scorecard.","scoreDistribution":"Score Distribution","scoreDistributionDesc":"Number of videos per score range (0-100)","scoreRange":"Score Range","videoCount":"Number of Videos","scoreMethodology":"Score Methodology","growing":"Growing","declining":"Declining","stable":"Stable","months3":"3 months","months6":"6 months","months8":"8 months","months12":"12 months","analyzingThumbnails":"Analyzing thumbnails...","analyzingThumbnailsDesc":"Gemini 3 Flash is analyzing the thumbnails of the top 10 channel videos. First time takes ~20-40 seconds, then served from cache.","noCacheTitle":"Thumbnail analysis not available","noCacheDescription":"We haven't analyzed the top 10 thumbnails for this channel yet. Click \"Analyze channel\" to generate it (~20-40s, cached for 30 days).","analyzeChannelButton":"Analyze channel","videosAnalyzed":"Videos analyzed","totalViewsTop10":"Total views (top 10)","avgEngagementLabel":"Average engagement","cache":"Cache","fromCache":"From cache","freshAnalysis":"Fresh analysis","analysisGenerated":"Analysis generated:","methodology":"Methodology","lastMonths":"Last {label}","refreshAnalysis":"Refresh analysis","modelInfo":"Model: Google Gemini 3 Flash (vision).","intelligenceBrief":"Intelligence Brief — Channel Performance","loadingPerformance":"Loading performance data...","titlePerformance":"Title performance","avgLength":"Average length","optimalLength":"Optimal length","bestDay":"Best day","optimalDuration":"Optimal duration","topKeywords":"Top keywords","successPatterns":"Success patterns","topPerformersRecent":"Recent top performers","underPerformersRecent":"Recent underperformers","channelVisualPatterns":"Channel visual patterns","visualStyle":"Visual style","dominantColors":"Dominant color palette","textPatterns":"Text patterns","commonElements":"Common elements in top videos","recommendations":"Recommendations","topAnalysis":"Top {count} — High-impact thumbnail analysis","highImpact":"High impact","textLabel":"Text:","colorsLabel":"Colors:","toneLabel":"Tone:","styleLabel":"Style:","channelHealth":"Channel Health","subscribers":"{count} subscribers","growth":"Growth","consistency":"Consistency","diversity":"Diversity","last10VsPrevious":"Last 10 vs previous","engVsBenchmark":"Engagement vs 2% benchmark","publishRegularity":"Publishing regularity","durationVariety":"Duration variety","strategicAnalysis":"Strategic AI Analysis","strategicAnalysisDesc":"Complete diagnosis, recommendations and AI-generated calendar","analyzing":"Analyzing...","regenerateAnalysis":"Regenerate analysis","generateAnalysis":"Generate AI analysis","generatingAnalysis":"Generating strategic analysis","generatingAnalysisDesc":"Processing {count} videos with AI — may take 20-30 seconds","cache1h":"cache 1h","generatePrompt":"Click \"Generate AI analysis\" to get a complete strategic report based on your channel data.","strategicRecommendations":"Strategic Recommendations","strategicRecommendationsDesc":"Prioritized actions based on channel data analysis","priority":"Priority {level}/5","topicAnalysis":"Topic Analysis","topicAnalysisDesc":"Content clusters grouped by recurring keywords (minimum 3 videos)","trendUp":"↑ Going up","trendDown":"↓ Going down","trendStable":"→ Stable","avgViewsLabel":"Avg Views","contentCalendar":"Content Calendar Suggestion","contentCalendarDesc":"Recommended plan based on historical performance","bestPublishDay":"Best day to publish","average":"average","idealFrequency":"Ideal frequency","videosAnalyzedCount":"Videos analyzed","inProduction":"+ {count} in production","suggestedTopics":"Next suggested topics","comingSoonCompetitive":"Coming Soon: Competitive Analysis","dayNames":{"sun":"Sunday","mon":"Monday","tue":"Tuesday","wed":"Wednesday","thu":"Thursday","fri":"Friday","sat":"Saturday"},"scoreMethodologyDesc":"Each video receives a composite score (0-100) based on its relative performance within the channel. Components are: Views Percentile (40%), Engagement Percentile (30%), Growth Velocity (20%) calculated as views/days since publication, and Comment Ratio (10%) calculated as comments/views. Percentiles compare each video against all others in the channel.","impactHigh":"High","impactMedium":"Medium","impactLow":"Low","needMinVideos":"At least 5 videos are needed to generate strategic analysis.","unknownError":"Unknown error","recExperimentTitle":"Experiment with new formats","recExperimentDesc":"Views have dropped by {pct}% in recent videos. Try different formats like tutorials, vlogs or listicles to recover audience.","recDurationTitle":"Adjust video duration","recDurationDesc":"Your best performing videos are {range}, but only {count} of the last 5 fall in that range. Aim for that duration to maximize views.","recFrequencyTitle":"Increase publishing frequency","recFrequencyDesc":"You currently publish {freq} videos/month. Increasing to at least 2/month improves visibility in the YouTube algorithm.","recCtaTitle":"Improve call-to-actions in videos","recCtaDesc":"Your average engagement is {engagement}%, below the 2% benchmark. Include clear CTAs for likes and comments in every video.","recCommentsTitle":"Encourage comment interaction","recCommentsDesc":"The comment ratio is {ratio}%. Ask direct questions at the end of each video and actively respond to comments.","recTitleLenTitle":"Optimize title length","recTitleLenDesc":"Your top 20% titles average {topAvg} characters, but your recent videos average {recentAvg}. Adjust the length to improve CTR.","recPublishDayTitle":"Publish on {day}","recPublishDayDesc":"Your best day is {bestDay} with an average of {avgViews} views, but your last video was published on {lastDay}.","recKeywordTitle":"Create more \"{keyword}\" content","recKeywordDesc":"Videos with \"{keyword}\" average {avgViews} views ({count} videos). Double down on what works.","idealFreqMin":"2 videos/month (minimum recommended)","idealFreqGrow":"{count} videos/month (to maintain growth)","idealFreqKeep":"{count} videos/month (keep current pace)","topicReasonTop":"Top performance: {views} avg views","topicReasonUnderexplored":"Underexplored but promising: {views} avg views","comingSoonCompetitiveDesc":"Compare your channel performance against direct competitors. Will include growth metrics, engagement, publishing frequency and content analysis of similar channels in your niche.","months24":"2 years","months60":"5 years","errorTitle":"Error","retryButton":"Retry","methodModel":"Model","methodModelDesc":"Google Gemini 3 Pro (vision).","methodProcess":"Process","methodProcessDesc":"Videos from the selected period are filtered and the top 10 by views are selected. For each one, Gemini analyzes the thumbnail identifying visible text, dominant colors, faces, composition, style and emotional tone. Then, a second call synthesizes common patterns and generates actionable recommendations.","methodCache":"Cache","methodCacheDesc":"Results are cached for 30 days. Refreshing triggers a new analysis with the latest data.","methodBrief":"Intelligence Brief","methodBriefDesc":"Title performance data (keywords, patterns, optimal duration) comes from a separate statistical analysis across all channel videos, calculated in real time.","noStatus":"No status","viewOnYoutube":"View on YouTube","tabOverview":"Overview","tabVideos":"Videos","tabEngagement":"Engagement","tabTemporal":"Temporal","tabContent":"Content","tabInsights":"Insights","tabDemographics":"Demographics","tabGeography":"Countries","tabRevenue":"Revenue","tabTraffic":"Traffic","tabDashboard":"Dashboard","tabScorecard":"Scorecard","tabTitles":"Titles","tabStrategy":"Strategy","tabMatching":"Matching","tabThumbnails":"AI Thumbnails","groupYoutube":"YouTube","groupAnalytics":"Analytics","groupIntelligence":"Intelligence","channelNotConfigured":"YouTube Channel not configured","channelNotConfiguredDesc":"Add a Social Profile with Network = \"youtube\" and the channel handle (e.g. @DavidAranzabalYoutube) linked to this Account to view statistics.","connectingTo":"Connecting to {channel}","fetchingStats":"Fetching channel statistics","errorLoadingData":"Error loading data","privateAnalytics":"Private Analytics","privateAnalyticsDesc":"Connect your YouTube account to view demographics, countries, revenue and traffic.","connecting":"Connecting...","connectYoutubeAnalytics":"Connect YouTube Analytics","subscribersLabel":"Subscribers","videosLabel":"Videos","totalViewsLabel":"Total Views","totalLikesLabel":"Total Likes","viewsPerVideoLabel":"Views/Video","avgEngagementLabel2":"Avg Engagement","viewsPerVideoChart":"Views per Video","viewsPerVideoChartSub":"Last 50 videos chronologically","viewsDistribution":"Views Distribution","viewsDistributionSub":"View range per video","top10MostViewed":"Top 10 Videos - Most Viewed","top10MostViewedSub":"By number of views","engagementRatePerVideo":"Engagement Rate per Video","engagementRatePerVideoSub":"(Likes + Comments) / Views x 100","likeRate":"Like Rate","commentRate":"Comment Rate","likesPerVideo":"Likes / Video","commentsPerVideo":"Comments / Video","likesVsViews":"Likes vs Views","likesVsViewsSub":"Correlation between likes and views","commentsVsViews":"Comments vs Views","commentsVsViewsSub":"Correlation between comments and views","engagementByYear":"Engagement by Year","engagementByYearSub":"Like Rate and Comment Rate grouped by year","top10Engagement":"Top 10 Engagement","top10EngagementSub":"Videos with highest engagement (views > 100)","axisViews":"Views","axisLikes":"Likes","axisComments":"Comments","axisYear":"Year","axisRatePct":"Rate %","axisEngagementPct":"Engagement %","labelLikeRatePct":"Like Rate %","labelCommentRatePct":"Comment Rate %","labelEngagementPct":"Engagement %","loadingDemographics":"Loading demographics data...","errorLabel":"Error","noDemographicsData":"No demographics data available.","ageGroups":"Age Groups","genderDistribution":"Gender Distribution","ageDistribution":"Age Distribution","ageByGender":"Age x Gender","loadingGeography":"Loading country data...","noGeographyData":"No country data available.","top15Countries":"Top 15 Countries by Views","countryDistribution":"Distribution by Country","others":"Others","watchTimeByCountry":"Watch Time by Country (min)","countryDetail":"Country Detail","columnCountry":"Country","columnViews":"Views","columnPercent":"%","columnWatchTime":"Watch Time","columnAvgDuration":"Avg Duration","loadingRevenue":"Loading revenue data...","noRevenueData":"No revenue data available. The channel may not be monetized.","totalRevenue":"Total Revenue","adRevenue":"Ad Revenue","totalWatchTime":"Total Watch Time","netSubscribers":"Net Subscribers","revenueByMonth":"Revenue by Month","rpmByMonth":"RPM by Month","impressionsAndCtr":"Impressions and CTR by Month","labelRevenue":"Revenue ($)","labelRpm":"RPM ($)","labelImpressions":"Impressions","labelCtrPct":"CTR %","loadingTraffic":"Loading traffic data...","noTrafficData":"No traffic data available.","topTrafficSources":"Top Traffic Sources","devices":"Devices","watchTimeBySource":"Watch Time by Source (min)","labelWatchTimeMin":"Watch Time (min)","trafficSourceDetail":"Traffic Source Detail","columnSource":"Source","durationDistribution":"Duration Distribution","durationDistributionSub":"Number of videos per range","durationVsViews":"Duration vs Views","eachPointOneVideo":"Each point = 1 video","titleLengthVsViews":"Title Length vs Views","avgViewsByDuration":"Average Views by Duration","avgViewsByDurationSub":"Which duration performs best","axisDurationMin":"Duration (min)","axisTitleChars":"Characters in title","wordCloudTitle":"Most used words in titles","wordCloudSub":"Word frequency in your video titles","wordTimesTooltip":"{word}: {count} times","rangeLessThan5min":"< 5 min","range5to10min":"5-10 min","range10to20min":"10-20 min","range20to30min":"20-30 min","range30to60min":"30-60 min","range60plusMin":"60+ min","range30plusMin":"30+ min","rangeLessThan1k":"< 1K","range1kTo5k":"1K-5K","range5kTo10k":"5K-10K","range10kTo50k":"10K-50K","range50kTo100k":"50K-100K","range100kPlus":"100K+","insightStarVideo":"Star Video","insightTopEngagement":"Highest Engagement","insightViewsTrend":"Views Trend","insightPublishFrequency":"Publish Frequency","insightBestDay":"Best Day to Publish","insightOptimalDuration":"Optimal Duration","insightOptimalTitle":"Optimal Title","insightRecentEngagement":"Recent Engagement","insightViewsValue":"{views} views","insightTrendDesc":"Last 10 videos vs previous 10 ({avg} avg)","insightPerMonth":"{count} / month","insightVideosAnalyzed":"{count} videos analyzed","insightAvgViews":"Average {views} views","insightMinVideos":"min 3 videos","insightCharacters":"{count} characters","insightTitleLenDesc":"Average length of top 20% videos","insightImprovingVsPrev":"Improving vs previous period","insightDecliningVsPrev":"Declining vs previous period","noInsightsData":"Not enough data to generate insights.","executiveSummary":"Executive Summary","executiveSummarySub":"Automatic analysis based on channel data","featuredVideo":"Featured Video","featuredVideoSub":"The most viewed video on the channel","commentsLabel":"comments","summaryChannelWith":"Channel with {count} videos analyzed and {totalViews} total views (average {avg} per video).","summaryTrendPositive":"Positive trend: the last 10 videos have {pct}% more views than the previous ones.","summaryTrendNegative":"Warning: the last 10 videos have {pct}% fewer views. Consider experimenting with new formats.","summaryTrendStable":"Views remain stable across recent videos.","summaryBestDay":"The best day to publish is {day} with an average of {views} views.","summaryBestDuration":"Videos of {range} perform best with {views} average views.","summaryTopTitleLength":"Top 20% titles have an average of {length} characters.","summaryFrequencyLow":"Low publishing frequency ({freq}/month). Publishing more frequently can improve the algorithm.","summaryFrequencyHigh":"High publishing frequency ({freq}/month). Make sure to maintain quality.","summaryFrequencyGood":"Good publishing frequency: {freq} videos per month.","dayNameSun":"Sunday","dayNameMon":"Monday","dayNameTue":"Tuesday","dayNameWed":"Wednesday","dayNameThu":"Thursday","dayNameFri":"Friday","dayNameSat":"Saturday","dayNameShortSun":"Sun","dayNameShortMon":"Mon","dayNameShortTue":"Tue","dayNameShortWed":"Wed","dayNameShortThu":"Thu","dayNameShortFri":"Fri","dayNameShortSat":"Sat","matchingLoadingVideos":"Loading Airtable and YouTube videos...","matchingNoAirtableVideos":"No videos in Airtable for this account.","matchingAirtableVideos":"Airtable Videos","matchingLinked":"Linked","matchingProposed":"Proposed","matchingNoMatch":"No match","matchingFilterAll":"All","matchingFilterLinked":"Linked","matchingFilterProposed":"Proposed","matchingFilterNoMatch":"No match","matchingAutoConfirm":"Auto-confirm high confidence ({count})","matchingSyncing":"Syncing...","matchingSyncStats":"Sync YouTube Stats","matchingResultsCount":"{filtered} of {total} videos","matchingColumnAirtable":"Airtable Video","matchingColumnStatus":"Status","matchingColumnConfidence":"%","matchingColumnYoutube":"YouTube Video","matchingColumnActions":"Actions","matchingNoResults":"No videos found with this filter","matchingNoCoincidence":"No match","matchingStatusLinked":"Linked","matchingStatusProposed":"Proposed","matchingStatusNoMatch":"No match","matchingConfirmLink":"Confirm link","matchingManualSearch":"Search manually","matchingSyncError":"Error syncing","monthlyPublishFrequency":"Monthly Publish Frequency","monthlyPublishFrequencySub":"Videos published per month","dayOfWeekDistribution":"Day of Week Distribution","dayOfWeekDistributionSub":"When videos are published","hourOfDayDistribution":"Hour of Day Distribution","hourOfDayDistributionSub":"Publication hour (local time)","avgViewsByYear":"Average Views by Year","avgViewsByYearSub":"Line: avg views | Bars: video count","publishHeatmap":"Publication Heatmap","publishHeatmapSub":"Day of week vs hour of day","heatmapLess":"Less","heatmapMore":"More","labelVideosPublished":"Videos published","labelAvgViews":"Avg Views","heatmapTooltip":"{day} {hour} - {count} video","heatmapTooltipPlural":"{day} {hour} - {count} videos","titleLengthVsViewsChart":"Title Length vs Views","titleLengthVsViewsChartSub":"Each point = 1 video. Find the optimal length.","optimalRange":"Optimal Range","optimalRangeDesc":"Range with best average views ({views})","avgLenTop20":"Avg Length Top 20%","avgLenTop20Desc":"Average length of most viewed videos","avgLenBottom20":"Avg Length Bottom 20%","avgLenBottom20Desc":"Average length of least viewed videos","keywordPerformance":"Keyword Performance","keywordPerformanceSub":"Words with at least 3 occurrences, sorted by average views","noKeywordData":"Not enough keyword data.","columnKeyword":"Keyword","columnOccurrences":"Occurrences","columnAvgViews":"Avg Views","columnAvgEngagement":"Avg Engagement","keywordLegend":"Green = above channel average ({views} views) | Red = below","titlePatternAnalysis":"Title Pattern Analysis","titlePatternAnalysisSub":"How different title styles perform","patternQuestions":"Questions","patternQuestionDesc":"Titles containing ?","patternNumbers":"Numbers","patternNumberDesc":"Titles with digits","patternUppercase":"UPPERCASE Words","patternUppercaseDesc":"At least 1 all-uppercase word (min 3 chars)","patternEmojis":"Emojis","patternEmojiDesc":"Titles with emojis","patternHowTo":"How-to","patternHowToDesc":"Starts with \"how to\", \"como\"","patternVideos":"Videos","patternAvgViews":"Avg views","patternEngagement":"Engagement","patternAboveAvg":"% above avg","wordCloudPerformance":"Word Cloud by Performance","wordCloudPerformanceSub":"Size = frequency | Color = performance (green = above avg, yellow = near avg, red = below avg)","noWordCloudData":"Not enough data for the word cloud.","legendAboveAvg":"Above average","legendNearAvg":"Near average","legendBelowAvg":"Below average","wordCloudTooltip":"\"{word}\": {freq} times | Avg {views} views","abTitleComparison":"A/B Title Comparison","abTitleComparisonSub":"Videos with alternative titles in Airtable vs the chosen YouTube title","noAbData":"No videos with alternative titles (titulo_youtube_a + titulo_youtube_b) matching YouTube videos.","optionA":"Option A","optionB":"Option B","optionC":"Option C","chosen":"CHOSEN","noTitleData":"Not enough data to analyze titles.","sortNewest":"Newest","sortOldest":"Oldest","sortMostViews":"Most viewed","sortLeastViews":"Least viewed","sortMostLikes":"Most likes","sortMostEngagement":"Most engagement","sortLongest":"Longest","sortShortest":"Shortest","searchByTitle":"Search by title...","allYears":"All years","exportCsv":"Export CSV","videosCount":"{count} videos","videosFiltered":"{filtered} of {total} videos","searchingFor":"searching \"{query}\"","yearLabel":"year {year}","noVideosFound":"No videos found","columnVideo":"Video","columnComments":"Comments","columnDuration":"Duration","columnDate":"Date","pageOf":"Page {page} of {total}","perPage":"{count} / page","firstPage":"First page","prevPage":"Previous page","nextPage":"Next page","lastPage":"Last page","datePresetToday":"Today","datePresetYesterday":"Yesterday","datePreset7days":"7 days","datePreset14days":"14 days","datePresetLastMonth":"Last month","datePresetCurrentMonth":"Current month","datePresetPreviousMonth":"Previous month","datePreset3months":"3 months","datePreset12months":"12 months","datePresetTotal":"Total","dateRangePeriods":"Periods","dateRangeCustom":"Custom range","headerSubscribers":"Subscribers","headerTotalViews":"Total Views","headerVideos":"Videos","headerConnectAnalytics":"Connect Analytics","headerOAuthOn":"OAuth On"},"researchDetail":{"selectedIdeas":"Selected Ideas","research24h":"Research 24h","conclusion":"Conclusion","selectResearch":"Select a Research from the list","trendToday":"Trend Today","recommendedTopics":"Recommended Topics","proposedFormats":"Proposed Formats","perplexityResearch":"Perplexity Research","webSources":"Web Sources","selectedIdeasTitle":"Selected Inspiration Ideas:","selectedIdeasDesc":"Favorite videos chosen by the Research Agent:","noSelectedIdeas":"No selected ideas","fullAnalysis":"Full Analysis","conclusionN":"Conclusion {n}","noConclusion":"No conclusion available"},"editor":{"avatarRegeneration":{"cinematicLabel":"Cinematic Avatar","createFailed":"Generation could not be confirmed. Check the avatar status before trying again.","reserved":"Generation started. Reserved: {credits} credits, pending adjustment to actual usage. Available balance: {balance} credits.","charged":"Generation started. Charged: {credits} credits. Available balance: {balance} credits.","confirm":"Regenerating this avatar costs {credits} credits. Available balance: {balance} credits. Confirm regeneration?","insufficient":"You need {credits} credits and have {balance} available.","estimateFailed":"The cost and balance could not be checked. Regeneration has not started.","uncertain":"The request is awaiting confirmation. Your previous video is preserved. Check its status before trying again.","failed":"Regeneration could not be started. Refresh the editor and check the avatar status."},"finalResolutionChecking":"Resolution awaiting verification","finalResolutionUnavailable":"Resolution could not be verified","noSelection":"No selection","clickClipToEdit":"Click a clip on the timeline to edit its properties","precachingMedia":"Precaching media... {loaded}/{total}","saveFailed":"Changes could not be saved","editsKeptOverOther":"Another change (another tab or the chat) touched {count, plural, one {# clip} other {# clips}} you had also edited. Your version was kept.","addAudioLaneFailed":"The audio track could not be added","fullscreenBlocked":"The browser blocked full screen mode.","hyperframesRenderDescription":"Calculate the exact cost, check the credit balance, and lock this revision before sending it.","importedVideoReadyTitle":"Imported video finished","importedVideoReadyHint":"No render needed. Add music, titles or captions if you want a new render.","importedVideoApprove":"Final video montage","importedVideoApproving":"Creating the montage…","importedVideoApproved":"Final montage created","importedVideoView":"View MP4","importedVideoViewerHint":"It plays at full quality. Ask for changes in the chat; to add layers on top, open it in Editor Pro.","importedVideoDownload":"Download MP4","importedVideoLibrary":"Open in the Library","importedVideoOpenEditor":"Edit in Editor Pro","previewResolutionDescription":"The preview may use reduced media. Current timeline: {width}×{height}. Final quality depends on the original files.","previewLoadingMedia":"Loading media...","previewError":"Preview error","templatePanelClose":"Close","templateFieldInvalid":"Check this field: it won't be saved until it is valid.","templateListAdd":"Add","templateListRemove":"Remove","templateIconSearch":"Search icons (rocket, star, users…)","templateIconEmpty":"No icon matches that search.","templateIconSearchFailed":"The search is not available right now. You can use the suggestions.","templateUseBrandColor":"Use the brand colour","templateUseOwnColor":"Use the template colour","templateBrandAdjusted":"The brand colour was adjusted so it reads well on this template. You can change it.","templateTextTrimmed":"This text does not fit the template in full and is cut short. Shorten it.","templateFilterFormat":"Format","templateFilterFamily":"Style","templateFilterZone":"Script moment","templateFilterSearch":"Search","templateFilterAll":"All","templateFilterClear":"Clear filters","templateFilterCount":"{count, plural, one {# template} other {# templates}}","templateFilterEmpty":"No template matches these filters.","templateNotForThisVideo":"Only available for videos in the other format.","templatePanelUnavailable":"This template could not be loaded. It is no longer in use or not available.","templateFormats":{"vertical":"Vertical","horizontal":"Horizontal"},"templateZones":{"hook":"Hook","explanation":"Explanation","data":"Data point","list":"List","proof":"Proof","closing":"Closing","cta":"Call to action"},"templateFamilies":{"art-movements":"Art movements","contentflow":"ContentFlow","cosmic":"Cosmic","data-info":"Data and infographics","dimensional":"Dimensional","generative-type":"Generative type","hand-drawn":"Hand-drawn","illustration":"Illustration","light-imaging":"Light and imaging","painterly":"Painterly","paper-craft":"Paper craft","popular-explainer":"Popular explainer","print":"Print","retro-digital":"Retro digital","retro-ui-neon":"Retro neon"},"templateSoundEffects":"Sound effects","templatePickerTitle":"Premium templates","premiumTemplatesTitle":"Premium templates","premiumTemplatesIntro":"Review each template in motion and with sound. Only approved ones appear in the editor.","premiumStatusDraft":"To review","premiumStatusApproved":"Approved","premiumStatusRetired":"Rejected","premiumApprove":"Approve","premiumReject":"Reject","premiumEmpty":"There are no templates in this state yet.","premiumLoadError":"The templates could not be loaded.","premiumActionError":"It could not be saved. Try again.","premiumFields":"Fields you can change","premiumSounds":"Sounds","templatePickerError":"The catalog could not be loaded.","templatePickerEmpty":"There are no templates for this format yet.","fluencyMeterButton":"Measure smoothness","fluencyMeterCancel":"Cancel measurement","fluencyMeterWaiting":"Press play: I will measure {seconds} seconds of playback.","fluencyMeterMeasuring":"Measuring… {elapsed} of {seconds} s","fluencyMeterVideoFps":"Video: {value} frames/s","fluencyMeterDropped":"Dropped: {value}","fluencyMeterStalls":"Stalls: {value}","fluencyMeterSync":"Video-audio offset: ±{value} ms","fluencyMeterPage":"Page: {value} frames/s","fluencyMeterCopy":"Copy result","fluencyMeterCopied":"Copied","hfRenderTitle":"Cloud render with HyperFrames","hfRenderIntro":"This editor uses the HyperFrames engine: the video is rendered at 1080p in the HyperFrames cloud, not on AWS. Nothing is charged until you confirm.","hfRenderAgain":"Render again","hfRenderQuoting":"Calculating the cost…","hfRenderPriceChanged":"The video changed since the price was calculated. Check the new price and confirm again.","hfRenderPreparing":"Preparing the video…","hfRenderRetry":"Try again","hfRenderSummary":"{duration} s · {aspect} · {credits, plural, one {# credit} other {# credits}} (you have {balance, number})","hfRenderInsufficient":"You don't have enough credits for this render.","hfRenderMissingTitle":"{count, plural, one {This video will have # template that is not drawn} other {This video will have # templates that are not drawn}}","hfRenderMissingBody":"The HyperFrames engine cannot draw these templates yet. In the MP4 they will appear as «pending» boxes instead of the animation: {templates}","hfRenderMissingAccept":"I understand and want to render anyway","hfRenderStart":"Render for {credits, plural, one {# credit} other {# credits}}","hfRenderConfirm":"Confirm: charge {credits, plural, one {# credit} other {# credits}}","hfRenderCancel":"Cancel","hfRenderQueued":"Queued in the cloud…","hfRenderRendering":"Rendering in the cloud…","hfRenderDelivering":"Saving the final MP4 on the video…","hfRenderDone":"Render complete","hfRenderEstimate":"Approximate percentage, based on time: the cloud doesn't report the real one.","hfRenderViewer":"Go to viewer","hfRenderFailed":"The cloud render failed. We refunded {credits, plural, one {# credit} other {# credits}}.","hfRenderFailedReason":"Reason: {reason}","hfRenderError":"It could not be completed ({code}). If something was charged and there is no video, it is refunded automatically.","hfRenderErrorTooLarge":"This video is too large to render in the cloud. Nothing was charged.","hfRenderErrorMedia":"One of the video's files could not be read. Nothing was charged. Try again in a moment.","hfRenderErrorPackage":"The video could not be prepared for the cloud. Nothing was charged. Try again in a moment.","hfRenderErrorRejected":"The cloud rejected this video. If anything was charged, the credits have been returned.","hfRenderErrorUncertain":"We don't know yet whether the cloud received the render. Wait 10 minutes and press Try again: you won't be charged twice.","hfRenderErrorUnavailable":"Cloud rendering isn't available right now. Nothing was charged.","renderResolutionDescription":"Render in AWS Lambda (H.264). Current timeline: {width}×{height}. Enlarging a lower-resolution source does not restore its detail.","typeVideo":"Video","typeImage":"Image","typeAudio":"Audio","start":"Start","duration":"Duration","volume":"Volume","scale":"Scale","position":"Position","opacity":"Opacity","textStyle":"Style · {label}","color":"Color","fontSize":"Size","fontFamily":"Font","layerDepth":"Layer depth · back → front","behind":"Behind","inFront":"In front","hyperframesLockedVisual":"This scene does not declare editable properties in its HyperFrames contract. Its visual content remains locked; position, duration and layer can still be edited.","hyperframesSavedHint":"The change is saved in the structured revision and reaches both preview and final render.","hyperframesKeyframes":"Structured keyframes","hyperframesKeyframeTime":"Time (s)","hyperframesKeyframeValue":"Value","hyperframesKeyframeInterpolation":"Interpolation","hyperframesInterpolationHold":"Hold","hyperframesInterpolationLinear":"Linear","hyperframesInterpolationEaseIn":"Ease in","hyperframesInterpolationEaseOut":"Ease out","hyperframesInterpolationEaseInOut":"Ease in and out","hyperframesInterpolationBezier":"Bezier","trackHide":"Hide track","trackShow":"Show track","trackLock":"Lock track","trackUnlock":"Unlock track","trackMute":"Mute track","trackUnmute":"Unmute track","trackSolo":"Solo this track","trackUnsolo":"Disable solo","fit":"Fit","fitCover":"Cover (crop)","fitContain":"Contain (fit)","effect":"Effect","effectNone":"None","effectZoomSlow":"Slow zoom","transitionIn":"In","transitionOut":"Out","transitionNone":"None","filter":"Filter","filterNone":"None","audioEffect":"Audio effect","audioEffectNone":"None","metadata":"Metadata","metaLayer":"Layer","metaScene":"Scene","metaOrigin":"Origin","metaYes":"Yes","source":"Source"},"iaTemplates":{"errorLoading":"Error loading","errorCreating":"Error creating","errorSaving":"Error saving","errorDuplicating":"Error duplicating","errorSearch":"Search error","generatingCode":"Generating code...","codeGenerated":"Code generated","applyToTemplate":"Apply to template"},"billing":{"avatarSlots":{"provisioning":"This clone already has an Avatar V5 creation or group awaiting verification. Check its status before creating another look.","slotRequired":"You need an available slot. Check your account entitlements in Billing.","slotSuspended":"This clone’s assigned slot is suspended. Check its subscription in Billing.","refresh":"Refresh entitlements from Stripe","company":"Purchase as a business (Stripe will request tax identification)","title":"Premium Clone · Avatar V5","description":"One slot is assigned to a real clone and reused for its different looks. After purchase, the matching HeyGen capacity is provisioned; creation waits for confirmation.","price":"€39/month per additional slot, before tax","credits":"The slot subscription is separate from credits used to generate images and videos.","includedRule":"Full-price Pro at €390 or €399/month includes one slot. The 50% Pro offer does not include it.","loading":"Loading slots…","loadError":"Slot availability could not be loaded.","balanceUnavailable":"The balance could not be loaded after this operation. Check it again before creating another avatar.","counts":"Included: {included} · Additional: {additional} · Assigned: {assigned} · Free ContentFlow slots: {available}","providerPending":"Awaiting HeyGen provisioning: {count}.","suspended":"Suspended assignments: {count}. Avatars and their history are preserved.","unavailable":"Slot subscriptions are not enabled yet.","consent":"I want an additional slot with a recurring monthly charge of €39 plus applicable taxes. I understand that after payment in Stripe, clone creation will wait until HeyGen capacity is provisioned.","checkout":"Continue to Stripe","opening":"Opening Stripe…","checkoutError":"Checkout could not be opened. Try again or contact support.","cancellation":"Manage cancellation in the billing portal. Avatars and historical data are preserved."},"addonsTitle":"Add-ons","addonsDescription":"Add specific capabilities without changing your plan.","premiumClone":"Premium Clone","cloneDescription":"An additional slot to clone a real person with consent, a consistent identity and maximum quality.","cloneSlot":"This add-on adds one Premium Clone slot to your account.","perMonth":" / month","requestAddon":"Request add-on","supportOnly":"Request this through support; this button does not trigger an automatic charge.","resolveTitle":"Resolve billing","resolveDescription":"Pay an invoice, update your card or review a renewal.","historyDescription":"Concept, explanation, status, context, credits and balance for each movement.","pricesTitle":"Credit prices","pricesDescription":"Service catalog generated from the current charging rules.","invoices":{"title":"Your invoices","description":"Tax invoices issued for each payment. Download a PDF whenever you need it.","number":"No.","date":"Date","amount":"Amount","status":"Status","download":"Download","states":{"paid":"Paid","outstanding":"Outstanding","partial":"Partially paid","draft":"Draft","cancelled":"Cancelled","refunded":"Refunded","unknown":"Unknown"},"loadError":"Could not load invoices.","retry":"Try again"},"addonEmailSubject":"Request Premium Clone add-on","addonEmailBody":"I would like an additional Premium Clone (Avatar V) slot for account {account}. Price: €39/month.","title":"Billing & Credits","subtitle":"Balance, usage and transaction history","planName":"Plan {planName}","active":"Active","creditsPerMonth":"{credits} credits/month","pricePerMonth":"{price}€/month","crPerEuro":"{ratio} cr/€","noPlan":"No active plan","noPlanDesc":"Contact us to activate your subscription","currentBalance":"Current Balance","cr":"cr","used":"used","total":"total","usagePct":"{pct}% of plan used this cycle","consumed":"Consumed","creditsCycle":"credits this cycle","received":"Received","purchasesAdjustments":"purchases + adjustments","lowBalance":"Low balance","lowBalanceDesc":"You have {balance} credits remaining ({pct}% of plan).","lowBalanceDays":"At the current rate, you have ~{days} days left.","consumptionProjection":"Consumption Projection","avgDailyConsumption":"Average daily consumption","crPerDay":"cr/day","estimatedDaysRemaining":"Estimated days remaining","days":"days","monthlyProjection":"Monthly projection","exceedsPlanBy":"Exceeds plan by {amount} cr","consumptionByService":"Consumption by Service","serviceCredits":"{credits} cr ({count}x)","transactionsTab":"Transactions","usageLogsTab":"Usage Logs","noTransactions":"No transactions recorded","noUsageLogs":"No usage logs recorded","headerDate":"Date","headerType":"Type","headerCredits":"Credits","headerBalance":"Balance","headerNote":"Note","headerService":"Service","headerStatus":"Status","typePurchase":"Purchase","typeConsumption":"Consumption","typeAdjustment":"Adjustment","viewFullHistory":"View full history"},"transactions":{"movementLabels":{"purchase":"Purchase","consumption":"Consumption","adjustment":"Adjustment","completed":"Completed","pending":"Pending","failed":"Failed","refunded":"Refunded","partiallyRefunded":"Partially refunded","cancelled":"Cancelled"},"exportHeaders":{"id":"ID","date":"Date","type":"Type","concept":"Concept","description":"Description","status":"Status","credits":"Credits","before":"Balance before","after":"Balance after","context":"Context","service":"Service","action":"Action","reference":"Reference"},"videoNumber":"Video #{number}","exportFilename":"credit-history.csv","backToSettings":"Back to settings","title":"Transaction History","subtitle":"Complete log of credit movements","unifiedSubtitle":"Every movement with its concept, status, context and balance","of":"of","totalTransactions":"Total Movements","totalConsumed":"Total Consumed","totalPurchased":"Total Purchased","totalAdjusted":"Adjustments","creditsAdded":"Credits added","movementsExplained":"With traceability","consumptionByService":"Consumption by Service","consumptionByConcept":"Consumption by concept","transactionsTab":"Transactions","usageLogsTab":"Usage Logs","export":"Export CSV","newest":"Newest","oldest":"Oldest","searchPlaceholder":"Search by type, note, credits...","unifiedSearchPlaceholder":"Search by concept, explanation, context, status or credits...","allStatuses":"All statuses","dateAll":"All","dateToday":"Today","date7d":"7 days","date30d":"30 days","date90d":"90 days","noTransactions":"No transactions recorded","loadError":"The movement history could not be loaded","noUsageLogs":"No usage logs recorded","headerDate":"Date","headerType":"Type","headerCredits":"Credits","headerBalance":"Balance","headerNote":"Note","headerService":"Service","headerConcept":"Concept and explanation","headerStatus":"Status","headerVideo":"Video","showing":"Showing {from}-{to} of {total}","prev":"Previous","next":"Next","beforeAfter":"Balance before → after","balanceNotRecorded":"Historical balance not recorded","creditsNotRecorded":"Amount not preserved","historicalMissing":"This historical movement did not retain its original concept","movementId":"Movement ID","serviceSlug":"Internal service","sourceAction":"Source action","operationReference":"Operation reference","relatedMovement":"Related movement","traceability":"Traceability","traceabilityExact":"Exact","traceabilityInferred":"Inferred","traceabilityMissing":"Not recorded historically","openResult":"Open result"},"pageTips":{"aboutThisPage":"About this page","close":"Close"},"landingTemplateModal":{"domainLabel":"HTML landing domain","selectDomain":"Select an active domain","configureDomain":"Configure an active HTML domain in Website before generating.","htmlReleaseHint":"A versioned HTML page will be published and can be updated without deploying the app."},"funnelGenerator":{"title":"Funnel Generator","subtitle":"Generate headlines, email sequences and complete VSL scripts","loadingAccount":"Loading account...","tabHeadlines":"Landing Headlines","tabEmails":"Email Sequence","tabVsl":"VSL Builder","tabSaved":"Saved Ideas","tabStats":"Stats","campaign":"Campaign","noCampaign":"No campaign","noMedium":"No medium","loadingCampaigns":"Loading campaigns...","selectCampaign":"Select campaign","referenceUrlLabel":"Reference URL (optional)","referenceUrlPlaceholder":"https://example.com/reference-landing","generationError":"Generation error","unknownError":"Unknown error","variationsGenerated":"{count} variations generated","webAnalyzed":"Web analyzed","voiceDna":"VoiceDNA","saving":"Saving...","savedToIdeas":"Saved to Ideas","emailSequenceCount":"Sequence of {count} emails","persona":"Persona","newGeneration":"New generation","generating":"Generating...","generateHeadlines":"Generate Headlines","generateEmailsReplay":"Generate Replay Emails","generateEmailsLastHours":"Generate Last Hours Emails","generateEmailsRegistration":"Generate Registration Emails","selectCampaignToStart":"Select a campaign to start generating","stageGatheringContext":"Gathering context","stageGatheringContextDetailHeadlines":"Product, audience, brand...","stageGatheringContextDetailEmails":"Product, audience, brand voice...","stageAnalyzingReference":"Analyzing reference","stageAnalyzingReferenceDetail":"Extracting patterns from the web...","stageGeneratingVariations":"Generating variations","stageGeneratingVariationsDetail":"Creating headlines with different angles...","stageFinalizing":"Finalizing","stageFinalizingDetailHeadlines":"Reviewing coherence and format...","stageFinalizingDetailEmails":"Reviewing tone, subjects and structure...","stageWritingSequence":"Writing sequence","stageWritingSequenceDetail":"Creating optimized emails for each stage...","completed":"Completed","generatingHeadlines":"Generating headlines...","generatingEmails":"Generating emails...","headlinesGenerated":"Headlines generated","emailsGenerated":"Emails generated","estimatedTimeRemaining":"Estimated time remaining: ~{minutes} min","variation":"Variation {label}","variationWithName":"Variation {label} — {name}","archived":"Archived","landingsCount":"Landings ({count})","landingsCountShort":"{count} landings","more":"more","fav":"Fav","removeFavorite":"Remove favorite","markFavorite":"Mark as favorite","favorite":"Favorite","generateNewLandings":"Generate new Landings","generateLandings":"Generate Landings","landing":"Landing","unarchive":"Unarchive","archiveAction":"Archive","clickToConfirm":"Click to confirm","areYouSure":"Are you sure?","h1MainHeadline":"H1 — Main headline","h2Subtitle":"H2 — Subtitle","avatarTargetAudience":"Avatar — Target audience","topicsWebinarContent":"Topics — Webinar content","topicsLabel":"Topics","ctaActionButton":"CTA — Action button","reasoning":"Reasoning","landingPagesCount":"Landing Pages ({count})","visits":"{count} visits","copied":"Copied","copyAll":"Copy all","copyAction":"Copy","copyLabel":"Copy {label}","onlyH1H2":"H1+H2 only","galleryTabAll":"All","galleryTabFavorites":"Favorites","galleryTabArchived":"Archived","emptyAllIdeas":"No saved ideas","emptyAllIdeasSub":"Generate headlines and they will be saved here automatically","emptyFavorites":"No favorites","emptyFavoritesSub":"Mark your best ideas with the star","emptyArchived":"No archived","emptyArchivedSub":"Archived ideas appear here","emailSubject":"Subject","emailPreheader":"Preheader","emailGoal":"Goal","hideBody":"Hide body","viewFullBody":"View full body","sequenceCopied":"Sequence copied","copyFullSequence":"Copy full sequence","emailTypePainPoint":"Pain Point","emailTypeFomo":"FOMO","emailTypeSocialProof":"Social proof","emailTypeCuriosity":"Curiosity","emailTypeScarcity":"Scarcity","emailTypeDayOf":"Event day","emailTypeLastCall":"Last call","emailTypeReplayAvailable":"Replay available","emailTypeHighlights":"Highlights","emailTypeTestimonials":"Testimonials","emailTypeReplayEnding":"Replay ending","emailTypeCartReminder":"Reminder","emailTypeObjectionBreaker":"Objection breaker","emailTypeBonusReveal":"Bonus","emailTypeCountdown":"Countdown","emailTypeDoorClosing":"Final close","emailTypeAnticipation":"Anticipation","emailTypeInvitation":"Invitation","emailTypeReminder":"Reminder","emailTypeLastChance":"Last chance","emailTypeValue":"Value","emailTypeFollowUp":"Follow up","generatingLandingVariant":"Generating landing {variant}...","landingVariantCreated":"Landing {variant} created","landingVariantError":"Error in landing {variant}","style":"Style","viewLanding":"View landing","copyUrl":"Copy URL","createLandingPage":"Create Landing Page","createLandingSubtitle":"2 versions (A/B) will be generated in the background","htmlDomain":"HTML landing domain","htmlDomainLoading":"Loading domains...","htmlDomainChoose":"Choose a domain","htmlDomainUnavailable":"Connect an active HTML domain in Website before generating a landing.","htmlTrackingFromSettings":"The landing reads published pixels and code from Tracking and cookies.","visualStyle":"Visual style","styleMinimal":"Minimal","styleMinimalDesc":"Clean, elegant typography, lots of white space","styleBold":"Bold","styleBoldDesc":"Dark background, gradient accents, large text","styleCorporate":"Corporate","styleCorporateDesc":"Professional, subtle borders, structured layout","styleStartup":"Startup","styleStartupDesc":"Modern, vibrant colors, rounded elements","additionalSections":"Additional sections","sectionSpeakerBio":"Speaker CV / Bio","sectionSpeakerBioDesc":"Section with the speaker's biography, achievements and career","sectionGift":"Registration Gift","sectionGiftDesc":"Section with a free resource or bonus for registering","sectionSuccessCases":"Success Cases","sectionSuccessCasesDesc":"Testimonials with concrete results from real clients","sectionBannerImage":"Banner Image","sectionBannerImageDesc":"Include the campaign banner image in the landing","cancelAction":"Cancel","generate2Landings":"Generate 2 Landings (A/B)","configHeadlines":"Headlines Configuration","configEmailSequence":"Email Sequence Configuration","tone":"Tone","toneDirect":"Direct","toneEmpathic":"Empathic","toneProvocative":"Provocative","toneAspirational":"Aspirational","audienceAvatar":"Audience / Avatar","audiencePlaceholder":"Describe your ideal audience...","mainBenefit":"Main benefit","mainBenefitPlaceholder":"The key result you offer...","ctaStyle":"CTA Style","ctaUrgency":"Urgency","ctaCuriosity":"Curiosity","ctaValue":"Value","ctaExclusivity":"Exclusivity","variationCount":"No. of variations","specificTopicOptional":"Specific topic (optional)","specificTopicPlaceholder":"Leave empty for generic variations","sequencePhase":"Sequence phase","phaseRegistration":"Registration Invitation","phaseRegistrationDesc":"Pre-webinar emails with pain points and FOMO","phaseReplay":"Replay Invitation","phaseReplayDesc":"Post-webinar: highlights and replay urgency","phaseLastHours":"Last Hours","phaseLastHoursDesc":"Countdown to close, bonus, objections","emailsWord":"emails","webinarDate":"Webinar date","webinarTime":"Webinar time","cartCloseDate":"Cart close date","closeTime":"Close time","offerName":"Offer name","offerNamePlaceholder":"Program / course / offer name...","webinarTopic":"Webinar topic","webinarTopicPlaceholder":"Main webinar topic...","senderName":"Sender name","senderNamePlaceholder":"Name that appears as sender...","emailCount":"No. of emails","aiSuggested":"AI suggested","sectionBenefits":"Key benefits","sectionBenefitsDesc":"List of main benefits of the webinar or product","sectionTrustBar":"Trust bar","sectionTrustBarDesc":"Logos of media, companies or certifications","sectionWhoItsFor":"Who it's for","sectionWhoItsForDesc":"Section describing the ideal attendee profile","sectionAgenda":"Agenda / Topics","sectionAgendaDesc":"Key points that will be covered in the webinar","sectionSocialProof":"Social proof","sectionSocialProofDesc":"Testimonials and reviews from previous participants","sectionStatsBar":"Stats bar","sectionStatsBarDesc":"Numbers and metrics of results achieved","sectionFeatures":"Features","sectionFeaturesDesc":"List of features or modules included","sectionFaq":"FAQ","sectionFaqDesc":"Answers to the most common questions","selectAll":"Select all","deselectAll":"Deselect all","internalQaLandingLabel":"Internal QA form","internalQaLandingDescription":"Own account only. Fixed synthetic details, a real no-contact CRM record and no communications. Generated pages remain drafts for review. AI generation uses the existing credit calculation.","internalQaLandingDraftCreated":"QA draft {variant} created — review in HTML pages","internalQaLandingUnavailable":"The internal QA form is unavailable for this account or published page. Review its saved submission mode and domain before generation.","internalQaReviewHtmlPages":"Review HTML pages"},"publicErrors":{"invalidRequest":"The request is invalid.","unauthenticated":"Sign in to continue.","forbidden":"You do not have permission to perform this action.","notFound":"The requested resource could not be found.","conflict":"The action could not be completed because of a conflict.","rateLimited":"Too many requests. Try again later.","insufficientCredits":"There are not enough credits to send this message.","providerUnavailable":"The external provider is temporarily unavailable.","serviceUnavailable":"The service is temporarily unavailable.","helpTranslationUnavailable":"This guide is being prepared in English. Try again shortly.","authInvalidEmail":"Enter a valid email address.","authInvalidCredentials":"The email address or password is incorrect.","authEmailNotConfirmed":"Confirm your email address before signing in.","authLinkExpired":"This link has expired or has already been used. Request a new one.","authRateLimited":"Too many attempts. Wait a few minutes and try again.","authWeakPassword":"Your password must be at least 8 characters long.","authPasswordMismatch":"The passwords do not match.","authAccountNotAuthorized":"That Google email address is not linked to an active ContentFlow365 account. Use the address you purchased or were invited with.","authAccountValidationFailed":"We could not validate your account just now. Request a new link or try again later.","authCallbackFailed":"We could not complete sign-in. Use the latest link you received or request a new one.","authRecoveryFailed":"We could not send the link. Check your connection and try again.","authActivationFailed":"We could not activate your account. Try again.","profileUpdateFailed":"We could not save your profile changes.","profileImageInvalid":"Choose a valid JPG, PNG, WebP or GIF image.","profileImageTooLarge":"The image must be no larger than 5 MB.","emailVerificationSendFailed":"We could not send the verification code. Try again.","emailVerificationNoEmail":"Your account does not have an email address.","emailVerificationResendWait":"Wait a few seconds before requesting another code.","emailVerificationInvalidCode":"Enter the 6-digit code.","emailVerificationCodeRequired":"Request a code first.","emailVerificationCodeExpired":"The code has expired. Request a new one.","emailVerificationTooManyAttempts":"Too many attempts. Request a new code.","emailVerificationCodeIncorrect":"That code is incorrect.","accountNotFound":"We could not find your account.","slugInvalid":"Use 2–40 characters: letters, numbers and hyphens.","slugTaken":"That URL is already in use. Choose another one.","unknown":"Something went wrong. Try again.","aeCatalogLoadFailed":"Could not load the template catalog.","aeCatalogQaBlocked":"Local access to staging is blocked by Vercel security verification. Retrying will not resolve this; QA access must be restored.","aeCatalogInvalid":"Invalid catalog response.","aeSelectionInvalid":"Invalid position or template.","aeVideoNotFound":"Video not found.","aeVideoAccountMissing":"The video has no account.","aeVideoForbidden":"You do not have access to this video.","aeDirectorUnavailable":"The Director is not available to add an AE Render.","aeCatalogRequestConflict":"This request was already used for a different selection. Reopen the catalog.","aeTemplateUnavailable":"Select an available Remotion template.","aeVideoBusy":"An operation is already in progress for this video.","aeCreateFailed":"Could not create the AE Render. You can retry the selection.","aeBindingConflict":"The AE Render does not belong exclusively to this video.","aeCatalogRenderChanged":"The AE Render has changed or is already regenerating. Reopen the catalog.","aeSegmentLocked":"This Director segment cannot be modified. Reload the editor.","aeApplyFailed":"Could not apply the template. The change was not saved.","aeSaveUnconfirmed":"Could not confirm that all AE Render changes were saved. Your text is still here.","aeRegenForbidden":"You do not have access to regenerate this AE Render ({status}). Check the account or support session.","aeRegenUnconfirmed":"Could not confirm that regeneration started ({status}). The service is not responding correctly. Check the status before trying again to avoid duplicates.","aeRegenChanged":"The AE Render has changed or is already processing. Reload the timeline to check its status.","aeRegenPrepareFailed":"Could not prepare the segment ({status}).","aeRegenReconcileFailed":"Could not sync the template with the timeline ({status}).","aeRegenLoadFailed":"Could not load the current template ({status}).","aeRegenDispatchFailed":"Could not start regeneration ({status}).","aeRegenConnectionLost":"The connection was lost while sending the regeneration request. Check the AE Render status before trying again to avoid duplicates.","renderLoading":"The AE Render is loading. Close and reopen the catalog.","forkFailed":"Could not isolate the copy.","noEditableBinding":"AE Render has no editable link"},"appShell":{"loading":"Loading...","unlinkedTitle":"This sign-in is not linked to an account","loadErrorTitle":"We could not load your account","noActiveAccountTitle":"We could not find an active account","unlinkedDescription":"You signed in as {email}. Sign out and use the same email address you used for your purchase.","loadErrorDescription":"Your account data could not be loaded. You can try again without signing out.","noActiveAccountDescription":"Your user exists, but it does not currently have an active account assigned. Open support chat so we can review it.","supportRestoreErrorTitle":"We could not restore the support account","supportRestoreErrorDescription":"The support catalogue could not be loaded. Your support session is still saved in this tab; retry or return to your own accounts.","supportTargetMissingTitle":"This support account is no longer available","supportTargetMissingDescription":"The saved account no longer appears in the authorised support catalogue. You can return to your own accounts safely.","returnToOwnAccounts":"Return to my accounts","retry":"Try again","signInDifferentEmail":"Sign in with another email","humanHelp":"If you need help from a person, open the blue support chat. A real ticket will be created for the team when you request it.","closeNavigation":"Close navigation","supportTicketsPending":"{count, plural, one {# pending support ticket} other {# pending support tickets}}","supportTicketsEmpty":"Support inbox with no pending tickets","openSupportTickets":"Open support tickets"},"supportAccountSelector":{"button":"Support","buttonTitle":"Open the support account selector","title":"App account access","accountCount":"({count, plural, one {# account} other {# accounts}})","close":"Close support account selector","searchPlaceholder":"Search by name or email...","clearSearch":"Clear search","loading":"Loading support accounts...","error":"The support account catalogue could not be loaded.","retry":"Try again","zeroAccounts":"There are no support accounts available.","zeroResults":"No accounts match this search.","taskLabel":"Task or ticket","taskPlaceholder":"E.g. SUP-1234","taskRequired":"Enter the task or ticket before continuing.","environmentLabel":"Environment","reasonLabel":"Reason","reasonCustomer":"Customer-reported issue","reasonQa":"QA verification","reasonData":"Data investigation","reasonIncident":"Incident response","reasonOther":"Other","chooseAccountThenUser":"Choose the account first. Then select one of its users by name or email.","chooseUser":"Select user","chooseUserHint":"You will view this account with that user’s permissions in read-only mode.","backToAccounts":"Back to accounts","userSearch":"Search by name or email","usersLoading":"Loading users…","usersError":"The users could not be loaded. You can try again.","usersEmpty":"This account has no users available for this view.","usersNoResults":"No users match your search.","unnamedUser":"Unnamed user","noUserEmail":"No email registered","moreUsers":"Show more users","viewModeLabel":"Visible permissions","viewStaff":"Support staff","viewUser":"Exact user view","userIdLabel":"Account user","userIdPlaceholder":"User email or identifier","userIdHint":"Choose an account user to check their permissions.","userRequired":"Select a user on this account to continue.","fieldInvalid":"Invalid value: {field}.","noteLabel":"Optional detail (no sensitive data)","notePlaceholder":"Short description","startError":"The support context could not be opened.","favorites":"Favorites","allAccounts":"All accounts","favorite":"Mark {name} as favorite","unfavorite":"Remove {name} from favorites","archive":"Archive {name}","showArchived":"Show archived ({count})","hideArchived":"Hide archived"},"appDataAvatares":{"wizardV2Denied":"Avatar Wizard V2 is not available for this user. The standard wizard remains active.","drawerOptions":{"status":{"active":"Active","inactive":"Inactive","creating":"Creating…","addingMotion":"Adding motion…","training":"Training…","generatingPreview":"Generating preview…"},"orientation":{"vertical":"Vertical","horizontal":"Horizontal"},"camera":{"close_up":"Close-up","lateral":"Side view","picado":"High angle","plano_abierto":"Wide shot","talking_head":"Talking head","walking":"Walking"},"fit":{"crop":"Crop","contain":"Contain","cover":"Cover","fill":"Fill","scale":"Scale"},"engine":{"motion":"Motion","avatarIv":"Avatar IV","avatarIi":"Avatar II","clone":"Clone","avatarV":"Avatar V","omnihuman":"OmniHuman 2"},"tags":{"seated":"Seated","standing":"Standing","sexy":"Sexy","studio":"Studio","luxuryHome":"Luxury home","centerGaze":"Looking at camera","sofa":"Sofa","bikini":"Bikini","elegant":"Elegant","fitness":"Fitness","youtube":"YouTube","sideGaze":"Looking to the side","sports":"Sports","ledLights":"LED lights","microphone":"Microphone","selfie":"Selfie","fashion":"Fashion","car":"Car","highAngle":"High angle","closeUp":"Close-up","gym":"Gym","coffee":"Coffee","street":"Street","funny":"Funny"}},"trashFailed":"The avatar could not be moved to the trash.","restoreFailed":"The avatar could not be restored.","purgeFailed":"The avatar could not be deleted permanently. Try again.","retryFailed":"The avatar could not be retried. Check its status before trying again.","title":"Avatars","description":"Manage avatars for video production","persona":"Persona","allPersonas":"All","linkedTo":"Avatar linked to:","avatarVStatus":"Avatar V status","orientation":"Orientation","needsVerification":"Needs verification","needsVerificationHint":"Show only avatars that need identity verification","trash":"Trash","trashHint":"Show deleted avatars so you can restore them","backToAvatars":"Back to avatars","createWithAi":"Create avatar with AI","inTrash":"In the trash","restoring":"Restoring…","restore":"Restore","purging":"Deleting permanently…","purge":"Delete permanently","confirmPurge":"Delete this avatar permanently? This cannot be undone.","preparingTraining":"Preparing training…","uploadingToHeyGen":"Uploading image to HeyGen","addingMotion":"Adding motion…","aboutTwoMinutes":"About 2 minutes","trainingAvatar":"Training avatar…","tenToTwentyMinutes":"10–20 minutes","generatingSample":"Generating sample video…","almostReady":"Almost ready","avatarCreationFailed":"Could not create avatar","avatarVCreationFailed":"Could not create Avatar V","avatarVTrainingFailed":"HeyGen training failed. Try again or contact support.","invalidTrainingImage":"The image cannot be used for training. Choose a clear face photo.","trainingTimedOut":"Avatar training took too long. Try again.","heyGenUploadFailed":"The image could not be uploaded to HeyGen.","avatarTrainingFailed":"Avatar training failed.","addMotionFailed":"Motion could not be added to the avatar.","retrying":"Retrying…","retry":"Retry","deleting":"Deleting…","delete":"Delete","generatingDemo":"Generating demo video…","trainingInHeyGen":"Training in HeyGen","fiveToFifteenMinutes":"About 5–15 minutes","wizardStepPersona":"Persona","wizardStepImage":"Image","wizardStepSettings":"Settings","wizardStepCreate":"Create","discardWizard":"Discard wizard","confirmDiscardWizard":"Discard this in-progress avatar wizard?","generatingImages":"Generating…","fourImagesFor":"4 images for","tapForProgress":"Select to see progress","imagesReady":"Ready!","imagesGenerated":"Images generated","continueWizard":"Continue wizard","imageGenerationFailed":"Image generation failed","imageGenerationFailedHint":"The images could not be generated. Open the wizard to retry.","imageGenerationNotStarted":"Generation not started","imageGenerationNotStartedHint":"This resolution is not available yet. This attempt was not charged. Your draft is saved; open it to continue.","avatarFailed":"Avatar creation failed","imagesStillSaved":"Your images are still saved","retryWithoutRegenerating":"Retry without regenerating","wizardInProgress":"Wizard in progress","wizardStepProgress":"Step {current}/{total} · {label}","unnamedAvatar":"avatar","imagesProgress":"{done} of {total} images ready","draftInConstruction":"In construction","confirmHideDraft":"Hide this draft in construction? Images already created stay in the Library.","wizard":{"sceneIdeasError":{"notConfigured":"We couldn’t prepare suggestions. Please try again shortly. You can also write your own scene.","unavailable":"Ideas could not be generated. Try again or enter the scene and outfit manually.","pending":"The previous request is still in progress. Wait a moment and check again."},"sceneStyles":{"optionalPremium":"OPTIONAL · PREMIUM","premiumNotice":"Only for Cinematic Avatar, at premium cost. You can continue without choosing a style.","clear":"Clear style","contextHint":"The style will apply to the image while preserving your references.","title":"Scene style","hint":"Choose a style, then Generate ideas. Visual framing references.","selfie_walk":{"label":"Walking selfie","description":"Arm’s-length close-up while walking along a lively street. Keep the face clear and the setting visible behind it."},"tracking":{"label":"Tracking","description":"Front medium shot: someone films you walking toward the camera. Relaxed arms and a visible setting."},"side_walk":{"label":"Side walk","description":"The camera follows from the side, with the face turned slightly toward it. Leave room ahead of the walking subject."},"urban_vlog":{"label":"Stationary selfie","description":"Arm’s-length close-up, standing still and facing the camera. People and cars move in the background while you stay in place."}},"cinematic":{"title":"Cinematic Avatar","model":"OmniHuman 2","premium":"PREMIUM","newLabel":"NEW","tagline":"Scene movement with your voice","slot":"Uses no avatar slot","scene":"Character, camera and environment in motion","lipSync":"Lip sync with your audio","direction":"Scene direction","hint":"Describe how the character, camera and elements in the image should move.","placeholder":"For example: the character speaks to camera, pedestrians walk and cars move in the background.","suggest":"Suggest prompt with AI","suggesting":"Analyzing image…","suggestError":"We couldn’t suggest the movement. Try again or write the scene direction.","suggestHint":"AI will analyze the selected image to suggest movement for people, vehicles and other visible elements. You can review and edit the result.","preview":"Indicative preview. OmniHuman generates movement, camera, scene and lip sync together, so each Reel or video is created anew and can come out different: other gestures, framing or camera movement, even with the same scene direction. In Motion, by contrast, the base movement always repeats, and in Avatar IV and Avatar V the result is very close to their demo.","image":"Selected image","review":"Review Cinematic Avatar","voice":"The demo will use the Persona’s default voice and match the audio length, up to 10 seconds.","noVoice":"Set the Persona’s default voice before generating.","generate":"Generate video","cost":"The cost will be confirmed using the audio duration before generation.","emptyPrompt":"No scene direction entered.","imageChanged":"If you change the image, review the scene direction too.","checkingCost":"Calculating cost…","checkCost":"Check demo cost","confirmCost":"Up to {credits, number} credits will be reserved for a demo of up to 10 seconds using your persona’s voice. Any difference will be refunded if the final cost is lower.","insufficientCredits":"You do not have enough credits for this demo.","cancelGeneration":"Cancel","confirmGenerate":"Confirm and generate","libraryEngine":"OmniHuman 2","returnToLibrary":"Back to my avatars","generationDone":"Your preview video is ready.","generationFailed":"The demo could not be completed.","generationReview":"We are checking your generation. You do not need to create another one.","generationPending":"We are preparing your demo. Return to this step to check the result.","resumeGeneration":"Try again","generationConnectionError":"We couldn’t continue with your video. Please try again in a few minutes.","quoteError":"The cost could not be calculated. Try again in a few minutes.","directionRequired":"Go back to the previous step and describe how you want the scene to move, or choose a movement style.","previewReadySettlement":"Your preview video is ready. We are confirming the final cost.","progressTitle":"Generating your demo","stepReserved":"Credits reserved","stepVoice":"Persona voice generated","stepVideo":"Video generating with OmniHuman 2","stepSave":"Saving the video to your library","elapsed":"Elapsed time: {time}","typical":"It usually takes about {minutes, plural, one {# minute} other {# minutes}}."},"shell":{"title":"Create avatar with AI","close":"Close avatar wizard","previous":"Previous","review":"Review and create","next":"Next"},"steps":{"persona":"Persona","image":"Image","setup":"Setup","create":"Create"},"persona":{"selectTitle":"Select a Persona","selectHint":"The avatar will be created from this Persona's master photo and profile details.","loading":"Loading Persona…","empty":"No Personas are available. Create a Persona first."},"lightbox":{"close":"Close image preview","previous":"Previous image","next":"Next image","imagePosition":"Image {current} of {total}"},"library":{"title":"Search the library","hint":"Only previously generated images, filtered by orientation. Choose one and select Apply.","close":"Close library","searchPlaceholder":"Search images…","searchAria":"Search images in the library","vertical":"Vertical","horizontal":"Horizontal","noAccount":"Select an account to browse the library.","loading":"Loading images…","timeout":"The library took too long to respond. Try again.","loadFailed":"Images could not be loaded. Try again.","retry":"Retry","empty":"No images with this orientation are available in the library.","previous":"Previous","next":"Next","cancel":"Cancel","apply":"Apply","untitledImage":"Untitled image"},"framePicker":{"title":"Choose a video frame","hint":"Choose a video and pause on the frame you want","close":"Close","loading":"Loading expressions…","noAccount":"Select an account to see its expressions.","loadFailed":"Expressions could not be loaded. Try again.","retry":"Retry","empty":"This Persona has no expression videos available. Generate or upload an expression first.","videoLabel":"Expression video","favorite":"Favorite","default":"Default","instruction":"Pause on the frame that best represents the avatar, then select the button.","extracting":"Extracting frame…","useFrame":"Use this frame","captureFailed":"The browser could not read this frame. Pause the video and try again.","extractFailed":"The frame could not be extracted. Try again."},"config":{"exactImage":"exact image","videoFrame":"video frame","faceSwap":"face swap","fourAiImages":"4 AI images","configureAvatar":"Configure avatar","nameHint":"Name the avatar and add attributes so it is easy to find in production.","avatarType":"Avatar type","economy":"ECONOMY","from":"From","creditsPreviewIncluded":"credits · preview included","reusableMotionVideo":"Reusable motion video","onlySynchronizesLipsAndVoice":"Only synchronizes lips and voice","recommended":"RECOMMENDED","photoClone":"Photo clone","virtualInfluencer":"Virtual influencer","noIdentityVerification":"No identity verification","promptDirectedMotion":"Prompt-directed motion","premiumCloneRequiredAria":"Avatar V requires the Premium Clone add-on","approvedEmiliGroupCost":"Approved Emili group · {credits} cr","premiumCloneCost":"Premium Clone · {credits} cr","includedSlotOccupied":"The slot included in {plan} is already in use. You need an additional slot for €{price}/month.","premiumCloneIncluded":"Premium Clone is included in your {plan} plan","premiumCloneAddonAvailable":"Additional Premium Clone slot available","selectAvatarV":"Select Avatar V","addOnRequired":"ADD-ON REQUIRED","maximumQualityAndStability":"Maximum quality and stability","reusesTheExistingConsent":"Reuses the existing consent","consentRequired":"Consent required","motionStyleForAvatarV":"Motion style for Avatar V","reuseApprovedGroupHint":"The new appearance will be added to this person's approved Avatar V group. HeyGen will preserve the identity and no additional slot will be used.","trainingVideoHint":"HeyGen trains the avatar's motion from a real expression video (15 seconds or longer). Select an owned or inherited video to accompany the photo from step 2.","premiumCloneRequired":"This person needs the Premium Clone add-on.","addonCostHint":"The add-on adds one slot for €{price}/month. This wizard will not charge you.","viewAndPurchaseAddOn":"View and purchase add-on","premiumCloneActive":"Premium Clone is already active for this person","premiumCloneReuseHint":"You can regenerate this person's appearance without purchasing another slot while this Premium Clone remains active.","includedSlotAvailableHint":"Your included slot is available. Creating a new group requires confirmed HeyGen capacity.","addonSlotAvailableHint":"Your purchased additional slot is available. Creating a new group requires confirmed HeyGen capacity.","accountThatWillCreateAvatarV":"Account that will create Avatar V","currentSystem":"Current system","myHeygen":"My HeyGen","checkingConnection":"Checking connection...","theExistingGroupBelongsToContentflow365":"The existing group belongs to ContentFlow365","connectAndEnableHeygenInIntegrations":"Connect and enable HeyGen in Integrations","connectedWorkerActivationPending":"Connected; worker activation pending","externalHeygenBalance":"Uses your company's slots and API balance","externalHeygenCostHint":"ContentFlow365 credits still apply. My HeyGen also uses the customer's API account balance, and the avatar remains bound to that connection with no fallback to the shared account.","existingAvatarVGroup":"Existing Avatar V group","existingGroupReuseHint":"Only the selected photo will be sent as a new appearance in the same group. You do not need to upload another video or sign another consent.","noDefaultVoice":"This person has no default voice","noDefaultVoiceHint":"Assign this person's voice in the {tab} tab to generate the spoken preview with their real voice. ContentFlow will not use HeyGen's default synthetic voice.","voice":"Voice","baseVideoDirection":"Base video direction","baseVideoDirectionHint":"This clip is generated once and defines all body movement. It is then reused with the person's voice through Lipsync v3.","economyEngine":"Economy engine","economyEngineHint":"The menu automatically adjusts the valid durations and price.","motionDuration":"Motion duration","motionDurationHint":"More seconds allow more gestures or movement through the scene.","generationPreviewWithYourVoice":"Generation + Precision preview with your voice: ","oneTime":"one time","afterwards":"Afterwards: ","forLipSync":"for lip sync","cinematicDirectionPrompt":"Cinematic direction prompt *","cinemaDirectionHint":"Describe the full performance: what the person does, where they move, their gestures and the camera movement. Cinema Studio cannot be generated from a basic style.","cinemaDirectionPlaceholder":"Example: Start looking at the camera, take two steps forward, point to the product with your right hand and finish smiling while the camera makes a smooth lateral move...","directionReadyToGenerate":"Direction ready to generate","cinemaDirectionRequired":"Required to avoid spending Seedance on generic motion","motionStyleFor":"Motion style for","essentialMotion":"Essential Motion","avatarIvMotionHint":"This profile is saved as an avatar attribute and is automatically applied to its preview and every Reel or YouTube video.","essentialMotionHint":"Choose a simple style. ContentFlow prepares the motion prompt automatically and then reuses the same body with each voice.","customMotionPlaceholder":"Describe how the avatar should move and express itself...","expressionIntensity":"Expression intensity","subtle":"Subtle","balanced":"Balanced","high":"High","reusableMotionHint":"ContentFlow generates a reusable base clip and uses HeyGen Lipsync v3 for every render. It does not recreate the body movement each time.","selectedImage":"Selected image","avatarImage":"Avatar image","videoFrameSuffix":" · video frame","framing":"Framing","outfit":"Outfit","premiumClone":"Premium Clone","photoAvatar":"Photo avatar","avatarName":"Avatar name *","exampleLayaAtTheWaterPlant":"Example: Laya at the water plant","nameSuggestionLoading":"Suggesting a name from the image…","nameSuggestionFailed":"I couldn't suggest a name. Type one yourself.","nameSuggestionHint":"Suggested from the image. You can change it anytime.","nameEditableHint":"You can change the name anytime.","cameraTypeProduction":"Camera type (production)","tagsForProductionFilters":"Tags (for production filters)","creationCost":"Creation cost","credits":"credits","andPreview":"and preview","totalCredits":"total credits","motionCostHint":"It is created once and reused in every video. Afterwards, only lip sync is charged: ","avatarIvVideoCostPrefix":"Each Avatar IV video costs ","forTheSecondsInWhichTheAvatar":"for the seconds in which the avatar appears.","avatarVCostHint":"HeyGen Avatar V processes the photo and motion video separately. After creation, it generates a 3–4 second spoken demo for preview. It offers higher quality and a very stable identity.","videoRate":"{perSecond} cr/s · ~{perMinute} cr/min","creditsPerSecond":"{credits} cr/s","creditAbbrev":"{credits} cr","durationSeconds":"{seconds} s","avatarIvPreview":"Avatar IV preview","avatarVTrainingAndDemo":"Avatar V training + demo","tier":{"economy":{"label":"Essential Motion","badge":"ECONOMY","desc":"Gemini Omni 1.1 Flash · 720p · 10 s recommended","examples":"Natural gestures with the best value; Kling remains available as a flexible alternative."},"cinema":{"label":"Cinema Studio","badge":"CINEMA","desc":"Seedance 2.0 · up to 15 s · 720p","examples":"Lower-cost cinematic direction for walking, acting and moving through a scene."},"cinema_hd":{"label":"Cinema Studio 2.5","badge":"CINEMA 2.5","desc":"Seedance 2.5 · up to 30 s · 720p","examples":"The premium option for long takes, complex performance and maximum continuity."}},"engine":{"geminiOmniVideo":{"badge":"RECOMMENDED","description":"720p · 4, 6, 8 or 10 seconds · best value at 10 s"},"kling30Std":{"badge":"FLEXIBLE","description":"720p · 5, 10 or 15 seconds · supports exactly 5 s"}},"preset":{"tranquilo":{"label":"Calm professional","desc":"Subtle, calm and with minimal gestures"},"expresivo":{"label":"Expressive presenter","desc":"Moderate gestures and lively expressions"},"muy_expresivo":{"label":"Highly expressive","desc":"Frequent gestures and high energy"},"custom":{"label":"Custom","desc":"Write your own description"}},"camera":{"talking_head":"Talking Head","close_up":"Close-up","plano_abierto":"Wide shot","lateral":"Side view","picado":"High angle"},"tag":{"seated":"Seated","standing":"Standing","elegant":"Elegant","luxuryHome":"Luxury home","sofa":"Sofa","bikini":"Bikini","fitness":"Fitness","youtube":"YouTube","ledLights":"LED lights","microphone":"Microphone","selfie":"Selfie","street":"Street","car":"Car","gym":"Gym","coffee":"Coffee","sensual":"Sensual","sports":"Sports","fashion":"Fashion"}},"create":{"pendingAttempt":"A creation attempt is already in progress. Wait for it to finish before trying again.","slotRequired":"You need an available slot. Check your account entitlements in Billing.","slotSuspended":"This clone’s assigned slot is suspended. Check its subscription in Billing.","slotProvisioning":"This clone already has an Avatar V5 creation or group awaiting verification. Check its status before creating another look.","providerProvisioningPending":"Your ContentFlow slot is registered and awaiting HeyGen provisioning. Training can start after capacity is confirmed; please try again once confirmed. No credits were reserved.","slotUnavailable":"Slot subscriptions are not enabled yet.","createFailed":"Avatar creation could not be started. Try again.","languageRequired":"Choose a primary language for this Persona or a default content language in the account settings before creating the spoken preview.","languageUnsupported":"The spoken preview is not yet available in the language selected for this Persona. No generation has started.","languageUnavailable":"The Persona language could not be verified. Please try again before starting generation.","dispatchWarning":"The avatar was saved, but processing could not be started. Check its status and try again from the list.","resultFailed":"The avatar could not be completed","premiumCloneReady":"Premium Clone is ready!","avatarIvReady":"Avatar IV is ready!","motionAvatarReady":"Motion Avatar is ready!","consentRequired":"Consent must be completed","generatingPreview":"Generating the preview…","trainingPremiumClone":"Training the Premium Clone…","creatingAvatar":"Creating the avatar…","readyDescription":"The avatar and its preview are now available in the gallery.","readyWithoutVoiceDescription":"The avatar is available. The spoken preview is pending because this person has no configured voice.","consentDescription":"Complete the person's authorization so HeyGen can continue training.","previewDescription":"The avatar already exists. We are finishing the short video with the configured motion and voice.","processingDescription":"You can keep this window open. It will update automatically without refreshing the page.","requestReceived":"Request received and motion profile saved","processStopped":"Process stopped","avatarReadyWithoutVoice":"Avatar ready; preview waiting for a voice","avatarAndPreviewReady":"Avatar and preview ready","awaitingConsent":"Waiting for consent","generatingSpokenPreview":"Generating preview with the person's voice","creatingInHeygen":"Creating the avatar in HeyGen","spokenPreview":"Preview with the person's voice","closeAndReturn":"Close and return to Avatars","confirmAndCreate":"Confirm and create","reviewHint":"Review the details before starting the process.","name":"Name","camera":"Camera","motionVideo":"Motion video","inheritedVideo":"{label} (inherited from {donor})","cinemaDirection":"Cinema direction","motion":"Motion","baseVideo":"Base video","baseVideoSummary":"{tier}{engine} · {seconds} s · {credits} cr","intensity":"Intensity","type":"Type","angle":"Angle","tags":"Tags","creatingButton":"Creating avatar…","startingButton":"Starting process…","confirmCredits":"Confirm — {credits} credits · Click again","createCredits":"Create avatar — {credits} credits"},"image":{"generateFailed":"The images could not be generated. Try again.","invalidFile":"The file must be an image.","processFailed":"The image could not be processed. Try another image.","uploadFirst":"Upload an image first.","uploadCropFirst":"Upload and crop an image first.","sceneRequired":"Write or select a scene description.","cropTitle":"Crop image","cropClose":"Close crop","cropConfirm":"Confirm crop","zoom":"Image zoom","title":"Generate the avatar image","hint":"AI will generate 4 photorealistic images. Choose the one that best represents the avatar.","modeAiTitle":"Generate with AI","modeAiHint":"Describe the scene and outfit","modeExternalTitle":"Based on an external image","modeExternalHint":"Upload an image and replace the face (4 with AI)","modeExactTitle":"Exact external image","modeExactHint":"Upload and use it unchanged (no AI)","orientation":"Orientation","vertical":"Vertical","horizontal":"Horizontal","verticalHint":"Reels, TikTok and Stories. 9:16 format.","horizontalHint":"YouTube and presentations. 16:9 format.","uploadAria":"Upload an external image","dropHint":"Drop the image to upload it","dragHint":"Drag an image here or click to upload","exactUploadHint":"The image will be used unchanged","faceSwapUploadHint":"The face will be replaced with the selected Persona","searchLibrary":"Search the library","externalAlt":"External image","uploaded":"Image uploaded","exactSelectedHint":"This exact image will be used without AI changes.","faceSwapSelectedHint":"4 variations will be generated using {name}'s face.","changeImage":"Change image","ideasTitle":"AI suggestions","regenerateIdeas":"Regenerate","generateIdeas":"Generate ideas","ideasPlaceholder":"E.g. Scene in Mexico City, urban variations · Casual outfit: jeans, T-shirt...","ideasFeedback":"Describe the suggestions you want (optional)","ideasHint":"Specify the location, atmosphere or clothing before clicking Generate ideas.","generatingIdeas":"Generating scene and outfit ideas...","scenes":"Scenes","outfits":"Outfits","ideasEmpty":"Select ‘Generate ideas’ to get scene and outfit suggestions.","scene":"Scene / Setting","scenePlaceholder":"Describe the place, atmosphere and lighting...","clothing":"Clothing / Outfit","clothingPlaceholder":"E.g. tailored black blazer, white silk blouse...","framing":"Framing *","angle":"Angle","generatingFour":"Generating 4 photorealistic images...","confirmCredits":"Confirm: {credits} credits · Select again to generate","useExact":"Use this image unchanged (0 credits)","regenerateFour":"Regenerate 4 images","generateFour":"Generate 4 images","progress":"Generating… {ready}/{total} ready","optionSelected":"Option {number} selected · select it again to remove it","selectBase":"Select the avatar's base image:","generating":"Generating…","option":"Option {number}","selected":"Selected","fullSize":"View full size","editWithAi":"Edit with AI","fullSizeHint":"Use the expand button to view an image full size.","cloneNoVideosTitle":"This Clone Persona does not have expressivity videos yet","videoFrameTitle":"Choose the exact video and frame","videoFrame":"Video frame","videoFrameHint":"Choose a video and frame (Clone)","cloneNoVideos":"This Persona has no expressivity videos available.","bodyFrame":{"full_body":{"label":"Full body","hint":"Head to toe"},"waist_up":{"label":"Waist up","hint":"Framed from the waist"},"bust_up":{"label":"Chest up","hint":"Framed from the chest"},"head_shoulders":{"label":"Close-up","hint":"Head and shoulders"},"face_macro":{"label":"Face macro","hint":"Face only"}},"cameraAngle":{"talking_head":{"label":"To camera","hint":"Looking straight into the lens"},"tres_cuartos":{"label":"3/4","hint":"Three-quarter angle"},"perfil":{"label":"Profile","hint":"Side view and silhouette"},"contrapicado":{"label":"Low angle","hint":"Powerful low-angle shot"}},"contextValidation":{"referencesRequired":"You can add up to 5 reference images. They are all optional.","duplicateReferences":"Some images are repeated. Keep one row per image and combine any notes you want to retain there; remove only the extra copies. The file will not be deleted.","primaryRequired":"Choose an Environment, Architecture or Interior reference as primary, or change its role to Detail and describe the scene in the prompt.","placementRequired":"Explain how to combine the indoor and outdoor references.","clothingRequired":"Describe the outfit or select Preserve clothing.","duplicateSkipped":"This image was already added. Its reference and notes were kept without adding another copy.","removeReference":"Remove reference {position}","sceneRequired":"Describe the scene in the prompt. You do not need an environment photograph."},"contextThings":{"open":"Choose from Things","title":"Saved Things","hint":"Choose a saved object image to add as a product or detail reference.","search":"Search Things","loading":"Loading Things…","loadError":"Could not load saved Things.","retry":"Retry","empty":"No Things match this search.","choose":"Use image of {name}","noImage":"No image","importError":"Could not add this Thing image. Please try again.","adding":"Adding…"},"contextSearch":{"notConfigured":"Internet search is unavailable because its cost configuration is missing. You can continue without searching: describe the place or add your images.","siteUnavailable":"Could not verify or read the official website. Try the full event name and year, or continue without searching.","failed":"Could not complete the search. You can retry or continue with your images and description."}},"sources":{"loadFailed":"Expressivities could not be loaded. Try opening this step again.","loading":"Loading expressivities…","consentMissing":"This Clone Persona has not signed Avatar V consent yet. Open its Expressivities tab and sign it before continuing.","processing":"Video unavailable while processing.","tooShort":"This video is too short for Avatar V.","unavailable":"This video cannot be used for Avatar V.","useAsInput":"Use {name} as the Avatar V input","recommended":"Recommended","inheritedFrom":"Inherited from {name}","empty":"This Persona does not have generated expressivities yet. Open its Expressivities tab to create them.","ownCount":"Your expressivities ({count})","donorCount":"Templates your profile can inherit ({count})","donorHint":"Expressivities from ContentFlow365 donor Personas matching your sex and age."},"lifecycle":{"restart":"Start over","restartConfirm":"Start a new avatar? This draft and its images will stay in a separate card. You can resume it later without generating them again.","draftSaveFailed":"The draft could not be saved. Your current form has been kept. Try again before starting a new avatar.","contextRecovered":"Original images and context restored. Review the settings and confirm the current cost before creating a new video.","contextRecoveryUnavailable":"The original context could not be recovered. The avatar and its images have been kept. Try again later.","contextRecoveryPending":"The original request is still pending or unconfirmed. No new generation has started. Check its status again.","contextRecoveryCompleted":"The original request is marked completed. Review its result before starting another generation.","contextRecoveryOutputPresent":"The original avatar already has a video. Open it to review the result before starting another generation.","contextRecoverySettlement":"The original result or credit refund has not been confirmed. The avatar has been kept; check its status again.","contextRecoveryDirection":"The original motion direction could not be recovered safely. The avatar, images and context have been kept.","restartBusy":"Wait for the current request to finish before starting over. You can close and resume this wizard without losing it.","cancel":"Cancel","restartAction":"Start a new avatar"}},"detail":{"select":"— Select —","none":"— None —","general":"General","production":"Production","imagePreviewAlt":"Avatar preview","editWithAi":"Edit with AI","avatarVDemo":"Avatar V demo","cinematicPreview":"Cinematic Avatar demo","cinematicPreviewNote":"Indicative preview. OmniHuman generates movement, camera, scene and lip sync together, so each Reel or video is created anew and can come out different: other gestures, framing or camera movement, even with the same scene direction. In Motion, by contrast, the base movement always repeats, and in Avatar IV and Avatar V the result is very close to their demo.","cinematicPreviewNoteShort":"Indicative preview: each video is generated anew and can come out different.","avatarIVPreview":"Avatar IV preview","motion":"Motion","verificationPending":"Verification pending","verificationHint":"HeyGen requires the person shown in the avatar to verify their identity by recording a short video reading a code before a video can be generated. This is required only once per person.","verifyIdentity":"Verify identity","trainingSteps":"Digital twin → photo look → TTS demo","trainingDuration":"About 5–15 minutes · you can close this window","autoRefresh":"Refreshes automatically every 5 seconds","failedHint":"You can delete this avatar and create a new one from the wizard.","closePreview":"Close preview","fullSizeAlt":"Full-size avatar","fixedAtGeneration":"Set during generation","notes":"Notes","hasContent":"Has content","statusActive":"Active","statusInactive":"Inactive","usedInVideos":"Used in videos","productionUse":"Production use","videoCount":"{count, plural, one {# video} other {# videos}}","unused":"Not used","camera":{"close_up":"Close-up","lateral":"Side view","picado":"High angle","plano_abierto":"Wide shot","talking_head":"Talking head","walking":"Walking"}},"consent":{"startFailed":"Identity verification could not be started. Try again.","missingLink":"HeyGen did not return a verification link. Try again in a few seconds.","networkFailed":"A network error prevented identity verification from starting.","downloadFilename":"identity-verification-{name}.png","title":"Verify identity","subtitleNamed":"Avatar for {name} · required by HeyGen","subtitleClone":"Cloned avatar · required by HeyGen","close":"Close identity verification","starting":"Generating verification link…","retry":"Try again","approved":"Identity verified!","approvedHint":"Generating the demo video. You can close this window; it will appear in a few minutes.","instructions":"The person shown in the avatar must record a short video (up to 35 seconds) reading the code shown by HeyGen aloud. Scan the QR code with their phone or send them the link.","expiryTitle":"You have only a few minutes to record it","expiryHint":"The code expires quickly. If the link asks you to sign in, it has expired. Return here and select ‘Regenerate code’ to get a new one.","downloadQrHint":"Download the QR code as an image to share it","downloadQr":"Download QR code","verificationLink":"Verification link","copyLink":"Copy link","copiedLink":"Link copied","verifyHere":"Verify on this device","waiting":"Waiting for verification…","regenerateHint":"Generate a new code","regenerate":"Regenerate code","expiresIn":"The code renews automatically · expires in"},"trashConfirm":"It will move to the trash and its 1:1 Avatar Set will be removed automatically. Shared sets are kept. You can restore the avatar and its default set will be recreated.","image":"Image","cameraType":"Camera type","enlarge":"Enlarge","download":"Download","downloading":"Downloading…","baseClip":"Base clip (Reel)","voicePreview":"Voice preview","voicePreviewHint":"This video uses the person's voice. The base clip is the original motion, without lipsync.","noRegenerate":"Motion is not regenerated from this card.","av4VoiceHint":"Real voice of the linked model{engine}. The video will use this voice.","providerErrorPolicyFull":"The external AI provider rejected the content under its policies. Try a different context or change the text and reference images before generating again.","providerErrorPolicyCard":"The AI provider rejected the content under its policies. Try a different context, text or images.","providerErrorRejectedFull":"The external AI provider could not load or accept a reference image. Try another image or context and try again.","providerErrorRejectedCard":"The AI provider could not accept a reference. Try another image or context.","providerErrorUpstreamFull":"The external AI provider returned a temporary error. Once this attempt is marked as failed, you can try again or use a different context.","providerErrorUpstreamCard":"Temporary AI provider error. If the attempt has failed, try again or change the context.","providerErrorGenericFull":"The external AI provider could not complete the generation. Once this attempt is marked as failed, you can try again or use a different context and images.","providerErrorGenericCard":"The AI provider could not complete the generation. Retry a failed attempt or try a different context.","providerErrorUnknownFull":"The avatar could not be completed. Review the request status and error details before preparing another attempt.","providerErrorUnknownCard":"The avatar could not be completed. Review the error details.","wizardV2Unavailable":"Avatar Wizard V2 is currently unavailable on the server. Access could not be checked. The standard wizard remains active."},"misCuentasGhl":{"createTitle":"Create a Go High Level account","createHint":"The same provisioning as purchase. The bar waits for each phase to return.","running":"Creating Go High Level","created":"GHL account created","elapsedIn":"in {time}","readyBoom":"Ready. It is in our agency.","brand":"Go High Level","filterAll":"All","filterReady":"Go High Level","filterNone":"No GHL","filterProgress":"Creating","filterAttention":"Needs attention","deleteAlsoGhl":"The linked Go High Level location will also be deleted.","errorCreate":"The GHL account could not be created.","linkPayment":"Link payment method","linkPaymentHint":"Uses the card from the account that bought the plan.","errorLinkPayment":"The payment method could not be linked.","errorLinkPaymentStripe":"This school still has no Stripe customer from the buyer account.","errorLinkPaymentLocation":"This school has no Go High Level location yet.","errorLinkPaymentMethod":"The buyer account has no card that GHL can attach.","errorUnconfirmed":"Provisioning finished without confirming the GHL account.","errorCut":"Provisioning stopped before the GHL account was confirmed.","errorNotIncluded":"This group does not yet have the plan that includes Go High Level.","blockedPlan":"This account cannot open MultiCuentas with the contracted plan.","stepLocation":"Creating the company","stepLocationHint":"Inside our agency","stepZones":"Turning on the zones","stepZonesHint":"All 25 GHL features","stepUser":"User permissions","stepUserHint":"Administrator of this location","stepReady":"Link ready","stepReadyHint":"You can go in now","contacts":"Contacts","opportunities":"Opportunities","inbox":"Inbox","bots":"Bots","contactsCf":"CF contacts","opportunitiesCf":"CF opportunities","inboxCf":"CF inbox","botsCf":"CF bots"},"misCuentasCreate":{"whiteLabelBlocked":"White Label accounts cannot create new companies from MultiCuentas.","needsPro":"This account does not have MultiCuentas. A Pro plan or higher is required.","selectParentTitle":"Select a Multi-Account parent","selectParentBody":"{name} cannot act as a parent account. Select an agency with a Multi-Account plan first and create the client subaccount from there.","backToAccounts":"Back to My Accounts"},"emailVerification":{"banner":"Confirm your email to secure your account","verifyEmail":"Verify email","dismiss":"Dismiss","verifiedTitle":"Email verified","verifiedDescription":"Your account is secure. Thank you!","close":"Close","title":"Verify your email","introDescription":"We will send you a 6-digit code to confirm that this email belongs to you.","codeDescription":"Enter the 6-digit code we sent to {email}.","yourEmail":"your email","sendTo":"We will send the code to {email}.","sendCode":"Send code","digitLabel":"Digit {number}","verifying":"Verifying...","verify":"Verify","resendCountdown":"Resend code in {seconds}s","resend":"Resend code"},"heygenCredit":{"emptyBalance":"depleted","warning":"HeyGen is out of credits (balance {balance}). Video avatars will not be generated until the HeyGen account is topped up.","topUp":"Top up HeyGen","dismiss":"Dismiss"},"imageEditor":{"title":"AI Image Editor","subtitle":"Continuous chat to create and edit images","close":"Close editor","send":"Send","settings":"Settings","engine":"AI Engine","format":"Format","resolution":"Resolution","persona":"Persona","noPersona":"No persona","standard":"Standard","high":"High","square":"Square","portrait":"Portrait","horizontal":"Horizontal","vertical":"Vertical","preview":"Preview","apply":"Apply image","applying":"Applying...","applied":"Image applied","generating":"Generating...","thinking":"Thinking...","queued":"Queued...","startGeneration":"Starting generation...","uploadingS3":"Uploading to S3...","generationFailed":"Generation failed. Try again.","inputPlaceholder":"Describe what image you want to create or how to modify it...","pasteHint":"Ctrl+V to paste image","enterHint":"Enter to send, Shift+Enter new line","attachImage":"Attach reference image","editTitle":"Edit your image with AI","createTitle":"Create images with AI","editDesc":"Describe how you want to modify the image. You can upload reference images and have a continuous conversation.","createDesc":"Describe what image you want to create. Upload references, choose engine and format, and iterate with feedback.","currentImage":"Current image","suggestions":"Suggestions","imageGenerated":"Image generated","viewPrompt":"View prompt used","download":"Download image","reset":"Reset conversation","previewEmpty":"Generated image will appear here","editWithAI":"Edit with AI","generateWithAI":"Generate with AI","referenceDesign":"Design reference","referenceNumber":"Reference {number}","baseImage":"Base image","referencesCount":"References ({count}/10)","references":"References","addReference":"Add reference image","add":"Add","dragDrop":"drag and drop","mentionHint":"Type @ in the prompt to insert a reference","removeLogo":"Remove logo (you can enable it again in settings)","addBrandLogo":"Add brand logo","addNamedLogo":"Add {brand} logo","cancelGeneration":"Cancel generation","cancel":"Cancel","inputPlaceholderWithReferences":"Describe the image you want to create or how to modify it... (@ for references)","originalImage":"Original image","baseOriginal":"Base: original image","baseLatest":"Base: latest generated version","returnToOriginal":"Return to original","returnOriginalHint":"The next edit will use the original image, not the latest generated version","closeZoom":"Close zoom","currentBase":"Current base","useAsBase":"Use as base","applySuccess":"Image applied successfully","applyError":"We could not apply the image. No change was confirmed; please try again.","unknownError":"Unknown error","unsavedConfirm":"You have a generated image that has not been applied. Are you sure you want to leave?","invalidImage":"Use a valid image up to 10 MB.","generationCancelled":"Generation cancelled. You can try again with another prompt or engine.","connectionRetries":"Connection error ({count} attempts). Retrying...","policyFallback":"The primary provider rejected the image because of its policies. Trying an alternative provider...","retryingGeneration":"Retrying generation... (attempt {attempt}/10)","generatingImage":"Generating image...","contentPolicy":"Content policy","generationError":"Generation error","generationFailedAfterRetries":"Generation failed after several attempts","connectionLost":"Connection to the server was lost after several attempts","requestCouldNotProcess":"The request could not be processed","generationFailedDetails":"Generation failed. You can rephrase the instruction or try another engine.","generationTimeout":"Image generation took too long. Try again or adjust the instruction.","notUnderstood":"I did not understand the request.","connectionError":"We could not connect. No action was confirmed; please try again.","unknown":"unknown","famous":{"label":"Public figures","missingTitle":"Missing someone? Open the library in a new tab to add them","openLibraryAria":"Open the public figures library in a new tab","remove":"Remove","change":"Change public figure…","choose":"Choose a public figure (search)…","search":"Search by name, company, or role…","loading":"Loading…","noResults":"No results for “{query}”.","emptyLibrary":"The library is empty. Add public figures from the library.","loadError":"We could not load the public figures. Your image settings are unchanged.","retry":"Try again","results":"{count, plural, one {# result} other {# results}}","manage":"Manage library"},"quickSuggestions":{"edit":{"cartel1":"Change the main headline to “...”","cartel2":"Replace the person on the right with...","cartel3":"Darken the background and make the text larger","cartel4":"Remove the logo and add a discount badge","thumbnail1":"Replace the person on the right with...","thumbnail2":"Replace the person on the left with...","thumbnail3":"Change the headline to “...”","thumbnail4":"Darken the background and make the text more visible","general1":"Change the main text to “...”","general2":"Replace the person with...","general3":"Darken the background","avatarV1":"Change the outfit to a plain white T-shirt","avatarV2":"Change the background to a plain grey studio","avatarV3":"Change the jacket to an elegant black blazer","avatarV4":"Remove the background and use a neutral gradient"},"create":{"cartel1":"Generate a professional poster with vibrant colours","cartel2":"Create a minimalist ad with a gradient background","cartel3":"Design a live-event poster with a LIVE badge","cartel4":"Make a testimonial poster with a highlighted quote","thumbnail1":"Create an eye-catching thumbnail with large text","thumbnail2":"Generate a cinematic-style thumbnail","thumbnail3":"Design a thumbnail with a surprised expression","thumbnail4":"Make a thumbnail with strong colour contrast","general1":"Generate a professional image","general2":"Create an image with a clean, modern style","general3":"Design an eye-catching composition"}}},"linkedinAdsWorkspace":{"reportingRange":{"help":"How to choose dates and read coverage","title":"Report period","today":"Today","yesterday":"Yesterday","lastDays":"Last {count} days","custom":"Custom","includeToday":"Include today","since":"From","until":"To","apply":"Apply","selected":"{since} – {until} · inclusive UTC dates","invalid":"Select two valid dates in order, with no future dates and within the last ten years.","historical":"LinkedIn retains daily detail for the last six months. For older periods we show totals and their monthly precision without inventing daily charts.","reportedMonthly":"LinkedIn returns {since} – {until} with monthly precision. These totals may cover dates different from your selection.","unverified":"LinkedIn has not confirmed the effective dates of these totals.","noObservations":"LinkedIn returns no observations for this period; an empty response does not confirm zero activity or report access.","dailyUnavailable":"Daily detail is unavailable for this period.","metricRange":"{metric} · {since} – {until} (UTC)"},"creativeManagement":{"title":"Edit advertisement","description":"Review the current advertisement, prepare changes and confirm one operation.","identity":"Ad account {account} · Ad set {campaign} · Ad {creative}","close":"Close","loading":"Reading the current advertisement…","retry":"Reload advertisement","name":"Advertiser name","nameHelp":"This internal name does not change the media headline.","status":"Ad status","keepStatus":"Keep {status}","pause":"Pause","archive":"Archive","resume":"Resume","editCopy":"Change post text","commentary":"Full post text","editCta":"Change call to action","cta":"Call to action","removeCta":"Remove call to action","editUrl":"Change destination URL","url":"Destination URL (HTTPS)","readOnlyContent":"Post content is read-only. Content edits require an owned unpublished ad post, Page permissions and a complete list of its advertisements.","preview":"Review changes","observed":"Current observed advertisement","observationUnavailable":"The operation receipt is preserved, but the current advertisement settings could not be read. Check the original operation again to refresh them; this does not repeat the write.","headline":"Media headline","altText":"Alternative text","media":"Media identifier","immutableHelp":"Media, its headline and alternative text cannot be changed here. To use another media asset, prepare a new advertisement.","reviewTitle":"Changes to confirm","affected":"Affected advertisements: {count}","multipleWrites":"The post and advertisement require separate updates. If only one succeeds, both outcomes will be shown and the operation will remain blocked for recovery.","confirm":"I confirm these exact changes and all affected advertisements.","confirmSpend":"I approve changes that may affect advertising spend.","save":"Save confirmed changes","receipt":"Original operation result","operation":"Operation: {id}","requested":"Requested changes","verification":"Provider acknowledgement: {acknowledged} · Current state verified: {current}","yes":"Yes","no":"No","changedSince":"The operation completed earlier; the current advertisement no longer matches every change.","recoverHelp":"Check the original operation. This reads its current state without repeating a write. Keep this reference if the response is uncertain or partly applied.","recover":"Check original operation","another":"Prepare another change","help":"Editing requirements and recovery","ctaLabels":{"LEARN_MORE":"Learn more","SIGN_UP":"Sign up","DOWNLOAD":"Download","REGISTER":"Register","REQUEST_DEMO":"Request demo","SUBSCRIBE":"Subscribe","BUY_NOW":"Buy now","SHOP_NOW":"Shop now"},"errors":{"invalid":"Choose at least one valid change. Text must be complete and the destination must use HTTPS.","changed":"The account, identity or advertisement changed. Reload and review the current state.","active":"An unresolved operation is holding an affected resource. Recover its original reference.","writes":"Advertisement writes are currently disabled.","spend":"A live post use or resume requires enabled spending controls and explicit confirmation.","permissions":"The current connection lacks the required role or permissions.","content":"An organic Page or member post cannot be edited from this advertisement.","usage":"The complete list of advertisements using this post could not be verified.","review":"The advertisement is under review or its review state is unknown. It cannot be paused here.","resume":"Resume requires a verified positive budget and a future end date.","draft":"This advertisement is Draft and already off. Activation requires the existing separate preflight.","state":"The advertisement or its parent has no verified editable state.","notFound":"The original operation was not found for this account and environment.","reference":"The original reference cannot be read or saved. No new write will be sent.","uncertain":"The response is unknown. Keep the original reference and check its status; do not repeat the update.","ledger":"A provider response could not be recorded reliably. Keep the original reference and check its status.","generic":"The advertisement could not be verified. No automatic retry was sent."},"results":{"reserved":"Operation reserved; execution is not confirmed.","running":"Operation started; completion is not confirmed.","acknowledged":"All provider acknowledgements recorded; current state still needs verification.","partial":"Only part of the operation was applied. The remaining updates will not be sent again.","complete":"Every update was acknowledged and verified when the operation completed.","unsent":"No provider write was sent.","provider_rejected":"LinkedIn rejected the operation.","uncertain":"The provider response is unknown. The operation remains blocked.","unknown":"Result unavailable. Check the original operation."},"resourceResults":{"planned":"Not sent","sending":"Attempt started; response not recorded","acknowledged":"Acknowledgement recorded","unsent":"Not sent","provider_rejected":"Rejected by LinkedIn","uncertain":"Response unknown"}},"management":{"manage":"Manage","open":"Manage {name}","title":"Manage campaign","description":"Review the current LinkedIn settings, confirm the changes and verify the saved result.","close":"Close","identity":"Ad account {account} · Campaign {campaign}","loading":"Checking LinkedIn…","name":"Campaign name","budget":"Change daily budget ({currency})","budgetAmount":"Daily budget","totalBudget":"Total budget","bid":"Change existing bid ({currency})","bidAmount":"Bid amount","end":"End date (UTC)","endDate":"End date and time in UTC","start":"Original start (UTC)","status":"Campaign status","keepStatus":"Keep {status}","pause":"Pause","archive":"Archive","resume":"Resume","bidHelp":"The existing bidding strategy is preserved. Automatic bidding amounts cannot be edited here.","bidUnavailableHelp":"LinkedIn has not reported a bidding strategy with an editable amount. The existing strategy is preserved.","preview":"Review changes","current":"Current LinkedIn settings","beforeChange":"LinkedIn settings before this change","review":"Changes to confirm","servingHelp":"ACTIVE is the requested status. Delivery also depends on LinkedIn review, billing, dates, budget and the parent campaign group.","confirm":"I confirm these exact changes.","confirmSpend":"I authorize these changes that may incur advertising spend.","save":"Save confirmed changes","receipt":"Operation receipt","operation":"Reference: {id}","verification":"LinkedIn acknowledgement: {acknowledged} · Current matching settings: {current}","yes":"Yes","no":"No","changedSince":"The earlier operation was completed. Current settings no longer match that receipt.","recoverHelp":"Check the saved reference to recover the result. This action reads LinkedIn and never repeats the update.","recover":"Check saved result","another":"Plan another change","retry":"Reload current settings","errors":{"permissions":"Reconnect LinkedIn if authorization has expired, and check that your ad account role permits campaign updates.","invalid":"Enter at least one valid change. Use positive decimal amounts with a dot and at most two decimal places.","changed":"The account or current settings changed. Reload and review the latest settings before confirming.","active":"An operation is already saved for this campaign. Check its original reference before planning another change.","writes":"Campaign updates are currently disabled.","spend":"Changes that may incur spend are currently disabled. Pausing and archiving remain subject to the write permission.","bid":"This campaign uses automatic bidding. Its amount cannot be edited without changing strategy.","schedule":"Choose a future end date after the original start. Resuming requires a future end date.","budget":"Resuming requires a verified positive budget in the ad account currency.","draft":"A draft is already off. Use the campaign wizard and its activation checks to activate it.","state":"This campaign state cannot be edited here.","notFound":"No saved receipt was found for this reference. Keep it and check again; do not repeat the update.","reference":"The operation reference could not be read or saved. No new update can be sent until recovery is available.","uncertain":"The update result is unknown. Keep this reference and check the saved result without sending again.","generic":"The current LinkedIn result could not be verified. Try a read again before making changes."},"results":{"reserved":"The attempt is reserved. Its update response has not yet been confirmed.","acknowledged":"LinkedIn acknowledged the update. The matching current settings still need verification.","complete":"The update acknowledgement and matching settings were verified.","provider_rejected":"LinkedIn rejected this operation. Review the current settings before planning a corrected change.","unsent":"The update was not sent. Review current settings before planning another change.","uncertain":"The update response is uncertain. A matching current state alone does not confirm that this attempt succeeded.","unknown":"The attempt reference is retained. Its result still needs verification."},"requested":"Requested changes"},"temporal":{"title":"Temporal analysis","description":"Observed weekday performance and comparison within the selected UTC period.","metric":"Daily metric","averageMetric":"Average {metric} per observed day","coverage":"{observed} of {expected} days reported · {start}–{end} UTC","observationHelp":"Missing dates and values remain unknown. Averages use only days with that metric reported. These are observations from the selected period, not predictions or LinkedIn performance benchmarks. The current day may be incomplete.","weekdayPerformance":"Performance by weekday","spendDistribution":"Weekday and weekend spend","weekdays":"Monday–Friday","weekend":"Saturday–Sunday","distributionHelp":"Distribution uses only reported spend. An unknown group is not a reported zero; missing observations can change the distribution.","distributionUnavailable":"There is insufficient reported spend for this distribution.","metricUnavailable":"This metric has no reported daily values.","highestCtr":"Highest observed weekday CTR","lowestCtr":"Lowest observed weekday CTR","periodComparison":"Comparison within the period","comparisonHelp":"The period is split into two consecutive parts. Compare averages per observed day because the number of calendar days and reported values may differ.","earlier":"Earlier part","later":"Later part","halfCoverage":"{start}–{end} · {observed}/{expected} days with this metric","averageChange":"Change in daily average","changeHelp":"No percentage is calculated when the earlier average is zero or unavailable. A positive change is not automatically better performance.","day":"Weekday","observedDays":"Reported/calendar days","averageSpend":"Average daily spend","averageClicks":"Average daily clicks","dayCoverage":"{observed}/{expected}","ratioHelp":"CTR, CPC and CPL use weighted totals with matching metric coverage. Missing fields and zero denominators remain unavailable.","empty":"LinkedIn returned no daily observations for this period. This does not prove zero activity or sufficient reporting access.","unavailable":"Temporal analysis is unavailable for the current account and period.","performance":{"title":"Relative performance index","description":"Compare the two consecutive halves of this account’s selected UTC period. Higher CTR, lower CPC/CPL and lower daily spend variation raise the index.","overall":"Index / 100","incomplete":"The overall index requires all four components with complete daily coverage.","neutral":"50 means unchanged; above 50 means an improvement against the first half.","coverage":"{count} of 4 comparable components","consistency":"Spend stability","unavailable":"Unavailable","values":"First half: {earlier} · Second half: {later} · Weight: {weight}%","method":"How this index is calculated","formula":"Each component is 100 × later / (earlier + later) for CTR and 100 × earlier / (earlier + later) for costs and variation. Equal values give 50. The overall weights are CTR 30%, CPC 25%, CPL 25% and stability 20%. These are product-defined weights for an account-relative comparison; the index does not establish profitability or an industry benchmark.","consistencyHelp":"Stability compares the coefficient of variation of daily spend: population standard deviation divided by mean spend. Each half needs at least two reported days and positive mean spend. Missing days or required fields leave the component unavailable. A day that includes today can still be incomplete."}},"gallery":{"edit":"Edit advertisement","performanceTitle":"Ad performance","performanceRange":"Last {count} days · UTC","performanceLoading":"Loading performance…","performanceFailed":"Performance could not be loaded. The ad preview is still available.","retryMetrics":"Retry performance","performanceHelp":"— means no observation or an undefined ratio. Leads are LinkedIn Lead Gen Form submissions.","title":"Campaign ad gallery","intendedStatus":"Intended status: {status}","allCampaigns":"All campaigns","createdDate":"Ad created: {date}","helpLink":"Gallery help","help":"Real creative copy and media, newest first when LinkedIn provides creation dates; unknown dates appear last. Post dates are separate. Includes drafts and does not activate ads.","campaign":"Campaign","grid":"Gallery","list":"List","noCampaigns":"No campaigns are available.","empty":"This campaign has no ads.","loading":"Loading creative…","failed":"The ad gallery could not be loaded.","retry":"Refresh preview","previous":"Previous","next":"Next","pageSummary":"Showing {from}–{to} of {total} ads","unnamed":"Ad {id}","creativeId":"Creative ID: {id}","imageAlt":"LinkedIn ad image","videoLabel":"LinkedIn ad video","copyUnavailable":"Full copy is unavailable.","openPost":"View on LinkedIn","callToAction":"Call to action: {value}","landingPage":"Landing page: {url}","postDate":"Post published: {date}","states":{"available":"Media unavailable. Refresh the preview.","permission_missing":"LinkedIn has not granted permission to read this content.","unavailable":"The media is unavailable.","unsupported":"This creative format cannot be previewed here yet.","processing":"LinkedIn is processing this media.","expired":"The media URL has expired. Refresh the preview."}},"purchaseConversionLabel":"Purchase conversion rule","purchaseConversionAuto":"Automatic (one purchase rule)","purchaseHistoricalRule":"Historical rule","purchaseValueDefinition":"Purchase value uses the amount configured by the advertiser for the selected conversion rule. ROAS is that attributed value divided by advertising spend, not verified store revenue.","purchaseStatus":{"available":"Purchase data available.","unconfigured":"No purchase conversion rule is configured. Purchases and ROAS are unavailable.","selection_required":"Select one purchase conversion rule. Multiple rules can describe the same order.","unavailable":"Purchase data could not be verified. Existing advertising metrics remain available."},"publishDestination":{"draftRejected":"LinkedIn rejected the media or ad preparation. Review the result; we kept the reference and did not repeat the operation.","draftPending":"LinkedIn is preparing the media or draft. Check again; completed destinations are preserved.","draftUnconfirmed":"LinkedIn preparation could not be confirmed. We kept the reference to check its status.","batchItemStatus":"LinkedIn: {status} · reference {id}","batchPending":"{count, plural, one {# item pending or with an error.} other {# items pending or with an error.}} Completed destinations are preserved.","draftStatus":{"complete":"Completed","pending":"Pending","provider_rejected":"Rejected","uncertain":"Unconfirmed result"},"platformName":"LinkedIn Ads","imageDraftTitle":"Creative prepared in LinkedIn","videoDraftTitle":"Video creative prepared in LinkedIn","draftReceipt":"Ad {id} · DRAFT · no spend activated","imageDraftSuccess":"Creative prepared in LinkedIn as a draft, without activating spend.","videoDraftSuccess":"Video creative prepared in LinkedIn as a draft, without activating spend.","batchDraftSuccess":"Creatives prepared in LinkedIn as drafts, without activating spend.","noCompatibleAdsets":"No ad sets support this media. Select another campaign or create an image or video ad set in LinkedIn Ads.","variant":"Destination video","original":"Original","vertical":"Vertical version","help":"Prepare a draft ad in an existing campaign and ad set. Keeps the budget unchanged and does not activate spend.","loading":"Checking connection and destinations…","unavailable":"Connection or media preparation is not yet enabled in this environment.","error":"Could not read LinkedIn destinations.","retry":"Retry","campaign":"Campaign","adset":"Ad set","selectCampaign":"Select a campaign","selectAdset":"Select an ad set","empty":"No campaigns available. Create one in LinkedIn Ads first.","targetRequired":"Select the destination campaign and ad set.","invalidSelection":"Select the ContentFlow account and the LinkedIn destination campaign and ad set before sending.","invalidContent":"Review the LinkedIn text, title, HTTPS link, call to action and media before sending to your selected destinations.","invalidBatchContent":"Review the selected items and their LinkedIn text, title, HTTPS link, call to action and media before sending to your selected destinations."},"tabsAria":"LinkedIn Ads sections","connectionUi":{"reauthorizeAction":"Reconnect LinkedIn Ads","reauthorizeHelp":"Authorize the connection again on LinkedIn. When you return, review the selected ad account.","nativeIntegration":"Native integration","headerHelp":"Connect your ad accounts, review campaigns, and prepare changes in the selected client workspace.","refresh":"Refresh","connected":"Connected","pending":"Pending","environment":"Environment","spendControl":"LinkedIn Ads spend control","spendDisabled":"Spend blocked by the control","spendAllowed":"Spend allowed by the control; every activation requires review and confirmation","configurationTitle":"Technical setup pending","configurationHelp":"The integration remains closed until migration, OAuth, and encryption are available in this environment.","connectTitle":"Connect LinkedIn Ads","connectHelp":"LinkedIn will show the identity, read, reporting, and ads management permissions. This connection stays within the selected client workspace.","connectAction":"Connect with LinkedIn","accountMismatch":"The ad account on this connection belongs to another workspace. Reconnect LinkedIn Ads and select the ad account for this client.","userFallback":"LinkedIn user","emailFallback":"Email not shared","adAccount":"Ad account","selectAccount":"Select an account","useAccount":"Use this account","roles":{"VIEWER":"Viewer","CREATIVE_MANAGER":"Creative manager","CAMPAIGN_MANAGER":"Campaign manager","ACCOUNT_MANAGER":"Account manager","ACCOUNT_BILLING_ADMIN":"Billing admin","UNKNOWN":"Role unavailable"}},"reviewUi":{"defaultName":"Demo campaign","accountSelected":"Ad account selected for this workspace.","testAccountCreated":"Test ad account {id} created and selected. It cannot serve ads or incur spend.","testAccountReused":"Test ad account {id} reused and selected. It cannot serve ads or incur spend.","draftUpdated":"Draft updated. It remains inactive and cannot incur spend.","draftCreated":"Draft created. It is inactive and cannot incur spend.","draftDeleted":"Review draft deleted.","testAccountTitle":"Official test account for review","testAccountHelp":"LinkedIn allows one test account per app. Its campaigns are not shown publicly, require no payment card, and incur no spend.","testAccountSelected":"Test account selected","createOrUseTestAccount":"Create or use test account","selectSourceAccount":"Select source account {id} first","reviewMode":"Review mode","editDraft":"Edit draft","createSafeDraft":"Create safe draft","draftHelp":"The server forces DRAFT status. This screen does not activate campaigns or enable spend.","reviewOnly":"Demo mutations are available only in the isolated review environment.","campaignGroup":"Campaign group","name":"Name","nonPolitical":"I confirm this is not political advertising. None of these ads constitutes political advertising under applicable law, including EU rules for ads targeting the EU.","saveDraft":"Save draft","createDraft":"Create draft","cancel":"Cancel","accountId":"Account {id}","reviewDrafts":"Review drafts","testAccountNoBilling":"Official test account: no publication or billing","noDrafts":"No ContentFlow365 drafts yet.","campaignId":"ID {id}","perDayBudget":"{amount} {currency}/day","noBudget":"no budget","edit":"Edit","delete":"Delete"},"accountIdentity":{"nameUnavailable":"Account name unavailable","accountId":"Ad account #{id}","organization":"Linked organization: {urn}","organizationUnavailable":"LinkedIn does not report a linked organization.","ownershipNotice":"These details come from LinkedIn. Confirm that the organization and Insight Tag belong to ContentFlow before creating a campaign."},"videoPermission":{"title":"Video upload permission","help":"Reconnect LinkedIn Ads and authorize Page publication access to upload videos owned by your company Page. This permission can create, modify and delete Page content. Uploading a selected video does not activate ads or start spending."},"pagePostPermission":{"title":"Reading Page posts","help":"This Ads connection does not yet include Page post read access. You can reconnect to authorize it and choose posts from the Page linked to your ad account. An existing compatible, authorized Page connection can also provide this read access."},"audiencePermission":{"title":"Matched Audiences permission pending","help":"This connection does not include rw_dmp_segments. LinkedIn documents rw_ads and rw_dmp_segments for the complete website retargeting workflow. Matched Audiences approval, an enabled permission request and new LinkedIn consent are separate requirements; Advertising API Standard does not grant this access. Check each audience’s source, URL rules and status before using it."},"selectClient":"Select a client workspace to open LinkedIn Ads.","tabs":{"dashboard":"Dashboard","campaigns":"Campaigns","comments":"Comments","funnel":"Funnel","conversions":"Conversions Pro","reports":"Reports","audiences":"Audiences","settings":"Settings"},"comments":{"connectPage":"Connect Page to read comments","connectHelp":"LinkedIn will ask for permission to read Page posts and comments. Choose this ad account’s Page ({organizationUrn}). This step does not publish content.","title":"Promoted post comments","help":"Select a campaign and Page post to read its comments. An organization connection with Community Management permission is required.","permissionPending":"The organization connection lacks r_organization_social_feed for this ad account’s Page. Connect that Page with Community Management to read comments.","connectionPending":"Connect LinkedIn Ads in this environment to inspect ads and their posts.","campaignLabel":"Campaign","postLabel":"Promoted post","chooseCampaign":"Select campaign","choosePost":"Select post","load":"View comments","loadMore":"Load more comments","loading":"Loading…","noPosts":"No promoted posts are available in this campaign.","noComments":"No comments have been loaded for this post.","likes":"Likes: {count}","truncated":"Showing the first 100 comments.","readError":"Could not read comments for this post. Check the Page permissions and try again."},"campaignWizard":{"reviewSummary":"Campaign settings to submit","reviewAdAccount":"Ad account","reviewPost":"Selected post","reviewPostTextUnavailable":"The post text has not been loaded in this wizard. Open the original post to review it. LinkedIn will verify its eligibility before creating a draft.","ownCreative":{"uploadRejected":"LinkedIn rejected this upload. Review the account, Page permissions and media. Check the saved reference before preparing another upload.","uploadFailed":"The upload failed and the media is not available. Keep the reference and check its status before continuing.","uploadNotFound":"No upload record was found for this reference. Keep the reference and check again before preparing another upload.","prepareAnotherUpload":"Prepare another upload","landingPagePlaceholder":"https://","sourceLabel":"Ad content source","existingPost":"Existing LinkedIn post","newCreative":"Create your own ad","title":"Your ad content","help":"Choose an image or video from this account's Library. This content will be prepared for advertising without an organic Page feed post.","commentary":"Ad text","headline":"Ad title","landingPage":"Destination URL","cta":"Call to action","altText":"Alternative text","search":"Search Library","searchButton":"Search","loading":"Loading Library…","error":"Could not load this account's Library.","retry":"Retry","empty":"No media matches this search.","partial":"Some Library sources are temporarily unavailable.","previous":"Previous","next":"Next","page":"Page {page}","selected":"Selected media: {name}","uploadPending":"Uploading own creatives to LinkedIn is still being prepared. Selecting a Library asset does not create or activate an ad.","invalid":"Complete the ad text, title, secure destination URL and media selection.","sourceConflict":"Choose either an existing post or your own creative.","formatMismatch":"The selected media must match the campaign's image or video format.","accountRequired":"Select an authorized account to resolve its media.","mediaUnavailable":"The selected media is unavailable, unfinished or belongs to another account.","ctaLabels":{"LEARN_MORE":"Learn more","SIGN_UP":"Sign up","DOWNLOAD":"Download","REGISTER":"Register","REQUEST_DEMO":"Request a demo","SUBSCRIBE":"Subscribe","BUY_NOW":"Buy now","SHOP_NOW":"Shop now"},"review":"Review your new ad","mediaReference":"Library media reference","audienceHelp":"Your new ad will use the selected audience. Check its source and availability before creating the campaign.","uploadHelp":"Upload only the media to prepare your ad. This step does not create or activate a campaign and does not start advertising spend.","uploadDisabled":"Image uploading is disabled in this environment.","uploadImage":"Upload image to LinkedIn","uploadVideo":"Upload video to LinkedIn","checkUpload":"Check upload","uploadWorking":"Checking media…","uploadAvailable":"LinkedIn confirms the media is available. Review the campaign to create its draft.","uploadQueued":"The upload is queued. LinkedIn has not confirmed that the media is available. Check this same reference without uploading again.","uploadRunning":"The media is being prepared or uploaded. It is not available yet. Check this same reference before continuing.","uploadProcessing":"LinkedIn is processing the media. Check its status again before continuing.","uploadUncertain":"The result cannot be confirmed. The reference is preserved: check status without repeating the upload.","uploadReference":"Upload reference: {id}","uploadTrackingDetails":"Upload tracking details","uploadTrackingHelp":"This reference identifies the original request. It does not confirm completion or allow repeating the upload.","uploadTrackingReference":"Tracking reference: {id}","uploadRequestedAt":"Requested at: {date}","videoPermissionRequired":"Reconnect LinkedIn Ads and authorize Page publication access before uploading a company Page video. Keep any saved reference and check its status before continuing.","videoUploadPending":"Video uploading to LinkedIn is still being prepared. Selecting a video does not create or activate an ad.","mediaSources":{"poster":"Poster","originalVideo":"Original video","verticalVideo":"Vertical video","library":"Library asset"},"mediaOrientations":{"horizontal":"Horizontal","vertical":"Vertical","square":"Square","unknown":"Orientation not specified"},"mediaOutput":"Output {number}","recoverReference":"Previous media upload reference","recoverHelp":"Select the same Library image or video and paste its saved upload reference from your other browser. This only checks the existing operation; it does not upload again or activate an ad.","recoverCheck":"Check previous upload","recoverMismatch":"This reference could not be verified for the selected media and ad account. Check your selection and reference; no new upload was started."},"eyebrow":"Campaign setup","title":"LinkedIn Ads assistant","help":"Set the objective, audience, and post. The final review shows what is still needed to create the campaign.","activationSeparate":"Draft first · activation requires confirmation","stepsAria":"Assistant steps","steps":{"type":"Type","targeting":"Targeting","review":"Review"},"modes":{"website_retargeting":{"label":"Website visitors","help":"People captured by the LinkedIn Insight Tag."},"engagement_retargeting":{"label":"LinkedIn engagement","help":"People who engaged with content or ads."},"page_post":{"label":"Page post","help":"Promote a company Page post."},"thought_leader":{"label":"Thought Leader Ad","help":"Promote a person's post with their approval."}},"campaignName":"Campaign name","campaignGroup":"Campaign group","selectGroup":"Select a group","dailyBudget":"Daily budget","dailyBudgetPlaceholder":"10.00","budgetCurrencyHelp":"The currency is verified against the LinkedIn account during review; no spend will occur.","durationDays":"Scheduled duration","durationOption":"{days} days","durationHelp":"The schedule starts when the LinkedIn draft is created. LinkedIn may spend up to 150% of the daily budget on a day, while a fixed end limits total spend to the daily budget times scheduled days. Create a new draft if this one expires before activation.","currencyPending":"currency not yet verified","objective":"Objective","objectives":{"websiteVisit":"Website visits","engagement":"Engagement","brandAwareness":"Brand awareness","videoView":"Video views"},"format":"Format","formats":{"standardUpdate":"Image / post","singleVideo":"Video"},"postUrn":"Post URL or URN","postUrnOptional":"Page post to promote: URL or URN (optional)","postUrnPlaceholder":"urn:li:ugcPost:123456789","postRequiredHelp":"Select a Page post: it will be the ad shown to the chosen audience, including for retargeting. Its permissions will be checked before creating the draft.","postAuthorHelp":"Choose the personal post to promote. Its author must approve sponsorship; the post link alone does not grant permission. Eligibility and permissions are checked before draft creation.","postOptionalHelp":"Paste a URN or a /feed/update/ link containing ugcPost or share. The post can be combined with a retargeting audience. For a personal post, choose Thought Leader Ad and verify author approval.","authorApproval":"The author must approve the ad. Having the post URL or URN does not grant permission to promote it. LinkedIn also requires Sponsored Content posting access to the Page and creative manager access or higher to the ad account. LinkedIn currently does not allow sponsoring posts by authors located in DMA countries; check eligibility in the official guide.","authorApprovalSteps":"See the official approval steps","audienceRequired":"Retargeting audience","audienceOptional":"Retargeting audience (optional)","audiencesLoading":"Loading audiences…","audienceSelect":"Select an audience","audienceOption":"{name} · {status} · {count} members","audienceHelp":"LinkedIn only serves the segment when it is READY and reaches 300 members. A new website audience starts collecting visitors when created; it does not include earlier visits. Review checks whether its source is website visitors or engagement.","audiencesRefresh":"Refresh audiences","audiencePendingServing":"You can prepare the draft, but this audience cannot serve ads yet: LinkedIn requires READY and at least 300 members.","audienceSourceChecking":"Checking this audience’s source with LinkedIn…","audienceSourceUnavailable":"The source cannot be verified with the current permissions or response. Final review will keep the block in place.","audienceSourceWebsite":{"verified":"LinkedIn confirms this website audience covers all URLs. Final review also checks the Insight Tag, signal, and size.","filtered":"LinkedIn confirms the website source, but this audience uses URL rules. Check that they include the pages you want to retarget.","wrong":"This audience is not from verified website visitors.","unavailable":"The source or URL rules of this audience cannot be verified."},"audienceSourceEngagement":{"verified":"LinkedIn reports engagement rules for this audience. Final review checks source ownership.","wrong":"This audience does not have a verified engagement source.","unavailable":"The engagement source of this audience cannot be confirmed."},"postAudienceHelp":"When you add an audience to a promoted post, review verifies its website source and flags URL rules. Engagement mode separately verifies source rules.","locations":"Locations","locationSearchPlaceholder":"Search for a country, region or city","locationSearch":"Search locations","locationSearching":"Searching…","locationSearchFailed":"Could not search LinkedIn locations.","removeLocation":"Remove {name}","interfaceLocale":"Audience profile language","profileLanguageEnglish":"English: all profile languages","profileLanguageSpanish":"Spanish: Spanish profiles only","profileLanguageHelp":"For Sponsored Content, LinkedIn says English reaches all profile languages in your chosen locations; Spanish narrows reach to Spanish profiles. Choose a language suitable for the ad.","targetingFairnessNotice":"LinkedIn tools may not be used to discriminate based on personal characteristics such as gender, age, race, or ethnicity.","kindAndObjective":"Type and objective","audience":"Audience","noAudience":"No audience","localChecksPassed":"Targeting passes local checks. Permissions, segment ownership, post availability, and creation in LinkedIn still need verification.","checking":"Checking…","checkAudience":"Check audience with LinkedIn","connectToCheck":"Connect the ad account in this environment to verify the segment.","audienceEligible":"The selected audience meets LinkedIn's status and size requirements.","audienceIneligible":"This audience will not serve ads until it is READY and reaches 300 members; review shows whether a draft can be prepared.","websitePageSet":"Website page set #{id} verified.","allVisitorsVerified":"The page set covers all URLs.","insightTagId":"Ad account Insight Tag #{id}.","insightTagDomains":"Signal received from: {domains}.","engagementVerified":"Engagement audience and {count, plural, one {# source rule verified} other {# source rules verified}}.","remainingBlockers":"Remaining blockers: {blockers}.","remainingWarnings":"Warnings for the draft and future delivery: {warnings}.","draftPlanReady":"A Sponsored Content DRAFT plan is prepared with the selected account and audience. {creative}","draftPlanCreative":"It includes the post ad in DRAFT.","draftPlanNoCreative":"The ad content still needs verification before a draft can be created.","autoBidding":"LinkedIn auto bidding for {target, select, MAX_CLICK {clicks} MAX_IMPRESSION {impressions} MAX_VIDEO_VIEW {video views} other {the selected objective}}. CPM cost, with no manual bid.","politicalIntentConfirm":"I confirm this campaign is not political advertising and agree to declare it as such to LinkedIn.","createDraft":"Create LinkedIn draft","creatingDraft":"Creating draft…","checkDraftStatus":"Check previous attempt","checkingDraftStatus":"Checking attempt…","draftCreated":"DRAFT campaign #{campaignId} created; DRAFT ad #{creativeId}. No activation or spend.","draftCreatedNoCreative":"DRAFT campaign #{campaignId} created without an ad. Add a post before activation; no spend occurred.","draftPartial":"Partial result ({status}). Campaign #{campaignId}; error {errorCode}. Do not create it again with another key: reconciliation is required.","draftLedgerPending":"The server receipt does not yet reflect the IDs returned by LinkedIn. Keep the displayed IDs and do not create again; reconciliation is required.","activationCheck":"Check whether this draft could be activated","activationChecking":"Checking campaign and ad…","activationReadOnly":"Read-only check. Activation requires a separate confirmation.","activationBudget":"Current LinkedIn daily budget: {amount} {currency}.","activationMaximum":"Maximum for the fixed schedule: {amount} {currency}.","activationEnd":"Scheduled end: {date}.","activationBudgetUnavailable":"The current daily budget could not be confirmed.","activationBlocked":"Pending: {blockers}.","activationDisabled":"Spend activation is still disabled in this environment.","activationConfirm":"I confirm that LinkedIn may charge for this campaign at {amount} {currency} per day until {date}, with a fixed-schedule maximum of {maximum} {currency}. Ad review may delay delivery and daily spend can reach 150% of the daily budget within that maximum.","activateDraft":"Activate campaign in LinkedIn","activating":"Activating…","activationAccepted":"LinkedIn accepted activation of campaign #{campaignId}. The ad may enter review before delivery.","activationUncertain":"Activation result {status} for campaign #{campaignId}; error {errorCode}. Do not repeat with another key: reconcile the state in LinkedIn.","activationSpendMayHaveStarted":"This campaign may already be able to incur spend. Check Campaign Manager before taking another action.","activationLedgerPending":"The server receipt does not yet reflect the latest result. Keep the IDs and reconcile in LinkedIn; do not repeat activation.","checkActivationStatus":"Check activation attempt","checkingActivationStatus":"Checking activation…","activationBlockers":{"managedRevisionUnverified":"The campaign editing history is not fully verified. Check the original operation before activating.","schemaNotReady":"The activation migration has not been applied","draftIncomplete":"The draft has no confirmed campaign and ad","audienceNotServable":"The audience is not READY with at least 300 members","groupNotActive":"The campaign group is not active","planUnavailable":"The campaign plan could not be reconstructed","campaignNotDraft":"The campaign is no longer DRAFT","creativeNotDraft":"The ad is no longer DRAFT","postChanged":"The ad post changed in LinkedIn","campaignChanged":"Campaign targeting or setup changed outside ContentFlow","budgetChanged":"Budget or currency changed outside ContentFlow","scheduleChanged":"The schedule changed or has expired","spendLimit":"A total spend limit or end date is missing"},"draftStatusLabels":{"reserved":"Reserved","campaignCreated":"Campaign created; ad pending","providerRejected":"Rejected by LinkedIn","uncertain":"Uncertain result"},"creationPending":"A draft cannot be created yet. Check the settings and remaining blockers with LinkedIn.","back":"Back","continue":"Continue","websiteAudienceSetupLink":"Create a website audience in LinkedIn Campaign Manager","pagePostsHelp":"Choose a recent post from the Page linked to this ad account, or paste its URL/URN above.","pagePostsLoad":"View Page posts","pagePostsLoading":"Loading posts…","pagePostsMore":"Load more posts","pagePostsOpen":"Open post on LinkedIn","pagePostsEmpty":"No public posts are available on this Page.","pagePostsPermission":"Reconnect LinkedIn Ads in Settings to authorize post reads, or connect the matching Page with read permission.","pagePostsFailed":"Could not load posts from this Page.","blockers":{"groupNotInAccount":"The group does not belong to this account","groupUnavailable":"The group is unavailable","groupObjectiveMismatch":"The objective does not match the group","groupFormatUnavailable":"This group does not allow promoted posts","audienceNotInAccount":"The audience does not belong to this account","audienceNotReady":"The audience status prevents preparing this draft","audienceTooSmall":"The audience is not READY, is below 300 members, or has no reported size; the draft will not serve ads","allVisitors":"The page set URL rules could not be verified","websiteSource":"The audience has not been verified as Insight Tag website visitors","filteredWebsiteAudience":"The audience uses URL filters; check that they cover every eligible page you want to retarget","insightTag":"The ad account Insight Tag has not been verified","insightTagSignal":"No signal is reported from an unblocked domain for this Insight Tag","engagementSource":"The engagement audience source has not been verified","authorApproval":"Author approval has not been verified","postPermission":"Permission to promote this post has not been verified","postFormatMismatch":"The selected post contains a different media type. Choose Image / post for an image or Video for a video, then review again.","postFormatUnsupported":"This post type cannot be promoted with the selected formats. Choose a single image, video, text or link post; reposts and posts with multiple images are not eligible.","organization":"The ad account organization has not been verified","politicalIntent":"Confirm the non-political advertising declaration","creationDisabled":"Campaign creation is disabled","providerUnknown":"LinkedIn blocker details are unavailable"},"errors":{"groupRequired":"Select a campaign group.","groupNotInAccount":"The selected group does not belong to this account.","groupUnavailable":"The selected campaign group is no longer available.","groupObjectiveMismatch":"The group objective does not match the campaign objective.","groupFormatUnavailable":"This group does not allow promoted posts.","nameInvalid":"The name must be between 1 and 120 characters.","durationInvalid":"Choose a duration of 7, 14 or 30 days.","budgetInvalid":"Enter a positive daily budget with no more than two decimal places.","invalidLocation":"Select at least one valid location from LinkedIn search.","invalidLocale":"Enter a valid locale, for example urn:li:locale:en_US.","invalidAudience":"The selected audience is invalid.","audienceRequired":"Select a retargeting audience.","invalidPost":"Enter a ugcPost/share URN or a LinkedIn /feed/update/ link containing one.","postRequired":"Enter the post you want to promote.","thoughtLeaderObjective":"Thought Leader Ads do not support website visits as an objective.","videoFormat":"The video views objective requires a video format.","websiteObjective":"Use website visits for website visitor retargeting.","engagementObjective":"Use engagement for engagement retargeting.","invalidIntent":"Review the campaign settings.","audienceNotReady":"The audience must belong to this account and have a valid status for preparing a draft.","engagementSource":"Engagement audience sources still need verification with the LinkedIn API.","activationFailed":"The result could not be confirmed. Check this attempt before taking another action.","activationStatus":"Could not read the activation attempt.","noPreviousActivation":"No activation attempt is saved for this configuration in this session.","activationPreview":"The current campaign and ad state could not be checked.","draftCreate":"The draft result could not be confirmed. Check its status before retrying.","draftStatus":"Could not read the draft status.","noPreviousDraft":"No attempt is saved for these settings in this session.","multiplePreviousDrafts":"Several attempts match these exact details. Keep their references and check the original attempt; no draft was selected or created.","providerCheck":"Could not verify the campaign."}},"conversionDiagnostics":{"title":"Conversions Pro","insightTag":"Insight Tag","tagId":"ID {id}","help":"Insight Tag, detected domains, and conversion rules for the selected ad account.","connect":"Connect LinkedIn Ads in this environment to inspect tracking.","loading":"Checking LinkedIn tracking…","loadFailed":"Could not load LinkedIn tracking.","unavailable":"Query unavailable","notFound":"Not found","detectedDomains":"Detected domains","conversionRules":"Conversion rules","partialFailure":"LinkedIn did not allow every section to be read. Check this account’s permissions; available sections are still shown.","domains":"Domains","blocked":"Blocked","detected":"Detected","lastSignal":"Last Insight Tag signal: {date}","noSignal":"LinkedIn does not report a received signal for this domain.","noDomains":"LinkedIn does not yet report domains for this account. Having code on a website alone does not confirm that it is sending visits.","conversions":"Conversions","methodUnknown":"Method not reported","active":"Active","inactive":"Inactive","noConversions":"No conversion rules are visible for this account.","disclaimer":"A detected domain confirms that LinkedIn has registered it; it does not measure audience size or enable campaigns by itself. Conversion rules do not send server events or create retargeting audiences.","refresh":"Refresh diagnostics","healthUnavailable":"Tracking configuration diagnostics are unavailable in this version.","publicationTitle":"Published tracking configuration","publicationStatus":{"configured":"LinkedIn tracking is enabled in the published configuration.","inactive":"LinkedIn tracking is inactive in the published configuration.","missing":"No tracking configuration has been published for this workspace.","unavailable":"The published tracking configuration could not be read."},"configuredTag":"Configured Insight Tag: {id}","tagMatched":"The configured Tag matches the selected ad account.","tagMismatched":"The configured Tag does not match this ad account. Review tracking settings before using these events.","tagUnverified":"The configured Tag could not be compared with this ad account.","publicationDate":"Configuration published: {date} UTC","allowedHosts":"Authorized domains","noAllowedHosts":"No authorized domains are available.","publicationHelp":"Published settings do not prove that every HTML page loads the Tag or obtains consent. Detected domains show only the signals LinkedIn reports.","capiTitle":"Server conversion events (CAPI)","capiPermissionGranted":"The connection includes conversion permissions.","capiPermissionMissing":"Conversion permissions are missing from this connection.","capiIntegrationPending":"Server event delivery is pending implementation.","capiHelp":"Standard approval does not activate CAPI. The event form checks role, scopes, expiry and write policy separately. This diagnostic sends no events and proves no matching or attribution.","mappedEvents":"Website conversion mappings","mappedEventsHelp":"These mappings come from the published configuration. A visible active rule does not prove that an event has been sent or attributed.","conversionId":"Rule {id}","mappingUnavailable":"Conversion mappings could not be read from a published configuration.","eventPurpose":{"lead_created":"Lead created","contact_created":"Contact created","resource_download":"Resource downloaded"},"eventRule":{"active":"Rule active in this account","inactive":"Rule inactive in this account","not_visible":"Rule not visible in this account","unconfigured":"Not configured","unverified":"Rule could not be verified"},"capiImplemented":"CAPI rules and confirmed single/batch delivery are available below when this connection and environment permit them."},"funnelTitle":"Performance stages","funnelHelp":"Impressions, clicks, form leads, website conversions and purchases are independent attributed metrics, not a closed cohort. Purchases and cost per purchase require the selected purchase conversion rule.","funnelAllCampaigns":"All campaigns","funnelPrimary":"Primary campaign","funnelCompare":"Compare with","funnelNoComparison":"No comparison","funnelRates":{"clickRate":"CTR (clicks / impressions)","landingClickRate":"Link clicks / clicks"},"incompleteMetrics":"LinkedIn has not reported some metrics. “—” means unavailable; a reported zero remains 0. Totals and ratios with missing inputs are unavailable, and CSV cells remain blank.","reportMetricsCoverage":"LinkedIn returned metrics for {reported} of {total} selected campaigns. Summary totals are unavailable; missing metrics remain blank in the CSV.","reportsTitle":"Campaign report","reportsHelp":"Export real metrics for the last {count} days, including LinkedIn's estimated reach.","downloadCsv":"Download CSV","reportStatusFilter":"Filter report by status","reportAllStatuses":"All statuses","reportNoRows":"No campaigns match these filters.","reportReachNotice":"Reach is LinkedIn's per-campaign estimate. It is not summed because one member can appear in multiple campaigns.","expenses":{"title":"Advertising spend","help":"Review quarterly or yearly spend for the selected ad account.","period":"Period","quarterly":"Quarterly","yearly":"Yearly","year":"Year","quarter":"Quarter","quarterOption":"Q{quarter}","loading":"Loading spend from LinkedIn…","error":"Could not load spend for this period.","empty":"All reported months have zero advertising spend.","missing":"LinkedIn has not returned every observation for this period. A dash is unknown, not zero; missing months and metrics remain blank in the CSV.","noData":"No reported spend observations.","month":"Month","spend":"Spend","impressions":"Impressions","clicks":"Clicks","download":"Download CSV","invoiceNotice":"This report uses LinkedIn Ads metrics. It is not an official invoice or tax receipt."},"metricsLoading":"Loading real LinkedIn metrics…","metricsLoadFailed":"We could not load LinkedIn Ads metrics.","metricsRowLimit":"LinkedIn reached this report's row limit. Partial totals are not shown as complete; shorten the date range or use an account with fewer campaigns.","allVisitorsUpdate":{"reference":"Original reference: {id}","recoverReference":"Existing audience operation reference","recoverHelp":"Paste the reference saved in another browser to check the same audience and page set. This only reads the original operation; it never sends an update.","recoverCheck":"Check existing audience operation","recoverFailed":"The reference could not be verified or saved for this audience. No update was sent. Keep the original reference; do not start another attempt.","changed":"The rules changed after the original successful operation. Current all-visitor coverage is not verified.","prepareNew":"Prepare a new attempt","title":"Include all Insight Tag visitors","help":"Remove URL filters from this existing audience. This includes visitors from every compatible page sending this account’s Insight Tag. It does not activate campaigns or enable spend. LinkedIn still requires at least 300 matched members before serving.","confirm":"I confirm that this audience should include all tracked URLs.","submit":"Include all visitors","reconcile":"Check original operation","busy":"Checking operation…","complete":"All-visitor coverage verified by LinkedIn.","pending":"Operation pending or uncertain. Check the original operation; do not create another attempt.","rejected":"LinkedIn rejected the update. The audience has not been verified as all visitors.","failed":"The operation could not be verified. Check its original status before trying again.","notFound":"No saved receipt was found for the original operation. Keep this reference and check again; a missing record does not prove that no update was sent. Do not repeat the update.","storageFailed":"The original operation could not be saved for recovery. No update has been sent."},"audiencesTitle":"Retargeting audiences","audienceBackToList":"Back to audiences","audienceReferenceUnavailable":"This audience reference is invalid or does not belong to the selected advertising account. This link did not send an update.","audienceDetailId":"Audience ID: {id}","audienceManualSetupTitle":"Create a visitor audience in Campaign Manager","audienceManualSetupHelp":"Create a Website audience in the correct ad account and configure its URL rules to include every eligible page you want to retarget. Check the saved rules and that the account’s Insight Tag receives signals from those domains. The audience collects visits from its creation date and does not include earlier traffic. You can select it while it builds; ads can serve once it is READY and has at least 300 matched members.","audienceManualSetupLink":"See LinkedIn's official instructions","audiencesHelp":"Retargeting segments in this ad account. Check each segment’s source and URL rules to see which visitors it includes. The complete website retargeting API workflow requires rw_ads, rw_dmp_segments and approved Matched Audiences access. LinkedIn requires READY and at least 300 matched members before ads can serve.","audiencesLoading":"Loading audiences…","audiencesLoadFailed":"We could not load LinkedIn Ads audiences.","audiencesEmpty":"This account has no retargeting audiences.","audienceNameFallback":"Audience {id}","audienceCount":"≈ {count} members","audienceCountUnknown":"Size unavailable","audienceNotReady":"Not yet eligible to serve ads.","audienceInspectSource":"Check website source","audienceCheckingSource":"Checking…","audienceSourceAllVisitors":"Website page set #{id}: all URLs verified.","audienceSourceFiltered":"Website page set #{id}: filtered URL rules; it does not cover every visitor.","audienceSourceRulesUnknown":"Website page set #{id}: URL coverage could not be verified.","audienceSourceNotWebsite":"LinkedIn does not link this segment to a visible website page set.","audienceSourceUnavailable":"Website source cannot be verified with the current LinkedIn permissions or response.","audienceSourceEngagement":"LinkedIn reports {count, plural, one {# engagement rule} other {# engagement rules}} for this audience. The wizard verifies source ownership.","audienceSourceEngagementUnavailable":"Engagement rules could not be verified with the current permissions.","audienceSourceRequestFailed":"Could not inspect this audience's source.","migrationPending":"LinkedIn Ads migration pending.","oauthPending":"OAuth credentials pending.","encryptionPending":"Encryption key missing or invalid.","reconnectTitle":"Reconnect LinkedIn Ads","reconnectHelp":"This connection was created in {source}. To protect credentials, reconnect the account in {target}.","authorization":{"reconnectHelp":"LinkedIn no longer confirms this access, or a refresh could not be confirmed. Reconnect to authorize the same account. This does not activate campaigns or enable spending.","accessExpiry":"Access expires (UTC): {date}","refreshGranted":"LinkedIn granted automatic refresh. Refresh deadline (UTC): {date}","refreshNotGranted":"LinkedIn has not granted automatic refresh for this connection. Reconnect when access expires.","checkedAt":"Last check with LinkedIn (UTC): {date}","unknown":"Unavailable","notChecked":"Not checked yet","checkWarning":"Access maintenance could not be completed. A failed check does not prove your permissions were revoked."},"expiredConnectionHelp":"Your LinkedIn authorization has expired. Reconnect to view and manage your ads.","reconnectAction":"Reconnect in this environment","metrics":{"costPerPurchase":"Cost per purchase","spend":"Spend","impressions":"Impressions","reach":"Approx. reach","frequency":"Frequency","clicks":"Clicks","landingPageClicks":"Destination link clicks","leads":"Form leads","conversions":"Conversions","conversionValue":"Conversion value","ctr":"CTR","cpc":"CPC","cpm":"CPM","cpl":"CPL","costPerConversion":"Cost / website conv.","purchases":"Attributed purchases","purchaseValue":"Purchase value","roas":"Purchase ROAS"},"accountOverview":"Account overview","dateRangeAria":"Metrics date range","lastDays":"{count} days","lastDaysMetric":"Last {count} days · {metric}","campaignTableHelp":"LinkedIn metrics for the selected account. Spend and values use its currency. Group totals include all campaigns, even when rows are filtered.","rowDashboardToggle":"Mini dashboards for each row","campaignGroupLabel":"Group","reviewDailyBudget":"Reference daily budget ({currency})","creativesTitle":"Ads in this campaign","creativesLoading":"Loading ads…","creativesEmpty":"No ads are visible in LinkedIn for this campaign.","creativesLoadFailed":"Could not load ads.","creativeServing":"Serving","topCampaigns":"Top campaigns by spend","topCampaignsHelp":"Compare spend over the selected period.","comparison":{"incompleteMetrics":"Incomplete observations are retained in their cohort. Missing metrics and ratios appear as “—”; only reported zeros are 0.","title":"ContentFlow vs. other ads","metric":"Metric","help":"Only ads with period activity are included. ContentFlow requires a confirmed creation receipt in this account. The other group has no such receipt; its origin is not verified. Ratios use total cohort activity, and average spend is per ad.","groups":{"contentflow":"ContentFlow (confirmed receipt)","untracked":"Other ads (no ContentFlow receipt)"},"metrics":{"ctr":"CTR","cpc":"Cost per click","cpl":"Cost per form lead","averageSpend":"Average spend per ad"},"count":"{count, plural, one {# ad} other {# ads}}","unavailable":"The comparison could not be verified. Other account metrics remain available.","empty":"No ad activity is reported for this period.","insufficientGroups":"Activity from both groups is needed to compare them.","noDenominator":"There is not enough activity to calculate this metric."},"dashboardCharts":{"spendByCampaign":"Spend by campaign","spendDistribution":"Spend distribution","distributionHelp":"Other groups campaigns outside the top eight; reach is never added together.","otherCampaigns":"Other campaigns","costByResult":"Cost per result","costHelp":"Form leads, website conversions and identified purchases attributed by LinkedIn are separate results; generic conversions are not sales.","costPerLead":"Cost per lead","costPerWebsiteConversion":"Cost per website conversion","noCostResults":"No cost per result can be calculated from the reported metrics for these campaigns.","relativeRatio":"{value}% relative to {metric}"},"interactionSummary":"Interaction overview","interactionSummaryHelp":"Independent LinkedIn metrics; these are not exclusive funnel steps.","searchCampaigns":"Search campaigns","filterCampaignGroup":"Filter by campaign group","allCampaignGroups":"All groups","filterObjective":"Filter by objective","allObjectives":"All objectives","sortBy":"Sort by {column}","notAvailableFromLinkedIn":"LinkedIn does not return this Meta-equivalent metric in this report.","salesUnmapped":"Purchase conversions have not been identified separately yet; sales and ROAS are not estimated.","clicksDefinition":"Chargeable clicks under the LinkedIn objective; these are not the same as all clicks or interactions in Meta.","landingClicksDefinition":"Clicks to the ad destination; they do not confirm that the landing page loaded.","columns":{"costPerPurchase":"Cost per purchase","campaign":"Campaign","status":"Status","objective":"Objective","budget":"Budget","spend":"Spend","impressions":"Impressions","cpm":"CPM","reach":"Reach","frequency":"Freq.","clicks":"Clicks","landingClicks":"Link clicks","lpv":"Landing page views","ctr":"CTR","cpc":"CPC","cpl":"CPL","costPerConversion":"Cost / website conv.","leads":"Leads","conversions":"Conversions","sales":"Purchases","conversionValue":"Conv. value","roas":"ROAS","trend":"Mini chart","purchaseValue":"Purchase value"},"accountCurrency":"account currency {currency}","dailyPerformance":"Daily performance","chartScaleAria":"Chart scale","chartScaleAuto":"Auto","chartScaleZero":"From 0","lastThirtyDays":"Last 30 days · {metric}","noActivity":"LinkedIn has not returned daily observations for this period.","campaignsTitle":"Campaigns","campaignFallback":"Campaign {id}","clicksCount":"{count} clicks","conversionsCount":"{count} conv.","noCampaignActivity":"There are no campaign results to display for this period.","demographics":{"title":"Audience analysis","description":"Explore who interacts with your ads and where they appear.","dimension":"Breakdown","campaign":"Campaign","allCampaigns":"All campaigns","metric":"Metric","loading":"Reading LinkedIn…","refresh":"Refresh analysis","load":"Load analysis","period":"Last {days} UTC calendar days, including today.","notLoaded":"Choose a breakdown and load LinkedIn audience analytics.","empty":"LinkedIn returned no observations for this selection. This may reflect missing activity, access or the privacy threshold; it does not establish zero results.","privacy":"Professional demographic metrics are approximate. LinkedIn omits categories with fewer than 3 events and limits reported categories. Data can take 12–24 hours and must not be summed to reconstruct account totals.","namesUnavailable":"Some category names are unavailable. Original identifiers and their metrics are retained.","deviceLimits":"LinkedIn does not provide conversions or reach in device breakdowns.","search":"Search categories","top":"Top categories","distribution":"Distribution of visible categories","distributionHelp":"Shows the 10 visible categories with the highest value. This is not the account total and excludes categories omitted by LinkedIn.","metricUnavailable":"No values are available for this metric.","category":"Category","previous":"Previous","next":"Next","page":"Page {page} of {total}","errors":{"selection":"The ad account or selection changed. Load the analysis again.","access":"You do not have access to this report. Check your LinkedIn connection.","failed":"Could not read LinkedIn audience analytics. You can try again."},"dimensions":{"jobFunction":"Job function","jobTitle":"Job title","industry":"Industry","seniority":"Seniority","companySize":"Company size","company":"Company","country":"Country or region","region":"Location","servingLocation":"LinkedIn or Audience Network","placement":"Ad placement","device":"Device"}}},"websitePages":{"title":"Website pages","description":"Create pages for your company website.","newPage":"New page","loading":"Loading pages...","loadError":"We could not load your website pages.","retry":"Try again","emptyTitle":"No website pages yet.","emptyDescription":"Create the first page for your company website.","columns":{"page":"Page","url":"URL","visits":"Visits","status":"Status","actions":"Actions"},"statusLabels":{"draft":"Draft","published":"Published","archived":"Archived"},"statusUnknown":"Unknown status","editPage":"Edit {title}"},"websiteStaticPages":{"metadataTitle":"Versioned HTML pages","metadataDescription":"Create, validate, preview and publish versioned static pages.","eyebrow":"Fast publishing · opt-in pilot","title":"Versioned HTML pages","description":"For new sales, live-event and checkout pages. Each ZIP creates an independent version that can be published without compiling or deploying the application.","refresh":"Refresh","newPage":"New page","safeguards":{"existing":{"title":"Existing pages stay untouched","description":"Current Clonia, Invierte and Challenge URLs keep their proven system."},"versions":{"title":"Immutable versions","description":"One task never overwrites another task's files. Publishing and rolling back are atomic."},"backend":{"title":"Separate backend","description":"New APIs, payments and database changes still follow the normal development flow. The HTML can then iterate without a deployment."}},"kinds":{"sales":{"label":"Sales","help":"Offer, registration or commercial content"},"directos":{"label":"Live events","help":"Schedule, room or public access"},"checkout":{"label":"Checkout","help":"Requires a payment controlled by a server API"},"other":{"label":"Other","help":"Another public funnel page"}},"create":{"title":"Create an opt-in route","description":"The URL will be reserved as /p/path. Nothing is published until a valid version exists.","name":"Name","namePlaceholder":"July offer","domain":"Active domain","selectDomain":"Select a domain","path":"Path","pathPlaceholder":"july-offer","type":"Type","campaign":"Campaign (optional)","noCampaign":"No campaign","campaignFallback":"Campaign","funnelStage":"Funnel stage (optional)","funnelStagePlaceholder":"sales, checkout, live-event…","cancel":"Cancel","submit":"Create page"},"autoPublish":{"title":"Automatic publishing","description":"A valid ZIP is published automatically after upload, without an extra confirmation.","toggle":"Toggle automatic publishing"},"states":{"loading":"Loading pages…","emptyTitle":"There are no pages in the new system yet","emptyDescription":"This is expected: existing pages are not migrated automatically.","noDomains":"You need at least one active domain on this account before creating the first page.","selectedDomain":"Domain selected for the new page: {domain}","noDomainSelected":"none"},"page":{"unknownKind":"Unknown type","live":"Live · v{version}","draft":"Draft","copyUrl":"Copy URL","uploadVersion":"Upload new version","open":"Open","deactivate":"Deactivate","activate":"Activate"},"release":{"version":"v{version}","summary":"{date} · {files, plural, one {# file} other {# files}}","warnings":" · {count, plural, one {# warning} other {# warnings}}","preview":"Preview","restore":"Restore this version","publish":"Publish","empty":"Upload a ZIP containing one index.html file and its assets. The design is not restricted by templates."},"busy":{"uploading":"Uploading ZIP…","validating":"Validating and creating version…","publishing":"Publishing without deployment…","switching":"Switching the atomic pointer…","updating":"Updating…"},"toasts":{"created":"Page created. Existing pages remain untouched.","versionPublished":"Version v{version} published","versionPrepared":"Version v{version} prepared","versionRestored":"Page restored to v{version}","urlCopied":"URL copied"},"errors":{"requiredFields":"Complete the name, domain and path.","zipOnly":"Select a .zip file.","zipTooLarge":"The ZIP is larger than 50 MB.","zipReadFailed":"We could not read the uploaded ZIP. Upload it again.","uploadRejected":"The ZIP upload was rejected.","invalidRequest":"Review the information and try again.","unauthenticated":"Sign in again to continue.","forbidden":"You do not have permission to manage this page.","pageNotFound":"The page could not be found.","conflict":"The page changed or conflicts with another version. Refresh and try again.","rateLimited":"Too many attempts. Wait a moment and try again.","serviceUnavailable":"The service is temporarily unavailable. Try again shortly.","unknown":"We could not complete the operation.","pageRouteTaken":"A page already uses this path on the selected domain.","pageKindChangeRequiresRelease":"Deactivate the page and publish a validated version before changing its type.","pageChanged":"The page changed while you were working. Refresh before publishing.","releaseBlocked":"This version is blocked by validation.","checkoutNotValidated":"The checkout does not contain a validated server-controlled payment.","domainOutOfScope":"The domain is inactive or does not belong to this account.","campaignOutOfScope":"The campaign does not belong to this account.","releaseOutOfScope":"The uploaded file or version does not belong to this page.","zipEmpty":"The ZIP is empty.","zipTooManyFiles":"The ZIP contains more than {maxFiles} files.","zipFileTooLarge":"{path} is larger than {maxMb} MB.","zipUncompressedTooLarge":"The uncompressed ZIP is larger than {maxMb} MB.","zipIndexCount":"The ZIP must contain exactly one index.html file.","zipDuplicatePaths":"The ZIP contains duplicate paths after normalisation.","zipMultipleHtml":"Each route must be a separate page; this ZIP can contain only index.html.","zipIndexOutsideRoot":"index.html must be inside the ZIP's main folder.","zipPathNotAllowed":"The ZIP contains a disallowed path: {path}.","zipSensitiveFile":"The ZIP contains a sensitive or non-publishable file: {path}.","zipFileTypeNotAllowed":"The ZIP contains an unsupported file type: {path}."},"validation":{"secretStripe":"The frontend contains a Stripe secret key.","secretWebhook":"The frontend contains a webhook secret.","secretServer":"The frontend contains a server secret.","secretToken":"The frontend contains a private token.","baseTagUnsupported":"The HTML base tag is not supported. Use normal relative paths inside the ZIP.","privateApiReference":"The page tries to call a private dashboard API.","mixedContent":"Some HTTP resources may be blocked by the browser as mixed content.","thirdPartyScript":"The page loads third-party JavaScript. Review the provider before publishing.","checkoutEndpointRequired":"The checkout must call a public payment endpoint controlled by the server.","legacyError":"This version contains a validation error. Upload it again to see the localised detail.","legacyWarning":"This version contains a legacy validation warning."}},"websiteCookieConsent":{"page":{"title":"Cookie consent","description":"Configure the privacy banner for your landing pages. Required when using marketing or analytics tracking."},"designer":{"loading":"Loading landing pages...","landingPage":"Landing page","selectLanding":"Select a landing page","trackingEnabled":"Tracking","trackingDisabled":"No tracking","noLandings":"There are no landing pages available.","enableBanner":"Enable cookie banner","enableDescription":"Show the banner on this landing page","position":"Position","positions":{"bottomBar":"Bottom bar","bottomLeft":"Bottom left","bottomRight":"Bottom right"},"accentColor":"Accent color","selectColor":"Select color {color}","customColor":"Custom hexadecimal color","darkMode":"Dark mode","darkModeDescription":"Use a dark background for the banner","showDelay":"Display delay (ms)","texts":"Text","titleLabel":"Title","defaultTitle":"Your privacy matters","descriptionLabel":"Description (leave blank to generate it automatically)","descriptionPlaceholder":"Leave blank to generate text based on the configured tracking scripts","acceptButton":"Accept button","defaultAccept":"Accept all","essentialButton":"Essential-only button","defaultEssential":"Essential only","privacyPolicyUrl":"Privacy policy URL","privacyPolicyPlaceholder":"https://example.com/privacy","saved":"Saved","saving":"Saving...","save":"Save","copiedToAll":"Copied to {count, plural, one {# landing page} other {# landing pages}}","copyToAll":"Copy to all ({count})","preview":"Preview","desktop":"Desktop","mobile":"Mobile","errors":{"save":"We could not save the cookie banner settings. Try again.","copy":"We could not copy the cookie banner settings. Try again."}},"banner":{"marketingScripts":"marketing scripts","defaultTitle":"Your privacy matters","defaultDescription":"We use essential cookies to operate this website and {scripts} cookies to measure the performance of our advertising campaigns.","defaultAccept":"Accept all","defaultEssential":"Essential only","privacyPolicy":"Privacy policy","showDetails":"View details","hideDetails":"Hide details","essentialStatus":"ON","essentialTitle":"Essential","alwaysActive":"(always active)","essentialDescription":"Required for forms, spam prevention, and basic website operation. They cannot be disabled.","optionalStatus":"OPT","marketingTitle":"Marketing and analytics","metaPixelDescription":"measures conversions from Facebook and Instagram ads.","googleTagDescription":"measures Google Ads conversions and website analytics.","hotmartDescription":"measures attribution and purchase conversions.","providerPrivacy":"This data is sent to {providers} and is subject to their privacy policies."}},"websiteFunnelTypes":{"title":"Funnel types","description":"Funnel templates (challenge, webinar, launch…). Each type defines its <highlight>blueprint</highlight>: landing stages, email sequences by phase, links, avatars, and pixels. Apply a type to a campaign from its details (<highlight>Funnel</highlight> section) to populate the full structure.","explainerQuestion":"How does the funnel system work?","explainerParagraphOne":"Each card is a <strong>type</strong>: the complete template for a funnel (contract and master assets). Open it to see two tabs — <strong>Template</strong> (master sequences, reference landings, graph flow, and archetype avatars) and <strong>Campaigns</strong> (the real funnels in your account that use that type, with health for every component).","explainerParagraphTwo":"The full cycle: <strong>installing</strong> a type creates a campaign with cloned, paused master sequences and AI adapts the copy to the product. Once a funnel has been proven, <strong>packaging it</strong> freezes it as a template for future campaigns. System types are global; customising one for an account creates a private copy.","loading":"Loading funnel types…","loadError":"We could not load the funnel type catalogue.","retry":"Try again","empty":"There are no funnel types in the catalogue.","beta":"Beta","betaDescription":"This type is in beta because part of its journey is not finished yet.","system":"System","unknownSystemType":"System funnel","unknownSystemTypeDescription":"System funnel template.","unknownStage":"Other stage","unknownSequence":"Other sequence","stats":{"stages":"Stages","sequences":"Sequences","links":"Links","avatars":"Avatars"},"emailCount":"{count, plural, one {# email} other {# emails}}","sequenceTitle":"{label} — approximately {count, plural, one {# email} other {# emails}} ({funnelType})","metaPixel":"Meta Pixel","minimumAngles":"≥ {count, plural, one {# angle} other {# angles}}","stepTemplates":{"stepLabel":"Step","templates":{"leadCapture":{"h1":"Register now","h2":"Discover how to transform your business"},"webinarRegistration":{"h1":"Free masterclass","h2":"Reserve your place in this exclusive training"},"salesPage":{"h1":"The complete solution","h2":"Everything you need to achieve your goals"},"thankYou":{"h1":"Registration confirmed","h2":"Your place is reserved"},"upsell":{"h1":"Special offer","h2":"Available now for a limited time"}}},"stageLabels":{"registro":"Registration","gracias_registro":"Registration confirmation","vsl":"VSL","oto":"OTO","checkout":"Checkout","gracias_compra":"Purchase confirmation","webinar":"Live event","replay":"Replay","checkout_ht":"High-ticket checkout"},"sequenceLabels":{"registro":"Challenge registration","replay":"Reminders and replay","ultimasHoras":"Final VIP hours","preLaunch":"Pre-launch","launch":"Launch","cartClose":"Cart close","welcome":"Welcome","nurturing":"Nurturing","pitch":"Sales"},"systemTypes":{"reto":{"name":"Challenge","description":"A multi-day challenge with live sessions, a VIP or OTO offer, and an urgency-based close. ContentFlow's flagship funnel."},"webinar":{"name":"Webinar","description":"Registration for a webinar or live event, followed by replay and close. Includes an event countdown."},"launch":{"name":"Launch","description":"A launch with pre-launch or waiting list, cart opening, and cart close."},"evergreen":{"name":"Evergreen","description":"An always-on funnel with welcome, nurturing, and sales sequences starting when each contact registers."},"nurturing":{"name":"Nurturing","description":"An ongoing value sequence designed to maintain engagement without a direct sale."},"semana-formacion":{"name":"Training week","description":"Training over 3, 4 or 5 sessions, with optional mini-webinars and an optional offer."},"social":{"name":"Social media","description":"A funnel for social media campaigns, with links and avatars."}},"deliveryContract":{"title":"Requirements for new editions","pagesTitle":"Standalone HTML pages","pagesBody":"Pages are delivered as editable HTML, CSS and JavaScript, with the account's tracking and cookie consent. Changing an edition must not require changing the application.","languageTitle":"Content language","languageBody":"Each campaign saves its language: the edition's selection, the selected brand or the account default. If none is set, choose one before creating resources. The interface language does not change it.","existingContent":"Changing a default does not translate or replace existing resources. These requirements must be checked for each edition before publication."},"trainingWeekMaster":{"title":"Create your AI clone · Corporate master","description":"Explore the avatar pages, 3-to-5-day schedule, emails and resources. The Spanish example lets you edit dates and export a new edition’s configuration.","open":"Open master"},"gallery":{"moreInformation":"More information","lessInformation":"Less information","offers":"Offers","required":"required","openFunnel":"View funnel","instances":"Instances","noInstances":"No instances yet","unnamedInstance":"Unnamed instance","openInstance":"Open instance: {name}","moreInstances":"View {count} more"}},"trainingWeekRegistration":{"editor":{"title":"Update this edition's registration","description":"Prepare the forms and review the preview. Publishing updates all profiles and their GHL mappings together.","load":"Load registration and GHL fields","company":"Company","jobTitle":"Job title","country":"Country of residence","ghlField":"GHL field","chooseField":"Choose a contact field","consentVersion":"Event consent version","consentText":"Event consent text","prepare":"Prepare preview","publish":"Publish registration for all profiles","published":"Registration published","prepared":"Drafts prepared","pages":"pages","preview":"Registration preview","error":"The update could not be completed. Check the fields or whether the pages have changed.","defaultJobTitle":"Job title","defaultCountry":"Country of residence","newFieldName":"New GHL field name for {field}","createField":"Create GHL field for {field}","createFieldHint":"Creates or reuses a verified text field in this account’s GoHighLevel. It does not activate sending or publish the form.","separateNames":"Collect given names and surnames separately","registrationTag":"Event registration tag","captureAllAttribution":"Save full registration attribution, including additional UTM values","standardAttributionHint":"Every registration saves attribution in the account’s standard UTM fields. Additional and repeated values are retained without creating campaign fields.","twoPurposes":"Use two independent event and sponsor consent purposes","privacyUrl":"Privacy policy link","eventPurpose":"Event registration and event communications","sponsorPurpose":"Sharing with sponsors","policyFieldsHint":"Choose a long text field in GHL for the reviewed consent evidence.","policyFields":{"utm_source":"UTM · Source","utm_medium":"UTM · Medium","utm_campaign":"UTM · Campaign","utm_content":"UTM · Content","utm_term":"UTM · Term","utm_id":"UTM · Identifier","fullAttribution":"Full registration attribution","consentEvidence":"Event consent evidence"},"confirmationHeadline":"Final-step message on the confirmation page"},"eventConsent":{"enable":"Request consent for event registration","key":"Consent version","keyHint":"Change this key whenever the wording or scope changes.","text":"Event consent wording","textHint":"Enter reviewed wording for registration, access and event communications. Sponsor marketing consent is managed separately."},"ghlFieldIds":{"jobTitle":"GHL job title field ID","country":"GHL declared country field ID"},"ghlFieldHint":"Use a contact custom field from the connected account. It must differ from the profile field.","additionalFields":"Additional required event details","fullName":"Full name","company":"Company","jobTitle":"Job title","country":"Country of residence","heading":"Register for the training week","submit":"Register for the training week"},"websiteDomains":{"page":{"title":"Custom domains","description":"Connect your own domains to your landing pages","refresh":"Refresh domains","buyDomain":"Buy domain","addDomain":"Add domain","helpTitle":"How would you like to add your domain?","buyOption":"Buy it with us","easyBadge":"easy · one click","buyDescription":"Search for the name and buy it here. We configure DNS and SSL automatically. The domain belongs to you and you can transfer it to another provider whenever you want.","connectOption":"Connect a domain you already own","connectDescription":"Connect an existing domain or subdomain with Add domain. You will need to configure its A or CNAME records at your current DNS provider.","loading":"Loading domains","loadError":"We could not load your domains.","retry":"Try again","empty":"You have not configured any domains yet","connectFirst":"Connect your first domain","columns":{"domain":"Domain","status":"Status","landing":"Landing page","actions":"Actions"},"statusLabels":{"pending_dns":"DNS pending","dns_verified":"DNS verified","ssl_provisioning":"Setting up SSL","dns_misconfigured":"DNS needs attention","purchasing":"Purchase in progress","purchased_uncharged":"Support review","active":"Active","error":"Error"},"unknownStatus":"Status unavailable","showDns":"Show DNS instructions","hideDns":"Hide DNS instructions","openDomain":"Open {domain}","subdomain":"Subdomain","rootDomain":"Root domain","subdomainHelp":"Subdomain: a section of another domain, for example cf.yourdomain.com.","rootDomainHelp":"Root domain: the complete domain with nothing before it, for example yourdomain.com. It is also called an apex domain.","domainIssue":"This domain needs attention. Try verification again or contact support if the problem continues.","verify":"Verify DNS","verifyTitle":"Checks DNS; does not buy or register the domain","deleteTitle":"Remove domain","dnsInstruction":"Add these records at your DNS provider, such as Cloudflare, GoDaddy, or Namecheap.","dnsManualAfter":"Then select Verify above. We also check automatically every 30 minutes.","dnsDetected":"DNS detected. Waiting for propagation and SSL to complete.","errors":{"verify":"We could not verify the domain. Check the DNS records and try again.","delete":"We could not remove the domain.","assign":"We could not assign that landing page."},"deleteDialog":{"title":"Remove domain","description":"{domain} will be removed from the project. Visitors will see a 404 error.","cancel":"Cancel","confirm":"Remove"},"purchaseOrigin":{"purchased":"Purchased with us","connections":"External · added to connect","review":"Purchase needs verification","purchasedHelp":"Purchase confirmed. DNS status indicates whether it is ready to publish.","connectionsHelp":"Adding it to this list does not buy the domain. You must have registered it with your provider.","reviewHelp":"We cannot confirm this purchase yet. Do not repeat it until its status is checked."}},"wizard":{"title":"Connect domain","close":"Close domain setup","steps":{"domain":"Domain","dns":"DNS","ssl":"SSL","live":"Live"},"stepDescriptions":{"domain":"Enter your domain","dns":"Configure DNS records","ssl":"Automatic certificate","live":"Domain connected"},"intro":"Enter your domain or subdomain to get started","rootVsSubdomain":"A root domain (yourbrand.com) replaces the whole site on that domain. A subdomain (cf.yourbrand.com) leaves the main site untouched.","domainPlaceholder":"landing.yourbrand.com","add":"Add","detectedType":"Detected type: {type}","subdomain":"Subdomain","rootDomain":"Root domain (apex)","subdomainSuggestion":"Easiest path: use the subdomain {subdomain}. That keeps the current site on {apex}.","useSuggestedSubdomain":"Use {subdomain}","liveSiteChecking":"Checking whether this domain already has a website…","liveSiteDetected":"This domain already serves a page. If you continue and change DNS, that website will stop working here.","liveSiteContinue":"I understand the risk and want to continue with this domain","apexAtHint":"At GoDaddy, Cloudflare or Namecheap, the name @ is the root domain. That is correct; you do not need to type the full domain.","dnsIntro":"Add these records in your DNS provider's control panel:","verifying":"Checking… {elapsed}","timeout":"The check timed out. Select Verify DNS to try again.","verifyDns":"Verify DNS","sslProvisioning":"Setting up the SSL certificate…","sslDescription":"This usually takes 1–5 minutes. You can leave this page while setup continues in the background.","sslWarning":"SSL is taking longer than expected. Check for a CAA record that blocks letsencrypt.org. If you use Cloudflare, make sure SSL is set to Full.","live":"Your domain is live","openDomain":"Open {domain}","defaultLanding":"Default landing page","selectLanding":"Select a landing page…","landingDescription":"Visitors to {domain} will see this landing page.","finish":"Go to domain settings","errors":{"add":"We could not add the domain. Check the address and try again.","verify":"We could not verify the domain yet. Check the DNS records and try again.","assign":"We could not assign that landing page."}},"dns":{"copy":"Copy value","copied":"Copied","columns":{"type":"Type","name":"Name","value":"Value","status":"Status"},"verified":"Verified","pending":"Pending verification","notDetected":"DNS not detected yet","propagation":"DNS changes usually take 5–30 minutes to propagate.","proxy":"Configured through a proxy (Cloudflare)","proxySsl":"Make sure SSL is set to Full."},"purchase":{"title":"Buy a new domain","close":"Close domain purchase","searchPlaceholder":"Enter a name, for example yourbrand","searchLabel":"Domain name","search":"Search","premium":"premium","unavailable":"Unavailable","continue":"Continue with {domain} · {credits} credits","noneAvailable":"No extension is available for that name. Try another one.","back":"Back to search","registrant":"Registrant","defaultSuffix":"default","newContact":"+ New contact details…","fields":{"firstName":"First name","lastName":"Last name","email":"Email","phone":"Phone","companyName":"Company (optional)","address1":"Address","city":"City","state":"County / state","zip":"Postcode / ZIP","country":"Country (ISO code, e.g. GB)","address2":"Address line 2"},"placeholders":{"email":"registrant@example.com","phone":"+44.7700000000"},"saveDefault":"Save these as the default registrant details","autoRenew":"Renew automatically each year","credits":"{count} credits","balance":"Balance: {count} cr","buy":"Buy for {count} credits","insufficientButton":"Not enough credits","confirm":"You are about to buy {domain} and spend {credits} credits. This is a real domain purchase and cannot be undone.","cancel":"Cancel","confirmBuy":"Yes, buy it","readyTitle":"Your domain is ready! 🎉","readyDescription":"{domain} is online and serving your landing page.","boughtTitle":"{domain} purchased ✓","provisioningDescription":"We are configuring DNS and the SSL certificate. This usually takes 1–5 minutes and completes automatically.","propagating":"Propagating…","openWebsite":"Open website","openWhenReady":"Available when propagation is complete","viewDomains":"View my domains","canClose":"You can close this panel and keep working. Assign the funnel landing page from the table below.","errors":{"search":"We could not search for domains. Try again.","saveContact":"We could not save the registrant details.","purchase":"We could not buy the domain. No purchase should be retried until its status has been checked.","conflict":"That domain is already registered or a purchase is already in progress.","insufficientCredits":"Not enough credits: you have {balance} cr and need {needed} cr. Add credits and try again.","invalidContact":"Review the highlighted fields before buying.","invalidPurchase":"Review the domain and purchase details. The purchase has not been submitted.","invalidProfile":"This saved contact is no longer available. Select another or create a new one.","contactRejected":"The registrar rejected the contact details. Review the name, email, phone and address. The purchase was not completed. Contact support if this persists.","priceChanged":"The price has changed. Search for the domain again and confirm the updated price before buying.","domainUnavailable":"This domain is no longer available. Search for another option.","unsupportedRequirements":"This domain requires information or conditions that this form does not yet support. Contact support to continue. The purchase was not completed.","rateLimited":"Too many requests. Wait a few minutes before trying again. The purchase was rejected.","providerUnavailable":"We cannot process the purchase right now. Try later or contact support.","purchaseUnknown":"We cannot confirm the purchase outcome. Do not buy this domain again. Contact support to check its status."},"validation":{"required":"Complete this field.","tooLong":"This text is too long (255 characters maximum; email: 254).","email":"Enter a valid email without internal spaces.","phone":"Enter a phone number with + and the international code, using 8 to 15 digits.","country":"Enter a two-letter ISO country code, for example US.","invalid":"Review this field and remove invalid characters."},"purchaseReview":"The domain has been purchased, but a review is still pending. Do not buy it again. Contact support to complete setup or review the charge.","balanceLoading":"Checking balance…","balanceUnavailable":"We could not load your balance. Refresh the page to try again."},"landingPicker":{"groups":{"landing":"Landing pages","funnel":"Funnel steps","blog":"Blog","other":"Other pages"},"unassigned":"Unassigned","triggerLabel":"Choose a landing page","search":"Search landing pages…","clearSearch":"Clear search","draft":"Draft","noResults":"No results for “{query}”"}},"podcastSettings":{"creativeBriefLabel":"What is this podcast about?","creativeBriefPlaceholder":"e.g. Emili explores digital marketing, AI avatars, automation and sales","creativeBriefHint":"The AI uses this brief, the host and the selected content language. You can edit every suggestion.","titleIdeasAction":"10 AI title ideas","descriptionIdeasAction":"AI description ideas","coverIdeasAction":"AI cover ideas","coverIdeasHint":"Choose a concept to fill the editable prompt.","coverOverlay":"Suggested title overlay: {title}","personaCoverMissingImage":"{name} has no reference photo; choose a Persona image for a recognizable portrait.","coverBrandLabel":"Base the cover on a Brand","coverBrandCustom":"Custom palette / no Brand","coverColorsHint":"Cover colors · adjust them before generating","coverColorNumber":"Cover color {number}","coverAddColor":"+ Add color","coverSquareHint":"Podcast covers are square (1:1). Move and zoom the crop, then save a 3000 × 3000 image.","coverDiscardSelection":"Choose another image","provisionalPodcastTitle":"{name} Podcast","untitledPodcast":"Untitled Podcast","configureWithAi":"Set up with AI","configureWithAiDescription":"Automatically generate the title, description, cover art, and full configuration","generating":"Generating...","createWithAi":"Create with AI","personaTitle":"Podcast persona","personaRole":"(Host / presenter)","personaSelected":"Selected persona","selectPersona":"Select a persona","removePersona":"Remove selected persona","personaCoverHint":"The host will appear in the AI-generated cover art","noPersonas":"There are no personas in this account","personaDescription":"The selected persona is used as the author and to generate poster-style cover art with their photo.","configurationTitle":"Podcast configuration","podcastTitle":"Podcast title *","podcastTitlePlaceholder":"My podcast","language":"Language","description":"Description","collapse":"Collapse","expand":"Expand","descriptionPlaceholder":"Describe your podcast...","authorName":"Author name","authorNamePlaceholder":"Your name","authorEmail":"Author email","itunesCategory":"iTunes category","itunesSubcategory":"Subcategory","optional":"Optional","websiteUrl":"Website URL","copyright":"Copyright","copyrightPlaceholder":"© {year} Your Name","explicitContent":"Explicit content","podcastType":"Podcast type","episodic":"Episodic","serial":"Serial","coverTitle":"Podcast cover art","coverSizeHint":"(Minimum 1400×1400; 3000×3000 recommended)","chooseCoverImage":"Choose podcast cover image","changeImage":"Change image","removeCover":"Remove cover","uploading":"Uploading...","generatingCover":"Generating cover...","dropImage":"Drop the image here","clickOrDragImage":"Click or drag an image","generatingNewCover":"Generating new AI cover art... It will update automatically.","coverGenerated":"Cover art generated successfully","generateCover":"Generate cover art with AI","generateCoverWithPersona":"Generate cover art with AI (using {name})","coverPrompt":"Cover art prompt","coverPromptPlaceholder":"Describe the cover art... Example: 'Professional gold microphone on a dark background with purple audio waves'","personaCoverStyleHint":"The cover will use {name}'s photo in a cinematic poster style","generateCoverAction":"Generate cover art with AI","confirmCoverGeneration":"Confirm generation — click to run","sending":"Sending...","coverReady":"Cover ready","coverRetry":"Error — click to try again","automationTitle":"Automation","autoPublishFromYouTube":"Auto-publish from YouTube","autoPublishDescription":"Create an episode automatically when you publish a video on YouTube","publishDelay":"Delay before publishing the episode","delayHours":"{hours, plural, one {# hour} other {# hours}}","audioSource":"Episode audio source","voiceOnly":"Voice only","levelledVoice":"Levelled voice · S3","voiceOnlyDescription":"Clean TTS audio without music or effects. Ideal for educational content and clear narration.","fullVideo":"Full video","finalRenderAudio":"Audio from the final render","fullVideoDescription":"Audio extracted from the final video with music, effects, and transitions for a more dynamic result.","rssFeedUrl":"RSS feed URL","rssDescription":"Use this URL to submit your podcast to distribution platforms.","copyRss":"Copy RSS","copied":"Copied","distributionTitle":"Distribute to platforms","distributionDescription":"Distribute your podcast to Spotify, Apple Podcasts, Amazon, and more","automaticRssDistribution":"Automatic distribution through RSS","automaticRssDescription":"Register your RSS feed once on each platform. New episodes will then publish automatically when they are added to the feed.","goToPlatform":"Go to {platform}","saveChanges":"Save changes","createPodcast":"Create podcast","saved":"Podcast settings saved","created":"Podcast created","coverUploaded":"Cover art uploaded successfully","coverRemoved":"Cover art removed","dismissNotification":"Dismiss notification","defaultCompanyName":"My Company","errors":{"ideaGeneration":"We could not generate podcast ideas. Try again.","aiSession":"Your session has expired. Sign in and try again.","aiAccount":"You do not have access to this account. Select your ContentFlow account and try again.","save":"We could not save the podcast settings.","metadataGeneration":"We could not generate the podcast details with AI.","imageOnly":"Choose an image file.","imageTooLarge":"The image cannot be larger than 10 MB.","coverUpload":"We could not upload the cover image.","coverRemove":"We could not remove the cover image.","coverPromptRequired":"Describe the cover art before generating it.","coverGeneration":"We could not generate the cover art. Try again.","copyRss":"We could not copy the RSS URL.","podcastNotConfigured":"Set up the podcast before uploading a cover image."},"distributionInstructions":{"Spotify":["Open Spotify for Creators and create an account","Select Add your podcast","Paste the RSS feed URL","Verify ownership of the feed","Complete the podcast details and publish"],"Apple Podcasts":["Sign in to Apple Podcasts Connect with your Apple Account","Select the plus button to add a new show","Paste the RSS feed URL","Wait while Apple validates your feed, which can take 24–48 hours","Once approved, the show will be available on Apple Podcasts"],"Amazon Music":["Register with Amazon Music for Podcasters","Select Add or claim your podcast","Enter the RSS feed URL","Verify ownership and complete the details","The show will be published on Amazon Music and Audible"],"Google / YouTube Music":["Open YouTube Studio and choose to submit an RSS feed","Verify ownership of the feed","Make sure the RSS feed includes every required field","Confirm which episodes should be uploaded to YouTube Music","Allow time for YouTube to review and process the feed"],"iVoox":["Create an iVoox account","Open My iVoox and then My podcasts","Select Import podcast from RSS","Paste the feed URL and confirm","Review the show details before publishing"]}},"podcastPage":{"metadataTitle":"Podcast","metadataDescription":"Create, publish, distribute, and analyse your podcast episodes.","tabs":{"episodes":"Episodes","analytics":"Analytics","settings":"Settings"},"configuredSubtitle":"Episode and distribution management","unconfiguredSubtitle":"Set up your podcast to get started","active":"Active","paused":"Paused","autoPublishDelay":"Auto-publish: {hours}h delay","autoPublishOff":"Auto-publish: Off","aggregator":"Aggregator","justNow":"just now","minutesAgo":"{count, plural, one {# minute ago} other {# minutes ago}}","hoursAgo":"{count, plural, one {# hour ago} other {# hours ago}}","daysAgo":"{count, plural, one {# day ago} other {# days ago}}","loading":"Loading podcast","setupTitle":"Create your podcast","setupDescription":"Set up your podcast to publish episodes automatically from your YouTube videos. Spotify, Apple Podcasts, and other platforms will receive them through your RSS feed.","setupAction":"Set up podcast"},"podcastAnalytics":{"ranges":{"sevenDays":"7 days","thirtyDays":"30 days","ninetyDays":"90 days"},"loading":"Loading podcast analytics","noData":"No analytics data yet","plays":"Plays","sectorAverageDataset":"Industry average ({average}/episode)","otherPlatform":"Other","unknownCountry":"Unknown","platformLabels":{"Spotify":"Spotify","Apple Podcasts":"Apple Podcasts","Amazon Music":"Amazon Music","Google Podcasts":"Google Podcasts","Overcast":"Overcast","Pocket Casts":"Pocket Casts","Castbox":"Castbox","Castro":"Castro","iVoox":"iVoox","Podbean":"Podbean","Deezer":"Deezer","Web Browser":"Web browser","Otro":"Other"},"benchmark":{"top10":"Top 10% in the industry","top25":"Top 25% in the industry","above":"Above average","median":"At the industry average","below":"Below average","none":"Not enough data"},"totalPlays":"Total plays","appDownloads":"App downloads","appDownloadsHint":"Spotify, Apple, and others","uniqueListeners":"Unique listeners","rssReads":"RSS feed reads","rssReadsHint":"Times the feed was read","averageEpisodeDuration":"Average episode duration","averagePerEpisode":"Average per episode","sectorComparison":"Industry comparison","yourAverage":"Your average","playsPerEpisode":"{count} plays/episode","lifetime":"(all time)","sectorAverage":"Industry average","sectorMedian":"Industry median","averageMarker":"Average ({average})","topTenMarker":"Top 10% ({threshold}+)","playsByDay":"Plays by day","dottedLineHint":"Dotted line = industry average","noDataForPeriod":"No data for this period","downloadPlatforms":"Download platforms","noPlatformData":"No platform data","platformDataHint":"Data will appear when Spotify, Apple, and other apps read your feed","topEpisodes":"Top episodes","noPublishedEpisodes":"No published episodes","listenersByCountry":"Listeners by country","noLocationData":"No location data","episodePerformance":"Performance by episode","title":"Title","versusAverage":"vs average","noEpisodes":"No episodes"},"podcastPlayer":{"play":"Play episode","pause":"Pause episode","seek":"Episode playback position","position":"{current} of {total}","episodeNumber":"Episode {number}","skipBack":"Go back 15 seconds","skipForward":"Skip forward 30 seconds","mute":"Mute audio","unmute":"Unmute audio"},"podcastEpisodes":{"totalEpisodes":"Total episodes","publishedEpisodes":"Published","totalPlays":"Total plays","historical":"All time","averageDuration":"Average duration","searchPlaceholder":"Search episodes...","viewGallery":"Gallery view","viewList":"List view","viewCalendar":"Calendar view","loadingEpisodes":"Loading episodes","noEpisodes":"No episodes yet","noFilterResults":"No episodes match this filter","episode":"Episode","episodeNumber":"Ep. #{number}","episodeDetails":"Details for {title}","play":"Play","actions":"Actions","status":"Status","duration":"Duration","plays":"Plays","published":"Published","scheduledPublication":"Scheduled publication","deleteConfirm":"Delete this episode?","deleteEpisode":"Delete episode","playEpisode":"Play {title}","episodeMenu":"Actions for {title}","notPublished":"Not published","publish":"Publish","viewOnYouTube":"View on YouTube","delete":"Delete","previousMonth":"Previous month","nextMonth":"Next month","moreEpisodes":"+{count} more","weekdays":{"mon":"Mon","tue":"Tue","wed":"Wed","thu":"Thu","fri":"Fri","sat":"Sat","sun":"Sun"},"statusLabels":{"all":"All","draft":"Draft","published":"Published","scheduled":"Scheduled","processing":"Processing","error":"Error"},"statusUnknown":"Unknown status","episodeTypeLabels":{"full":"Full episode","trailer":"Trailer","bonus":"Bonus"},"episodeTypeUnknown":"Other","titleField":"Episode title","closeDrawer":"Close episode details","description":"Description","descriptionField":"Episode description","save":"Save","edit":"Edit","noDescription":"No description","details":"Details","season":"Season","type":"Type","audioSize":"Audio size","created":"Created","links":"Links","viewInApp":"View in app (Video #{number})","errorTitle":"Episode error","episodeErrorDescription":"This episode could not be processed. Try again or contact support if the problem continues.","copied":"Copied!","copyRss":"Copy RSS"},"websiteBlog":{"seoReview":{"title":"Editorial and SEO review","audience":"Audience","primaryKeyword":"Primary keyword","present":"Present","missing":"Missing","checks":{"title":"Visible title and SEO title","description":"Search description","keyword":"Reference keywords","structure":"Content divided into sections"},"humanReview":"These checks cover structure, not rankings. Verify facts, authorship and whether the answer helps your reader before publishing.","notes":"Draft notes to review"},"fromIdea":{"title":"Create blog","close":"Close","description":"Tell us your idea and who you want to help. Get three proposals before writing the article.","proposalDescription":"Choose a proposal, edit the keywords and outline, then create a draft to review in the editor with AI.","topic":"What would you like to write about?","topicPlaceholder":"How to prepare a property before listing it for sale","audience":"Who is it for?","audiencePlaceholder":"Homeowners selling a property for the first time","brandName":"Brand or business (optional)","primaryKeywordOptional":"Primary keyword (optional)","context":"Context and facts we can use","contextPlaceholder":"Your business, your perspective, facts and real examples. Add any missing information here before generating the draft.","language":"Article language","goal":"Goal","goals":{"educate":"Help and educate","compare":"Compare options","generate_leads":"Generate interest in my business"},"chooseIdea":"Choose a proposal","intents":{"informational":"Answer a question","commercial":"Compare before deciding","transactional":"Take the next step"},"articleTitle":"Article title","primaryKeyword":"Primary keyword","relatedKeywords":"Related keywords (comma-separated)","outline":"Outline (one section per line, between 2 and 10)","authorName":"Author (optional)","evidenceNeeded":"Facts worth providing","seoNote":"These keywords are editorial suggestions without search volume data. Check the facts and make sure the article answers your reader’s intent.","draftOnly":"Saved as a draft. You decide when to publish.","editBrief":"Edit the initial idea","createDraft":"Create draft and edit","getIdeas":"Suggest 3 ideas","thinking":"Preparing proposals…","writing":"Writing your draft…","workingNote":"AI is working. Keep this window open; you can review the result when it is ready.","invalidBrief":"Complete the topic and audience. Check that the title and keyword are filled in, with 2–10 sections and up to 8 related keywords.","requestFailed":"The request could not be completed. Your text is preserved so you can try again."},"page":{"title":"SEO Blog","subtitle":"SEO-optimized articles generated from your videos","viewPublicBlog":"View public blog","fromYouTube":"From YouTube","fromContentFlow":"From CF Video","fromContentFlowTitle":"Generate from a ContentFlow365 video"},"tabs":{"articulos":"Articles","plantilla":"Templates","personalizacion":"Personalization"},"common":{"cancel":"Cancel","delete":"Delete","publish":"Publish","unpublish":"Unpublish","published":"Published","draft":"Draft","loading":"Loading...","noCategory":"No category"},"youtubeDialog":{"title":"Generate from YouTube","description":"Enter a video URL to generate an SEO-optimized article","videoUrl":"Video URL","urlPlaceholder":"https://www.youtube.com/watch?v=...","optionalCategory":"Category (optional)","generate":"Generate article"},"deleteDialog":{"title":"Delete article","description":"This action cannot be undone. The article will be permanently deleted."},"errors":{"generation":"We couldn't generate the article. Please try again."},"articles":{"stats":{"total":"Total articles","published":"Published","visits":"Total visits"},"searchPlaceholder":"Search articles...","allCategories":"All categories","allStatuses":"All statuses","count":"{count, plural, one {# article} other {# articles}}","selected":"{count, plural, one {# selected} other {# selected}}","generation":{"startedTitle":"Generating a new blog article with AI...","errorTitle":"The article could not be generated","doneTitle":"Article generated successfully","started":"This may take 1–2 minutes. It will appear here automatically.","startedWithVideo":"This may take 1–2 minutes. It will appear here automatically. Video: {title}","done":"The table has been updated."},"noSearchResults":"No results match your search","noArticles":"No blog articles yet","emptyHint":"Generate your first article from a YouTube or ContentFlow365 video","selectAll":"Select all articles","selectArticle":"Select {title}","featuredImageAlt":"Featured image for {title}","columns":{"title":"Title","category":"Category","readingTime":"Reading time","visits":"Visits","status":"Status","date":"Date","actions":"Actions"}},"templates":{"title":"Blog templates","description":"Your blog has two templates that control how visitors see it at <address>address</address>: the <home>home</home> (article list) and the <article>article</article> (each post). They apply to every blog post.","accountFallback":"your-account"},"templateGallery":{"home":{"title":"Blog home template","description":"Choose how your blog home page is displayed","viewBlog":"View blog","aiRecommend":"AI recommendation","aiSelected":"AI selected: {template}","aiReasoning":"{posts, plural, one {# post} other {# posts}}, {categories, plural, one {# category} other {# categories}}, {ratio}% with images","preview":"Preview","active":"Active","use":"Use","livePreview":"Live preview","device":"Preview on {device}","openNewTab":"Open in a new tab","closePreview":"Close preview","previewTitle":"Preview: {template}","saving":"Saving...","density":{"low":"Spacious","medium":"Balanced","high":"Dense"},"imageFocus":{"high":"Visual","medium":"Mixed","low":"Text-first","none":"Text only"},"templateCopy":{"editorial-classic":{"name":"Editorial Classic","bestFor":"Professional publications with a strong featured story"},"minimal-reader":{"name":"Minimal Reader","bestFor":"Focused reading with no visual distractions"},"magazine-grid":{"name":"Magazine Grid","bestFor":"Content-rich blogs with several categories"},"newsletter-home":{"name":"Newsletter Home","bestFor":"Regular publishing and audience growth"},"visual-masonry":{"name":"Visual Masonry","bestFor":"Image-led stories and creative portfolios"},"archival-index":{"name":"Archival Index","bestFor":"Large libraries and chronological browsing"},"card-deck":{"name":"Card Deck","bestFor":"A clean, consistent article catalogue"},"split-screen":{"name":"Split Screen","bestFor":"Narrative content with strong imagery"},"compact-digest":{"name":"Compact Digest","bestFor":"Maximum information in minimal space"},"showcase-gallery":{"name":"Showcase Gallery","bestFor":"Premium visual content and modern brands"}}},"article":{"title":"Article template","description":"Style applied to every published article, including its header, typography, and sidebar.","latestPreview":"Preview with your latest article","noPreview":"There are no articles to preview.","noPreviewHint":"Generate your first article to see it with each template.","loadingContent":"Loading article content...","emptyContent":"This article does not have content yet","templateCopy":{"classic":{"name":"Classic","description":"Elegant serif type, a wide reading column, and a table-of-contents sidebar.","bestFor":"Long-form reading and expert content"},"magazine":{"name":"Magazine","description":"Full-bleed hero, extra-bold title, and editorial drop cap.","bestFor":"Editorial stories and visual brands"},"tutorial":{"name":"Tutorial","description":"Section dividers, dark code blocks, sans-serif type, and a contents sidebar.","bestFor":"How-to guides and technical content"},"listicle":{"name":"Listicle","description":"Centered content, soft gradient, and spacious headings.","bestFor":"Lists, recommendations, and quick reading"}}}},"personalization":{"title":"Blog personalization","description":"Customize the blog home header, optional article components, and categories.","header":{"title":"Public blog header","description":"The title and subtitle visitors see on the blog home. Leave them empty to use the defaults.","titleLabel":"Title","titlePlaceholder":"For example: Money Club Insights","subtitleLabel":"Subtitle","subtitlePlaceholder":"For example: Crypto and financial market analysis"},"components":{"title":"Components in every article","description":"Enabled by default and applied automatically to every published article in this account.","youtubeEmbed":{"label":"YouTube embed in the article","description":"Embedded YouTube player at the end of the article when its source video is published."},"youtubeLink":{"label":"External YouTube link","description":"A “View on YouTube” button linking to the original video."},"podcast":{"label":"Podcast player","description":"Audio player when the video has an associated podcast episode."},"guide":{"label":"Guide download (PDF)","description":"Coming soon: PDF generation is not active yet. This setting is saved for when it becomes available.","badge":"Coming soon"}}},"categories":{"title":"Categories","description":"They appear as filters on the public blog and in the article list. Optional.","newPlaceholder":"New category...","create":"Create","empty":"No categories yet.","articleCount":"{count, plural, one {# article} other {# articles}}","cannotDelete":"A category with articles cannot be deleted","delete":"Delete category"},"fromVideo":{"title":"Generate blog article from video","close":"Close","generatingTitle":"Generating the article in the background...","generatingDescription":"You can close this window. We'll notify you when it's ready.","goToBlog":"Go to blog","selectVideo":"Select video","searchVideo":"Search videos by title...","noVideos":"No videos found","selectedVideo":"Selected: {title}","video":"Video: {title}","videoThumbnailAlt":"Thumbnail for {title}","optionalCategory":"Category (optional)","noCategory":"No category","optionalAuthor":"Author (optional)","authorPlaceholder":"Author name","templateLabel":"Blog article template","cancel":"Cancel","generate":"Generate article","untitledVideo":"Untitled video","blogFallbackTitle":"Blog article","success":"Article generated: {title}","editBlog":"Edit article","availableAt":"Available at {path}","generationError":"We couldn't generate the article. Please try again.","templates":{"classic":{"label":"Classic","description":"Clean layout with a table-of-contents sidebar and indigo accents"},"magazine":{"label":"Magazine","description":"Full-bleed hero, drop cap, and editorial styling"},"tutorial":{"label":"Tutorial","description":"Numbered steps, code blocks, and blue accents"},"listicle":{"label":"Listicle","description":"Centered cards with a soft emerald gradient"}}},"editorPage":{"notFound":"Blog article not found","loadFailed":"We couldn't load this article. Please try again.","back":"Back","blog":"Blog","untitled":"Untitled","statusLabels":{"draft":"Draft","published":"Published"}},"editor":{"title":"AI Blog Editor","unsavedChanges":"Unsaved changes","saved":"Saved","desktop":"Desktop preview","mobile":"Mobile preview","viewPublicBlog":"View public article","seoSettings":"SEO settings","blogMetadata":"Blog metadata","hidePreview":"Hide preview","showPreview":"Show preview","saveError":"We couldn't save your changes. Please try again.","chatError":"The AI editor couldn't respond. Please try again.","undo":"Undo","saveChanges":"Save changes","empty":{"title":"No content yet","description":"Use the chat to generate or edit the article content"},"templateLabels":{"classic":"Classic","magazine":"Magazine","tutorial":"Tutorial","listicle":"Listicle"},"suggestions":{"introduction":"Improve the introduction with a stronger hook","seo":"Optimize the article for SEO: title, metadata, and keywords","faq":"Add an FAQ section at the end of the article","titles":"Generate three SEO title variants"},"fields":{"h1":"H1 title","h1Placeholder":"Article title","seoTitle":"SEO title","seoTitlePlaceholder":"SEO title (maximum 60 characters)","metaDescription":"Meta description","metaDescriptionPlaceholder":"Meta description (maximum 160 characters)","slug":"URL slug","slugPlaceholder":"article-url-slug","keywords":"SEO keywords","keywordsPlaceholder":"keyword one, keyword two, keyword three","author":"Author","authorPlaceholder":"Author name","category":"Category","categoryPlaceholder":"Category","tags":"Tags","tagsPlaceholder":"tag one, tag two, tag three","featuredImage":"Featured image URL","featuredImagePlaceholder":"https://example.com/image.jpg"},"tools":{"updateContent":"Update article content","updateSeo":"Update article SEO","updateTemplate":"Update article template","updateMetadata":"Update article metadata","addFaq":"Add FAQ section","addComparison":"Add comparison table","completed":"Article updated"}},"publicArticle":{"blog":"Blog","fallbackTitle":"Blog article","imageAlt":"Blog article image","tableOfContents":"Contents","readingTime":"{minutes, plural, one {# minute read} other {# minute read}}","readingTimeShort":"{minutes} min","noContent":"No content available","relatedHeading":"Latest articles","shareArticle":"Share this article","shareOn":"Share on {network}","copyLink":"Copy link","linkCopied":"Link copied","copyFailed":"Couldn't copy link","listenAsPodcast":"Listen to this article as a podcast","listenOn":"Listen on {platform}","audioUnsupported":"Your browser does not support HTML5 audio.","viewOnYouTube":"Watch the video on YouTube","youtubeVideoTitle":"YouTube video","downloadGuide":"Download the guide","guideComingSoon":"Coming soon: a PDF summary of this article."},"publicHome":{"title":"Blog","allCategories":"All","empty":"No published articles yet.","emptyCategory":"No published articles in “{category}” yet.","readingTime":"{minutes, plural, one {# minute read} other {# minute read}}","readingTimeShort":"{minutes} min","defaultSubtitle":"Articles about content production, digital marketing, and video strategy","newsletterSubtitle":"Exclusive content about content production and digital strategy","gallerySubtitle":"A visual gallery of ideas and stories","latestArticles":"Latest articles","popular":"Popular","readArticle":"Read article"},"publicMetadata":{"description":"Articles about content production, digital marketing, and video strategy","notFound":"Article not found"},"row":{"viewPublished":"View published article","edit":"Edit article"},"navigation":{"title":"Connect your blog to your business","description":"These links appear on the index and every article, across your subdomains and custom domains.","homeUrl":"Your business website URL","homeLabel":"Website link text","backHome":"Back to website","urlHelp":"Use an https:// URL or a path such as /contact. Leave the home URL empty to hide that link. You can add up to 5 links.","linkLabel":"Link {number} label","linkUrl":"Link {number} URL","removeLink":"Remove link {number}","remove":"Remove","addLink":"Add link","save":"Save navigation","saving":"Saving…","saved":"Navigation saved.","loading":"Loading navigation…","loadError":"Navigation could not be loaded. Retry before editing to preserve your saved links.","saveError":"Could not save. Your changes are still here to retry.","invalid":"Check the labels and URLs. Use http(s) links or paths starting with /.","retry":"Retry","publicLabel":"Business navigation","blog":"Blog"}},"templateLab":{"title":"Template Lab","subtitle":"Generate hero variations and choose your favourite templates","savedSets":"{count, plural, one {# saved set} other {# saved sets}}","loadSession":"Load saved set: {topic}","deleteSession":"Delete saved set: {topic}","favoriteCountShort":"{count} fav","favoriteCount":"{count, plural, one {# favourite} other {# favourites}}","topicLabel":"Landing page topic","topicPlaceholder":"For example: a free live trading masterclass for beginners...","audienceLabel":"Target audience","audiencePlaceholder":"For example: digital entrepreneurs aged 25 to 45...","optional":"(optional)","visualStyle":"Visual style","styles":{"bold":"Bold","minimal":"Minimal","corporate":"Corporate","startup":"Startup"},"sampleImage":"Sample image","selectImage":"Choose a sample image","noImage":"No image","noImagePlaceholder":"No image (placeholder)","imageSources":{"poster":"Poster","video":"Video"},"noImagesAvailable":"No images are available. Upload posters or cover images first.","generating":"Generating...","regenerate":"Regenerate","generateVariations":"Generate 10 variations","previewInstructionsBefore":"Select a variation to view the complete landing page. Use the","previewInstructionsAfter":"to mark favourites.","viewFullLanding":"View complete landing page","emptyTitle":"Template laboratory","emptyDescription":"Enter a landing page topic and generate 10 hero variations with different layouts, image positions and bullet styles. Choose your favourites to use as templates.","loading":"Loading saved template sets","addLayoutFavorite":"Add {layout} to favourites","removeLayoutFavorite":"Remove {layout} from favourites","previewImageAlt":"Selected image in the landing page preview","errors":{"load":"We couldn't load your saved template sets.","generate":"We couldn't generate the landing page variations. Please try again.","save":"The variations were generated, but we couldn't save your changes.","delete":"We couldn't delete the saved template set."},"unknownLayout":{"name":"Template layout","description":"Custom landing page layout"},"layouts":{"classic":{"name":"Classic","description":"Text on the left, image on the right and checkmark bullets"},"image-left":{"name":"Image left","description":"Image on the left and text on the right"},"full-background":{"name":"Full background","description":"Full-screen image with centred overlay text"},"split-panels":{"name":"Dark/light split","description":"Dark text panel paired with a light image panel"},"centered-clean":{"name":"Clean centred","description":"No image, centred text and horizontal bullet chips"},"card-grid":{"name":"Benefit cards","description":"Centred headline with three benefit cards below"},"bold-gradient":{"name":"Bold gradient","description":"Dark gradient, large centred text and an accent image"},"magazine":{"name":"Magazine","description":"Large top image, overlapping headline card and numbered bullets"},"compact-sidebar":{"name":"Compact sidebar","description":"Narrow image sidebar with a wide text area"},"video-style":{"name":"Video style","description":"Centred text, circular avatar image and bullet chips"}},"previewDialog":{"devices":{"desktop":"Desktop preview","tablet":"Tablet preview","mobile":"Mobile preview"},"openNewTab":"Open in a new tab","favorite":"Favourite","addFavorite":"Add to favourites","removeFavorite":"Remove from favourites","close":"Close preview"},"fullPreview":{"heroImageAlt":"Selected landing page hero image","trustBar":"More than 2,500 people have already joined — don't miss out","benefitsTitle":"What you'll learn","benefitsSubtitle":"Everything you need to take the next step with confidence","benefits":{"immediate":{"title":"Immediate access","description":"Start learning from the very first minute"},"guarantee":{"title":"Complete guarantee","description":"No commitment — cancel whenever you like"},"premium":{"title":"Premium content","description":"Exclusive material created by experts"}},"testimonialsTitle":"What our students say","testimonials":{"maria":"An incredible experience. It completely changed how I approach investing.","carlos":"Practical and straight to the point. I started applying the strategies the next day."},"finalCtaTitle":"Don't miss this opportunity","finalCtaDescription":"Places are limited. Reserve yours now and start your journey.","footer":"© {year} All rights reserved — Template generated by ContentFlow365"}},"googleAdsGa4Audiences":{"title":"Google Analytics · read-only inventory","description":"Shows the GA4 properties accessible to the OAuth identity and distinguishes which ones are linked to the selected Customer before enabling any advertising use.","summary":"{accessible} accessible · {linked} linked · {ready}/{total} lists available","refresh":"Refresh GA4 audiences","loading":"Checking GA4 links and UserLists…","loadFailure":"GA4 could not be verified for this Customer.","reauthorize":"Reauthorize","authorizeAnalytics":"Authorize Analytics access","authorizationDescription":"Grant only read access to Analytics when you open the GA4 audience inventory.","propertyId":"Property {id}","notLinkedDescription":"The OAuth identity can read this property through <scope>analytics.readonly</scope>. It is not linked to Customer {customerId}, so ContentFlow does not use it for signals or targeting.","linkUnavailableDescription":"The property is accessible, but Analytics did not allow its link to this Customer to be verified. It remains blocked from advertising use.","audiencesUnavailableDescription":"Analytics did not allow the audience inventory for this linked property to be read.","noAudiences":"The property does not return audiences that can be managed through the API.","audienceMeta":"{days} days · Audience {id}","estimatedUsers":"{count} estimated users","noSafeAssociation":"No safe automatic association","availableInPmax":"Available in “New PMax signal”","statuses":{"ready":"Available in Ads","building":"Building","closed":"Closed list","ambiguous":"Ambiguous name","personalizationDisabled":"No personalization","pending":"Pending import"},"propertyStatuses":{"notLinked":"Accessible · not linked","unavailable":"Link cannot be verified","linkedActive":"Linked · personalization active","linkedDisabled":"Linked · personalization disabled"},"warnings":{"scopeRequired":"The current connection does not include GA4 read access. Authorize only Analytics read access to discover linked properties and audiences.","reconnectRequired":"Google Analytics rejected Analytics access. Request that separate permission again without replacing the Ads connection.","adminApiUnavailable":"Enable Google Analytics Admin API in the OAuth project and confirm access to the GA4 property.","ga4Unavailable":"Google Analytics Admin API is temporarily unavailable.","noLinkedProperties":"No accessible GA4 property is linked directly to this Customer.","propertyLimit":"The safe limit of 100 accessible properties was reached; reduce the OAuth identity's access or use a dedicated identity.","linkedPropertyLimit":"The first 20 linked properties are shown to protect the Analytics Admin API quota.","someLinksUnavailable":"The Google Ads links for one or more accessible properties could not be checked.","someAudiencesUnavailable":"The audiences for one or more linked properties could not be listed.","userListsUnavailable":"Audiences could not be matched against Google Ads UserLists; none are marked as available.","linkPersonalizationDisabled":"Ads personalization is disabled on one or more GA4 → Google Ads links.","audiencePersonalizationDisabled":"One or more audiences are excluded from ads personalization and cannot be used for targeting.","importPending":"One or more audiences do not yet have an exact, unique UserList in Google Ads; propagation may take several hours.","ambiguousNameMatch":"Duplicate audience names exist in Google Ads. ContentFlow does not link them automatically.","nameMatchOnly":"Google Ads API does not expose the GA4 source: ContentFlow only confirms exact, unique name matches.","alphaApi":"The audience inventory uses the Alpha surface of Analytics Admin API; it is read-only and may change."}},"integrationsPage":{"zoomBeta":{"internalMessage":"Zoom is currently in beta and is available only to internal accounts while Zoom completes the app review.","externalMessage":"The Zoom integration is currently in beta and is not yet available for this account. We will enable it when Zoom completes the app review."},"title":"Integrations","connectedSummary":"{connected} of {total} connected","searchPlaceholder":"Search integrations…","searchLabel":"Search integrations","allCategories":"All","empty":"No integrations found","configure":"Configure","unavailable":"Unavailable","docs":"Docs","moreFeatures":"+{count} more","planLocks":{"aiProviders":"Available from the PRO plan"},"categories":{"crm":"CRM","communication":"Communication","payments":"Payments","social":"Social media","analytics":"Analytics","video":"Video","aiMedia":"AI audio and video"},"statuses":{"connected":"Connected","notConnected":"Not connected","partial":"Partial","applicationPending":"Application in progress","betaUnavailable":"Beta · unavailable","comingSoon":"Coming soon"},"unknown":{"name":"Integration","description":"Integration details"},"items":{"chatgptAds":{"name":"ChatGPT Ads","description":"Connect your OpenAI advertising account using the advertiser key.","features":{"connection":"Per-advertiser key with encrypted storage","editing":"Campaigns, ad groups, ads and replacement creatives","reporting":"Dashboard, period comparisons and reporting"}},"ghl":{"name":"GoHighLevel","description":"Connect your account for a native two-way integration","features":{"contacts":"Two-way contact sync","opportunities":"Opportunities and pipelines","calendar":"Calendars, appointments and bookings","bots":"Qualification bots","customFields":"Custom fields for contacts, opportunities and bots","inbox":"Omnichannel inbox: WhatsApp, email, SMS, calls, Live Chat and Google Business","emails":"Emails and conversation tracking","oauth":"Secure Marketplace OAuth connection"}},"slack":{"name":"Slack","description":"ContentFlow notifications in your team's work channels","features":{"oauth":"OAuth connection per workspace","channels":"Independent channel selection","notifications":"Operational alerts with secure delivery","bot":"Foundation ready for a future AI bot"}},"hotmart":{"name":"Hotmart","description":"Payment gateway, subscriptions, affiliates and digital products","features":{"webhooks":"Real-time purchase webhooks","subscriptions":"Subscriptions and cancellations","carts":"Abandoned carts","ghl":"Automatic GHL sync","api":"REST API (history and products)"}},"ghlPayments":{"name":"GoHighLevel Payments","description":"Orders and payments processed by the connected GoHighLevel sub-account","features":{"orders":"Order imports","transactions":"Transactions and refunds","subscriptions":"Subscription status","reconciliation":"Sync and reconciliation"}},"stripe":{"name":"Stripe","description":"Future native checkout through each company's own Stripe account","features":{"connect":"Stripe Connect per company","directCharges":"Direct charges to the seller","checkout":"Hosted secure checkout","noCommission":"No ContentFlow commission"}},"paypal":{"name":"PayPal","description":"Future native checkout through each company's PayPal Business account","features":{"partner":"PayPal Partner / Multiparty","onboarding":"Onboarding per company","checkout":"Checkout and refunds","noCommission":"No ContentFlow commission"}},"metaAds":{"name":"Meta Ads","description":"Available: connect your Meta Ads account to manage campaigns and review performance.","features":{"campaigns":"Campaign and ad set management","creatives":"Publish banners as ads","analytics":"Analytics and demographics","aiReport":"AI report (Gemini)","capi":"Meta CAPI conversions"}},"linkedinOrganic":{"name":"LinkedIn Organic","description":"Native publishing for professional profiles and company pages","features":{"profiles":"Profiles and company pages","formats":"Text, images, video and documents","analytics":"Polls and community analytics"}},"linkedinAds":{"name":"LinkedIn Ads","description":"B2B advertising for ad accounts associated with the company","features":{"campaigns":"Campaigns and campaign groups","creatives":"Sponsored creatives","reporting":"Reporting and conversions"}},"tiktokOrganic":{"name":"TikTok Organic","description":"Native publishing for authorized creator or business accounts","features":{"video":"Direct video posts","photos":"Posts with up to 35 photos","privacy":"Account privacy and capabilities"}},"tiktokAds":{"name":"TikTok Ads","description":"Campaigns and ads through a separate TikTok for Business connection","features":{"campaigns":"Campaigns, ad groups and ads","audiences":"Audiences and conversion events","reporting":"Performance reports"}},"xOrganic":{"name":"X Organic","description":"Native publishing for authorized personal or professional profiles","features":{"posts":"Posts, replies and polls","media":"Images, GIFs and video","oauth":"Independent OAuth for each account"}},"xAds":{"name":"X Ads","description":"Advertising and reporting through independent X Ads API access","features":{"campaigns":"Campaigns and line items","creatives":"Promoted creatives","reporting":"Reporting and spend control"}},"youtube":{"name":"YouTube","description":"Analytics, video publishing and comments","features":{"stats":"Channel and video statistics","publishing":"Automatic publishing","comments":"Comments and pinned comments","analytics":"Advanced analytics","shorts":"YouTube Shorts and clips"}},"zoom":{"name":"Zoom","description":"OAuth for each account, meeting creation and attendance imports","features":{"oauth":"Multi-account OAuth connection","meetings":"Meeting creation","registration":"Automatic registration","attendance":"Attendance and duration per person","analytics":"Conversion analytics"}},"heygen":{"name":"HeyGen","description":"Connect the company's API account for its external avatars and renders","features":{"byok":"Company-owned API key","avatars":"Private avatar groups and looks","billing":"Usage billed to the customer's API wallet","safe":"Existing avatars remain unchanged"}},"elevenlabs":{"name":"ElevenLabs","description":"Connect the company's voice workspace with its own quota and voices","features":{"byok":"Company-owned API key","voices":"Designed and cloned voices","billing":"Usage billed to the customer's quota","safe":"Existing voices remain unchanged"}},"clickmeeting":{"name":"ClickMeeting","description":"Connect the client account, link its events and analyze attendance for each session.","features":{"secure":"Secure connection","registration":"Registrant synchronization","reports":"Attendance analytics"}},"googleAds":{"name":"Google Ads","description":"Available: connect your Google Ads account to manage campaigns and review performance.","features":{"oauth":"Secure OAuth connection","campaigns":"Campaigns and ad groups","analytics":"Performance metrics and reporting","creatives":"Image and video creatives"}}},"ghlManualConnection":"Manual connection and permissions","ghlWizard":"Open setup guide"},"hotmartIntegration":{"title":"Hotmart","subtitle":"Payments, subscriptions and affiliates","back":"Back to Integrations","connected":"Connected","dashboardTab":"Dashboard","configTab":"Configuration","step":"Step {number}","steps":{"credentials":{"title":"Create API credentials","description":"In Hotmart: Tools → Hotmart Credentials → Create credential → Hotmart API."},"webhook":{"title":"Configure webhook","description":"Register a webhook in Hotmart, select the events and paste the URL."},"verify":{"title":"Verify connection","description":"Check that the credentials work and the webhook is configured."}},"credentialHelpTitle":"Where can I find the credentials?","credentialHelp":"Hotmart → Manage my business → Products → Tools → Hotmart Credentials → Create credential → Hotmart API.","environment":"Environment","production":"Production","sandbox":"Sandbox","clientId":"Client ID","clientSecret":"Client Secret","replaceConfigured":"Already configured; enter a value to replace it","clientIdPlaceholder":"Your Hotmart Client ID","clientSecretPlaceholder":"Your Hotmart Client Secret","showSecret":"Show secret","hideSecret":"Hide secret","saveContinue":"Save and continue","webhookHelpTitle":"Steps in Hotmart","webhookHelpOne":"1. Tools → Webhook → Register webhook.","webhookHelpTwo":"2. Paste this URL as the webhook destination:","copy":"Copy","copied":"Copied","eventsToSelect":"Events to select","hottok":"Hottok (webhook token)","hottokPlaceholder":"The hottok from your webhook settings","webhookSecret":"Webhook secret (HMAC, optional)","webhookSecretPlaceholder":"Optional, for HMAC-SHA256 verification","autoSync":"Automatic GoHighLevel synchronization","autoSyncHelp":"Automatically send Hotmart contacts to GoHighLevel.","apiCredentials":"API credentials","configured":"Configured","pending":"Pending","lastWebhook":"Last webhook received","never":"None yet","verifyApi":"Verify API connection","testSuccess":"Connection successful: credentials are valid.","docs":"Hotmart Developers documentation","errors":{"load":"Hotmart settings could not be loaded. Try again.","save":"Hotmart settings could not be saved. Check the details and try again.","test":"The Hotmart connection could not be verified. Check the credentials.","copy":"The webhook URL could not be copied. Select and copy it manually."},"dismissError":"Dismiss notice","dashboard":{"presets":{"last_7d":"7 days","last_15d":"15 days","last_30d":"30 days","last_90d":"90 days","last_365d":"1 year","all":"All time"},"refresh":"Refresh","retry":"Retry","loadError":"Hotmart metrics could not be loaded. Try again.","totalRevenue":"Total revenue","pipeline":"Pipeline value","conversion":"Conversion","averageDeal":"Average deal","refunds":"Refunds","contacts":"Contacts","salesCount":"{count, plural, one {# sale} other {# sales}}","pendingCount":"{count, plural, one {# pending} other {# pending}}","dealsCount":"{count, plural, one {# transaction} other {# transactions}}","refundCount":"{count, plural, one {# refund} other {# refunds}}","customerCount":"{count, plural, one {# customer} other {# customers}}","wonLost":"{won, number} won / {lost, number} lost","percent":"{value, number}%","chartRevenueSales":"Revenue and sales by day","chartDeals":"Deal distribution","chartContacts":"Contacts by status","chartEvents":"Events by type","chartProducts":"Revenue by product","topAffiliates":"Top affiliates","affiliate":"Affiliate","deals":"Transactions","revenue":"Revenue","sales":"Sales","won":"Won","lost":"Lost","open":"Open","customers":"Customers","leads":"Leads","churned":"Churned","connectionEnvironment":"Environment","environmentProduction":"Production","environmentSandbox":"Sandbox","lastWebhook":"Last webhook","never":"Never","webhookErrors":"{count, plural, one {# error} other {# errors}}","active":"Active","inactive":"Inactive","emptyTitle":"No Hotmart data for this period.","emptyHelp":"Data will appear when purchase webhooks are received.","eventNames":{"PURCHASE_APPROVED":"Purchase approved","PURCHASE_COMPLETE":"Purchase complete","PURCHASE_CANCELED":"Purchase canceled","PURCHASE_REFUNDED":"Refund","PURCHASE_CHARGEBACK":"Chargeback","PURCHASE_EXPIRED":"Purchase expired","PURCHASE_BILLET_PRINTED":"Billet printed","PURCHASE_DELAYED":"Delayed payment","PURCHASE_PROTEST":"Protest","PURCHASE_OUT_OF_SHOPPING_CART":"Abandoned cart","SUBSCRIPTION_CANCELLATION":"Subscription canceled","SWITCH_PLAN":"Plan changed"}}},"metaIntegration":{"title":"Meta · Multiple accounts","subtitle":"Connect multiple Meta accounts to ContentFlow365 to consolidate Business Managers, ad accounts and pages.","back":"Back to Integrations","exportAudit":"Export audit","exportAuditTitle":"Download the consolidated audit as Markdown","addAccount":"Add Meta account","providerAds":"Meta Ads","providerOrganic":"Meta Organic (IG/FB insights)","inventory":"{count, plural, one {Consolidated inventory for # account} other {Consolidated inventory for # accounts}}","counts":{"businesses":"Business Managers","adAccounts":"Ad accounts","pages":"Facebook pages","igAccounts":"Instagram accounts","pixels":"Pixels","domains":"Domains"},"countChip":"{count, number} {label}","health":{"valid":"Valid","expired":"Expired","revoked":"Revoked","app_disabled":"App disabled","error":"Error","unknown":"Unknown"},"healthIssue":"This token could not be verified. Check its connection or rediscover its assets.","neverSystemUser":"Never expires (system user)","unknown":"Unknown","expiredDays":"{count, plural, one {Expired # day ago} other {Expired # days ago}}","expiresDays":"{count, plural, one {Expires in # day} other {Expires in # days}}","userId":"User {id}","metaUser":"Meta user","noDiscovery":"No assets have been discovered yet. Select “Rediscover” to find them.","tokenType":"Type","systemUser":"System user","user":"User","token":"Token","scopes":"Permissions","lastDiscovery":"Last discovery","discoveryStats":"({seconds, number} s; {count, plural, =0 {no errors} one {# error} other {# errors}})","rediscover":"Rediscover","disconnectTitle":"Disconnect this user","confirmDisconnect":"Disconnect this Meta user? Their token and discovered inventory for this user will be removed.","loading":"Loading Meta connections…","emptyTitle":"No Meta accounts connected","emptyDescription":"Connect a Meta account to discover its Business Managers, ad accounts, pages and Instagram accounts.","connectFirst":"Connect the first account","helpTitle":"How do multiple Meta accounts work?","helpConnections":"Each Meta user connected through OAuth has a separate token. On connection, ContentFlow365 discovers and saves the assets visible to that user.","helpRediscovery":"“Rediscover” updates the inventory for one token. Use it after changing permissions or renewing credentials.","errors":{"load":"Meta connections could not be loaded. Try again.","discover":"This user's assets could not be discovered. Try again.","disconnect":"This Meta user could not be disconnected. Try again."},"dismissError":"Dismiss notice"},"aiProviderConnections":{"title":"HeyGen and ElevenLabs","description":"Connect external AI accounts to prepare tenant-owned avatars, voices, audio and video.","providerPage":{"title":"Connect {provider}","description":"Configure and verify this company's {provider} API account."},"back":"Back to integrations","compatibilityNotice":"Connecting a key only makes it available. It does not change existing avatars, voices, editors or generations, and it does not enable external usage.","availableOnly":"Connection available, but not yet used for generation. Activation will be introduced later as an explicit per-resource choice.","status":{"connected":"Connected","notConnected":"Not connected"},"verified":{"title":"Connection verified with {provider}","description":"The provider accepted the key and responded successfully."},"plan":{"title":"Integration available from PRO","description":"External {provider} accounts can be connected and used on Pro, Studio, Business and Scale plans. ContentFlow365-managed workflows continue to work normally.","required":"This connection is locked for the current plan. It is available from the PRO plan."},"guide":{"title":"How to get your {provider} API key","subtitle":"A four-step visual guide; opening the page creates no media and consumes no credits.","openExact":"Open the exact {provider} page","heygen":{"quick":{"open":"Open the API area of your HeyGen account directly.","create":"Create a dedicated key and copy it.","connect":"Paste it here and select Verify and connect."},"visual":{"first":"Developers","second":"API Keys","third":"Create API Key"},"steps":{"open":{"title":"Open HeyGen with your account","description":"Use the button above. It opens Developers → API directly; if HeyGen asks you to sign in, use the account that should own the avatars."},"navigate":{"title":"Open API Keys","description":"In Developers, open API Keys. You can create a new key for ContentFlow365 or manage the existing one there. You do not need to create an OAuth app."},"copy":{"title":"Create or regenerate the key","description":"Select Create API Key to create a dedicated key. If you need to replace an existing key, use Regenerate and copy it before leaving the page."},"paste":{"title":"Paste and verify","description":"Return to ContentFlow365, paste the token into API key and select Verify and connect. This check creates no avatars or videos."}},"important":"The HeyGen API has its own wallet and limits. Connecting the key uses no balance; generations explicitly set to My HeyGen will be charged to that account."},"elevenlabs":{"quick":{"open":"Open API Keys in the correct workspace.","create":"Create a key with voice and user permissions.","connect":"Copy it, paste it here and verify."},"visual":{"first":"Developers","second":"API Keys","third":"Create Key"},"steps":{"open":{"title":"Open ElevenLabs API Keys","description":"Use the button above and sign in to the workspace containing the voices and quota you want ContentFlow365 to use."},"navigate":{"title":"Create a key for ContentFlow365","description":"Select Create Key and give it a clear name, such as ContentFlow365. Choose Text to Speech → Access, Voices → Write, Voice Generation → Access, User → Access and Workspace → Read."},"copy":{"title":"Copy the complete key","description":"ElevenLabs shows the complete key only once when it is created. Copy it before closing the dialog; afterwards only its final characters remain visible."},"paste":{"title":"Paste and verify","description":"Return to ContentFlow365, paste the key into API key and select Verify and connect. The check creates no audio and consumes no credits."}},"important":"If you set an expiry or credit limit, ContentFlow365 will respect it and request reconnection after expiry. Usage is deducted from the connected workspace."}},"setupPending":{"title":"Connection not enabled yet.","description":"We are completing the secure setup. You do not need to do anything now, and your existing workflows keep working."},"providers":{"heygen":{"name":"HeyGen","description":"Avatars, looks and video generation in the customer's account.","billing":"With an API key, HeyGen deducts usage from this account's API wallet, not its web plan. Connection verification creates no media and consumes no balance.","metadataUnavailable":"The connection is verified. Plan or wallet details were not available in the latest check and will be updated the next time the key is verified."},"elevenlabs":{"name":"ElevenLabs","description":"Voices, cloning and audio in the customer's workspace.","billing":"Future calls with this API key will use credits from the connected ElevenLabs workspace. Connection verification creates no audio and consumes no credits."}},"labels":{"account":"Recognized account","accountVerified":"Verified account","verification":"Last checked","plan":"Detected plan","key":"Stored key","wallet":"API wallet","credits":"Credits used / included","voiceSlots":"Voice slots used / included"},"form":{"apiKeyLabel":"API key","replaceLabel":"Replace API key","apiKeyPlaceholder":"Paste the key here; it will not be shown again","connect":"Verify and connect","replace":"Verify and replace","security":"The key is validated directly with the provider and stored encrypted. It is never returned to the browser."},"actions":{"createKey":"Create an API key","docs":"Official documentation","retry":"Check again"},"disconnect":{"action":"Disconnect","confirm":"Disconnect this account? Future external resources will keep their reference and require reconnection; they will never move to the global ContentFlow365 account."},"notices":{"connected":"Account verified and connected. It will not be used for generation yet.","disconnected":"Account disconnected safely."},"errors":{"status":"We have not yet been able to check for saved connections. You can use the guides and check again without losing anything.","connect":"The connection could not be verified or saved.","disconnect":"The account could not be disconnected.","planRequired":"This connection requires a Pro plan or higher.","setupPending":"Secure setup for this integration is still pending.","connectionRequired":"Connect and verify the account before enabling its use.","credentialsRejected":"The key is invalid or lacks permission to verify the account.","rateLimited":"The provider is temporarily limiting requests. Try again later."},"resources":{"title":"Resources in this account","heygenHint":"Browse private groups and looks without generating or consuming balance.","elevenlabsHint":"Browse and import voices saved in this workspace.","personaRequired":"ContentFlow365 Persona","personaOptional":"Assign to a Persona (optional)","choosePersona":"Select a Persona","noPersona":"Import without assigning","refresh":"Refresh","looksFor":"Looks for {name}","linked":"Group linked","backToGroups":"Back to groups","empty":"No private resources are available in this account.","linkPersona":"Link Persona","viewLooks":"View looks","linkGroupFirst":"Link this group to a Persona first.","loadMore":"Load more","import":"Import","imported":"Imported","notices":{"imported":"Resource imported and linked to its external account."},"errors":{"load":"The provider catalog could not be loaded.","import":"The resource could not be imported.","personaRequired":"Select a Persona first.","connectionRequired":"Reconnect the provider before browsing its resources.","groupRequired":"Link the group to a Persona first.","resourceNotReady":"This resource is not ready to import yet.","readOnly":"You cannot change a shared read-only Persona."}},"execution":{"enabledTitle":"External usage enabled","disabledTitle":"External usage disabled","description":"Only future flows that explicitly select this connection may use it. Existing processes and resources do not change.","enable":"Enable external usage","disable":"Disable external usage","heygen":{"confirm":"Enable this HeyGen account? Generations that select this connection will be billed to its external API wallet."},"elevenlabs":{"confirm":"Enable this ElevenLabs workspace? Audio that selects this connection will consume its external credits."},"notices":{"enabled":"External usage enabled. It will apply only when a flow selects this connection.","disabled":"External usage disabled. Resources retain their origin and will not use another account as a fallback."},"errors":{"update":"The external usage state could not be changed."}}},"slackIntegration":{"title":"Slack","description":"Send ContentFlow notifications to your team's channels.","back":"Back to integrations","status":{"connected":"Connected","notConnected":"Not connected"},"setupPending":{"title":"Technical setup pending","description":"The integration is ready in ContentFlow, but an administrator must complete the secure Slack setup before it can be connected."},"connect":{"title":"Connect your workspace","description":"Slack will ask you to choose a workspace and authorize the ContentFlow365 bot. You can then select exactly which channels receive notifications.","oauth":"Official Slack authorization","scopes":"Minimum permissions to view channels and post alerts","privacy":"Encrypted tokens and tenant-isolated channels","action":"Connect Slack"},"workspace":{"label":"Connected workspace"},"channels":{"title":"Notification channels","description":"Choose the channels where ContentFlow can send app alerts. This selection does not link channels to Agency support.","refresh":"Refresh channels","empty":"No available channels were found.","inviteRequired":"Invite the bot","inviteHelp":"To enable a channel, type /invite @ContentFlow365 in that Slack channel and then refresh this list.","test":"Test","save":"{count, plural, one {Save # channel} other {Save # channels}}"},"disconnect":{"action":"Disconnect","confirm":"Disconnect Slack from this company? It will stop receiving notifications in the selected channels."},"notices":{"connected":"Slack was connected successfully. Now choose the channels.","saved":"Slack channels saved.","testSent":"Test notification sent.","disconnected":"Slack was disconnected."},"errors":{"status":"Slack status could not be loaded.","connection":"The Slack connection could not be completed.","channels":"Slack channels could not be loaded.","save":"The selected channels could not be saved.","test":"The test notification could not be sent.","disconnect":"Slack could not be disconnected."}},"commerceIntegrations":{"back":"Back to integrations","connectionIssue":"Review the connection to {provider}. You may need to renew its permissions or reconnect it.","title":"Commerce and payments","description":"Connect sales sources and prepare ContentFlow's native checkouts.","openSales":"View sales","configure":"Configure","model":{"title":"Commercial model: SaaS subscription only","description":"ContentFlow does not charge a sales commission. Each company is responsible for its buyers and receives funds directly in its provider account."},"statuses":{"connected":"Connected","pending":"Application in progress","attention":"Needs attention","error":"Error","notConnected":"Not connected"},"labels":{"account":"External account","lastActivity":"Last activity","notAvailable":"Pending","never":"Not yet"},"providers":{"ghl":{"name":"GoHighLevel Payments","description":"Active phase-one source: orders, transactions and refunds from the GHL sub-account."},"hotmart":{"name":"Hotmart","description":"Digital-product sales received by webhook and reconciled through the API."},"stripe":{"name":"Stripe Connect","description":"Each company connects its own payment account through Stripe Connect.","applicationNote":"Available in sandbox first. Stripe charges the company directly and ContentFlow adds no transaction fee."},"paypal":{"name":"PayPal Multiparty","description":"Future native checkout with one PayPal Business account per company.","applicationNote":"Native onboarding is prepared for sandbox first. Each seller receives funds directly and ContentFlow adds no commission."}},"stripeAction":{"connect":"Connect Stripe","continue":"Continue in Stripe","opening":"Opening Stripe…"},"paypalAction":{"connect":"Connect PayPal","continue":"Continue in PayPal","opening":"Opening PayPal…"},"stripeResult":{"connected":"Stripe is connected and ready to accept payments.","pending":"Stripe saved the information and is still verifying the account.","attention":"Stripe needs the company to complete or correct information.","error":"The Stripe connection could not be confirmed. You can try again."},"stripeErrors":{"accountClosed":"The connected Stripe account is closed.","paymentsUnsupported":"Stripe currently doesn't support card payments or bank payouts for this account.","requirementsDue":"Stripe needs the company to complete or correct information.","configurationIncompatible":"This account configuration doesn't match ContentFlow's secure connection model.","generic":"Stripe needs this connection to be reviewed."},"paypalResult":{"connected":"PayPal is connected and ready to receive payments.","attention":"PayPal needs the company to finish onboarding, confirm its email, or grant permissions.","error":"The PayPal connection could not be confirmed. You can try again."},"paypalErrors":{"onboardingIncomplete":"The company must finish PayPal onboarding, confirm its email, or grant payment and refund permissions."},"sync":{"action":"Sync sales","running":"Syncing…","success":"Sync completed: {orders} orders, {transactions} transactions and {duplicates} existing events.","hotmartSuccess":"Hotmart sync completed: {sales} new sales and {duplicates} existing events."},"errors":{"load":"The connection status could not be loaded.","sync":"The GoHighLevel sync could not be completed.","ghlNotConnected":"Connect a GoHighLevel sub-account first.","ghlScopes":"The GHL connection needs renewed order and transaction permissions.","hotmartNotConnected":"Configure the Hotmart connection first.","hotmartCredentials":"Hotmart needs a Client ID and Client Secret to import history.","hotmartSync":"The Hotmart sync could not be completed.","stripeNotConfigured":"Stripe Connect secure credentials have not been installed in this environment yet.","stripeEmailRequired":"The user account needs an email before connecting Stripe.","stripeConnect":"Stripe's secure setup could not be opened.","paypalNotConfigured":"PayPal Multiparty secure sandbox credentials have not been installed yet.","paypalConnect":"PayPal's secure setup could not be opened."}},"commerceSales":{"title":"Sales","description":"GoHighLevel and Hotmart orders in one multi-company history.","refresh":"Refresh","connections":"Connections","multiCurrency":"Amounts are shown by currency and are not combined across currencies without an explicit conversion policy.","unknownCustomer":"Unidentified customer","kpis":{"orders":"Orders","customers":"Customers","net":"Net sales","refunds":"Refunds"},"filters":{"provider":"Provider","status":"Status","since":"From","until":"Until","all":"All"},"statuses":{"pending":"Pending","paid":"Paid","partially_refunded":"Partially refunded","refunded":"Refunded","canceled":"Canceled","failed":"Failed","chargeback":"Chargeback"},"table":{"date":"Date","customer":"Customer","product":"Product","provider":"Source","status":"Status","total":"Gross","net":"Net"},"empty":{"title":"No synced sales yet","description":"Connect GoHighLevel or Hotmart and run the first sync.","action":"Open connections"},"errors":{"load":"The sales history could not be loaded."}},"zoomReports":{"page":{"loading":"Loading Zoom reports","title":"Zoom Dashboard","description":"Import participants from the connected Zoom account or a CSV file, then match each email address to registrations, VIP access, final-offer purchases and confirmed payments for the selected campaign.","openImport":"Import attendees","closeImport":"Close import","dateInvalid":"Invalid date","noData":"No data","campaign":{"label":"Funnel campaign","loading":"Loading campaigns…","untitled":"Untitled campaign"},"scope":{"description":"Import directly from the connected Zoom account or upload a CSV file. In both cases, data is stored only in the selected account and campaign.","connected":"Zoom connected","connectedShared":"Zoom connected · {count, plural, one {# account} other {# accounts}}","disconnected":"Zoom not connected","manage":"Manage integration","connect":"Connect Zoom"},"signals":{"title":"Configure CRM signals for this campaign","description":"These tags define registration, VIP access and final purchase for the selected campaign. The configuration belongs to this account; no global IDs or tags are hard-coded.","registeredTags":"Registration tags","registeredPlaceholder":"webinar-registration","vipTags":"VIP or intermediate-conversion tags","vipPlaceholder":"webinar-vip","finalTags":"Final-purchase tags","finalPlaceholder":"final-offer-customer","save":"Save signals","saving":"Saving signals…","saved":"CRM signals saved for this account and campaign."},"manual":{"title":"New manual report","description":"In Zoom: Reports → Usage → Participants → Export. Re-entry records are grouped by email address.","reportName":"Live event name","defaultTitle":"Zoom live event {date}","date":"Date","timeZone":"Zoom time zone","meetingId":"Meeting ID (optional)","meetingIdPlaceholder":"Detected from the file","csv":"Participant CSV","excludedEmails":"Host email addresses to exclude (optional)","excludedEmailsPlaceholder":"one@example.com, another@example.com","import":"Import and match","importing":"Importing and matching…"},"timeZones":{"madrid":"Madrid","canary":"Canary Islands","mexicoCity":"Mexico City","bogota":"Bogotá","lima":"Lima","santiago":"Santiago","buenosAires":"Buenos Aires","newYork":"New York","losAngeles":"Los Angeles"},"reports":{"selected":"Selected report","empty":"No reports yet","sourceZoomApi":"Zoom API","sourceCsv":"Historical CSV","uniqueAttendees":"{count, plural, one {# unique attendee} other {# unique attendees}}"},"duration":{"hoursMinutes":"{hours} hr {minutes} min","minutes":"{minutes} min"},"summary":{"registered":{"label":"Registrants","note":"{count, plural, one {# attended} other {# attended}} · {rate}"},"vip":{"label":"VIP access","note":"{count, plural, one {# attended} other {# attended}} · {rate}"},"attendees":{"label":"Unique attendees","note":"{identified} identified · {unmatched} unmatched"},"vipPurchase":{"label":"Confirmed VIP purchase","note":"{count, plural, one {# attended} other {# attended}} · {rate}"},"finalPurchase":{"label":"Final-offer purchase","note":"{count, plural, one {# attended} other {# attended}} · {rate}"}},"replay":{"title":"Live vs replay","description":"Match Zoom attendance with identified replay viewing in Mux.","warning":{"title":"There are no replay views attributed to individual people yet.","description":"Recording pages must send the viewer token to identify who watches each replay. Until that version of the page is published, Mux knows the number of views but not the viewers.","history":"Past views cannot be attributed retroactively. Per-person tracking begins when viewer tracking is enabled."},"liveOnly":{"label":"Live only","note":"Attended in Zoom and did not return for the replay"},"liveAndReplay":{"label":"Live and replay","note":"Attended live and also reviewed the recording"},"replayOnly":{"label":"Replay only","note":"Missed the live event and watched it later"},"none":{"label":"Neither live nor replay","note":"Registrants who have not watched either"},"accumulated":"{hours, plural, one {# accumulated replay hour} other {# accumulated replay hours}} across {people, plural, one {# person} other {# people}}."},"segments":{"all":"Entire funnel","attended":"Attended","vip":"Have VIP access","vipAttended":"VIPs who attended","registeredNoShow":"Registrants who did not attend","purchased":"Confirmed VIP purchase","finalPurchased":"Bought the final offer","attendedUnknown":"Attended without a match","liveOnly":"Live only","replayOnly":"Replay only","liveAndReplay":"Live and replay","noShowNoReplay":"Neither live nor replay"},"access":{"finalBuyer":"Final-offer customer","buyer":"Buyer","vip":"VIP","registered":"Free registration","unknown":"Unidentified"},"engagement":{"complete":"High attendance","engaged":"Active attendance","partial":"Partial attendance","brief":"Brief visit"},"people":{"title":"People in the funnel","description":"One row per email address. Zoom re-entry does not duplicate attendees.","searchPlaceholder":"Search by name or email","searchLabel":"Search people by name or email","empty":{"title":"There are no people in this segment","description":"Import a CSV file or change the filter to see results."},"table":{"person":"Person","registered":"Registered","vip":"VIP","attended":"Attended","vipPurchase":"VIP purchase","finalOffer":"Final offer","accessType":"Access type","attendanceType":"Attendance type","location":"Country / city","acquisition":"Acquisition","duration":"Time","entries":"Entries"},"signals":{"registered":"Registered","vip":"VIP access","attended":"Attended","vipPurchase":"Confirmed VIP purchase","finalPurchase":"Final-offer purchase"},"noName":"No name","pagination":"{count, plural, one {# person} other {# people}} · page {page} of {totalPages}","previous":"Previous","next":"Next"},"sources":{"registered":"Sources: forms and CRM tags for “Registered”;","vip":"for “VIP”;","finalAndAttendance":"for the final-offer purchase; payment records for the VIP purchase; and the Zoom report, imported via API or CSV, for “Attended”.","notConfigured":"not configured"},"errors":{"network":"Zoom reports could not be reached. Check your connection and try again.","authenticationRequired":"Sign in again to continue.","accountRequired":"Select a ContentFlow account to continue.","accountForbidden":"You do not have access to Zoom reports for this account.","reportCampaignsEmpty":"This account has no campaigns available for a Zoom report yet.","reportCampaignNotFound":"The selected campaign does not belong to this account.","reportLoadFailed":"The Zoom reports could not be loaded.","reportSignalsCampaignRequired":"Select a campaign to continue.","reportSignalsSaveFailed":"The CRM signals could not be saved.","reportCsvRequired":"Select a Zoom CSV file.","reportCsvTooLarge":"The CSV file exceeds the {limitMb} MB limit.","reportTimeZoneInvalid":"The selected time zone is invalid.","reportTitleRequired":"Enter a name for the live event.","reportDateInvalid":"The live event date is invalid.","reportCsvImportFailed":"The Zoom CSV report could not be imported.","invalidBody":"The request data is invalid."}},"analytics":{"unknown":"No data","other":"Other · {count}","attendees":"Attendees","people":"People","averageMinutes":"Average minutes","minutes":"{value} min","hours":"{value} hr","totalShare":"{percentage} of the total","emptyDefault":"This report does not contain this dimension.","labels":{"duration":{"brief":"Brief visit · under 15 min","partial":"Partial attendance · 15–59 min","engaged":"Active attendance · 60–179 min","complete":"High attendance · 180+ min"},"entries":{"single":"One entry","double":"Two entries","multiple":"Three or more entries"},"access":{"finalBuyer":"Bought the final offer","buyer":"Bought VIP","vip":"VIP","registered":"Free registration"},"guest":{"guest":"Zoom guest","authenticated":"Authenticated user"},"device":{"mobile":"Mobile","desktop":"Desktop","tablet":"Tablet"}},"navigation":{"journey":"Customer journey","engagement":"Attendance","audience":"Audience","history":"History","quality":"Data quality"},"metrics":{"registeredShow":{"label":"Registrant show rate","note":"Registrants who joined the live event"},"averageAttendance":{"label":"Average attendance","note":"Median {median} min · P75 {p75} min"},"hoursConsumed":{"label":"Hours watched","note":"{count} total connections"},"vipShow":{"label":"VIP show rate","note":"Conversion from VIP access to attendance"},"identified":{"label":"Identified attendees","note":"Matched to a registration, VIP access or purchase"},"finalBuyers":{"label":"Final-offer customers who attended","note":"Final-offer buyers present in Zoom"},"reentry":{"label":"Re-entered Zoom","note":"{count} people joined more than once"}},"journey":{"card":{"title":"Live event customer journey","subtitle":"Strict cohort: registration → attendance → VIP attendance → final purchase attendance"},"stages":{"registered":{"label":"Registrants","description":"People captured through a form or CRM tag"},"registeredAttended":{"label":"Registrants who attended","description":"Identified registrants in the selected Zoom report"},"vipAttended":{"label":"VIPs who attended","description":"Attendees with VIP access in the CRM"},"finalPurchasedAttended":{"label":"Final-offer buyers who attended","description":"Confirmed final purchase and attendance in Zoom"}},"base":"Base","fromPrevious":"{percentage} from the previous step","finalPurchasePerRegistration":"Final purchases / registrations","confirmedVipRevenue":"Confirmed VIP revenue","attendeeVipRevenue":"VIP revenue from attendees"},"accessCard":{"title":"Attendee access type","subtitle":"Exclusive classification: final customer, VIP buyer, free registrant or unmatched"},"attendanceCard":{"title":"Attendance type","subtitle":"Segmentation by actual time spent in the live event"},"connectionCard":{"title":"Connection stability","subtitle":"Entries per person; re-entry does not inflate attendee counts"},"audience":{"country":{"title":"Attendees by country","subtitle":"Geography matched from the landing page and CRM by email address"},"source":{"title":"Acquisition source","subtitle":"UTM or CRM source for people who ultimately attended"},"device":{"title":"Registration device","subtitle":"Technology used to submit the form; this may differ from the Zoom device"},"city":{"title":"Top cities","subtitle":"Cities with the highest number of identified attendees"},"profile":{"title":"Declared profile","subtitle":"Segment or profile selected in the campaign form"},"technology":{"title":"System and browser","subtitle":"Technical context captured when identified attendees registered","operatingSystem":"Operating system","browser":"Browser"}},"history":{"title":"Live event trends","subtitle":"Unique attendees and average attendance for each imported report","empty":"Import a second Zoom report to see attendance and retention trends across live events."},"recurrence":{"title":"Repeat attendance","subtitle":"People who had already appeared in a previously imported Zoom report","returning":"Returning attendees","firstAttendance":"First attendance","empty":"This is the first imported report. Repeat attendance will be calculated automatically after the next Zoom report."},"timeline":{"title":"Live concurrency","subtitle":"Connected people, entries and exits in 15-minute intervals","connected":"Connected","joins":"Entries","leaves":"Exits","empty":"This Zoom CSV does not include entry and exit times. Export the detailed participant report to enable this chart for future live events."},"quality":{"title":"Coverage and data quality","subtitle":"The percentage of attendees enriched in each dimension; missing values are shown as No data.","source":"Source: {source}","labels":{"country":"Country","city":"City","device":"Device","source":"Acquisition source","profile":"Lead profile","timestamps":"Entry and exit"},"sources":{"landingCrm":"Landing page / CRM","utmCrm":"UTM / CRM","form":"Form","zoomApi":"Zoom API","zoomCsv":"Detailed Zoom CSV"}}}},"zoomReportImport":{"loading":"Loading Zoom reports","dateUnavailable":"Date unavailable","dateInvalid":"Invalid date","title":"Import from the connected Zoom account","description":"The first selector groups meetings by link and meeting ID; the second selects the exact session by UUID. Each recurring session is imported separately, and importing it again updates the same report.","refresh":"Refresh list","assignmentHelp":"Meetings already assigned to this campaign are shown first. Sessions belonging to other accounts remain hidden.","hideUnassigned":"Hide unassigned meetings","showUnassigned":"Show unassigned meetings","meetingLabel":"Completed series or meeting (meeting ID)","sessionLabel":"Exact session (UUID)","assignedCampaign":"This campaign","unassigned":"Unassigned","webinar":"Webinar","meeting":"Meeting","untitledMeeting":"Untitled Zoom meeting","loadingSessions":"Loading sessions…","noSessions":"No completed sessions","reportName":"Report name","eventDate":"Live event date","excludedEmails":"Host email addresses to exclude (optional)","excludedEmailsPlaceholder":"one@example.com, another@example.com","importing":"Importing from Zoom…","import":"Import attendees","disconnected":{"title":"Import directly from Zoom","description":"Connect Zoom for this account to select a completed meeting and import participants and attendance time without a CSV file.","connect":"Connect Zoom"},"permissions":{"title":"Zoom needs reporting permissions","description":"Reconnect using an administrator for a Zoom Pro or higher account and authorize access to meetings and reports.","review":"Review connection"},"result":{"created":"Report created: {attendees, plural, one {# attendee} other {# attendees}} and {sessions, plural, one {# connection} other {# connections}}.","updated":"Report updated: {attendees, plural, one {# attendee} other {# attendees}} and {sessions, plural, one {# connection} other {# connections}}."},"empty":{"assigned":"There are no completed meetings linked to this campaign yet.","showUnassigned":"Show unassigned meetings from this Zoom account"},"errors":{"network":"Zoom could not be reached. Check your connection and try again.","authenticationRequired":"Sign in again to continue.","accountRequired":"Select a ContentFlow account to continue.","accountForbidden":"You do not have access to manage Zoom reports for this account.","statusLoadFailed":"The Zoom connection status could not be loaded.","meetingsLoadFailed":"The completed Zoom meetings could not be loaded.","instancesLoadFailed":"The live event sessions could not be loaded.","notConnected":"This account does not have Zoom connected.","reconnectRequired":"The Zoom connection has expired. Reconnect it to continue.","missingPermissions":"The Zoom connection is missing reporting permissions.","rateLimited":"Zoom's request limit has been reached. Wait a moment and try again.","providerUnavailable":"Zoom is temporarily unavailable. Try again later.","meetingOwnershipConflict":"This Zoom meeting is assigned to another ContentFlow account.","reportImportInputRequired":"Select the campaign, meeting and session to import.","reportTitleRequired":"Enter a name for the live event.","reportDateInvalid":"The live event date is invalid.","reportImportFailed":"The Zoom report could not be imported.","invalidBody":"The request data is invalid."}},"zoomIntegration":{"title":"Zoom","subtitle":"OAuth, meetings and analytics for each account","loading":"Loading Zoom integration","backToIntegrations":"Back to Integrations","connected":"Connected","confirmDisconnect":"Disconnect Zoom from this account? Previously imported reports will be kept.","confirmDisconnectShared":"Unlink Zoom from this account? The authorization will remain active for the other ContentFlow accounts, and imported reports will be kept.","beta":{"externalTitle":"Zoom integration in beta","externalMessage":"The Zoom integration is currently in beta and is not yet available for this account. We will enable it when Zoom completes the app review.","internalTitle":"Internal Zoom beta","internalMessage":"Zoom is currently in beta and is available only to internal accounts while Zoom completes the app review.","activationClosedTitle":"Activation temporarily closed","activationClosedDescription":"You do not need to configure anything yet. When Zoom's review is complete, we will enable the OAuth connection for this account here."},"notices":{"connected":"Zoom has been connected to this account.","connectionReused":"The existing Zoom connection was securely reused for this account.","connectionReusedMultiple":"The existing Zoom connection was securely reused for this account and is now linked to {count, plural, one {# ContentFlow account} other {# ContentFlow accounts}}.","campaignDefaultsLoaded":"The title, description, dates and images were loaded from the campaign. You can edit any field before creating the meeting.","meetingCreated":"The meeting was created in the connected Zoom account.","meetingCreatedForCampaign":"The meeting was created and set as the campaign's Zoom destination. {count, plural, one {# existing sequence is now connected} other {# existing sequences are now connected}}; new sequences will inherit it automatically.","chimeReconnectRequired":"To also turn off the entry and exit chime, reconnect Zoom once and grant the settings permission.","chimeUpdateFailed":"The meeting was created, but Zoom did not allow the entry and exit chime to be changed. Check whether the setting is locked by an administrator.","disconnected":"Zoom has been disconnected from this account.","disconnectedShared":"Zoom has been unlinked from this account and remains active for the other accounts."},"connection":{"title":"Connection for this account","zoomUser":"Zoom user","serverToServer":"Server-to-Server connection","scope":"Scope","fullAccount":"Full Zoom account","authorizingUser":"Authorizing user","multiAccountUse":"Multi-account use","accountCount":"{count, plural, one {# ContentFlow account} other {# ContentFlow accounts}}","thisAccountOnly":"This account only","licence":"Licence","licenceUnknown":"Not detected","reports":"Reports","reportsAvailable":"Available","reportsUnavailable":"Requires admin permissions and a Pro+ plan","description":"Each ContentFlow account connects its own Zoom account. Tokens are never shown in the browser, and every operation is validated against the active account.","connect":"Connect Zoom","reconnect":"Reconnect","disconnect":"Disconnect","permissionsWarning":"The connection is valid, but it does not have all the permissions required by this module. Add the meeting and reporting scopes to the Zoom app, then select <strong>Reconnect</strong>.","audioPermissionWarning":"Meetings are created with participants muted on entry. To also turn off the entry and exit chime, add the user settings permission to the Zoom app and select <strong>Reconnect</strong> once."},"builder":{"title":"Create a meeting for a challenge or live event","description":"Multi-account live event template: one room, multiple sessions and automatic registration from the campaign sequences.","audioDefaults":"Default audio: participants join muted, the host controls participant mute state, and the entry and exit chime is disabled in the connected Zoom account. To prevent participants from unmuting during the live event, turn off “Participants can unmute themselves” in Host tools when the meeting starts.","topic":"Title","topicPlaceholder":"Launch live event","dateTime":"Date and time","timeZone":"Time zone","durationMinutes":"Duration (minutes)","agenda":"Description / agenda","agendaPlaceholder":"What the session will cover, who it is for and what outcome attendees will achieve","recurring":"Multi-day challenge using the same Zoom link","sessionDays":"Session days","sessionDaysHelp":"The first date is always included. Each person registers once and can attend every session.","sessionCount":"Number of sessions","campaign":"Campaign using this meeting","noCampaigns":"No campaigns available","doNotLinkCampaign":"Do not link to a campaign","sequences":"Sequences that will send registrants to Zoom","noSequences":"There are no sequences yet. Any created later will inherit this meeting.","tag":"tag {tag}","linkHelp":"This link is stored for the account and campaign. It does not activate or send emails; it only ensures that new registrations from the selected sequences enter the correct meeting.","automaticRegistration":"Registration with automatic approval","waitingRoom":"Waiting room","cloudRecording":"Record in the cloud","create":"Create in Zoom"},"weekdays":{"monday":"Monday","mondayShort":"M","tuesday":"Tuesday","tuesdayShort":"T","wednesday":"Wednesday","wednesdayShort":"W","thursday":"Thursday","thursdayShort":"T","friday":"Friday","fridayShort":"F","saturday":"Saturday","saturdayShort":"S","sunday":"Sunday","sundayShort":"S"},"timeZones":{"canary":"Canary Islands","madrid":"Madrid","bogota":"Bogotá","mexicoCity":"Mexico City","newYork":"New York","browser":"Browser time zone ({timeZone})"},"branding":{"title":"Registration page layout","description":"The banner and logo are loaded from the campaign. You can replace them here without changing the original campaign.","banner":"Main image","bannerAlt":"Meeting banner preview","noBanner":"The campaign has no banner","changeBanner":"Change image","logo":"Logo","logoAlt":"Meeting logo preview","noLogo":"No campaign or company logo","changeLogo":"Change logo","help":"These images are stored with the meeting in ContentFlow. Zoom's official API does not allow the registration page banner or logo to be uploaded; Zoom's Branding view remains the final step if you also want to reproduce them there."},"meeting":{"datePending":"Date pending","dateInvalid":"Invalid date","metaWithoutDuration":"{date} · ID {id}","meta":"{date} · {duration} min · ID {id}","openAttendeeLink":"Open attendee link","attendeeLink":"Attendee link"},"upcoming":{"title":"Upcoming meetings","description":"Meetings for the connected Zoom user.","viewStats":"View analytics","connectFirst":"Connect Zoom to load and create meetings.","empty":"There are no upcoming meetings for the connected user."},"errors":{"network":"Zoom could not be reached. Check your connection and try again.","authenticationRequired":"Sign in again to continue with Zoom.","accountRequired":"Select a ContentFlow account to continue.","accountForbidden":"You do not have access to manage Zoom for this account.","betaNotAvailable":"The Zoom integration is not yet available for this account.","connectionStartFailed":"The Zoom connection could not be started.","connectionStateInvalid":"The connection link is invalid or has expired. Try again.","connectionSessionMismatch":"The session that started the Zoom connection no longer matches.","connectionDenied":"Zoom access was not granted. You can try connecting again.","connectionFailed":"Zoom could not complete the connection. Try again.","statusLoadFailed":"The Zoom connection status could not be loaded.","meetingsLoadFailed":"The Zoom meetings could not be loaded.","meetingInvalidInput":"Review the meeting details and try again.","notConnected":"This account does not have Zoom connected.","reconnectRequired":"The Zoom connection has expired. Reconnect it to continue.","missingPermissions":"The Zoom connection is missing required permissions. Reconnect it after adding the required scopes.","rateLimited":"Zoom's request limit has been reached. Wait a moment and try again.","providerUnavailable":"Zoom is temporarily unavailable. Try again later.","operationFailed":"The Zoom operation could not be completed.","campaignRequired":"Select a campaign.","campaignNotFound":"The selected campaign is not available for this account.","campaignLoadFailed":"The selected campaign details could not be loaded.","imageRequired":"Select a banner or logo image.","imageTypeUnsupported":"Use a PNG, JPG or WebP image.","imageTooLarge":"The image must be no larger than {maxSizeMb} MB.","imageUploadFailed":"The image could not be uploaded.","meetingOwnershipConflict":"This Zoom meeting is already assigned to another ContentFlow account.","disconnectFailed":"Zoom could not be disconnected.","invalidBody":"The request data is invalid."}},"googleAdsTargetingWizard":{"unknownLocation":"Unknown location","unknownLanguage":"Unknown language","countryPresets":{"spain":"Spain","latam-main":"Core LATAM","latam":"LATAM","english-markets":"English-speaking markets","europe":"Europe"},"languagePresets":{"spanish":"Spanish","english":"English","spanish-english":"Spanish + English","portuguese":"Portuguese","europe-main":"Multilingual Europe"},"targetingTitle":"Location, language, and schedule","targetingDescription":"Select markets by name. ContentFlow prepares and validates Google's technical configuration underneath.","includedLocationsTitle":"Included countries","includedLocationsDescription":"Shortcuts equivalent to the usual Meta groups. Choosing one replaces the current market.","removeLocation":"Remove {name}","chooseCountry":"Choose a country to add…","addCountry":"Add country","invalidLocations":"Select between 1 and 100 valid countries.","invalidExcludedLocations":"Review the excluded countries before continuing.","advancedLocationTitle":"Advanced geographic ID settings","officialIdPerLine":"One official ID per line","languagesTitle":"Languages","removeLanguage":"Remove {name}","chooseLanguage":"Choose a language to add…","addLanguage":"Add language","invalidLanguages":"Select between 1 and 50 valid languages.","advancedLanguageTitle":"Advanced language ID settings","excludedLocations":"Excluded locations (optional)","chooseExcludedCountry":"Choose a country to exclude…","excludeCountry":"Exclude","noExcludedLocations":"No excluded countries.","oneIdPerLine":"One ID per line","geoMatchTitle":"Geographic match","geoPresence":"Physical or regular presence","geoPresenceOrInterest":"Presence or interest in the location","euPoliticalTitle":"EU political advertising","euPoliticalNo":"Does not contain EU political advertising","euPoliticalYes":"Contains EU political advertising","euPoliticalHelp":"Campaigns default to non-political advertising. Change this only when the campaign contains EU political advertising.","startDate":"Start date","endDate":"End date (optional)","endDateHelp":"Leave empty for no end date. If you choose a date, Google will end the campaign when that day finishes.","invalidStartDate":"Select a valid start date.","invalidEndDate":"Select a valid end date.","endDateBeforeStart":"The end date cannot be earlier than the start date.","preparedLocations":"Prepared locations","preparedLanguages":"Prepared languages","noneFeminine":"None","noneMasculine":"None","schedule":"Schedule","scheduleSummary":"Start {start} · {end}","endAt":"end {value}","pending":"pending","noEndDate":"no end date","pausedSafety":"Criteria remain ENABLED so Google can validate a real configuration, while the campaign and all advertising resources stay PAUSED and cannot serve until explicitly activated.","creationChoiceTitle":"Choose one or more formats for this campaign","creationChoiceDescription":"Demand Gen can leave the same wizard with image, video, and carousel ads. Combine them freely; they are validated together and all created in PAUSED.","scaffoldTitle":"Structure only","scaffoldDescription":"Recommended: Campaign + Ad Group, both PAUSED. It requires no images or video and cannot spend.","creativeTitle":"Add an image ad","creativeDescription":"Prepare landscape and square images from one or more posters and reuse the saved logo.","videoTitle":"Add a video ad","videoDescription":"Reuse up to 5 campaign Reels or videos, prepare them on YouTube, and keep the ad paused.","carouselTitle":"Add a carousel ad","carouselDescription":"Create a 2–10 card carousel using posters that already belong to this campaign.","combinedPackageTitle":"Multi-format Demand Gen package","combinedPackageDescription":"You are creating {count} complementary ads in the same Ad Group: they share URL, UTM, brand, and copy without losing each format's specific assets.","reelNext":"Next: select a ContentFlow Reel, upload the exact MP4 to YouTube as unlisted, and create the video ad in PAUSED.","cartelNext":"Next: select a poster, review the 1.91:1 and 1:1 formats, and complete any missing formats before validating the ad.","singleCartelTitle":"Prepare formats from one poster","singleCartelDescription":"Select an image or ContentFlow poster and review the prepared formats. If landscape is missing, upload it or expand it with AI after reviewing the cost and balance.","singleCartelAiDescription":"To expand the landscape background with AI, review the cost and balance and confirm generation. You can then review the result.","variantsPreparedAiDescription":"The formats are prepared. You can confirm the cost and balance to expand the background with AI.","aiLandscapeWorking":"Expanding the background with AI in the background. You can keep completing the campaign.","aiLandscapeFallbackProvider":"The primary provider could not finish it; the fallback provider is now being tried.","aiLandscapeReady":"Landscape image expanded with AI","aiLandscapeCacheReady":"Landscape variant reused without spending another credit","aiLandscapeRecordReady":"Landscape variant reused from the poster record","aiLandscapeRecordFailed":"The image is ready, but it could not be saved to the poster for reuse","aiLandscapeReadyDescription":"The background was extended to 1.91:1 without cropping the original poster.","aiLandscapeConfirmDescription":"The composition is prepared. Confirm the cost and balance to expand it with AI.","aiLandscapeFailed":"The background could not be expanded with AI","aiLandscapeFallbackKept":"The safe landscape composition has been kept; you can retry the expansion.","aiLandscapeRetry":"Retry AI expansion","aiLandscapeWait":"The landscape image is still being prepared","aiLandscapeWaitDescription":"You can continue editing copy and audience settings. Validation will be enabled when it finishes.","aiLandscapeShort":"Expanding landscape…","aiLandscapeErrors":{"sourceUrlInvalid":"The source image must use a valid HTTPS URL.","cacheUrlInvalid":"The saved landscape variant is no longer valid and will be prepared again.","outputUrlInvalid":"Generation finished without returning a valid HTTPS image.","accountRequired":"The account that owns the poster could not be identified.","posterIdInvalid":"The selected poster does not have a valid identifier.","posterSourceInvalid":"The source poster could not be verified safely.","persistFailed":"The image is ready, but it could not be saved to the poster.","persistMismatch":"The server did not confirm the exact landscape variant.","startFailed":"The AI landscape expansion could not be started.","eventIdRequired":"The landscape generation did not return a valid identifier.","connectionLost":"The connection was lost while the image was being expanded.","runFailed":"The AI landscape expansion did not finish correctly.","outputFailed":"The generated landscape image could not be retrieved.","timeout":"The expansion is taking too long. The safe composition is preserved so you can retry.","preparationFailed":"The generated image could not be prepared for Google Ads."},"selectCartel":"Choose poster","preparing":"Preparing…","landscapeReady":"✓ Landscape ready","landscapePending":"Landscape pending","squareReady":"✓ Square ready","squarePending":"Square pending","logoReady":"✓ Logo restored/ready","logoPending":"Logo pending","noInitialAd":"No initial ad: add assets later from Posters, Reels, or the ad manager.","sourceKindTitle":"ContentFlow source type","renderedVideo":"Rendered video","reelMontage":"Reel / montage","authoritativeMontageHelp":"The Reel uses its exact final montage and never falls back to the parent video.","montageRecordId":"Exact Reel/montage ID","parentVideoHelp":"The rendered video ID field must also contain the parent video linked to this montage."},"googleAdsPage":{"accountFallback":"Google Ads account","accountNotSelected":"No ad account selected · API {apiVersion}","openDashboard":"Open Google Ads","refreshWorkspace":"Refresh Google Ads data","refreshDashboard":"Refresh dashboard","includeTodayTitle":"ON shows partial data for today; OFF compares complete days only.","dateRangeHelp":"Google Ads v24 retains 37 months of daily detail. The dashboard displays the exact selected range; for older periods, Google retains only monthly totals.","workspace":{"oauthReviewStatus":"Google Ads authorization needs review","loadFailedStatus":"Google data could not be loaded","oauthReviewTitle":"Google Ads authorization needs review","invalidClientTitle":"ContentFlow's OAuth configuration needs to be fixed","invalidGrantTitle":"The saved Google Ads access cannot be renewed","unauthorizedClientTitle":"Google does not authorize renewal with this OAuth client","loadFailedTitle":"Google Ads data could not be loaded","pendingTitle":"Waiting for real Google Ads data","oauthReviewDescription":"Google rejected the access renewal. The team must review the OAuth configuration for this connection; you may then need to authorize it again. Metrics are unavailable and campaigns cannot be created from ContentFlow for now.","invalidClientDescription":"Google rejected ContentFlow's OAuth client credential. The team must fix the server configuration. Disconnecting or authorizing the account again will not resolve this error; metrics and campaign creation are unavailable here for now.","invalidGrantDescription":"Google rejected the saved grant. The team must check whether it expired, was revoked, or belongs to another OAuth client before renewing it. Metrics and campaign creation are unavailable here for now.","unauthorizedClientDescription":"Google rejected renewal with the configured OAuth client. The team must check whether its credentials and authorization match the saved grant. Do not disconnect the account: metrics and campaign creation are unavailable until this is resolved.","loadFailedDescription":"The Google Ads read failed. Metrics and campaigns are unavailable; try again or review the connection.","pendingDescription":"Real data is not yet available for {area}. Campaigns, metrics, and resources are not invented while Customer selection and reading are completed.","oauthReviewSetupDescription":"Google rejected the access renewal. The team must check the OAuth configuration before you authorize again. Do not disconnect this account to try to fix it.","invalidClientSetupDescription":"The server's OAuth credential was rejected. The team must fix it; do not disconnect or authorize the account again to try to resolve it.","invalidGrantSetupDescription":"The saved grant was rejected. The team will check its origin and validity before renewing it. Do not disconnect the account while it is under review.","unauthorizedClientSetupDescription":"Google does not authorize this OAuth client to renew the saved grant. The team will check the configuration and authorization before asking you to authorize again. Do not disconnect the account.","renewAccess":"Renew access with Google","renewAccessHint":"Authorize again with the same Google user. ContentFlow will keep the selected Ads account and update the grant without disconnecting it.","renewUnauthorizedClientHint":"After the team checks the configured OAuth client, authorize again with the same Google user. ContentFlow will keep the selected Ads account.","loadFailedSetupDescription":"The read failed. Metrics and campaigns remain unavailable until the connection is restored.","storedGrantUnavailable":"Google permission saved, but access is unavailable","areas":{"dashboard":"advanced analytics","campaigns":"campaigns, groups, and ads","comments":"video ad comments","funnels":"funnel audits","conversions":"conversion actions","reports":"reports and invoices","audiences":"audiences and Customer Match"}},"oauth":{"actions":{"authorizeAdsCore":"Connect Google Ads","authorizeDataManager":"Authorize Data Manager","dismiss":"Dismiss OAuth message","restart":"Try authorization again"},"dataManager":{"title":"Data Manager permission required","description":"Customer Match, offline conversion imports, and automatic CRM or payment connectors need the separate Data Manager permission. Your existing Google Ads connection and refresh token are preserved."},"errors":{"consentDenied":"Google authorization was cancelled. Nothing was changed.","missingCode":"Google did not return an authorization code. Start this permission request again.","notConfigured":"Google OAuth is not configured in this environment.","tokenExchangeFailed":"Google rejected or could not complete this authorization. The existing connection was not changed.","invalidClient":"Google rejected the configured OAuth credentials. Verify that the same active client and secret are configured in this environment; the stored connection was not changed.","invalidGrant":"Google rejected the stored authorization. Complete one Google Ads reconnection to renew the grant without disconnecting the account first.","clientMismatch":"The stored authorization belongs to a different OAuth client. Align the canonical client and reconnect the core permission before adding optional scopes.","missingRefreshToken":"Google did not provide the refresh token required for a new Ads connection.","missingScope":"Google did not grant the permission requested for this feature. The existing connection was not changed.","identityUnavailable":"ContentFlow could not verify the Google account identity. The existing connection was not changed.","userMismatch":"This permission belongs to a different Google account. Use the same Google user as the existing Ads connection.","connectionChanged":"The Google Ads connection changed while authorization was open. Refresh and start again.","flowObsolete":"This authorization link is obsolete. Start a new request from ContentFlow.","replayRejected":"This authorization callback is missing its one-time browser proof or was already used.","storageFailed":"The permission could not be stored securely. The existing connection was not changed.","unknown":"Google authorization could not be completed. The existing connection was not changed."}},"setup":{"renewPermissionsHint":"Renew an existing permission through Google without disconnecting this account. Google asks you to confirm access; cancelling keeps the current connection.","invalidCustomerId":"Enter a valid 10-digit Customer ID","customerNotConfirmed":"Google Ads did not confirm this account","customerVerified":"Account verified by Google Ads. Confirm it to start using it.","customerVerificationFailed":"Could not verify the account","manualCustomerTitle":"Can't find your account? Search by Customer ID","manualCustomerDescription":"ContentFlow will add it only if Google confirms that it belongs to the connected user.","searchAccount":"Search account","searchAccounts":"Search ad accounts","redetectAccounts":"Detect accounts again"},"websiteRetargeting":{"names":{"page":"Page or funnel visitors","nonConverters":"Visitors who did not convert"},"errors":{"invalidDomain":"Select or enter a valid domain","invalidIncludedUrl":"The included page must be an HTTPS URL without credentials","invalidConversionUrl":"The conversion page must be an HTTPS URL without credentials","nameRequired":"Enter a name for the audience","validationFallback":"Google did not validate the website audience","validationFailed":"The website audience could not be validated","creationFallback":"Google Ads did not create the audience","creationFailed":"The website audience could not be created"},"descriptions":{"nonConverters":"Visitors to the entry page who did not reach the conversion page","page":"Visitors to a specific page or section","domain":"Visitors to any page on {domain}"},"created":{"tagReady":"Google will populate it once tag reception is confirmed at runtime.","tagPending":"It will remain empty until the Google tag is operational."},"subtitle":"Choose a use case; ContentFlow builds and validates the URL rules with Google.","close":"Close","useCaseLabel":"Retargeting use case","presets":{"domain":{"title":"Entire domain","help":"Any page on the domain."},"page":{"title":"Page or funnel","help":"A specific URL or section."},"nonConverters":{"title":"Visitors who did not convert","help":"Includes the entry page and excludes the thank-you or purchase page."}},"tag":{"pendingTitle":"The website tag is not operational.","pendingDescription":"You can prepare and validate the list, but it will remain empty until the Google Tag is published and verified in production.","readyTitle":"Internal configuration is available.","readyDescription":"The list is considered functional only after production verification confirms that Google receives the tag without duplicate fires."},"fields":{"name":"Name","entryPage":"Entry page","excludedConversionPage":"Conversion page to exclude","membershipDuration":"Membership duration","ruleWindow":"Rule window"},"days":"{days} days","prepopulateDescription":"Google can retrieve up to 30 previous days for Display only if the tag was already collecting those visits.","actions":{"cancel":"Cancel","edit":"Edit","confirmCreation":"Confirm creation","closeSimulation":"Close simulation"},"warnings":{"tagRequired":"The list will start populating only when this Customer's Google tag fires on the specified pages.","prepopulationRequested":"Google will attempt to prepopulate up to 30 days of available previous visitors; prepopulation applies only to Display and depends on when the tag was installed.","noPrepopulation":"The list starts without historical prepopulation and accumulates new visitors once the tag is operational.","urlRulesNoPii":"The rules use the built-in url__ parameter; they do not transmit PII or require custom parameters.","policyThresholds":"Google applies policies, eligibility requirements, and minimum thresholds before allowing delivery."}},"audienceHub":{"heading":"Which audience do you want to create?","description":"Keep visitors, leads, and customers separate: each source needs its own mechanism.","tagConfigured":"Tag configured · runtime verification pending","websiteDescription":"An entire managed domain, one landing page, or visitors who did not convert.","leadsDescription":"Consented first-party Customer Match from forms/CRM through Google Data Manager.","customersDescription":"Separate lists for retargeting or exclusion so you do not reacquire existing customers.","videoCardTitle":"Video viewers","videoCardDescription":"Reuse data lists suitable for video campaigns or create a list in Google Ads from a linked channel.","videoTitle":"Video and YouTube retargeting","videoDescription":"These are the real, open, Display-eligible lists ContentFlow can reuse in video campaigns, Demand Gen, or as a Performance Max signal. Google performs the final validation before saving.","videoCreationBoundary":"Google Ads does not expose a specific API operation for creating a list of people who watched a channel or video. Link the channel and create that segment in Audience Manager first; ContentFlow will discover it after audiences are refreshed.","videoEmpty":"There is no real list eligible for video retargeting yet. Link the channel in Google Ads, create the viewer segment, and refresh this tab. Google requires a minimum audience size before delivery is allowed.","openAudienceManager":"Open Audience Manager","youtubeHelp":"Official YouTube guide","videoCompatible":"VIDEO ELIGIBLE","videoMeta":"{source} · UserList {id}","displayReady":"Display eligible","signalReady":"DG/PMax signal","managedByGoogle":"Managed by Google","estimatedUsers":"estimated users","websiteListDescription":"Lists created from visits and URL rules. They depend on the Customer's Google Tag.","websiteListEmpty":"There are no website lists yet. Create one for a domain, page, or visitors who did not convert.","customerMatchListDescription":"First-party Customer Match lists uploaded through Google Data Manager with consent.","customerMatchListEmpty":"There are no CRM/Customer Match lists in this Customer.","legacyListDescription":"Resources inherited from Google Ads. They stay separate so they are not confused with the new lists.","legacyListEmpty":"There are no other imported or combined audiences."},"serverSideConversions":{"cutoverTitle":"Switch to online measurement","cutoverHelp":"Requires a paused connector with no unresolved deliveries. Preserves history and does not resend events. It will remain paused.","cutoverSelect":"Select a web action","cutoverConfirm":"Confirm switch and keep paused","cutoverSaved":"Online measurement configured; connector paused","cutoverError":"The change was not confirmed. Review the refreshed state and web action before retrying.","measurementModeLabel":"Measurement mode","offlineMode":"Offline · separate action","onlineMode":"Web · browser and server share one action","measurementModeHelp":"The mode belongs to the connector and its receipts. Migrating an existing connector requires reconciling deliveries; selecting another action does not migrate it.","onlineActionLabel":"This campaign’s WEBPAGE action","offlineActionLabel":"UPLOAD_CLICKS action","selectCompatibleAction":"Select a compatible action","onlineActionHelp":"First configure this same action for the browser event. Account, tag and category are verified. Activation does not prove Google receipt or attribution.","offlineActionHelp":"Use an action specific to this source. A different offline action does not deduplicate with the web conversion just because the ID matches.","onlineActionMismatch":"First configure this same action for the campaign’s web event.","modeImmutable":"This connector keeps its original mode. Reconcile its receipts before migrating it.","saveConnectorError":"The connector could not be saved. Review the configuration and try again.","activationPolicyLabel":"Server-side tracking start","futureOnlyPolicy":"New registrations only","exactHistoryPolicy":"Authorized historical import and new registrations","futurePolicyHelp":"New registrations are collected from connector creation with advertising consent. This mode does not import history or move the starting point. Select it before running or authorizing imports.","savePolicyPaused":"Save mode and keep paused","leadsSourceDetail":"Confirmed registrations with explicit advertising consent and a Google click identifier. Email permission does not authorize this measurement.","purchasesSourceDetail":"Confirmed purchases with value, currency and advertising consent from that same checkout. Permissions and identifiers are not inherited from an earlier contact.","simulationDescription":"This is Google's functional equivalent to Meta CAPI: Data Manager + Enhanced Conversions. Simulation shows the flow without transmitting data; with a live Customer you can enable leads and purchases separately.","activeDescription":"Google Data Manager + Enhanced Conversions · CRM/Stripe → server → Google · every 15 minutes · PII only in memory · deduplication and diagnostics.","unitaryDescription":"Each submission uses one independent delivery and request so accepted, rejected, and duplicate outcomes remain exact.","deliveryKey":"delivery","terminalOutcomes":{"accepted":"accepted","rejected":"rejected","duplicate":"duplicate"},"exactBackfill":{"title":"Exact historical import · 2 records","description":"Authorize → preview → send separately → terminal receipt. After reload, only indexes and statuses are restored; never PII or click IDs.","refreshAria":"Refresh historical receipt","placeholder":"Authorized UUID 1\nAuthorized UUID 2","authorize":"Authorize exact list","terminal":"Terminal","pending":"Pending","rejected":"Rejected","record":"Record {index}","expired":"The authorization expired with pending records. The server will not reuse this manifest.","newAuthorization":"Create new authorization","previewPending":"Preview pending records","sendSeparately":"Send {count} separately","confirmRejected":"Confirm rejected outcomes","readReceiptError":"The historical receipt could not be loaded","exactIdsError":"Enter exactly the two authorized UUIDs, without duplicates","manifestCreateError":"The exact list could not be authorized","manifestSuccessTitle":"Exact list authorized","manifestSuccessDescription":"2 records · the server fixed their immutable digest","previewRejected":"The preview was rejected","pendingValidated":"{count, plural, one {# pending record validated without sending} other {# pending records validated without sending}}","nothingPending":"There are no pending records","unitFailed":"Unit {index} failed","submissionsRegistered":"{count, plural, one {# unit submission registered} other {# unit submissions registered}}","refreshTerminalDescription":"Refresh the receipt to confirm Google's terminal response","executeError":"The exact import could not be completed","acknowledgementError":"The rejected outcome could not be confirmed","acknowledgementSuccess":"Rejected outcome explicitly confirmed"}},"demandGenAudience":{"open":"Demand Gen audience","title":"Edit Demand Gen audience","subtitle":"Choose the ad group and segments. Google will validate the complete replacement before saving.","close":"Close audience editor","groupLabel":"Demand Gen ad group","groupPlaceholder":"Select an ad group","noGroups":"There are no real Demand Gen ad groups available in this account.","segmentsLabel":"Segments you want to use","segmentsHelp":"Select one or more lists from this same advertising account.","segmentMeta":"List {id} · {count} users","replacementNotice":"When confirmed, this selection will replace the current audience for this group. Other groups and campaigns will not change.","validatedBadge":"VALIDATED BY GOOGLE","selectedCount":"{count, plural, one {# segment selected} other {# segments selected}}","simulationPrepared":"Demand Gen audience prepared in simulation","selectionRequired":"Select a Demand Gen group and at least one segment.","validationFailed":"Google could not validate this audience.","validated":"Google validated the new audience.","updateFailed":"The Demand Gen audience could not be updated.","updated":"Demand Gen audience updated","cancel":"Cancel","validate":"Validate with Google","confirm":"Replace audience","processing":"Validating…","blockers":{"contextRequired":"Google must read the current group before changing its audience.","contextChanged":"The group changed after you opened the editor. Refresh the page.","notDemandGen":"This group does not belong to a Demand Gen campaign.","groupedRequired":"This is an older group that does not support grouped audiences. Review it in Google Ads.","exclusionsUnsupported":"The current audience contains advanced exclusions. Review them in Google Ads before replacing it.","workspaceChanged":"The live connection changed. Refresh the page before confirming.","unexpected":"Google did not allow this audience to be prepared. Refresh and try again."}},"review":{"close":"Close","warnings":{"empty":"The list is created empty; this operation sends no emails, phone numbers or addresses.","consent":"It may only be populated later with first-party data and valid ad_user_data and ad_personalization consent.","eligibility":"Google applies eligibility, minimum thresholds, compliance history and Customer Match policies before allowing targeting.","membership":"Membership duration uses the maximum permitted by the Google Data Manager API.","normalized":"Identifiers were normalized and converted to SHA-256 hashes in the browser.","simulation":"Simulation neither transmits nor stores user identifiers.","minimum":"Google Ads requires at least 100 matched members before the audience can be used.","encoding":"Data Manager receives only SHA-256 hashes with HEX encoding.","storage":"ContentFlow retains only counts, the overall batch hash and diagnostic IDs; never individual hashes.","uploadMinimum":"The list can be uploaded, but Google Ads requires at least 100 matched members before it can be used.","scopeRequired":"Reconnect Google Ads to authorize the Data Manager API permission before creating Customer Match lists."},"setupMessages":{"selectFailure":"Could not select the Customer","selected":"Advertising account selected","selectFailureFallback":"Could not select the advertising account","discoveryFailure":"Could not discover accounts","discovered":"Google Ads accounts discovered","disconnectFailure":"Could not disconnect Google Ads","disconnected":"Google Ads disconnected. You can now reconnect."},"pageStates":{"emptyAccount":"Select a ContentFlow account","accountScope":"Google Ads uses the selected account. Select an authorized account to load its workspace.","loading":"Preparing Google Ads…","loadFailure":"Could not load Google Ads","retry":"Retry"},"manageConnection":"Connection and setup","connectTitle":"Connect Google Ads","notConnected":"Not connected","allConnected":"Everything connected","firstRead":"Account selected · completing the first read","chooseAccount":"Google connected · choose an ad account","connectMissing":"Connect Google to continue","realDataOnly":"Campaigns and metrics appear after the real connection finishes.","connected":"Google Ads connected","authorizedUser":"Authorized Google user","workspace":"ContentFlow workspace","workspaceHint":"This client’s connections are stored here.","authorizer":"User granting access","authorizerHint":"This Google user authorizes access to the ad account.","googleAccount":"Google Ads account","notSelected":"Not selected yet","cancelChange":"Cancel change","change":"Change","adAccount":"Ad account","customerId":"Google Ads customer ID","custom":"Custom","includeToday":"Include today","realGaql":"Live GAQL with segments.date","waitingData":"Waiting for real Google data","disconnect":"Disconnect","cancel":"Cancel","confirmDisconnect":"Yes, disconnect","managedAccount":"Ad account managed by ContentFlow","testNoSpend":"TEST · NO SPEND","accountHint":"Campaigns are read or created in this account.","confirmAccount":"Confirm account","connectUser":"Connect my Google user","discoveryMissing":"Find your ad accounts","noSignInAgain":"You do not need to sign in again.","technical":"Technical settings (advanced)","testGuide":"Official test account guide","from":"From","to":"To","apply":"Apply","accountStatus":"Account status","apiReadiness":"Readiness for the real Google Ads API","fullSetup":"View full setup","performanceByType":"Performance by type","adTypes":"Search, image, video, product, App and PMax","noCampaigns":"This customer has no real campaigns for the selected date range.","activeCampaigns":"Active campaigns","testedTypes":"Types used","readySteps":"Steps ready","setupDescription":"Check this account’s connection requirements. Technical settings are saved for future use.","disconnectDescription":"The authorization stored in ContentFlow will be removed. Google accounts, campaigns and videos remain.","betaDescription":"During the beta Google may show an unverified app notice. Check that the name is ContentFlow365 and review the permissions before accepting. The project has a provisional limit of100 new users until approval.","betaTooltip":"OAuth review has been submitted to Google. During the beta an unverified app notice and a provisional100 new-user limit may apply.","ready":"Ready","pending":"Pending","tabs":{"dashboard":"Dashboard","campaigns":"Campaigns","comments":"Comments","funnels":"Funnels","conversions":"Pro conversions","reports":"Pro reports","audiences":"Audiences"},"dates":{"today":"Today","yesterday":"Yesterday","last_7d":"7 days","last_15d":"15 days","last_30d":"30 days","last_90d":"90 days"},"steps":{"cloud":"Google Cloud and OAuth configuration","encryption":"Refresh token encryption","oauth":"Authorized OAuth access","data-manager":"Data Manager API and audience permission","analytics":"Analytics Admin API and GA4 read permission","token":"Google Ads developer token","customer":"Authorized and validated customer","gaql":"Live GAQL read"},"customerMatch":{"title":"Upload Customer Match members","identifiers":"Emails and phone numbers","importFile":"Import CSV or TXT","hashed":"Data normalized and hashed in this browser","piiDiscarded":"ORIGINAL PII DISCARDED","members":"Members","identifierCount":"Identifiers","phones":"Phone numbers","replaceBatch":"Replace batch","firstPartyConsent":"The data was collected directly by the business and I accept the Customer Match terms.","localValidation":"LOCAL VALIDATION","hashesNotStored":"INDIVIDUAL HASHES NOT STORED","history":"History without identifiers","noRequest":"No recoverable diagnostic request","close":"Close","cancel":"Cancel","processing":"Processing…","confirm":"Confirm upload","simulate":"Simulate upload","validate":"Validate with Data Manager","validateLocal":"Validate locally","readFailure":"Could not read the file","consentRequired":"Confirm first-party collection and both consents for every record","connectionChanged":"The Google Ads connection changed; reload before continuing","validated":"Data Manager validated the batch","validatedLocal":"Batch validated locally","missingId":"The secure validation ID is missing","sent":"Upload sent to Google","sentDescription":"Diagnostics will be checked without resending the batch.","adUserDataConsent":"Every included record has valid consent for ad_user_data.","adPersonalizationConsent":"Every included record has valid consent for ad_personalization.","processed":"Google processed the Customer Match audience","partial":"Google processed the batch with issues","rejected":"Google rejected the Customer Match upload","simulated":"Customer Match upload simulated","validationFailure":"Data Manager could not validate the batch","validationFailureFallback":"Could not validate the Customer Match upload","executionFailure":"Data Manager did not accept the batch","missingReceipt":"Data Manager did not return the batch status","executionFailureFallback":"Could not execute the Customer Match upload","validatedSummary":"{count} members · no identifiers stored","simulatedSummary":"{count} members; no hashes were transmitted.","importHelp":"Optional email,phone header. One contact per row. Phone numbers in international E.164 format. Maximum 10,000.","records":"{count} records","matchRange":"Match range: {range}","membersCount":"{count} members","processedCount":"{count} processed","status":{"previewed":"Validated","executing":"Processing in Google","processing":"Processing in Google","succeeded":"Completed","partial_success":"Completed with issues","reconciliation_required":"Reconciliation required","failed":"Failed"}},"audiences":{"connected":"Retargeting connected","heading":"Audiences & Customer Journey","intro":"Create Customer Match lists, reuse GA4 audiences and build Performance Max signals while keeping each Customer isolated.","website":"Website retargeting","newSignal":"New PMax signal","journeyCustomer":"Journey Customer","isolation":"Lists, rules and signals stay isolated within the authorized Customer.","tagNotReady":"Website tag not operational","visitors":"Website visitors","leads":"Registered leads","customers":"Customers, buyers and VIPs","managed":"Managed audiences","contacts":"Journey contacts","eligible":"Eligible for Google Ads","consented":"Ready with consent","customerLists":"Leads, customers and buyers","legacyLists":"Legacy or combined audiences","ready":"Ready","building":"Building","reviewConsent":"Review consent","estimated":"estimated users","upload":"Upload contacts","privacyTitle":"Secure Customer Match:","privacy":"Import a CSV or paste contacts, normalize and apply SHA-256 in the browser, validate with Data Manager and view asynchronous diagnostics. Only counts and operational IDs are retained; never PII or individual hashes.","contextLoading":"Reading the exact audience from Google Ads…","contextFailure":"Editing requires the exact configuration: {detail}","preservedExclusions":"Current exclusions ({count}) are preserved.","realSegment":"Live segment {count}","users":"{count} users"},"customerMatchList":{"title":"New Customer Match list","description":"Create an empty CONTACT_ID UserList through the Google Data Manager API.","name":"Unique name","identifier":"Identifier type","identifierValue":"CONTACT_ID · email, phone or address","descriptionLabel":"Description","emptyOnly":"This step does not upload contacts.","emptyHelp":"It creates only the empty container, using","membershipHelp":"and the maximum membership duration managed by Google.","consent":"I confirm that any later upload will contain only data collected directly by the business and that every user will have valid consent for","and":"and","membership":"first-party · maximum membership","nameRequired":"Enter a name for the list","consentRequired":"Confirm first-party collection and the consent requirement","connectionChanged":"The connection changed. Reload before confirming.","validationFailure":"Google did not validate the Customer Match list","validated":"Data Manager validated the empty list","validatedLocal":"Simulation preview validated","validationFailureFallback":"Could not validate the list","simulated":"Customer Match list created in simulation","simulatedDescription":"No personal data was transmitted.","missingId":"The secure preview ID is missing","executionFailure":"Data Manager did not create the list","created":"Customer Match list created","createdDescription":"It is empty and ready for a consented first-party upload.","executionFailureFallback":"Could not create the Customer Match list","validateBadge":"VALIDATE ONLY · DATA MANAGER","localBadge":"LOCAL PREVIEW","noPii":"NO PII","edit":"Edit","processing":"Processing…","confirm":"Confirm empty list creation","simulate":"Apply in simulation","validate":"Validate with Data Manager","preview":"Preview simulation"},"youtube":{"title":"YouTube channel for ads","checking":"Checking","connected":"Channel connected","reconnect":"Reconnect","connect":"Connect YouTube","expiring":"Channel authorization expires soon; reconnect before publishing.","description":"Reels are stored here as unlisted videos. Posters are used directly as Google Ads images.","lastNotice":"Latest YouTube notice: {detail}"}},"funnelMeasurement":{"edit":"Configure existing web action","help":"Link an action already created in Google Ads. The server checks the account, tag and event type. This does not create actions or enable server deliveries.","event":"Event","purchase":"Purchase","lead":"Confirmed registration","action":"Conversion action ID","destination":"Conversion destination (AW-ID/label)","loading":"Loading settings…","saving":"Verifying and saving…","saved":"Settings saved. Actual event receipt still needs verification.","error":"Could not load or save settings. Check the values and try again.","save":"Verify and save","inventoryOnly":"Configuration inventory, not evidence of receipt, attribution or deduplication. Consent counts refer specifically to advertising permission.","leadConfigured":"Web registration configured","notConfigured":"Not configured","description":"Published account settings, web actions and campaign connectors."}},"googleAdsCampaigns":{"placements":{"button":"Where it showed","buttonHelp":"YouTube channels and videos, websites and apps where it was shown. Google is queried only when you click.","title":"Where it showed","subtitleCampaign":"{campaign} · {since} – {until}","subtitleGroup":"{campaign} › {group} · {since} – {until}","levelNote":"Google reports placements per campaign and ad group, not per ad. Reach and frequency do not exist per placement: Google only provides them per campaign.","pmaxNote":"Performance Max only reports impressions per placement, for the whole campaign.","views":{"groups":"Channels, sites and apps ({count})","details":"Videos and pages ({count})"},"loading":"Querying Google Ads…","error":"Placements could not be loaded from Google Ads.","retry":"Retry","empty":"Google reports no placements for this period (for example, on Search campaigns).","channelLink":"View channel","columnHelp":{"impressions":"Times the ad was shown on this placement.","views":"Video views (TrueView).","clicks":"Clicks on the ad.","ctr":"Clicks ÷ impressions.","cost":"Spend on this placement.","leads":"Lead conversions, using the same categories as the campaign table.","cpl":"Spend ÷ leads.","conversions":"All conversions attributed to this placement.","roas":"Conversion value ÷ spend."},"sortBy":"Sort by {column}","columns":{"ctr":"CTR","leads":"Leads","cpl":"CPL","roas":"ROAS","placement":"Placement","type":"Type","impressions":"Impressions","views":"Views","clicks":"Clicks","cost":"Spend","conversions":"Conversions"},"types":{"YOUTUBE_CHANNEL":"YouTube channel","YOUTUBE_VIDEO":"YouTube video","WEBSITE":"Website","MOBILE_APPLICATION":"App","MOBILE_APP_CATEGORY":"App category","GOOGLE_PRODUCTS":"Google products","UNKNOWN":"Other"}},"reporting":{"campaignOnly":"Campaign only","campaignOnlyHelp":"Google Ads only provides reach and frequency per campaign, not for ad groups or ads.","columns":{"name":"Campaign / group / ad","status":"Status","objective":"Objective","budget":"Budget","actions":"Actions","cost":"Spend","impressions":"Impressions","cpm":"CPM","reach":"Reach","frequency":"Freq.","clicks":"Clicks","linkClicks":"Link clicks","landingPageViews":"Landing views","ctr":"CTR","cpl":"CPL","leads":"Leads","purchases":"Sales","roas":"ROAS","conversions":"Conversions","cpa":"CPA","cpc":"CPC","conversionValue":"Conv. value","videoViews":"Video views"},"help":{"cost":"Spend in the selected period.","impressions":"Number of times the ad was shown.","cpm":"Spend ÷ impressions × 1000.","reach":"Unique people in the exact period. Google only provides campaign reach for Display, Video, Demand Gen and App, up to 92 days. Daily reach is never summed. — means unavailable.","frequency":"Average impressions per person in the exact period, reported by Google for supported campaigns. — means unavailable.","clicks":"Clicks counted by Google, including clicks that do not open the website.","linkClicks":"This Google report has no direct equivalent to Meta link clicks. — means unavailable; total clicks are not substituted.","landingPageViews":"Visits that load the landing page require a linked analytics source. This Google Ads report does not provide them.","ctr":"Clicks ÷ impressions × 100.","cpl":"Spend ÷ leads. Unavailable without leads or a category report.","leads":"Conversions in lead, sign-up, contact or appointment categories. This does not include all conversions. — means a missing or failed breakdown.","purchases":"Purchase category conversions, including fractional attribution. — means the breakdown is unavailable.","roas":"Google conversion value ÷ spend. This may include actions other than purchases.","conversions":"All conversions included in the Google conversions metric.","cpa":"Spend ÷ conversions.","cpc":"Spend ÷ clicks.","conversionValue":"Conversion value reported by Google.","videoViews":"Video views reported by Google."},"sortBy":"Sort by {column}","trend":"{metric} trend","unavailable":"No data available for this metric and period"},"refreshCampaigns":"Refresh campaigns","autoPublish":{"staleTargetBadge":"Previous destination","staleTargetNotice":"This configuration was saved for another Customer or the current connection is not ready. Select a campaign and ad group from the connected Customer, then select ‘Save and verify’ before publishing from the reel editor.","apexDestinationNotice":"Google marked this root destination as not working on an earlier ad. The www address responds directly, but Google still needs to review it.","useDirectDestination":"Use www address"},"management":{"title":"Campaigns","description":"{visible} of {total} campaigns visible","newCampaign":"New campaign","uploadCreatives":"Upload creatives","searchPlaceholder":"Search campaigns…","hierarchyAria":"Google Ads management level","addGroup":"Add {group}","noGroups":"There are no {group} yet. Use the campaign + button.","emptyAds":"No ads. Use “Upload creatives” to create one from ContentFlow.","includeTodayTitle":"ON shows partial data for today; OFF compares complete days only.","budgetDaily":"{amount}/day","budgetSuffix":"/day"},"bulk":{"selected":"{count} selected · maximum 50","copyHint":"Bulk copy: maximum 20 ads","moveHint":"Bulk move: maximum 20 ads","copySelected":"Copy {count} ads","moveSelected":"Move {count} ads","activateSelected":"Activate {count} ads","pauseSelected":"Pause {count} ads","removeSelected":"Remove {count} ads"},"creativeUpload":{"batchProgress":"Landscape {current} of {total} · {completed} saved","batchPhase":{"queued":"Waiting for this image to start.","running":"Generating this image; the remaining images are waiting.","fallback":"The provider is using a fallback for this image.","saving":"Image generated. Preparing the file and saving it to the poster.","failed":"Expansion stopped. Saved images are retained; check the error before retrying.","complete":"All requested landscape images have been saved."},"createdPaused":"Creative added as paused","simulationDescription":"The local preview passed; no live mutation was made."},"statusFilters":{"nonRemoved":"All except removed","allIncludingRemoved":"All, including removed"},"reportOnly":{"label":"API creation limited","help":"Google Ads API only supports reading and reporting for this format. Open it in Google Ads to pause, enable, or remove it.","manageInGoogleAds":"Manage in Google Ads"},"removeFlow":{"simulationConfirm":"Remove {name}? This action cannot be undone.","simulationCampaignRemoved":"Campaign removed in simulation","simulationGroupRemoved":"Group removed in simulation","simulationAdRemoved":"Ad removed in simulation","entities":{"campaign":"campaign","adGroup":"ad group","assetGroup":"asset group"},"validationFallback":"Google did not validate removal of the {entity}","validationSuccess":"Google validated the exact {entity}","validationFailed":"Removal could not be validated","workspaceChanged":"The live connection changed. Refresh before confirming.","executionFallback":"Google Ads did not remove the {entity}","executionSuccess":"{entity} removed","executionFailed":"Removal could not be completed","title":"Remove {entity}","subtitle":"Google validates the exact resource first; removal runs only after a separate confirmation.","irreversible":"This action is irreversible in Google Ads. The {entity} will stop serving and cannot be re-enabled.","nativeRemove":"native removal","acknowledge":"I understand that removing this {entity} is irreversible and I have checked its name and ID.","cancel":"Cancel","processing":"Processing…","confirm":"Remove permanently","validate":"Validate removal with Google"},"status":{"enabled":"Enabled","removed":"Removed","paused":"Paused","removedTitle":"This row has been removed","pause":"Pause","enable":"Enable","cannotReactivate":"Cannot be reactivated","pressToPause":"Press to pause","pressToEnable":"Press to enable","aria":"{label}. {action}","changing":"Changing…","changeNotAllowed":"Google did not allow this status change","changeFailed":"Could not change the status","campaignEnabled":"Campaign enabled","campaignPaused":"Campaign paused"},"limitingReasons":{"campaignDraft":"The campaign is still a draft. Finish its setup before publishing it.","campaignEnded":"The campaign end date has passed. Extend it to publish again.","groupBudgetsEnded":"All budgets associated with this campaign have ended.","campaignGroupPaused":"The parent campaign group is paused.","campaignNotBooked":"This campaign's inventory reservation has not been confirmed yet.","campaignPaused":"The campaign is paused. Press its status to enable it.","campaignPending":"The campaign is scheduled to start later.","campaignRemoved":"The campaign has been removed and cannot be re-enabled.","noKeywords":"There are no eligible keywords. Add or enable keywords so Google can show the ads.","keywordsPaused":"Google still reports that all keywords are paused.","noAdGroups":"The campaign has no ad groups.","adGroupsPaused":"All ad groups are paused.","noAdGroupAds":"The groups have no eligible ads.","adGroupAdsPaused":"All ads are paused.","noAssetGroups":"The campaign has no eligible asset groups.","assetGroupsPaused":"All asset groups are paused.","missingLocationTargeting":"Choose where the ads will be shown.","budgetMisconfigured":"The budget needs to be corrected.","budgetConstrained":"The budget is limiting delivery.","biddingMisconfigured":"The bidding strategy needs to be corrected.","biddingLimited":"The bidding strategy is limiting delivery.","biddingConstrained":"The bidding strategy is restricting delivery.","biddingLearning":"The bidding strategy is learning, so performance may be temporarily limited.","searchVolumeLimited":"Available search volume is low.","adsDisapproved":"Google has disapproved at least one ad. Open Policies to see why and correct it.","adsLimitedByPolicy":"Google has limited at least one ad because of its policies.","assetGroupsDisapproved":"Google has disapproved at least one asset group. Open Policies to see why and correct it.","assetGroupsLimitedByPolicy":"Google has limited at least one asset group because of its policies.","callExtensionDisapproved":"Google has disapproved the campaign's call asset.","leadFormDisapproved":"Google has disapproved the campaign's lead form.","missingCallExtension":"The campaign uses a calls goal but is missing a call asset.","missingLeadForm":"The campaign uses a leads goal but is missing the corresponding form.","appNotReleased":"The advertised app is not published in the selected countries.","appPartiallyReleased":"The advertised app is published in only some of the selected countries.","noMobileAppCriteria":"Choose an eligible app in the ad group.","default":"Google reports that the campaign is enabled but limited. Open the campaign to review the reason."},"keywordReasons":{"belowFirstPageBid":"Bid below the first-page estimate","lowQuality":"Low quality","negative":"Negative keyword","keywordPaused":"Keyword paused","lowActivity":"Paused due to low activity","pendingReview":"Pending review","rarelyServed":"Rarely shown because of low volume or quality","keywordRemoved":"Keyword removed","restricted":"Restricted delivery","disapproved":"Disapproved by policy","underReview":"Under review","adGroupPaused":"Ad group paused","campaignPaused":"Campaign paused"},"policyTopics":{"oneWebsitePerAdGroup":"One website per ad group","destinationMismatch":"Destination mismatch","destinationNotWorking":"Destination not working","maliciousSoftware":"Malicious or unwanted software","misrepresentation":"Misrepresentation","trademarks":"Trademarks"},"delivery":{"disapproved":{"label":"Disapproved by Google","title":"Google has disapproved at least one ad. Open the campaign to see which one."},"underReview":{"label":"Under review","title":"Google is reviewing one or more campaign elements. Other approved, enabled ads may continue serving if eligible."},"scheduled":{"label":"Scheduled","title":"This campaign's start date has not arrived yet."},"syncing":{"label":"Updating in Google","title":"The keywords are enabled, but Google has not updated the campaign's aggregate status yet."},"notEligible":{"label":"Not eligible to serve"},"limited":{"label":"Enabled · limited"},"noAds":{"label":"No ads","title":"The campaign does not have ads that can serve yet."},"ready":{"label":"Ready to serve","title":"The ads are approved and the campaign is enabled."},"paused":{"label":"Paused","title":"The campaign, its group, or its ads are paused."}},"diagnostics":{"title":"Delivery diagnostics","activeGroups":"{enabled}/{total} active groups","approvedAds":"{approved}/{total} approved ads","activeKeywords":"{enabled}/{total} active keywords","summary":{"syncing":"ContentFlow has read {enabled} active keywords and {eligible} eligible keywords. Google still shows the earlier ‘keywords paused’ reason; the aggregate status can take time to propagate.","ready":"The campaign, its groups, and at least one ad are enabled and approved. Google can begin serving when eligible opportunities arise.","underReview":"Ads pending review cannot serve until Google completes their review. Other approved, enabled ads may continue serving if the campaign and their ad groups are eligible.","scheduled":"The campaign is ready, but its start date has not arrived yet. You do not need to enable it again.","disapproved":"Google has disapproved at least one ad. Review the policy finding and correct it before resubmitting.","paused":"The campaign or one of its required levels is paused. Enable it from its status button.","noAds":"There are no eligible ads in the campaign. Add or enable at least one."},"lowVolume":"{count, plural, one {# keyword has low volume; the others can still serve.} other {# keywords have low volume; the others can still serve.}}","disapprovedKeywords":"{count, plural, one {# keyword is disapproved; open Policy Manager to correct it.} other {# keywords are disapproved; open Policy Manager to correct them.}}","policyFindings":"Google reports {count, plural, one {# policy finding} other {# policy findings}}: {topics}.","attentionKeywords":"View keywords that need attention","refresh":"Refresh now","openGoogleAds":"Open in Google Ads","policies":"View policies"},"workspaceAria":"Google Ads campaign workspace","underReviewFilter":"Under Google review","notEligibleFilter":"Not eligible to serve","resultsAria":"Campaign results","resultsTitle":"Campaign results","resultsHint":"Select a metric to view it on the chart.","rowDashboard":{"toggle":"Dashboard by level","help":"Show the same metric and trend across campaigns, groups, and ads, as in Meta Ads.","campaign":"Campaign","group":"Group","ad":"Ad"},"performanceFilters":{"trigger":"Section filters","triggerTitle":"Filter campaigns, groups, and ads by leads, conversions, CPL, CTR, spend, or ROAS","title":"Filter by ranges","description":"Select one or more ranges to narrow campaigns, groups, and ads together.","clear":"Clear","legendIntro":"The numbers in each range show how many items there are:","footer":"Multiple ranges in one section are combined as OR. Different sections are combined as AND.","noGroups":"No groups match the performance filters.","noAds":"No ads match the performance filters.","levels":{"campaigns":"campaigns","groups":"groups","ads":"ads"},"sections":{"leads":{"label":"Leads","hint":"Leads attributed by Google Ads"},"conversions":{"label":"Conversions","hint":"Conversions recorded in the period"},"cpl":{"label":"CPL (€)","hint":"Cost per lead"},"ctr":{"label":"CTR","hint":"Percentage of clicks over impressions"},"cost":{"label":"Spend (€)","hint":"Total spend in the period"},"roas":{"label":"ROAS","hint":"Conversion value divided by spend"}},"buckets":{"zero":"0","oneToThree":"1–3","oneToFive":"1–5","fourToTwenty":"4–20","sixToTwenty":"6–20","twentyOnePlus":"21+","noCpl":"No CPL","zeroToFour":"0–4","fourToEight":"4–8","eightToSixteen":"8–16","sixteenPlus":"16+","lessThanOnePercent":"<1%","oneToTwoPercent":"1–2%","twoToFourPercent":"2–4%","fourPercentPlus":"4%+","lessThanFifty":"<50","fiftyToTwoHundred":"50–200","twoHundredPlus":"200+","lessThanOne":"<1","oneToTwo":"1–2","twoPlus":"2+"}},"adsView":{"list":"List view","gallery":"Gallery view","galleryAria":"Google Ads gallery","galleryTitle":"Ads gallery","galleryDescription":"Each card opens the complete ad and retains editing, status, duplication, and removal.","count":"{count, plural, one {# ad} other {# ads}}","empty":"There are no ads matching the current filters."},"adApproval":{"approved":"Approved","underReview":"Under review","disapproved":"Disapproved"},"adPreview":{"policyTitle":"Policies reported by Google","policyUnknown":"Google rejected the ad. Open the details to see the policy.","policyUnknownHelp":"Review this finding in Google Ads. We retain the exact code because specific guidance for this policy is not available yet.","policyDetails":"View Google policy codes","view":"View ad","openAria":"View full ad {name}","hoverAria":"Full preview of {name}","dialogAria":"Full details for {name}","close":"Close ad details","edit":"Edit ad","openHint":"Click to view the complete ad","performance":"Ad performance","headline":"Primary headline","headlines":"All headlines","descriptions":"All descriptions","assets":"Ad assets","destination":"Destination and traceability","noFinalUrl":"No final URL configured","trackingActive":"Google Ads UTMs active","trackingMissing":"This ad has no UTMs configured. Clicks may arrive without campaign, group, or creative attribution.","noVisualAssets":"This format does not expose a fixed image","visualAsset":"Asset {index}","visualAssetAlt":"Visual asset {index}","youtubeAssetAlt":"YouTube video {index} · {id}","status":{"enabled":"Enabled","paused":"Paused","removed":"Removed"},"approval":{"approved":"Approved","under_review":"Under review","disapproved":"Disapproved"},"metrics":{"spend":"Spend","impressions":"Impressions","clicks":"Clicks","ctr":"CTR","conversions":"Conversions","leads":"Leads","cpl":"CPL","roas":"ROAS"}},"rsaDetails":{"title":"Ad copy and preview","description":"Google combines these assets to show the most suitable version for each search.","edit":"Edit copy","objective":"Improve search ad performance"},"visualAdEdit":{"title":"Edit visual ad","subtitle":"Reuse the campaign editor, AI, and ContentFlow assets to prepare a safe new version.","safeReplacementTitle":"The original ad remains unchanged","complementaryTitle":"Expand reach without changing this ad","complementaryDescription":"In Demand Gen, video, image, and carousel are separate complementary ads in the same Ad Group. We will reuse the current URL, UTM tracking, and copy as the starting point.","addImageAd":"Add image ad","addCarouselAd":"Add carousel","addVideoAd":"Add another video ad","safeReplacementDescription":"Google does not allow every visual asset to be edited on the same ad. ContentFlow creates a paused replacement in the same ad group so you can review it before publishing.","loading":"Reading the live ad and its assets…","loadFailed":"This ad could not be read safely. Refresh Google Ads data and try again.","replacementName":"{name} · Replacement","simulationDescription":"Visual version prepared in ContentFlow.","sourceAd":"Original ad","campaign":"Campaign","group":"Ad group","contentFlowCampaign":"ContentFlow campaign","landing":"Destination landing","landingsLoading":"Loading landings…","landingPlaceholder":"Select a campaign landing","openLanding":"Open landing","newName":"Replacement name","finalUrl":"Final HTTPS URL","businessName":"Brand name","callToAction":"Call to action","ctaLearnMore":"Learn more","ctaSignUp":"Sign up","ctaShopNow":"Shop now","ctaGetQuote":"Get quote","ctaApplyNow":"Apply now","ctaDownload":"Download","ctaContact":"Contact us","headlinesTitle":"Ad headlines","headlinesDescription":"Use 1–5 headlines. AI respects the 30-character limit and each row action changes only that row.","longHeadline":"Long headline","longHeadlineDescription":"One headline up to 90 characters with the same counter and AI assistance; row actions change only this text.","descriptionsTitle":"Ad descriptions","descriptionsDescription":"Use 1–5 descriptions up to 90 characters, with clearly separate row and full-list actions.","imagesTitle":"Images and logo","keepCurrentHelp":"Current Google assets are kept unless you replace them. You can change the landscape, square or logo independently.","replaceAllHelp":"The new set must include landscape, square, and logo assets so the ad is never incomplete.","currentLandscape":"Current landscape: {count}","currentSquare":"Current square: {count}","currentLogo":"Current logos: {count}","keepCurrent":"Keep current assets","useCampaignLogo":"Use campaign logo","useBrandLogo":"Use brand logo","logoSourceTitle":"Ad logo","logoSourceHelp":"Choose the brand logo, the campaign-specific logo, or upload and crop your own square logo.","uploadOwnLogo":"Upload and crop your own logo","landscape":"Landscape image","square":"Square image","logo":"Square logo","selectImage":"Select","replaceImage":"Replace","imageSetIncomplete":"Assets are missing: add landscape, square, and logo, or keep the full current set.","imageInvalid":"Use a JPEG, PNG, or GIF image up to 5 MB.","imageReady":"Image prepared for Google Ads","imageFailed":"This image could not be prepared.","posterReady":"Poster prepared as landscape and square","logoReady":"Campaign logo prepared","logoOverrideRemoved":"The uploaded logo was removed. The new ad will reuse the original logo; choose another logo to replace it.","keepSourceLogo":"The original ad’s logo will be reused unless you choose another logo.","logoUnavailable":"This campaign has no available logo.","aiObjective":"Improve the visual ad while preserving the campaign message","replacementResource":"New paused visual ad","originalUntouched":"The original ad will not change.","replacementPaused":"The replacement will be created paused.","replacementCreatedPaused":"Replacement created as paused","replacementSummary":"{headlines} headlines · {descriptions} descriptions","validated":"Google validated the replacement and exact ad group.","validateFailed":"Google could not validate the replacement. Review the highlighted fields.","created":"Paused replacement created","createdDescription":"The original ad remains unchanged and the new version is ready for review.","createFailed":"The replacement could not be created.","draftResetDone":"Draft reset from the original ad","validatedByGoogle":"VALIDATED BY GOOGLE","localPreview":"LOCAL PREVIEW","pausedBadge":"NEW AD · PAUSED","resetDraft":"Reset draft","saveAndClose":"Save and close","edit":"Keep editing","validate":"Validate and preview","confirm":"Create paused replacement","processing":"Validating…","errors":{"name":"The name must contain between 1 and 255 characters.","finalUrl":"Select or enter a valid final HTTPS URL.","businessName":"The brand name must contain between 1 and 25 characters.","headlines":"Add 1–5 unique headlines up to 30 characters.","descriptions":"Add 1–5 unique descriptions up to 90 characters.","longHeadline":"The long headline must contain between 1 and 90 characters.","imageSet":"To replace images, include landscape, square, and logo assets."}},"campaignEdit":{"quickBudget":{"edit":"Edit daily budget for {name}","input":"New daily budget for {name}","review":"Save daily budget for {name}","cancel":"Cancel budget edit for {name}","invalid":"The daily budget must be between 1 and 1,000,000","reviewHint":"Save the budget in one action; ContentFlow validates with Google internally.","updated":"Budget updated to {budget}/day","failed":"Google Ads did not update the budget","shared":"This budget is shared by {count} campaigns; review the impact before applying it."},"validation":{"locations":"Choose between 1 and 100 valid locations","overlap":"A location cannot be both included and excluded","languages":"Choose between 1 and 50 valid languages","startDate":"The start date is invalid","endDate":"The end date is invalid","dateOrder":"The end date cannot be earlier than the start date"},"targetingMask":"Countries · languages · dates","subtitle":"Change the name, budget, countries, languages, and schedule in the same visual editor. ContentFlow will check everything with Google before saving.","targetingDelta":"Google will preserve {preserved} valid criteria, add {created}, and remove {removed} that you no longer selected. Dates will be saved as full days.","contextLoading":"Reading the current budget, countries, languages, and dates from Google…","perGroupTargeting":"Countries and languages are preserved in each ad group. Edit the relevant group to change them.","startedDateHelp":"Google does not allow changing the start date of a campaign that has already started.","startDate":"Start date","endDate":"End date","noEndDate":"No end date","contextUnavailable":"The exact Google configuration could not be read. Editing is blocked to avoid losing countries, languages, or dates.","serverOwned":"Current configuration read from Google","campaignScope":"campaign targeting","adGroupScope":"Demand Gen ad group targeting","loadedLocations":"{count} locations","loadedLanguages":"{count} languages"},"adGroupEdit":{"title":"Edit {entity}","subtitle":"ContentFlow only shows compatible settings and Google checks them before saving.","adGroup":"Ad group","assetGroup":"Asset group","strategy":"Bidding strategy: {strategy}","name":"Name","cpcBid":"Ad group CPC bid (€)","targetCpa":"Ad group target CPA (€)","targetRoas":"Ad group target ROAS (%)","optimizedTargeting":"Expand with optimized targeting","optimizedTargetingHelp":"Google may find similar people when it predicts more conversions. Your selected audience remains the starting signal.","keywordsTitle":"Search keywords","keywordsHelp":"Review, add, pause, or remove keywords without leaving ContentFlow. Save checks every change with Google and applies it in one action.","keywordsOverviewHelp":"These are the group's real keywords and their current Google Ads status.","keywordPerformanceTable":"Search keyword performance","keywordColumn":"Keyword","keywordStatusColumn":"Status","keywordCostColumn":"Cost","keywordClicksColumn":"Clicks","keywordCtrColumn":"CTR","keywordLeadsColumn":"Leads","keywordCplColumn":"CPL","keywordMetricsHelp":"Cost, clicks, CTR, leads, and CPL use the active date range. Leads only include lead-generation conversion actions configured in Google Ads.","keywordsEdit":"Edit keywords","keywordsEmpty":"This group has no enabled or paused keywords. Add at least one so Search can serve.","keywordsCountLabel":"{count} keywords","keywordsCount":"The group must keep between 1 and 100 keywords.","keywordLabel":"Keyword {number}","keywordMatch":"Match type","keywordBroad":"Broad","keywordPhrase":"Phrase","keywordExact":"Exact","keywordEnabled":"Enabled","keywordPaused":"Paused","keywordAdd":"Add keyword","keywordRemove":"Remove keyword {number}","keywordInvalid":"Each keyword must contain between 1 and 80 characters.","keywordDuplicate":"The same keyword and match type cannot be repeated.","keywordGoogleStatus":"Google serving status: {status}","demandGenAudienceHelp":"ContentFlow reloads the exact grouped Demand Gen Audience, including its inclusions and exclusions, before replacing it atomically.","pmaxSignalsHelp":"Performance Max audience signals are managed from the Audiences tab. Google stores them on the asset group as signals, not restrictive targeting.","manageAudiences":"Prepare audiences","managePmaxSignals":"Manage PMax signals","invalidName":"The name must be between 1 and 128 characters.","invalidNumber":"Enter a valid value greater than zero for {field}.","noChanges":"There are no changes to save.","validationFailed":"Google could not check these changes.","updateFailed":"The group changes could not be saved.","updated":"{entity} updated in Google Ads","cancel":"Cancel","save":"Save changes","saving":"Checking and saving…"},"mutationMessages":{"targetingContextRequired":"Google must check the current countries and languages before saving targeting.","advancedLocationUnsupported":"This campaign uses an advanced location group. Review it in Google Ads before replacing countries from ContentFlow.","negativeLanguageUnsupported":"This campaign contains a language exclusion that the visual editor cannot represent yet.","pmaxCreativeRequired":"Performance Max needs copy, a URL, a landscape image, a square image, and a logo to create its initial asset group.","demandGenCreativeRequired":"Demand Gen with a catalog needs a fallback multi-asset ad with copy, a URL, a landscape image, a square image, and a logo.","createPaused":"The campaign and its group are created paused so you can review them before publishing.","completeHierarchy":"Google will receive the complete campaign with its budget and group prepared.","targetingSelectedWithEnd":"We saved the countries, languages, and dates you selected: it starts on {startDate} and ends on {endDate} at the end of the day.","targetingSelectedNoEnd":"We saved the countries, languages, and dates you selected: it starts on {startDate} and has no end date.","targetingMissing":"You have not selected countries, languages, or dates for this campaign yet.","searchAssetsIncluded":"We included the keywords and search ad you prepared.","visualAssetsIncluded":"We included the images and first visual ad. Everything remains paused for your review.","pmaxAssetsIncluded":"We included your copy, images, logo, and videos in the Performance Max asset group. Everything remains paused for your review.","pmaxRetailAssetsIncluded":"We included your creative assets and linked Merchant Center catalog. Google will check the products, and everything remains paused for your review.","videoAssetsIncluded":"We include the YouTube videos, logo, and first video ad. Everything remains paused for your review.","carouselAssetsIncluded":"We include the logo, images, and cards for the first carousel. Everything remains paused for your review.","demandGenAudienceAutomatic":"Optimized targeting is enabled with no required lists. Google may expand the audience when it predicts more conversions.","demandGenAudienceGuided":"Demand Gen uses first-party lists as starting signals and keeps optimized targeting enabled.","demandGenAudienceRestricted":"Demand Gen disables optimized targeting and uses the selected first-party audience as an explicit criterion.","displayAudienceAutomatic":"Display uses optimized targeting without requiring lists.","displayAudienceGuided":"Display starts from first-party lists and may expand through optimized targeting.","displayAudienceRestricted":"Display disables optimized targeting and stays restricted to the selected first-party lists.","pmaxAudienceAutomatic":"Performance Max starts without explicit signals and learns from URLs, assets, feeds, and conversions.","pmaxAudienceGuided":"Performance Max receives lists and search themes as signals; Google may go beyond them.","carouselAssetCustomerMismatch":"The prepared carousel images must belong to the selected advertising account.","carouselMediaRequired":"ContentFlow must verify the logo and every carousel image before sending it to Google.","videoLogoRequired":"ContentFlow must verify the video ad logo before sending it to Google.","demandGenVideoNotApplicable":"The first video ad in this flow can only be used with Demand Gen.","demandGenInitialAdConflict":"Choose one first ad. You can add more images, videos, or carousels to the group afterwards.","demandGenCarouselNotApplicable":"The first carousel in this flow can only be used with Demand Gen.","adGroupContextRequired":"Google must check the campaign type and bidding strategy before saving these settings.","adGroupContextChanged":"The selected group changed in Google Ads. Refresh the page before saving.","adGroupCpcNotApplicable":"An ad group CPC bid is only available when the campaign uses Manual CPC.","adGroupTargetCpaNotApplicable":"An ad group target CPA is not compatible with the current bidding strategy.","adGroupTargetRoasNotApplicable":"An ad group target ROAS is not compatible with the current bidding strategy or belongs to a shared strategy.","adGroupOptimizedTargetingNotApplicable":"Optimized targeting is only available for compatible Display and Demand Gen groups.","adGroupKeywordsNotSearch":"Keywords can only be edited inside Search campaign groups.","adGroupKeywordContextRequired":"Google must check the current keywords before saving changes.","adGroupKeywordContextChanged":"The keywords changed in Google Ads. Refresh the page before saving again.","searchKeywordsReplacement":"Google keeps unchanged keywords and only applies the additions, pauses, reactivations, or removals shown in this editor.","visualReplacementNotSupported":"This ad format does not yet support safe visual editing from ContentFlow.","visualReplacementLongHeadlineRequired":"Add the long headline before validating this Display ad.","visualReplacementMediaRequired":"ContentFlow must verify all three replacement images inside this account before sending them to Google.","creativeMediaContextRequired":"The server must download and verify every image before validating with Google.","tooManyDisplayMarketingImages":"Responsive Display supports a combined maximum of 15 landscape and square images.","visualReplacementWithCurrentAssets":"The new ad will keep the current images and start paused; the original will not change.","visualReplacementWithNewAssets":"Google will receive all new images with the paused ad; the original will not change.","visualImagesAtomic":"All {count} images, the logo and the ad are created together.","landscapeAssets":"{count, plural, one {# landscape image} other {# landscape images}}","squareAssets":"{count, plural, one {# square image} other {# square images}}","removeCampaignValidated":"Google validates the exact campaign before allowing confirmation.","removeCampaignIrreversible":"Removing a campaign is irreversible in Google Ads: it will stop serving and cannot be re-enabled.","removeAdGroupIrreversible":"Removing the ad group is irreversible in Google Ads: the resource will stop serving and cannot be re-enabled.","removeAssetGroupIrreversible":"Removing the asset group is irreversible in Google Ads: the resource will stop serving and cannot be re-enabled.","removeAdIrreversible":"Removing the ad is irreversible in Google Ads: the resource will stop serving and cannot be re-enabled.","optimizedTargetingEnabledResource":"Optimized targeting · enabled","optimizedTargetingDisabledResource":"Optimized targeting · disabled","locationConflict":"A location cannot be included and excluded at the same time."},"createSubtitle":"Set it up step by step. It is always created paused so you can review it before publishing.","oneStepCreateHelp":"The primary button validates with Google first and, only when everything passes, creates the structure as PAUSED in the same action.","validateOnly":"Validate and preview","confirmValidated":"Confirm validated preview","createPausedOneStep":"Create campaign as PAUSED","createSimulationOneStep":"Create simulation","processing":"Processing…","uploadingImage":"Uploading image…","processingVideo":"Processing video…","saveAndClose":"Save and close","resetDraft":"Reset draft"},"googleAdsAccountHealth":{"checking":"Checking the account's live status…","unavailable":"The live check is not available right now. This does not mean the account has a problem.","ready":"Account ready to publish","statusUnavailable":"Google Ads status unavailable","reviewing":"Google Ads is reviewing the account","needsAttention":"Google Ads requires attention","retry":"Check again","completeInGoogleAds":"Complete in Google Ads","messages":{"servingEnabled":"The account is enabled to serve ads.","servingSuspended":"Google has suspended the account and it cannot serve ads.","servingClosed":"The account cannot serve ads while it remains closed or canceled.","servingUnknown":"Google did not return a conclusive serving status.","billingApproved":"Google confirms an approved billing setup.","billingPending":"The billing setup is pending approval.","billingInactive":"There is no active billing setup.","billingUnknown":"Google Ads did not report a billing setup that can be checked through the API.","billingUnavailable":"Billing could not be checked in this reading.","identityNotRequired":"Google does not currently require advertiser verification.","identityVerified":"The advertiser identity is verified.","identityReviewing":"Google is reviewing the advertiser verification.","identityActionRequired":"An advertiser verification action still needs to be completed.","identityFailed":"Advertiser verification failed and requires review.","identityUnknown":"The advertiser verification status could not be determined.","identityMonthlyInvoicingUnavailable":"Google does not provide this API check for the current payment arrangement. This does not mean the account is blocked.","identityUnavailable":"Advertiser verification could not be checked in this reading."}},"googleAdsCampaignWizard":{"campaignSetup":{"title":"New Google Ads campaign","name":"Name","objective":"Objective","biddingStrategy":"Bidding strategy","targetCpa":"Target CPA ({currency})","targetRoas":"Target ROAS (%)","retargetingPreset":"Retargeting preset: {type}","structure":"Structure to create","validatedBadge":"VALIDATE ONLY · GOOGLE","localPreviewBadge":"LOCAL PREVIEW","pausedBadge":"REQUIRED STATUS · PAUSED","campaign":"Campaign","budget":"Budget","dailyBudget":"{budget} {currency}/day","initialGroup":"Initial group","includeAudience":"Include {name}","excludeAudience":"Exclude {name}","creationModes":{"api":"Full API","report_only":"Read only","specialist":"Specialist"},"groupKinds":{"ad_group":"Ad group","asset_group":"Asset group","product_group":"Product group"},"objectives":{"leads":"Leads","sales":"Sales","traffic":"Traffic","awareness":"Awareness","youtubeEngagement":"YouTube engagement","installs":"Installs","inAppActions":"In-app actions","inAppValue":"In-app value","reengagement":"Reengagement","preRegistration":"Pre-registration"},"bidding":{"maximize_conversions":"Maximize conversions","maximize_conversion_value":"Maximize conversion value","maximize_clicks":"Maximize clicks","target_cpa":"Target CPA","target_roas":"Target ROAS"},"searchAdvanced":{"title":"Advanced Search controls","heading":"AI Max, automation, and rotation","help":"The campaign and all its groups are created together. Brand lists are Brands Shared Sets in this same account.","aiMax":"AI Max","aiMaxHelp":"Expands matching and enables AI Max controls.","termMatching":"AI Max search term matching","termMatchingHelp":"Applies to the initial group; requires AI Max.","textCustomization":"Text customization","textCustomizationHelp":"Allows Google to generate text assets.","urlExpansion":"Final URL expansion","urlExpansionHelp":"Allows relevant pages on the domain to be selected.","includedBrands":"Shared Set IDs · included brands","excludedBrands":"Shared Set IDs · excluded brands","idPlaceholder":"One numeric ID per line","rotation":"Ad rotation","optimize":"Optimize","rotateForever":"Rotate indefinitely","rotationHelp":"When editing, this applies atomically to all Search groups in the campaign."},"types":{"search":{"label":"Search","description":"Responsive text ads triggered by searches and keywords.","formats":"Responsive text / Dynamic Search Ads / Assets"},"display":{"label":"Display","description":"Images, text, and responsive creatives on the Display Network.","formats":"Image / Responsive Display / HTML5"},"demand_gen":{"label":"Demand Gen","description":"Images, carousels, and video on YouTube, Discover, and Gmail.","formats":"Multi-asset / Carousel / Responsive video / Products"},"performance_max":{"label":"Performance Max","description":"A multichannel campaign using asset groups and conversion goals.","formats":"Text / Image / Logo / Video / Product feed"},"shopping":{"label":"Shopping","description":"Product ads powered by Google Merchant Center.","formats":"Product / Listing / Feed","setupRequirement":"Linked Google Merchant Center with approved products."},"app":{"label":"Apps","description":"Installs, pre-registration, and in-app actions.","formats":"Text / Image / Video / HTML5","setupRequirement":"Published app with conversions/Firebase configured."},"video":{"label":"Classic video","description":"Existing video campaigns: API reads, metrics, and reporting.","formats":"In-stream / Bumper / In-feed / YouTube audio","setupRequirement":"Create classic VIDEO campaigns in Google Ads; use Demand Gen or PMax for full API support."},"smart":{"label":"Smart","description":"Simplified campaigns for small businesses.","formats":"Smart campaign ad"},"hotel":{"label":"Hotels","description":"Hotel inventory, rates, and bookings.","formats":"Hotel ad","setupRequirement":"Linked Hotel Center and rate feed."},"travel":{"label":"Travel","description":"Travel inventory and goals.","formats":"Travel ad"},"local":{"label":"Local (legacy)","description":"Legacy local campaigns, now generally migrated to Performance Max.","formats":"Local ad"},"local_services":{"label":"Local Services","description":"Lead generation for eligible local service categories.","formats":"Local Services ad","setupRequirement":"Business, category, and country eligible for Local Services Ads."}}},"creativeMessages":{"close":"Close","chooseTarget":"Select a campaign and ad group","nameLength":"The name must contain 1 to 255 characters","httpsUrl":"The final URL must use HTTPS and contain no credentials","rsaHeadlines":"The RSA needs 3 to 15 headlines of up to 30 characters","rsaDescriptions":"The RSA needs 2 to 4 descriptions of up to 90 characters","pathLength":"Each display path allows up to 15 characters","brandLength":"The brand name allows 1 to 25 characters","carouselHeadline":"The carousel needs an overall headline of up to 40 characters","carouselDescription":"The carousel needs an overall description of up to 90 characters","cardCount":"The carousel allows 2 to 10 cards","cardHeadline":"Each card needs a headline of up to 40 characters","cardHttps":"Card URLs must use HTTPS","cardImages":"Upload the logo and a different square image for each card","productHeadline":"The product ad needs a headline of up to 40 characters","productDescription":"The product ad needs a description of up to 90 characters","productLogo":"Upload the square product ad logo","longHeadline":"The long headline allows 1 to 90 characters","descriptions":"Add 1 to 5 descriptions of up to 90 characters","youtubeIds":"Add 1 to 5 valid YouTube video IDs","videoLogo":"Upload the square video ad logo","images":"Upload the landscape image, square image and logo","missingImages":"Add the missing assets: {assets}","connectionChanged":"The connection changed. Reload before confirming.","validationFailed":"Google Ads did not validate the ad","validated":"Google validated the ad and its exact ad group","prepareFailed":"Could not prepare the ad","missingPreview":"The secure preview ID is missing","creationRejected":"Google Ads did not create the ad","createdPaused":"Real ad created paused","createdHelp":"Google validated the ad group and ad details before creation.","creationFailed":"Could not create the ad","noCampaign":"No Search, Display or Demand Gen campaigns have compatible ad groups. Create a campaign and its initial ad group first."},"sharedControls":{"searchFormat":"Search","adName":"Ad name","finalUrl":"Final HTTPS URL","brandName":"Brand name","logo":"Square logo","landscape":"Landscape image","square":"Square image","landscapeHint":"1.91:1 · minimum 600×314","squareHint":"1:1 · minimum 300×300","cards":"Carousel cards ({count}/10)","cardHelp":"Google preserves the order. Each card uses a square 1:1 image and can have its own URL.","addCard":"Add card","card":"Card","cardAlt":"Card {number}","cardHeadline":"Card headline","cardUrl":"Optional card URL","squareCard":"Square image 1:1","catalogTitle":"Verified product catalog:","catalogHelp":"For a real account, Google must confirm that the campaign has a linked Merchant Center and the ad group contains at least one listing group. Simulation checks this requirement without publishing.","validateBadge":"VALIDATE ONLY · GOOGLE","localBadge":"LOCAL PREVIEW","pausedBadge":"REQUIRED STATUS · PAUSED","flowTitle":"Before creating the ad:","flowHelp":"The ad group, copy and images are checked. After validation and confirmation, the ad is created paused for Google review.","cancel":"Cancel","edit":"Edit","processing":"Processing…","processingVideo":"Processing video…","uploadingImage":"Uploading image…","confirm":"Confirm paused ad creation","validate":"Validate and preview","callToAction":"Call to action","path1":"Display path 1","path2":"Display path 2","learnMore":"Learn more","signUp":"Sign up","shopNow":"Shop now","getQuote":"Get quote","applyNow":"Apply now","download":"Download","contactUs":"Contact us"},"creationBlockedTitle":"Before creating the campaign, resolve the following:","creationBlockedUnsupported":"This campaign type cannot be created through this integration.","creationBlockedValidation":"Google validation blocked creation. Review the reasons in the result.","duplicateName":"An active or paused campaign already uses this name. Use the suggested name or enter a different one.","creationUnavailableTitle":"This campaign type cannot be created from ContentFlow yet","creationUnavailableHelp":"You can review its guidance here, but validation and creation stay disabled. Choose a campaign type marked Full API to complete it inside ContentFlow.","creativeUpload":{"searchApplySimulation":"Apply in simulation","keepSourceLogo":"The original ad logo is retained. You can replace it here; Google will verify the asset before creating the paused ad.","searchEditTitle":"Edit search ad","searchEditSubtitle":"Edit copy, URL and paths in the same creation wizard. Google retains the ad identity and status.","searchUpdated":"RSA creative updated","searchUpdatedDescription":"The ad status is retained. Google will review the updated content when applicable.","searchStatusPreserved":"Ad status retained","searchConfirm":"Confirm RSA changes","title":"Upload creatives automatically","subtitle":"Google verifies the exact ad group, validates the payload, and the ad is always created paused.","defaultName":"ContentFlow creative","waitForYoutube":"Wait for YouTube to finish processing the video","waitForLandscape":"Wait for the AI landscape expansion to finish","destinationRejectedTitle":"Google rejected the final URL","destinationRejectedHelp":"The final URL must open as a public page for Google. Check DNS, HTTPS, and whether sign-in is required, then validate again. This error does not show that the images or videos are invalid.","privateDashboardDestination":"This address opens ContentFlow's private Google Ads dashboard. The ad needs a public landing page, not this administration screen.","useDirectDestination":"Try the www address","googlePolicyDetails":"Google details and request reference","visualFormat":"Image / visual","carouselFormat":"Carousel","productFormat":"Product","videoFormat":"Video","carouselLoaded":"Carousel loaded: {title}","carouselGeneralHeadline":"Carousel headline","productHeadline":"Product headline","singleHeadlineHelp":"One headline of up to 40 characters. You can generate or revise it with AI.","carouselGeneralDescription":"Carousel description","productDescription":"Product description","singleDescriptionHelp":"One description of up to 90 characters. You can generate or revise it with AI.","carouselLibrary":{"choose":"Choose a ContentFlow carousel","title":"Campaign carousels","help":"Carousels saved in ContentFlow with 2 to 10 images. Imported images are adapted to Google Ads square cards.","loading":"Loading carousels…","error":"The library could not be loaded.","retry":"Retry","empty":"There are no compatible carousels in this campaign.","slideAlt":"Slide {number} of {title}","item":"{count} slides · {status} · Use this carousel","loadMore":"Load more"},"localFilesBelow":"You can also upload a landscape and a square image from your computer in the fields below.","selectedPosters":"{count, plural, one {1 poster selected} other {# posters selected}}. Complete and review the landscape and square images before validation.","expandTitle":"Expand a square poster to landscape with AI","expandHelp":"AI extends the background to 1.91:1 while preserving the layout, colors, text, and logos. Review the result before validation.","expandPrompt":"Optional additional directions","expandPromptPlaceholder":"For example: extend the blue gradient sideways without adding new elements","expandEngine":"Image engine","nanoBanana2":"Nano Banana 2","gptImage2":"GPT Image 2","expandQuote":"Check cost and balance","expandQuoteResult":"Estimated cost for {count, plural, one {1 image} other {# images}}: {credits} credits · Available balance: {balance} credits.","expandRecoveryQuote":"{count, plural, one {1 existing operation will be recovered} other {# existing operations will be recovered}} without starting another generation. The cost above includes only new operations; the original consumption receipt remains available.","expandRecoveredReceipt":"Original consumption receipt for recovered operations: {credits} credits. Recovery did not start another generation.","expandConfirm":"Confirm and expand with AI","expandGenerating":"Generating…","expandInsufficient":"Insufficient balance for this generation.","expandQuoteFailed":"Could not check the current cost or balance.","expandCampaignChanged":"The campaign changed during generation.","expandPrepareFailed":"Could not prepare the generated landscape image.","expandBalanceChanged":"The balance changed or could not be checked. Check the cost again.","expandReady":"Landscape image generated. Review it before validating the ad.","expandReceipt":"Confirmed consumption: {credits} credits · Current balance: {balance} credits.","expandReceiptBalanceUnknown":"Confirmed consumption: {credits} credits. Current balance could not be checked.","expandReceiptIncomplete":"Confirmed consumption: {credits} credits · {count} results unconfirmed. Current balance: {balance} credits.","expandReceiptIncompleteBalanceUnknown":"Confirmed consumption: {credits} credits · {count} results unconfirmed. Current balance could not be checked.","expandPartialCharge":"The completed images have already used {credits} credits. Check the balance before retrying.","expandFailed":"Landscape generation failed.","expandRequired":"Generate the landscape version with AI or upload a landscape image before validation."},"urlTracking":{"title":"Automatic UTM attribution","viewAttribution":"View automatic UTM attribution","description":"ContentFlow creates UTMs from readable campaign, group, and ad names in Google's official final URL suffix. There is no intermediate step: they update as you name the ad and remain editable before validation.","suffixLabel":"Final URL suffix · without ?","apply":"Apply automatic UTMs","restore":"Restore recommended","recommendedActive":"Recommended UTMs are active","customActive":"Custom UTMs are complete","missingCore":"Missing core parameters: {parameters}","preview":"Example URL received by the landing page","idsHelp":"UTMs keep readable names and cf_google_* parameters retain dynamic IDs. Google auto-tagging should stay enabled: gclid, gbraid, and wbraid are added separately and do not compete with UTMs.","errors":{"too_long":"The UTM suffix exceeds 2,048 characters.","prefix":"Enter the suffix without ? or #.","control_character":"The suffix cannot contain line breaks or control characters.","query_string":"Use name=value pairs separated by &, without spaces.","duplicate_parameter":"Each UTM parameter must appear only once."}},"performanceMax":{"packageTitle":"Performance Max assets","packageHelp":"ContentFlow organizes your copy, images, logo, and videos so Google can combine them across its channels. You can review everything before publishing.","retailHelp":"Connect Merchant Center to include approved catalog products together with your copy, images, logo, and videos."},"creative":{"choosePoster":"Choose from Posters","uploadFile":"Upload file","expandSquare":"Expand square with AI","invalidImage20Mb":"Select a valid image no larger than 20 MB","variantsPrepared":"Google Ads formats are ready","variantsPreparedDescription":"The landscape and square images were generated automatically.","variantsFailed":"The image formats could not be prepared","select":"Select image","replace":"Replace image","remove":"Remove image","selectExactMontage":"Select the exact ContentFlow montage or Reel"},"contentFlowCampaign":{"title":"ContentFlow campaign (optional)","loading":"Loading campaigns for this account…","placeholder":"Select a campaign to reuse context and dates","help":"Prefills name, landing page, dates, and logo only from campaigns in this account. Everything remains editable.","pickerEyebrow":"ContentFlow visual context","pickerSelectedHelp":"Its image, dates, landing pages, and context are reused. You can edit every field afterwards.","chooseCampaign":"Choose campaign","changeCampaign":"Change campaign","pickerTitle":"Choose the ContentFlow campaign","pickerDescription":"Find the correct campaign visually. Only campaigns belonging to this account are shown.","closePicker":"Close picker","searchCampaigns":"Search by campaign name…","campaignsEmpty":"No campaigns match this search.","clearCampaign":"Continue without a ContentFlow campaign","landingTitle":"Published landing page for this campaign","landingsLoading":"Loading published landing pages…","landingPlaceholder":"Choose a funnel landing page","openLanding":"Open landing page","noStart":"No saved start date","noEnd":"No saved end date","posterAvailable":"Poster available","logoAvailable":"Logo available","usePoster":"Create landscape and square images from this campaign poster","openPosterLibrary":"Open poster gallery ({count})","choosePosterCampaignFirst":"Choose the ContentFlow campaign first to see its posters.","sourcePostersTitle":"Source posters for this ad","sourcePostersUnavailable":"Some source posters are no longer available in this campaign. The images stored in Google Ads are preserved.","posterLibraryLoading":"Loading gallery…","posterLibraryTitle":"Posters for this campaign","posterLibraryDescription":"Choose a poster already created in ContentFlow and review the prepared image. AI landscape expansion requires cost confirmation before generating.","posterLibraryMultipleDescription":"Choose 2 to {max} different posters from this campaign. ContentFlow will prepare one square card per poster.","multiAssetPosterDescription":"Choose 1 to {max} posters from this campaign and review the prepared formats. If landscape is missing, request AI expansion and confirm its cost before generating.","prepareMultiAsset":"Prepare Multi Asset","multiAssetPostersPrepared":"{count} posters prepared for Multi Asset","multiAssetSelectionReady":"{count} posters selected · {assets} images prepared","multiAssetPosterItem":"Poster {index}","independentFormatsHelp":"Selected posters are included as assets in the same ad. Google combines the images; each square does not need its own landscape. The fields below edit the first asset of each format.","square":"Square","landscape":"Landscape","formatReady":"Ready","formatMissing":"No file","multiAssetPairsIncomplete":"Each Multi Asset poster needs its landscape and square pair.","displayImageLimit":"Display supports at most 15 combined landscape and square images.","multiAssetImageLimit":"This format supports at most 20 combined landscape and square images.","posterSelectionCount":"{count} selected · maximum {max}","posterSelected":"Selected","addPoster":"Select poster","cancelPosterSelection":"Cancel","confirmPosterSelection":"Prepare carousel","posterLibraryEmpty":"This campaign does not have any posters with an available image yet.","posterLibraryUnavailable":"The gallery could not be loaded. No image has been selected.","posterDateUnknown":"Date unavailable","posterFallbackTitle":"Untitled poster","useThisPoster":"Use this poster","posterPrepared":"Poster prepared in Google Ads formats","logoPrepared":"Logo copied to this account's secure Google Ads workspace","logoPrepareFailed":"This campaign logo could not be prepared. You can select another logo.","logoTooSmall":"The logo must be at least 128×128","posterUnavailable":"The selected campaign has no available poster.","posterPrepareFailed":"This campaign poster could not be prepared. You can choose another file."},"audience":{"title":"Audience strategy","description":"The country defines where ads can show, not who the audience is. Choose whether Google should work automatically, from signals, or within an explicit restriction.","quickTitle":"Create a retargeting campaign","quickHelp":"Choose a channel and ContentFlow prepares strict mode in one click with detected website-visitor and YouTube-engagement lists. The campaign always starts PAUSED and Google validates targeting before creation.","quickBadge":"WEB + YOUTUBE","quickOption":"First-party lists only · no expansion","quickBoundary":"Strict retargeting is available for Search, Display, Standard Shopping, and Demand Gen. Performance Max only supports signals and may expand beyond them; App uses its dedicated re-engagement flow.","modeLabel":"Audience mode","automaticTitle":"Automatic with Google","automaticHelp":"No lists required. Google learns from the landing page, creative assets, and available conversion data.","guidedTitle":"Guided by signals","guidedHelp":"Uses first-party lists and, in Performance Max, search themes to guide learning without limiting reach.","restrictedTitle":"Restricted to lists","restrictedHelp":"Available for Search, Display, Standard Shopping, and Demand Gen. Uses Targeting—not Observation—and disables optimized targeting where the channel exposes it.","automaticNotice":"No list selection is required. Optimized targeting stays on and Google uses the landing page, ads, and conversion history to find relevant people.","automaticDirectNotice":"No user-list restriction will be applied. Search or Shopping may reach anyone who matches the campaign's remaining targeting.","automaticPmaxNotice":"No signals are required. Performance Max can learn from URLs, assets, feeds, and conversion goals; signals are optional and never restrict delivery.","listsTitle":"First-party lists in this account","listsOptional":"Optional in automatic mode; they give Google stronger starting context.","listsRequired":"Select at least one eligible list to use this mode.","selectedCount":"{count} selected","manageLists":"Manage lists and retargeting","videoEligible":"VIDEO ELIGIBLE","applyPreset":"Select web + YouTube and restrict the audience","applyPresetHelp":"Automatically selects recognizable website-visitor, video-viewer, and channel-visitor lists; purchaser, customer, and lead lists are excluded from automatic selection. You can review everything before validation.","videoRetargetingHelp":"For pure viewer retargeting, choose Restricted to lists and a video-eligible list created from a linked YouTube channel. Guided may expand, while Automatic does not limit delivery to people who watched your videos.","summaryAutomatic":"automatic audience","summarySelected":"{count} first-party audiences","summaryThemes":"{count} themes","guidedRequired":"Guided or restricted mode needs at least one first-party list or, in Performance Max, one search theme.","restrictedUnavailablePmax":"Performance Max does not support a restricted audience: its signals always guide rather than limit delivery.","searchThemesTitle":"Performance Max search themes","searchThemesPlaceholder":"create an AI digital clone\ncontent automation","searchThemesHelp":"One per line, up to 50 and 80 characters each. These are additive signals, not keywords or a targeting boundary.","searchThemesInvalid":"Add up to 50 search themes of no more than 80 characters.","noLists":"This account has no eligible first-party lists yet. Use automatic mode or prepare an audience from the Audiences tab.","customSegmentsHelp":"Interest terms, URLs, and apps are not Search keywords: Google stores them as custom segments. This step makes the current mode and first-party lists explicit; custom segments are managed separately."},"videoLibrary":{"pendingNotice":"Some selected videos are pending. They will upload only when you choose to prepare them.","pendingPlaceholder":"Pending video or montage ID","queued":"Queued securely…","uploading":"Uploading MP4 to YouTube…","processing":"YouTube is processing the video…","ready":"Ready · {id}","attention":"The upload needs attention","adYoutubeIds":"Ad YouTube videos (1–5, one per line)","preparedPlaceholder":"Prepared videos appear here when you select them","reuseHelp":"Existing IDs are reused. Selecting a pending montage does not start an upload.","title":"ContentFlow Reels and final montages","loading":"Loading montages for this account…","placeholder":"Select a Reel or final montage","selectedCount":"{count}/{max} selected","readyStatus":"Already on YouTube","differentVersionStatus":"The YouTube upload belongs to a previous MP4 version","unverifiedVersionStatus":"The MP4 version of the previous upload is unverified","pendingStatus":"Pending upload","processingStatus":"Preparing on YouTube","failedStatus":"Upload failed","help":"Only final MP4 files authorized for this account and, when selected, this campaign are shown. The parent video never replaces the montage.","chooseCampaignFirst":"Choose the ContentFlow campaign first. The library will then show only its Reels and final montages, never videos from other campaigns.","empty":"No final montages are available for this filter.","unavailable":"The library could not be loaded. No video has been selected.","manualTitle":"Or use a rendered video ID","manualPlaceholder":"ContentFlow video ID · e.g. 5363","invalidSource":"Select a final montage or enter a valid video ID","prepare":"Prepare on YouTube","preparing":"Uploading and processing…","selectedPreviewTitle":"Selected video preview","selectedPreviewLabel":"Preview of {title}","thumbnailAlt":"Thumbnail for {title}","clearSelection":"Remove selection","pmaxTitle":"Videos for Performance Max (optional)","pmaxHelp":"Add up to {max} YouTube videos of at least 10 seconds. Choose a final montage from this campaign or enter a rendered ContentFlow video.","demandGenTitle":"Videos for the first Demand Gen ad","demandGenHelp":"Select 1 to {max} final videos. Videos already on YouTube are linked immediately; pending videos upload only after explicit confirmation.","existingYoutubeHelp":"Enter one 11-character YouTube ID per line. ContentFlow will prepare the videos for the ad so you can review them before publishing.","allOrientations":"All formats","horizontalOnly":"Horizontal only","horizontalRecommendation":"Recommended for broader coverage","noHorizontalVideos":"No identified horizontal videos are available in this library.","orientation":{"horizontal":"Horizontal","vertical":"Vertical","square":"Square","unknown":"Unknown format"},"youtubeVideoSummary":"{count, plural, one {# YouTube video} other {# YouTube videos}}"},"competitors":{"title":"Appear when people search for competitors","help":"AI uses the selected campaign context to suggest brands and comparison searches. Your current keywords do not change until you review and select the suggestions.","generate":"Suggest competitors with AI","generating":"Finding alternatives…","noNewSuggestions":"There are no new suggestions to add.","ready":"{count, plural, one {# suggestion ready to review} other {# suggestions ready to review}}","reviewTitle":"Review before adding","reviewHelp":"Your current keywords remain untouched. Select only the searches you want to add.","matchTypeReview":"Selected suggestions will use the match type chosen in the form. Review CPC and negative keywords before activation.","discard":"Discard suggestions","addSelected":"Add selected ({count})","nothingSelected":"Select at least one suggestion.","applied":"{count, plural, one {# keyword added} other {# keywords added}}","policy":"Use with care: a trademark may be used as a keyword, but ContentFlow will not automatically copy it into ad text. Review relevance, CPC, and negative keywords before activation.","policyLink":"Read the official Google Ads trademark policy"},"guidance":{"whatItDoes":"What you are doing","whereItAppears":"Where it may appear","beforeStarting":"What you need before starting","search":{"bestFor":"Reach people already searching for your solution, category, or alternatives to competitors.","placements":"Sponsored Google Search results and search partners when enabled.","requirements":"Landing page, keywords, 3–15 headlines, and 2–4 descriptions.","caveat":"It captures existing demand and is less suitable when nobody searches for the category yet."},"display":{"bestFor":"Visual reach and remarketing with images and responsive ads.","placements":"Websites, apps, and Google Display Network inventory.","requirements":"Landing page, landscape image, square image, logo, headlines, and descriptions.","caveat":"Inventory is broad: review audiences, exclusions, and measurement before activation."},"demand_gen":{"bestFor":"Generate demand with video, images, carousels, and first-party audiences.","placements":"YouTube, Shorts, Discover, Gmail, Maps, and the Display Network when the account is eligible.","requirements":"Landing page, images or video, logo, headlines, and descriptions.","caveat":"Exact channels and combinations depend on eligibility and Google validation."},"performance_max":{"bestFor":"Optimize conversions across Google inventory from one goal-based campaign.","placements":"Search, Display, YouTube, Discover, Gmail, Maps, and search partners.","requirements":"Reliable tracking, landing page, headlines, descriptions, images, logo, and preferably video.","caveat":"Google automates more and offers less channel control; weak tracking leads to weak optimization."},"smart":{"bestFor":"A simplified setup for eligible small businesses.","placements":"Search, Maps, and selected Google partner inventory.","requirements":"Business profile, destination, goal, location, and budget.","caveat":"ContentFlow does not yet execute Smart creation. Use the specialist flow or Search/PMax for an auditable API workflow."}},"aiWizard":{"open":"Create campaign with AI Wizard","title":"What do you want to achieve?","subtitle":"Answer four questions and ContentFlow will suggest the best campaign type, including its limits and requirements.","goal":"Primary goal","goals":{"captureExisting":"Appear when someone already searches for my solution","youtubeFirst":"Appear mainly on YouTube and Shorts","discoverDemand":"Reach new people with visual content","allGoogle":"Appear across the Google ecosystem"},"assets":{"video":{"title":"I have videos","help":"Final videos or Reels ready for YouTube."},"images":{"title":"I have images","help":"Posters, landscape, square, and logo."},"tracking":{"title":"I track conversions","help":"Google tag and goals are measured correctly."}},"recommendation":"Recommendation","reasons":{"existingIntent":"Your audience already has explicit search intent.","keywordControl":"Search gives direct control over searches, keywords, and copy.","visualDiscovery":"Demand Gen prioritizes visual discovery and YouTube inventory.","clearCreativeFlow":"It offers a clearer creative flow than classic video campaigns in the current API.","broadInventory":"You want broad reach and already have conversion measurement.","crossChannelOptimization":"Performance Max optimizes across channels using the available assets.","pmaxNotReady":"The current measurement and assets are not ready for safe Performance Max optimization.","displayUsesImages":"Display can use the images you already have.","searchStartsWithCopy":"Search can start with copy, searches, and a landing page.","historicalCustomerEvidence":"This account's real performance supports this recommendation."},"history":{"title":"Real performance from this account","supportsRecommendation":"This campaign type has the strongest recent evidence in the selected Customer.","alternative":"Historical performance favors {type}. It is shown as a reference, while your goal and available assets remain decisive.","campaigns":"Campaigns","conversions":"Conversions","spend":"Spend","cpa":"Cost/conv.","roas":"ROAS","accountScoped":"Only aggregated metrics from the connected Customer and the period loaded in ContentFlow are used."},"missing":{"videoRecommended":"Add a video to expand coverage across YouTube and Shorts.","imagesRequired":"Add landscape and square images for broader visual coverage.","imagesForPmax":"Add landscape and square images plus a logo before launch.","pmaxVideoRecommended":"Add a video so Google does not need to generate one automatically.","trackingRequired":"Configure reliable measurement before using Performance Max.","visualImagesRequired":"Add landscape and square images for visual campaigns."},"cancel":"Cancel","useRecommendation":"Prepare {type}"},"search":{"title":"Responsive search ad","description":"ContentFlow validates keywords, copy, and destination before sending the preview to Google. The campaign and ad are always created in PAUSED.","finalUrl":"Final HTTPS URL","keywords":"Keywords","keywordsHelp":"Add each search as a separate item. Maximum 80 characters per keyword.","matchType":"Match type","matchBroad":"Broad","matchPhrase":"Phrase","matchExact":"Exact","matchHelp":"Applied to all keywords in the initial group.","headlines":"Headlines","headlinesHelp":"Google requires 3 to 15 headlines, with a maximum of 30 characters each.","descriptions":"Descriptions","descriptionsHelp":"Google requires 2 to 4 descriptions, with a maximum of 90 characters each.","path1":"Display path 1","path2":"Display path 2","pathHelp":"Display paths help explain the ad destination. They do not change the final URL and do not need to exist as real folders. Maximum 15 characters each.","defaultCampaignName":"New campaign"},"visual":{"headlines":"Headlines","headlinesHelp":"Each headline shows its 30-character limit and can be rewritten or shortened with AI.","headlinesInvalid":"Add between {min} and {max} headlines of up to {limit} characters.","descriptions":"Descriptions","descriptionsHelp":"Each description shows its 90-character limit and remains editable before validation.","assetPreparationHelp":"Images are verified in this account's secure workspace and prepared as Google Ads assets before validation.","squareLogoHint":"1:1 · minimum 128×128"},"demandGenVideo":{"packageTitle":"First Demand Gen video ad","packageDescription":"Select the video from ContentFlow or YouTube, add the logo, and review copy with the same AI editor. Google validates the complete campaign before creating it paused.","logoTitle":"Ad logo","logoRequired":"Add the square logo for the video ad.","videoRequired":"Select 1 to 5 valid YouTube videos.","shortHeadlinesHelp":"Use 1–5 headlines of up to 40 characters. Include at least one with 30 or fewer for Display coverage. Each AI row action changes only that row.","longHeadlinesTitle":"Long headlines","longHeadlinesHelp":"Add 1 to 5 headlines of up to 90 characters. Google recommends at least 2 variants to improve coverage and match the message to more formats.","longHeadlinesInvalid":"Add 1 to 5 long headlines of up to 90 characters.","strength":{"title":"Ad strength guide","description":"Local preflight check. Google will confirm its own score and recommendations when the ad is validated.","ready":"Good coverage","improvable":"Needs improvement","horizontalReady":"At least one horizontal video is available for broader coverage.","horizontalUnknown":"The format of {count, plural, one {# video} other {# videos}} cannot be confirmed. Review it before publishing.","horizontalMissing":"Add a horizontal video to cover more YouTube placements.","longHeadlinesReady":"{count, plural, one {# long headline is} other {# long headlines are}} ready to combine.","longHeadlinesMissing":"Add at least 2 long headlines. There are currently {count}.","noVideos":"Select at least one video to evaluate the complete package."},"structureLabel":"Demand Gen Video Responsive"},"demandGenCarousel":{"logoTitle":"Carousel logo","packageTitle":"First Demand Gen carousel","packageDescription":"Select 2 to 10 posters from this campaign. ContentFlow creates the square cards, restores the logo, and validates the complete carousel with Google before leaving it paused.","galleryTitle":"Campaign posters for the cards","galleryDescription":"Every poster comes from the selected campaign. Review each image, headline, and destination before validation.","fallbackCard":"Card {index}","minimumPosters":"Select at least 2 different posters for the carousel.","postersPrepared":"{count} posters prepared for the carousel.","posterPrepareFailed":"Not all cards could be prepared. No carousel has been validated.","headlineRequired":"The carousel needs one general headline of up to 40 characters.","descriptionRequired":"The carousel needs one general description of up to 90 characters.","logoRequired":"Add the square carousel logo.","cardsIncomplete":"Every card needs its image and a headline of up to 40 characters.","invalidCardUrl":"Card-specific URLs must use HTTPS.","cardHeadline":"Card {index} headline","cardUrl":"Optional specific URL","removeCard":"Remove card","callToAction":"Carousel button","ctaLearnMore":"Learn more","ctaSignUp":"Sign up","ctaShopNow":"Shop now","ctaGetQuote":"Get quote","ctaApplyNow":"Apply now","ctaDownload":"Download","ctaContactUs":"Contact us","structureLabel":"Demand Gen Carousel","prepareErrors":{"invalidImages":"Review the carousel images: they must be valid, different, and in order.","googleAdsNotReady":"Complete the Google Ads connection before preparing the carousel.","imagesIncomplete":"ContentFlow could not verify every carousel image.","responseIncomplete":"Google did not return every prepared carousel asset.","imageVerificationFailed":"One of the images does not meet Google Ads requirements.","providerError":"Google Ads could not prepare these assets. Review the data or try again.","preparationFailed":"The images could not be prepared in Google Ads. Try again."}},"textEditor":{"fillWithAi":"Fill with AI","fillAllWithAi":"Fill the entire set with AI","applyingAll":"Generating the entire set…","applyingThis":"Applying here…","onlyThisItem":"This action changes only this item; everything else remains unchanged.","tooManyItems":"There are {count} complete items, but Google allows at most {max}. Remove the extras to continue.","shorten":"Shorten","rewrite":"Rewrite","alternatives":"Alternatives","chooseAlternative":"Choose an alternative; your current text stays until you choose.","keepCurrent":"Keep current text","aiApplied":"Suggestions applied. Review them before validation.","aiFailed":"Suggestions could not be generated right now. You can continue editing manually.","remove":"Remove item","add":"Add item","itemCount":"{count} complete · minimum {min} · maximum {max}"},"budget":{"label":"Daily budget ({currency})","invalid":"Enter a valid daily budget.","minimum":"Enter at least {minimum} {currency} per day so Google does not reject the campaign during validation.","safeMinimum":"Safe minimum for this check: {minimum} {currency} per day. The campaign will remain paused."},"searchPreview":{"title":"Google Search preview","live":"Updates live","sponsored":"Sponsored","headlinePlaceholder":"Your headlines will appear here","descriptionPlaceholder":"Your descriptions will appear here.","help":"This is a visual approximation. Google may combine or reorder headlines and descriptions for each search. Display paths are informative text and do not need to exist as real folders."}},"batchImageEdit":{"title":"Batch edit images","selectionSummary":"{count} images selected · account isolation verified on the server","close":"Close batch image editor","instructionLabel":"Instruction","instructionPlaceholder":"Replace the signature without changing the person, composition, colors, or any other text…","sourceTextLabel":"Exact text to replace (optional)","sourceTextPlaceholder":"Emili","replacementTextLabel":"Exact replacement text","replacementTextPlaceholder":"creatuclonia.com","concurrency":"Concurrency: {count}","runDryRun":"Run dry-run","matchedRecords":"{count} matching records","estimatedCredits":"Price: {credits} cr ({perImage} cr per image) · nothing charged yet","generateSample":"Generate sample ({count})","sampleMode":"Sample","batchMode":"Batch","progressSummary":"{percent}% · {succeeded} succeeded · {failed} failed","creditsSummary":"Credits charged: {charged} · refunded for failed images: {refunded}","before":"Before","after":"After","executionWarning":"Execution will replace the images and preserve immutable originals for rollback.","executeFullBatch":"Run full batch","cancelSafely":"Cancel safely","rollback":"Rollback","cancelRequested":"Cancellation requested","rollbackRequested":"Rollback requested","statuses":{"queued":"Queued","running":"Running","cancelling":"Cancelling","cancelled":"Cancelled","completed":"Completed","partial":"Partially completed","failed":"Failed","rollingBack":"Rolling back","rolledBack":"Rolled back","rollbackPartial":"Partially rolled back","unknown":"Unknown status"},"itemStatuses":{"pending":"Pending","running":"Running","succeeded":"Succeeded","failed":"Failed","skipped":"Skipped","rolledBack":"Rolled back","rollbackFailed":"Rollback failed","unknown":"Unknown status"},"confirm":{"confirmSending":"Starting…","confirmFixed":"Confirm ({cost} cr) · click again","confirmInsufficient":"No credits · you have {balance}, need {needed}","confirmError":"Error · click to retry","confirmIdleFixed":"{label} ({cost} cr)","confirmFixedHint":"This action deducts {cost} credits from your balance. Images that fail are refunded."},"errors":{"instructionRequired":"Describe the edit you want to apply.","pollTimeout":"The job is still active. You can close this dialog and check it again later.","previewFailed":"The dry-run could not be completed.","sampleFailed":"The sample could not be generated.","executionFailed":"The batch could not be started.","actionFailed":"The action could not be completed.","itemFailed":"This item failed. Check the job audit for details.","invalidRequest":"The batch image edit request is invalid.","invalidIdentifier":"The batch image edit configuration is invalid.","unsupportedTable":"This table does not support batch image editing.","tableNotAccountScoped":"Batch image editing is only available for account-scoped tables.","unsupportedImageField":"This image field is not supported.","invalidCampaignFilter":"The campaign was not found uniquely in this account.","invalidPersonaFilter":"The persona was not found uniquely in this account.","accountMismatch":"This request does not belong to the authorized account.","invalidSelector":"Select records by IDs or filters, but not both.","unsupportedFilter":"This table does not support one of the selected filters.","recordScopeMismatch":"One or more records are unavailable, have no image, or belong to another account.","emptySelection":"No image records match this selection.","idempotencyRequired":"A request identifier is required to start this batch.","idempotencyConflict":"This request identifier was already used for another batch.","dispatchFailed":"The asynchronous job could not be started. Try again later.","notFound":"This batch image edit job was not found.","internal":"An internal error prevented this action.","generic":"The batch image edit request could not be completed.","approvalRequired":"Confirm the price in credits before starting.","priceChanged":"The selection or its price in credits changed. Run the preview again.","chargeFailed":"The credits could not be charged; nothing was started. Try again."}},"metaAdsPublisher":{"publishStates":{"draft":"Draft","ready":"Ready","publishing":"Publishing…","published":"Published","discarded":"Discarded","error":"Error","label":"Publication status","locked":"The system is in the \"{state}\" state — it cannot be edited manually"},"favorite":{"removeTitle":"Remove from favorites","addTitle":"Mark as favorite","removeLabel":"Remove favorite","addLabel":"Mark favorite"},"header":{"campaign":"Campaign","landing":"Destination landing page","avatarHelp":"Customer avatar — determines the ad's landing page","noAvatar":"No avatar","landingHelp":"Ad landing page","automaticNamed":"Automatic (→ {name})","automaticDefault":"Automatic (primary / by avatar)","linkedLanding":"{name} (linked)","openLanding":"Open {url} in a new tab","stateChangeFailed":"The status could not be changed","favoriteChangeFailed":"The favorite could not be changed","retrySave":"Try again to save the change."},"composer":{"batchPublishNow":"Publish {count} now","batchNothingSent":"No items were sent. Review your selection and destinations.","batchIncomplete":"{count, plural, one {# item is incomplete} other {# items are incomplete}}. Review each destination status before retrying.","batchDestinationName":{"organic":"Organic (Social Hub)","meta":"Meta Ads","google":"Google Ads","linkedin":"LinkedIn Ads"},"batchDestinationSent":"✓ {destination}: {sent} of {total} sent.","batchDestinationFailed":"✗ {destination}: {sent} of {total} sent. Reason: {reason}","batchDestinationNoReason":"no provider detail.","batchPostersQueued":"{count, plural, one {# poster queued} other {# posters queued}}!","batchReelsQueued":"{count, plural, one {# reel queued} other {# reels queued}}!","batchMetaReview":"{count} × {adsets} Meta ads (PAUSED)","batchOrganicReview":"{count, plural, one {# item for Social Hub} other {# items for Social Hub}} · Next, review the brand and its accounts.","organicQueuedSummary":"{count, plural, one {# publication queued in Social Hub} other {# publications queued in Social Hub}}. Publishing follows your account rules.","campaignLabel":"Campaign","fieldTitle":"Title","fieldMessage":"Primary text","selectDestination":"Select at least one destination","fieldLink":"Destination link","fieldMetaAdset":"Meta ad set","missingBeforeNext":"Complete the missing fields before continuing","reviewPrevious":"Review the previous steps","queuedMeta":"📣 Meta ad queued","publicationSent":"Publication submitted","savedSeconds":"{count}s ago","savedMinutes":"{count} min ago","editAgain":"Edit and publish again","viewSocial":"View in Social Hub","viewMeta":"View in Meta Ads","viewGoogle":"View in Google Ads","autosaved":"💾 Auto-saved {time}","autosaveOnEdit":"Auto-save on edit","publicationSentPanel":"Publication submitted!","queuedDestination":"{destination} queued.","paidSummary":"📣 {count} {count, plural, one {ad} other {ads}} in Meta (PAUSED)","organicSummary":"📱 Queue in Social Hub (IG · YT · TikTok · FB)","summary":"Summary","noDestination":"⚠️ No destination selected. Return to step 2.","preview":"Preview","noTitle":"(No title)","noText":"(No copy)","publishSelectedOnly":"Clicking Publish now executes only the destinations shown above.","metaReview":" Meta ads are created PAUSED.","organicReview":" Social Hub handles organic networks according to its rules.","independentReview":" {destinations} is prepared independently, without activating Meta Ads or Social Hub.","posterWorker":" Posters are published in batches according to the worker schedule.","stepContent":"Content","stepDestination":"Destination","stepReview":"Review","publishPoster":"Publish poster","publishReel":"Publish Reel","publishCarousel":"Publish carousel","back":"Back","cancel":"Cancel","next":"Next","publishing":"Publishing…","publishNow":"Publish now","labelTitle":"📝 Title","titlePlaceholder":"Ad title","labelMessage":"💬 Primary text","messagePlaceholder":"Ad copy…","improveSoon":"Improve with AI (coming soon)","characters":"{count} characters","headlinePlaceholder":"Short headline for Meta Ads","hashtagsPlaceholder":"#trading #webinar #offer","labelLink":"🔗 Destination link","linkPlaceholder":"https://example.com/funnel","openDestination":"Open destination link in a new tab","labelCta":"📍 Call to action (CTA)","chooseDestinations":"Where would you like to publish? You can select several destinations.","metaAd":"As an ad (Meta Ads)","campaign":"Campaign","availableAdsets":"Available ad sets","noAdsets":"⚠️ No ad sets are linked to this campaign. Link a Meta campaign under /meta-ads.","metaPaused":"Ads will be created PAUSED. Activate them in Meta whenever you choose.","organic":"As an organic post","organicRules":"It will be queued in Social Hub. Your queue rules control platforms (📷 IG · ▶ YT · ♬ TikTok · Ⓕ FB) and timing. To change priority or timing, open Social Hub.","ctaLearn":"Learn more","ctaSignUp":"Sign up","ctaShop":"Shop now","ctaBook":"Book now","ctaDownload":"Download","ctaContact":"Contact us","ctaQuote":"Get quote","ctaSubscribe":"Subscribe","posterCount":"{count, plural, one {# poster} other {# posters}}","reelCount":"{count, plural, one {# reel} other {# reels}}","batchCommon":"Shared by {items}","batchLinkHelp":"Optional: leave the link empty to use each ad’s avatar landing page. Fill it in to use the same URL for every ad.","moreItems":"…+{count} more","batchIndividualTexts":"Saved individual texts","batchMissingCopy":"missing title or text","batchNoLanding":"no landing page for this avatar","headlineLabel":"Headline","emptyValue":"(empty)","batchDestination":"Shared destination","batchNoDestination":"No destination selected. Go back to step 2.","batchOwnTexts":"{items}, each with its own texts","batchPublishHelp":"When publishing, each item keeps its title, text and headline and uses the selected destinations.","metaQueuedSummary":"{count, plural, one {# Meta ad queued. It will be created paused.} other {# Meta ads queued. They will be created paused.}}","metaQueueDelay":"Meta ads are processed one at a time and may take a few minutes to appear.","queueProgressHelp":"Use the buttons below to follow publishing progress.","saveFailed":"Changes could not be saved. Try again before publishing.","batchIdleHint":"Select Ads or Organic on each item, then click Publish to publish several at once.","batchSelected":"{count, plural, one {# item selected} other {# items selected}}","organicShort":"Organic","bothDestinations":"Both","clearSelection":"Clear","batchPublishButton":"Publish now ({count})","adsetRequired":"Select an ad set.","batchMissingContent":"{count, plural, one {# item is missing a title or text. Edit it before publishing.} other {# items are missing a title or text. Edit them before publishing.}}","batchTitle":"Publish {items}","close":"Close","campaignBrandLoading":"Wait for the campaign brand to load and try again.","batchMissingNames":"Missing title or text: {names}. Edit these items before publishing.","adsetExpiredHelp":"This ad set ended on {date}. Update its end date in Meta before publishing."},"publicationErrorTitle":"Publishing could not be completed","publicationUnknownError":"The publication result could not be confirmed.","publicationRecovery":{"partial":"Completed: {completed}. Pending or unconfirmed: {pending}","reconciliationRequired":"A previous submission is unconfirmed. Check its result before sending it again.","scopeChanged":"The destination has changed. Review the selection before continuing.","unknown":"The publication result could not be confirmed.","metaPending":"Meta is still pending confirmation. Check its status before sending it again."},"googleAdsDestination":{"videoToggle":"Also prepare for Google Ads on YouTube","videoTitle":"Upload to YouTube and create a Google Ads ad","videoDescription":"Creates an unlisted copy and a Demand Gen ad in PAUSED. Meta Ads and Social Hub remain independent.","checkingChannel":"Checking channel","connectedChannel":"Channel connected","connectChannel":"Connect this account's channel","videoSourceMissing":"This montage has no valid ContentFlow source video.","channelExpiring":"The channel authorization expires soon; reconnect before publishing.","channelCheckFailed":"The YouTube channel could not be checked. Review the connection before publishing.","imageTitle":"Also upload this poster to Google Ads","imageDescription":"Prepares landscape, square and logo variants, and creates the ad in PAUSED. Meta Ads and Social Hub remain independent.","checkingAccount":"Checking Google Ads","customerReady":"Customer authorized","connectAccount":"Connect Google Ads","imageTarget":"Google Ads campaign and group for the poster","chooseImageTarget":"Choose a campaign and visual group","imageTargetMissing":"First create a Display or Demand Gen campaign with a group.","imageSourceMissing":"This poster does not have a valid image yet.","accountCheckFailed":"Google Ads could not be checked. Review the connection before publishing.","batchVideoPending":"{count, plural, one {# montage pending or failed.} other {# montages pending or failed.}} Completed destinations are preserved; you can retry pending items.","batchVideoReceipt":"YouTube {id} · ad in PAUSED","batchVideoSummary":"Google Ads / YouTube · {count, plural, one {# unlisted video and ad} other {# unlisted videos and ads}} in PAUSED","batchVideoSuccess":"{count, plural, one {# video uploaded to YouTube and ad created} other {# videos uploaded to YouTube and ads created}} in PAUSED.","batchVideoSourceRequired":"Every montage selected for Ads needs a valid ContentFlow source video. Review the montages before enabling Google Ads.","accountRequired":"Select a ContentFlow account.","destinationStale":"The automatic destination belongs to a previous Google Ads account or the connection needs attention. Select and save a campaign and an ad group from the current account under Automation and activity.","destinationRequired":"Configure and save the automatic destination under Google Ads → Automation and activity before uploading the video.","destinationUnavailable":"The Google Ads destination could not be checked. Review its configuration before uploading the video.","checking":"Checking Google Ads destination…","reviewDestination":"Review destination in Google Ads"},"destinationGuard":{"title":"Final URL check","campaign":"Campaign","checking":"Checking the final URL and display domain...","campaignRequired":"Select a ContentFlow campaign to validate the destination.","failed":"The destination could not be validated. Publishing is blocked.","missingUrl":"No final URL","displayDomain":"Display domain","allowlist":"Authorized domains","pending":"Meta URL verification is pending","campaignField":"ContentFlow campaign","validationFailed":"The Meta URL could not be verified","messageNoDestinations":"The campaign has no published landing with a valid URL.","messageRequired":"Choose a final campaign URL before publishing.","messageInvalid":"The final URL is invalid.","messageDomainMismatch":"The {domain} domain does not belong to the selected campaign.","messageRouteUnlisted":"The domain is authorized, but this route is not listed among the campaign's published landings.","messageManualOverride":"The URL you entered manually will be used, even if the campaign has no published landing.","autoLandingMissing":"No automatic landing · you can enter a manual URL below","manualUrlOption":"— Manual or automatic URL —","manualUrlField":"Manual destination URL","manualUrlHelp":"The automatic landing is suggested here. If you enter another URL, your manual link takes priority when publishing.","messageVerified":"URL and domain verified against the selected campaign."}},"metaAdsOperations":{"healthBanner":{"infoTitle":"{count, plural, one {# Meta Ads notice} other {# Meta Ads notices}}","attentionTitle":"{count, plural, one {# Meta Ads alert needs attention} other {# Meta Ads alerts need attention}}","showDetails":"View details","hideDetails":"Hide","recheck":"Check again","billing":"Review Meta billing","accountQuality":"Open Account Quality"},"reachLabel":"Reach","reachHelp":"Unique people who saw the ad in the selected period","management":{"title":"Campaigns","description":"{count, plural, one {# campaign found} other {# campaigns found}}","empty":"Create your first Advantage+ campaign","searchPlaceholder":"Search campaigns…","hierarchyAria":"Meta Ads management level","includeTodayTitle":"Include partial data for today. ON shows live data; OFF compares complete days only.","refreshDashboard":"Refresh KPIs and chart","listView":"List view","galleryView":"Gallery view","refreshHierarchy":"Refresh visible campaigns, ad sets, and ads","hierarchyTableAria":"Hierarchical table of campaigns, ad sets, and ads","campaignsView":"Campaigns","campaignsViewHelp":"Show campaigns only (collapse everything)","adSetsViewHelp":"Open the Ad Sets for ALL campaigns","adsViewHelp":"Open every Ad Set and ad for ALL campaigns"},"rowDashboard":{"loading":"Loading {metric} trend"},"performanceFilters":{"triggerTitle":"Filter campaigns, ad sets, and ads by Leads, Sales, CPL, CTR, Spend, ROAS, or learning phase","description":"Select one or more ranges to narrow the table. They apply to campaigns, ad sets, and ads together.","legendIntro":"The number for each range shows how many items there are:","campaigns":"campaigns","footer":"Multiple ranges in one block are combined as OR. Different blocks are combined as AND. Counts include loaded data: campaigns are always loaded; ad sets and ads appear as you expand them."},"audienceStrategy":{"excludedCount":"{count, plural, one {# audience excluded} other {# audiences excluded}}","exactDescription":"Only people in the selected audiences. Advantage+ cannot expand beyond them.","prospectingTitle":"New audience acquisition","remove":"Remove {name}","select":"Select {name}","selectedCount":"{count, plural, one {# audience included} other {# audiences included}}","unionHint":"Meta will show the ad to anyone in any of them.","unknownAudience":"Audience {id}"},"inlineName":{"input":"Name for {name}","edit":"Edit name for {name}","save":"Save name","cancel":"Cancel name edit"},"inlineBudget":{"displayDaily":"{amount}/day","edit":"Edit budget for {name}","save":"Save budget for {name}","cancel":"Cancel budget edit for {name}","suffix":"€/day","campaignTitle":"Edit daily budget","adSetTitle":"Edit ad set daily budget"},"actions":{"addAdSet":"Add area (ad set)","duplicateOtherCampaign":"Duplicate to another campaign","delete":"Delete"},"inspector":{"aria":"Details for ad {name}","close":"Close ad details"},"delivery":{"review":"In review","disapproved":"Rejected","withIssues":"With issues","preapproved":"Preapproved","campaignPaused":"Campaign paused","adSetPaused":"Ad set paused","billingPending":"Billing information pending","rawStatus":"Meta effective status: {status}"},"recommendations":{"tooltip":"Meta performance recommendations","count":"{count, plural, one {# recommendation} other {# recommendations}}"},"copy":{"failed":"The Meta ad could not be duplicated.","failedCount":"{count} Meta ads could not be duplicated."}},"crmBots":{"syncPermissionStatus":{"granted":"The saved authorization includes the required AI permissions. Synchronization and pending actions still need confirmation.","missing":"Stored permissions are missing for this bot. Renew authorization, then review the pending synchronization.","unknown":"The current permissions for this bot could not be verified. The last synchronization result is retained; check the connection again."},"campaignFilter":{"label":"Campaign","all":"All campaigns","none":"No campaign assigned","unavailable":"Campaign unavailable","search":"Search campaigns…","empty":"No campaigns found.","loadError":"Campaign names and images could not be loaded. You can filter by the associations saved in your bots.","retry":"Retry","selected":"Selected"},"preparations":{"contentflowCrm":{"title":"Contact details and calendar · {count} settings","description":"These settings prepare contact updates and bookings in GoHighLevel. You do not need to complete them to test only the responses of a published version.","footer":"Check each action before using it with customers. Testing the chat’s text does not confirm that contact details are saved or appointments are booked."},"contentflowContent":{"title":"Bot content · {count} settings","description":"Complete the content the bot needs to answer questions and deliver the right material.","footer":"Save the content and publish the version you want to test. Check that its answers use that information."},"actionTypes":{"updateContactField":"Set up capturing answers in the contact","appointmentBooking":"Review the appointment booking action","humanHandOver":"Set up handover to a person","triggerWorkflow":"Review the bot workflow action","stopBot":"Review the stop bot action","advancedFollowup":"Review automatic follow-up","transferBot":"Review transfer to another bot"},"sharedField":"{count} questions share this field. The field is linked; its GoHighLevel action still needs confirmation.","loadingSaved":"Loading the bot you just saved…","refreshSaved":"The bot is saved. Refresh the list to open its latest version.","refresh":"Refresh list","title":"{count, plural, one {# preparation remaining} other {# preparations remaining}}","description":"See what is missing and where to complete it. You can keep saving your design.","testStillNeeded":"You will still need to test the responses before activating the bot. This list alone does not confirm readiness to serve customers.","openGhl":"Open in GoHighLevel","connection":"View connection","show":"View preparations ({count})","field":{"title":"Link the answer to a field","description":"Choose or create a GoHighLevel contact field so this answer can be saved.","action":"Link field"},"calendar":{"title":"Choose the calendar","description":"Select the calendar the bot will use to offer a call booking.","action":"Choose calendar"},"resource":{"title":"Define the delivery resource","description":"Provide the material and link to be delivered during the conversation.","action":"Choose resource"},"email":{"title":"Prepare Email in GoHighLevel","description":"Connect a two-way mailbox and review the agent’s Email channel in GHL. If you do not need Email, remove that channel from the design.","action":"Review channels"},"knowledgeLink":{"title":"Choose the knowledge base","description":"Link the existing GoHighLevel knowledge base the bot should use.","action":"Choose knowledge base"},"knowledgeFaq":{"title":"Complete the knowledge base","description":"Add at least one reviewed question and answer to create the knowledge base.","action":"Review FAQ"},"transfer":{"title":"Configure call transfer","description":"Open the voice agent in GoHighLevel and choose where calls should be transferred when someone requests a person."},"voiceNumber":{"title":"Assign the calling number","description":"Test the voice agent in GoHighLevel first. Then assign the number that will receive calls there."},"voiceWorkflow":{"title":"Choose the calling automation","description":"Select the workflow that will start outbound calls.","action":"Choose automation"},"action":{"title":"Review a bot action","description":"Open the configuration and review the information this action needs.","action":"Review configuration"},"actionSync":{"title":"Review an action’s synchronization","description":"This action is not yet confirmed in GoHighLevel. Linking a field or granting permissions does not confirm the action. Review the saved bot configuration; you do not need to create another bot.","action":"Review synchronization"},"voiceActions":{"title":"Review the voice agent’s actions","description":"Open the voice agent in GoHighLevel and check its actions and knowledge base association."},"voiceTest":{"title":"Test the voice agent","description":"Run a Web Call test in GoHighLevel, followed by a controlled test call before allowing real calls."},"sync":{"title":"GoHighLevel synchronization pending","description":"The design is saved, but synchronization has not been confirmed. Check the connection and saved bot status before retrying.","action":"Review synchronization"},"actionDiagnostics":{"authorizationRequired":"GoHighLevel rejected the authorization for this action. Check the connection and renew access before syncing the same bot.","accessDenied":"GoHighLevel does not allow this action with the current access. Check its permissions and availability for this account; reconnecting alone may not resolve it.","configurationRejected":"GoHighLevel rejected this action’s configuration. Review it in the linked bot before syncing again. This rejection does not confirm missing permissions.","rateLimited":"GoHighLevel has temporarily limited requests. Wait a few minutes and sync the same bot again; you do not need to create another one.","providerUnavailable":"GoHighLevel could not complete the request because of a service failure. Check again later and sync the same bot.","identityConflict":"A single compatible action could not be identified in GoHighLevel. Review the linked bot’s actions before syncing; another action will not be created automatically to replace it.","writeUnconfirmed":"The request ended without confirming the action ID. Check whether it appears in the linked bot before retrying; it may have been created.","readbackMismatch":"The action saved in GoHighLevel differs from the submitted configuration or was not found during the follow-up check. Review the linked bot before syncing again.","readbackUnavailable":"The save request ended, but the action could not be retrieved again from GoHighLevel. Its configuration is still unconfirmed; check the same bot again.","requestFailed":"The request for this action could not be confirmed. Review the linked bot before retrying; no permission issue has been identified."},"knowledgeConflict":{"title":"Review shared FAQs","description":"The FAQs in this knowledge base have changed in GoHighLevel. Your design is saved. Review the current knowledge base content and your questions before syncing.","action":"Review my questions"},"knowledgeDocument":{"resumeAction":"Go to synchronization","queued":"This file is waiting for synchronization to continue or its status to be checked. Sync the saved bot again; files already confirmed by GoHighLevel will be checked using the same ID.","title":"Review a knowledge base document","action":"Review document","sync_pending":"The file is saved in ContentFlow. Save and sync the bot to add it to its GoHighLevel knowledge base.","source_pending":"The ContentFlow upload has not been verified yet. Return to Context and check the file before syncing.","processing":"GoHighLevel accepted the file and is processing its content. Check synchronization again; the existing file will not be uploaded again.","upload_unconfirmed":"The GoHighLevel upload outcome could not be confirmed. It will not be repeated automatically to prevent duplicates. Review the knowledge base sources with support.","unavailable":"The document could not be verified in GoHighLevel. Check the connection and synchronization of the same bot again.","removal_pending":"Removal of this document has not been confirmed yet. It may still be available to bots using this knowledge base.","removed":"The document was removed in GoHighLevel. Review its reference in Context before syncing the bot."},"conversationSummary":{"title":"Configure summary and history","description":"The design includes summaries. Saving does not confirm their GoHighLevel configuration or the workflow that appends each summary as a note.","action":"Review summary"},"followUpSetup":{"title":"Review follow-up scenario","description":"This scenario (for example busy or requested) or its hours has no confirmed automatic sync. Saving does not activate it; review the GoHighLevel settings.","action":"Review follow-up"},"contentflowKnowledge":{"title":"Review knowledge for ContentFlow","description":"The linked GoHighLevel knowledge base is not imported automatically. Add or review the FAQs saved here; you can keep the linked base for the GoHighLevel engine.","action":"Review FAQs"}},"creationComingSoon":"Coming soon","creationComingSoonDescription":"Bot creation is in beta for every account.","testBot":{"providerChat":{"open":"Open test session","invitation":"The embedded chat needs an operator QA admission. The usual path is “Open agent to test” and use Test your agent in GoHighLevel.","opening":"Checking the session and retrieving the conversation…","unavailable":"The embedded chat is unavailable without an operator QA admission. Use “Open agent to test” and Test your agent in GoHighLevel.","engine":"Replies from GoHighLevel","mode":"Test mode","quota":"{used} of {total} test messages","check":"Check status","end":"End test","transcript":"Test conversation","emptyTitle":"Try your bot’s responses","emptyDescription":"Ask about your business, answer qualification questions or request help. Replies appear here once they are verified as belonging to this agent.","you":"You","label":"Your test message","placeholder":"Write as if you were a customer…","send":"Send message","sending":"Sending…","closed":"The test has ended. This session will not send any more messages.","stopped":"The session has expired or its setup has changed. The test has stopped; reopen the panel to check its status.","paused":"We could not update the conversation. Check its status before continuing.","pendingSend":"This message is still awaiting confirmation. Check its status; do not send it again.","limit":"You have reached this test session’s limit.","verifying":"A reply has arrived. We are checking that it belongs to this agent…","awaiting":"Your message is stored in GoHighLevel. Waiting for a verified bot reply…","ready":"You can write a message to test the conversation.","rejected":"{count, plural, one {One reply could not be verified and is not shown.} other {# replies could not be verified and are not shown.}}","evidence":"Each displayed reply has been linked to the GoHighLevel agent. This alone does not confirm the revision used, contact field updates or appointment bookings.","closeUnconfirmed":"The test session’s closure was not confirmed. Check its status before starting another.","status":{"dispatching":"Sending…","pending_verification":"Awaiting confirmation","confirmed":"Stored in GoHighLevel","cancelled":"Send cancelled","verified":"Agent reply verified"}},"open":"Test bot","openAria":"Test {name}","close":"Close","title":"Test {name}","description":"Check how the agent responds before letting it handle customers.","revision":"Saved version: {revision}","savedBot":"Saved bot","botIdLabel":"Bot ID","copyBotId":"Copy ID","botIdCopied":"ID copied","nativeTitle":"Test in GoHighLevel","nativeChecking":"Checking that the agent instructions match the saved version…","nativeMismatch":"The instructions or linked knowledge bases have changed in GoHighLevel. Review and sync the bot before testing this version.","nativeUnverified":"The GoHighLevel instructions have not yet been confirmed to match this version. Check the connection or review the sync.","nativeReady":"Open the agent and select “Test your agent”. The native trial lets you chat with the agent while it is off.","syncRequired":"Changes or synchronization tasks are pending. Review and sync the bot to test the current version.","saveRequired":"Save the bot and create it in GoHighLevel with its mode off before opening its trial.","nativeAction":"Open agent to test","editAction":"Review setup","liveUnavailable":"Being prepared","liveTitle":"Test chat in ContentFlow","livePending":"Not available yet. We are preparing a dedicated Live Chat linked to this bot so you can chat here without using your customer chat.","reviewProgress":"{count} of {total} items checked","resetReview":"Reset","manualReviewNote":"Your personal review checklist. Checking items does not activate the bot or certify its responses.","checklistTitle":"What to check","checkKnowledge":"Ask about the company and campaign: answers should use their knowledge base.","checkQualification":"Answer qualification questions and check their order, follow-up questions and whether it repeats answered questions.","checkUnknown":"Ask something outside the knowledge base: it should acknowledge that it does not know.","checkExit":"Ask to speak to a person or stop chatting and check that it respects your request.","actionsNote":"A trial conversation does not certify bookings or workflows. Those actions need a separate check with test data.","checkConnection":"Check connection and readiness","checking":"Checking…","revisionChanged":"The bot has changed since you opened this screen. Reload the bot list before testing the new version.","checkFailed":"The check could not be completed. Please try again.","checks":{"connectionMissing":"This account has no active GoHighLevel connection.","connectionRefreshNeeded":"The saved temporary access has expired. The connection needs to refresh it before checking the agent; this does not mean permissions are missing.","agentNotLinked":"Save and create the agent in GoHighLevel with its status set to off before testing.","syncRequired":"Sync the pending changes to test the current version.","locationMismatch":"The linked agent does not match this account’s connection. Review the integration.","agentPermissionsMissing":"The saved authorization does not include permission to read Conversation AI agents.","chatPermissionsMissing":"The saved authorization does not include permission to read chat widgets.","agentUnavailable":"GoHighLevel did not allow this agent to be read. We cannot confirm whether authorization is the cause or the agent is no longer available.","agentIdentityUnverified":"GoHighLevel returns the agent but does not identify its subaccount in the response. That association still needs verification.","promptMatches":"The business, instructions, goal, style and linked knowledge bases match the saved version. Responses and actions still need testing.","promptMismatch":"The instructions or linked knowledge bases in GoHighLevel differ from the saved version.","promptUnverified":"There is not enough information to compare the saved instructions with GoHighLevel.","agentReadable":"The linked agent can be read. This does not yet confirm a test conversation.","routingPending":"The dedicated chat that will route test conversations to this bot still needs to be prepared and verified.","connectionReviewRequired":"This account’s connection needs a review. Your design is saved. Open GoHighLevel settings to see the next step.","connectionUnavailable":"We could not check the connection. Check again later."},"nextStep":{"checking":"Preparing your test","refreshList":"Load the latest bot version","connect":"Connect your GoHighLevel account","renewAccess":"Review your GoHighLevel access","reviewConnection":"Review the linked account","createAgent":"Create the bot in GoHighLevel with its mode off","syncAgent":"Sync the version you want to test","retry":"Check the agent again","ready":"You can now open the test in GoHighLevel"},"configurationAction":"Go to GoHighLevel setup","refreshListAction":"Refresh bot list","retryAction":"Check again","checkDetails":"View check results","reviewAfterOpening":"During the conversation: what to check","reviewWhenReady":"Once the agent is ready, you will find a guide here to review its answers."},"authorizationRenewTitle":"AI bot management needs authorization","permissions":{"chat":{"title":"Chat bots need authorization","description":"Permissions to access chat bots in GoHighLevel are missing. You can continue editing and saving your bots in ContentFlow.","action":"Authorize chat bots"},"voice":{"title":"Voice bots need authorization","description":"Permissions to access voice bots in GoHighLevel are missing. You can continue editing and saving your bots in ContentFlow.","action":"Authorize voice bots"},"both":{"title":"Chat and voice bots need authorization","description":"Your CRM is still connected. Permissions to access chat and voice bots in GoHighLevel are missing. You can continue editing and saving drafts in ContentFlow.","action":"Renew GHL permissions"},"chatAvailable":"Chat: bot list available","voiceAvailable":"Voice: bot list available"},"authorizationRenewDescription":"Your CRM is still connected. The saved authorization does not include all AI agent permissions. You can save drafts; extend permissions to sync the affected bot types.","authorizationRenewAction":"Renew GHL permissions","authorizationRenewFailed":"We could not start the GoHighLevel authorization renewal.","accountRequired":"Select an account","title":"AI Bots","subtitle":"AI agents connected to ContentFlow and GoHighLevel","ghlDisconnected":"GHL not connected","refreshAria":"Refresh the bot list","createBot":"New bot (beta)","closeNoticeAria":"Close notification","deleteConfirm":"Remove this bot from the ContentFlow catalog? The actual GoHighLevel agent will not be deleted.","duplicateConfirm":"This creates a switched-off draft copied from {name}. It uses the same knowledge base and is not published on any channel.","list":{"title":"Your bots","description":"Search, filter, or open a bot to review its full configuration.","resultCount":"Showing {shown} of {total}"},"filters":{"ariaLabel":"Bot search and filters","searchLabel":"Search bots","searchPlaceholder":"Search by name, campaign, channel...","templateLabel":"Template or type","modalityLabel":"Modality","channelLabel":"Channel","statusLabel":"Status","allTemplates":"All templates","allModalities":"Chat and voice","allChannels":"All channels","allStatuses":"All statuses","clear":"Clear filters ({count})","clearAll":"Clear all filters","noResultsTitle":"No bots match these filters","noResultsDescription":"Try another search or clear the filters to see all bots again."},"templates":{"instagram_setter":{"label":"Instagram setter"},"qualification_to_call":{"label":"Qualify for a call"},"direct_sales":{"label":"Conversational sales"},"support_handoff":{"label":"Support and handoff"},"reactivation":{"label":"Database reactivation"},"customer_satisfaction":{"label":"Customer satisfaction survey"},"instagram_new_follower":{"label":"Instagram · New follower"}},"outcomes":{"set":"Lead capture and progression","qualify":"Qualification","sell":"Sales","book_call":"Call booking","support":"Support","reactivate":"Reactivation","feedback":"Satisfaction and improvements"},"modalities":{"chat":"Chat","voice":"Voice","voiceInbound":"Inbound voice","voiceOutbound":"Outbound voice"},"engines":{"ghl":"Engine: GoHighLevel","contentflow":"Engine: ContentFlow"},"channels":{"instagram":"Instagram","facebook":"Facebook Messenger","whatsapp":"WhatsApp","sms":"SMS","email":"Email","webchat":"Chat widget","live_chat":"Live chat","tiktok":"TikTok"},"statusGroups":{"active":"Active","attention":"Needs attention","draft":"Draft"},"statuses":{"deployed":"Deployed to GHL","draft":"Draft","contentflowDraft":"ContentFlow draft","syncing":"Preparing sync","readyToTest":"Agent created · testing required","voiceReadyToTest":"Voice agent created · testing required","pendingSetup":"Setup still required","actionSyncFailed":"Actions need review","knowledgeSyncFailed":"Review the knowledge base","syncFailed":"Sync failed","localChanges":"Changes waiting to be sent to GHL","emailSetup":"Email setup needs review in GHL","unknown":"Needs review"},"empty":{"title":"No bots configured","description":"Create an outcome-focused bot to deliver, qualify, sell, book, or escalate using the approved account and campaign context.","stepAsk":"Ask the lead","stepFields":"Fill GHL fields","stepSync":"Sync with the CRM","createAction":"Create bot (beta)"},"card":{"showDetails":"View details","hideDetails":"Hide details","edit":"Edit bot","editAria":"Edit {name}","duplicate":"Duplicate","duplicateAria":"Duplicate {name}","removeAria":"Remove {name}","campaign":"Campaign","selectedChannels":"Selected channels","channelsAria":"Selected channels: {channels}","noChatChannels":"No chat channels: this bot uses voice","qualificationQuestions":"{count, plural, one {# qualification field} other {# qualification fields}}","moreItems":"+{count} more","actionsReady":"Actions ready","actionsPending":"Waiting for setup","knowledgeAnswers":"{count, plural, one {# answer in the knowledge base} other {# answers in the knowledge base}}","created":"Created on {date}","openGhl":"Open and test in GHL","openGhlAria":"Open {name} in GoHighLevel","pendingGhlSync":"Synchronization requested, still pending. Open “Edit bot” to review requirements and continue with this saved draft."},"mode":{"label":"GoHighLevel mode","values":{"off":"Off","suggestive":"Suggestive","auto-pilot":"Auto-Pilot"},"help":{"off":"The bot does not reply on its own. Ideal while testing.","suggestive":"Suggests replies for you to approve before sending.","auto-pilot":"Replies on its own on channels assigned in Deploy."},"needsLink":"Sync the bot with GoHighLevel before changing the mode.","unconfirmed":"Not confirmed","unconfirmedHelp":"We could not read the mode from GoHighLevel. Open it there to check.","observed":"Read from GoHighLevel.","changedInProvider":"It was changed directly in GoHighLevel, outside ContentFlow.","dialogTitle":"Before activating {mode}","dialogLead":"You are about to set “{mode}” on {name}. Confirm it is ready.","confirmTested":"I confirmed the bot replies well in tests","confirmTestedHelp":"Use Test your agent / Open and test in GoHighLevel.","confirmDeploy":"I already connected accounts in GoHighLevel Deploy","confirmDeployHelp":"Without Instagram or another assigned channel, Auto-Pilot cannot reply.","cancel":"Cancel","activate":"Activate in GHL","saving":"Activating…"},"wizard":{"stepLabel":"Step {step} of {total}","fallbacks":{"myBusiness":"My business","yourBusiness":"your business","yourAssistant":"your assistant"},"header":{"editTitle":"Edit your bot with AI","createTitle":"Design your bot with AI","revision":"Version {version} · saving creates a new revision.","description":"We suggest the strategy and you decide what to keep.","botIdLabel":"Bot ID","copyBotId":"Copy ID","botIdCopied":"ID copied"},"draft":{"restored":"Draft restored · saved automatically","saved":"Saved automatically · you can continue later","saving":"Saving…","deleteTitle":"Delete all saved progress","delete":"Delete draft","closeAria":"Close the builder and keep progress","closeTitle":"Close and continue later","exit":"Exit and continue later","discardConfirm":"Discard this wizard's changes and start again?"},"progress":{"aria":"Progress","steps":{"1":"Goal","2":"Context","3":"Qualification","4":"Review"}},"navigation":{"back":"Back","continue":"Continue"},"experiences":{"chat":{"label":"Chat conversations","description":"Instagram, WhatsApp, email, SMS, Facebook, or web."},"voice_inbound":{"label":"Receive calls","description":"Answer and qualify calls with GHL Voice AI."},"voice_outbound":{"label":"Make calls","description":"Call from a GHL workflow with consent."}},"channels":{"title":"Where can it have conversations?","emailHelp":"Email requires reviewing the mailbox and channel assignment in GoHighLevel.","options":{"instagram":"Instagram","whatsapp":"WhatsApp","email":"Email","facebook":"Facebook Messenger","sms":"SMS","webchat":"Chat widget","live_chat":"Live chat","tiktok":"TikTok"},"selectionHelp":"This selection is saved in the design. For the bot to handle a channel, you also need to assign its number, account or widget in GoHighLevel’s Deploy tab.","contentFlowSelectionHelp":"This selection defines the intended channels for the ContentFlow engine and is saved in the design. Saving it does not activate their connections.","tiktokHelp":"TikTok is saved as an intended channel. Receiving and sending TikTok messages in the ContentFlow Inbox still needs to be integrated."},"templates":{"instagram_setter":{"label":"Instagram setter","outcome":"Set and move forward","defaultName":"Instagram setter","summary":"Deliver · Converse · Qualify","stages":{"1":"Delivery","2":"Qualification","3":"Discovery","4":"Sale","5":"Booking"}},"qualification_to_call":{"label":"Qualify for a call","outcome":"Move to a call","defaultName":"Call qualifier","summary":"Discover · Qualify · Book","stages":{"1":"Qualification","2":"Discovery","3":"Booking"}},"direct_sales":{"label":"Conversational sales","outcome":"Move to a sale","defaultName":"Sales advisor","summary":"Discover · Resolve · Sell","stages":{"1":"Discovery","2":"Qualification","3":"Sale","4":"Close"}},"support_handoff":{"label":"Support and handoff","outcome":"Resolve or escalate","defaultName":"Support assistant","summary":"Understand · Resolve · Escalate","stages":{"1":"Diagnosis","2":"Resolution","3":"Handoff"}},"reactivation":{"label":"Database reactivation","outcome":"Warm and reactivate leads","defaultName":"Database reactivation agent","summary":"Reconnect · Validate · Advance","stages":{"1":"Interest","2":"Qualification","3":"Booking"}},"customer_satisfaction":{"label":"Customer satisfaction survey","defaultName":"Customer satisfaction survey","outcome":"Feedback and success stories","summary":"Survey · Improvements · Success story","stages":{"1":"Survey","2":"Improvements","3":"Success story"}},"instagram_new_follower":{"label":"Instagram · New follower","outcome":"Continue the welcome and discover interest","defaultName":"New follower assistant","summary":"Listen · Understand · Offer help","stages":{"1":"First reply","2":"Needs","3":"Permission","4":"Help","5":"Next step"}}},"step1":{"editTitle":"How does it talk to your contacts?","createTitle":"How will it talk to your contacts?","editDescription":"You can change its goal and behavior. Create another bot to switch between chat and voice.","createDescription":"First choose the experience, then its goal.","goalTitle":"What do you want it to achieve?","goalDescription":"We will choose the most suitable questions, stages, and close.","stagesTitle":"How it will progress"},"step2":{"title":"Customize the bot","description":"The campaign provides context; you can review every suggestion.","createProposal":"Create AI proposal","botName":"Bot name","campaignInformation":"Important campaign information","campaignInformationPlaceholder":"AI will summarize the offer, audience, and conversation goal here.","campaignInformationHelp":"AI summarizes what is offered, who it is for, and what the bot should achieve. You can correct it or add any important condition.","specialInstructions":"Special instructions","specialInstructionsPlaceholder":"AI will suggest boundaries, tone, and priorities from the context."},"aiActions":{"new":"Generate new","sameStyle":"Same style","different":"Completely different"},"resource":{"nameLabel":"Resource it will deliver","anotherSuggestion":"Another suggestion","suggestWithAi":"Suggest with AI","namePlaceholder":"E.g. Strength guide","nameHelp":"AI will look in the campaign for a real guide, prompt, template, or other resource you can deliver.","urlLabel":"Resource link","pickerAria":"Choose delivery material","loadingPages":"Loading landing pages and guides…","searchSaved":"Search saved links","selectLanding":"Select a landing page","searchPlaceholder":"Search by name, campaign or URL…","noLinks":"No links found.","funnelLinks":"Funnel links","campaignLandings":"Landing pages in this campaign","urlPlaceholder":"Paste or edit the resource link","openAria":"Open the resource link in another tab","openTitle":"Open and check the resource","noCampaignLinks":"This campaign has no saved links. You can paste any link.","campaignScope":"Landing pages from this campaign and guides saved in the account.","accountScope":"All landing pages and guides saved in the account.","accountGuides":"Account guides","accountLandings":"Account landing pages","close":"Close search","currentLink":"Selected link","preservedLink":"This link is not in the current catalog. It stays selected until you choose another or edit it.","loadError":"We could not load the catalog. Your link is preserved; you can edit it or try again.","landingsError":"We could not load landing pages. Available guides can still be selected.","guidesError":"We could not load guides. Available landing pages can still be selected.","noMatches":"No matches in this group.","noSavedResources":"There are no saved resources in this group yet.","unpublished":"Not published yet · publish this landing page to select it.","retry":"Reload resources","selectionHelp":"Search by title, campaign or link. Choosing a resource updates the delivery link; changing the campaign keeps your selection.","manualUrl":"Or paste and edit the delivery link"},"voice":{"defaultWelcome":"Hi, I'm {bot}, {business}'s AI assistant. How can I help?","welcomePlaceholder":"Hi, I'm {bot}, {business}'s AI assistant.","outboundTitle":"Outbound calls with GHL Voice AI","inboundTitle":"Inbound calls with GHL Voice AI","outboundDescription":"Activation will happen through a workflow and requires valid consent, hours, and caller number.","inboundDescription":"Before activation, we will confirm the voice, receiving number, hours, and transfer.","firstMessage":"First call message"},"campaign":{"label":"Bot campaign","pickerAria":"Choose bot campaign","selected":"Selected","generalContext":"No campaign associated","chooseAnother":"Select to choose another campaign","searchPlaceholder":"Search campaigns…","noMatches":"No campaigns match that name.","generalContextDescription":"General company information","count":"Campaigns ({count})","available":"Campaign available"},"knowledge":{"category":"Knowledge base","baseHeadline":"Knowledge base","title":"Frequently asked questions (FAQ)","description":"Teach the bot how to answer questions about your business and campaign. These answers are available throughout the conversation.","suggest":"Suggest frequently asked questions","managementTitle":"How do you want to manage the knowledge base?","managementDescription":"Choose an option. You can change it before saving.","managementAria":"Knowledge base management","options":{"managedCampaign":"Create for this campaign","managedAccount":"Create for this business","managedDescription":"Recommended · several bots can share it","linked":"Use an existing one","linkedDescription":"Share knowledge across several bots","none":"No knowledge base yet","noneDescription":"Save the design without linked answers"},"nameLabel":"Name to find it later","nameHelp":"You can change this name to distinguish versions or uses.","linkedLabel":"Knowledge base in this sub-account","loadingBases":"Finding knowledge bases…","chooseBase":"Choose a knowledge base","linkedBase":"Linked knowledge base","connectGhl":"Connect GoHighLevel to view available knowledge bases.","basesUnavailable":"We could not retrieve this sub-account's knowledge bases. Save the design and try again later.","approvedFaqs":"Answers the bot should know","approvedFaqsHelp":"Write a question your customer might ask and the answer you want the bot to use.","readyCount":"{count, plural, one {# ready} other {# ready}}","createFirstWithAi":"Create FAQs with AI","questionPlaceholder":"Common customer question","answerPlaceholder":"Short, verifiable answer","sources":{"campaign":"Campaign","account":"Business","website":"Verified website","edited":"Edited"},"deleteFaqAria":"Delete frequently asked question {index}","addManually":"Add a frequently asked question","noneWarning":"The bot can only use general instructions. You can come back and add knowledge before activation.","documentsTitle":"Documents · next phase","documentsDescription":"You will be able to add documents and long notes to the same knowledge base. First we will validate how they are read and updated to avoid duplicate or outdated answers.","inEvaluation":"Under evaluation"},"faqRewrite":{"questionLabel":"FAQ {index} question","answerLabel":"FAQ {index} answer","trigger":"Change with AI","triggerAria":"Change FAQ {index} with AI","close":"Close","title":"Improve FAQ {index} with AI","description":"Choose a variation and generate a proposal. Review the comparison before replacing this FAQ; the others stay unchanged.","modeLabel":"Type of change","modes":{"new":"Completely new","similar":"Rephrase","shorter":"Shorten answer","longer":"Expand answer","clearer":"Clarify answer"},"emptyHelp":"Complete the question and answer to rephrase them, or generate a completely new FAQ.","current":"Current text","proposal":"AI proposal","emptyQuestion":"Question pending","emptyAnswer":"Answer pending","pending":"Your proposal will appear here after generation.","reviewReady":"Proposal ready for review. It has not been applied yet.","accountSource":"Based on the saved company context.","campaignSource":"Based on the saved campaign context.","discard":"Discard and close","generate":"Generate a new question","generationLabel":"AI generation","generating":"Generating…","apply":"Apply to this FAQ","failed":"We could not generate the proposal. Your text is preserved; you can try again.","noChange":"The proposal contains no changes. Try another variation.","duplicate":"The proposal repeats another question. Generate another variation.","contextMissing":"We could not find the context for this company or campaign. Check your selection before generating.","insufficient":"The saved company and campaign content does not provide enough information for this variation. Add to that context or choose another change. Your FAQ is preserved.","stale":"The context or questions have changed. Generate another proposal using the current information; this one will not be applied."},"aiFeedback":{"generating":"Generating new text…","updated":"Text updated"},"questionPurpose":{"answersTitle":"Here you prepare what the bot answers","questionsTitle":"Here you decide what the bot asks the customer","clientAsks":"The customer asks","botAnswers":"The bot answers","botAsks":"The bot asks","clientAnswers":"The customer answers","example":"Example:","knowledgeExample":"What does the service include?","knowledgeResult":"It answers using approved business and campaign information at any point in the conversation.","qualificationExample":"What is your main goal?","qualificationResult":"The bot collects this information to qualify the customer and move toward a call or sale.","satisfactionExample":"How would you rate your experience?","satisfactionResult":"The bot collects customer feedback to understand their experience and possible improvements.","previousFaqs":"You have prepared {count, plural, one {# FAQ answer} other {# FAQ answers}} in the previous step. Now you define the questions the bot will ask the customer."},"qualification":{"title":"Questions for the customer · Qualification","description":"Choose what the bot should ask the customer to understand their situation and decide the next step.","recommend":"Recommend questions","countLabel":"Number of questions","recommended":"RECOMMENDED","validation":"Complete at least one question. Write it or use 'Recommend questions'; there is no additional approval step.","questionPlaceholder":"Write a question or generate it with AI","actions":{"improve":"Improve wording","similar":"Similar question","different":"Completely different"},"required":"Required","requiredHelp":"'Required' means the bot must get this information before moving forward. A question is saved as soon as it has text; it does not need separate approval.","deleteAria":"Delete question {index}","addAnother":"Add another","approachLabel":"Question approach","approachHelp":"Choose the perspective AI will use when generating. Changing it does not replace your current questions.","approaches":{"pain_vision":"Pain points and future goals","technical":"Technical skills and learning","fit_readiness":"Fit and buying readiness","decision_criteria":"Decision criteria"},"satisfactionTitle":"Survey questions","satisfactionHelp":"With 4 questions you can collect satisfaction (1–10), greatest value, recommendation (0–10), and an open improvement suggestion. Then offer a voluntary success story when appropriate.","staleGeneration":"You changed the design while AI was responding. Your changes are preserved; generate again when ready.","mappingReviewTitle":"Field mapping needs review","mappingReviewHelp":"The question has changed. We kept “{field}”, but will not use it until you confirm it fits the new answer. You can also choose another field below.","previousQuestion":"Previous question: {question}","confirmMapping":"Use the previous field","discardMapping":"Discard this mapping","generationSettings":"Question generation","approachHelpLabel":"What the qualification approach does","approachPurpose":"The approach defines what you want to learn about a person: their goals, technical level, fit with your offer or decision process. AI combines it with your company and campaign context to suggest useful questions.","recommendedCount":"3 questions is usually a good starting point.","replaceSequenceHelp":"Generating will replace this sequence with new questions using the selected approach. If it fails, your current questions will be kept.","emptySequenceHelp":"Choose an approach and a count, then generate questions with AI or write them below.","questionLabel":"Question {index}","pendingHelp":"Waiting to be completed · generate with AI or write manually."},"actions":{"title":"Bot actions","description":"The bot will save data, hand the conversation to the team, and close it when the person does not want to continue.","calendarLabel":"Booking calendar","calendarHelp":"The bot will check availability and book in this calendar.","loadingCalendars":"Loading calendars…","renewForCalendars":"Renew the connection to view calendars","calendarsUnavailable":"Calendars could not be loaded","noCalendars":"No calendars in this account","chooseCalendar":"Choose a calendar","linkedCalendar":"Linked calendar","contentflowDescription":"Configure GoHighLevel to book appointments from the conversation. You can test only the bot’s responses without choosing a calendar.","noAvailableCalendars":"No calendars are available in this sub-account.","workflowLabel":"Automation after the conversation","voiceWorkflowLabel":"Automation that starts calls","voiceWorkflowHelp":"Choose the workflow that will start the bot’s outbound calls.","optional":"Optional","workflowHelp":"It can notify the team, assign the contact, or continue follow-up. If you choose none, the bot still works.","loadingWorkflows":"Loading automations…","renewForWorkflows":"Renew the connection to view automations","workflowsUnavailable":"Automations could not be loaded","noWorkflows":"No automations in this account","noWorkflow":"Do not start an automation","linkedWorkflow":"Linked process","draftSuffix":" · draft","searchCalendars":"Search calendars by name…","searchWorkflows":"Search automations by name…","noMatches":"No results match your search.","noCalendarSelected":"No calendar selected","closePicker":"Close"},"review":{"editTitle":"Review changes","createTitle":"Review the result","editDescription":"Save the draft or update the linked agent. After syncing, it will stay off until it is tested again.","createDescription":"It will be created off so you can test its real behavior in GoHighLevel before activating any channel.","outboundCall":"Outbound call","inboundCall":"Inbound call","identityTitle":"Identity and association","identityDescription":"ContentFlow will maintain the association automatically.","botName":"Bot name","ghlIdentifier":"Automatic GoHighLevel identifier","ghlIdentifierHelp":"ContentFlow generates it to keep both bots linked.","associationPreserved":"The GoHighLevel association is preserved","associationOnPublish":"The GoHighLevel association will be completed on publishing","associationOnCreate":"The GoHighLevel association will be saved when the bot is created","engineTitle":"Bot engine","engineDescription":"Choose which engine will respond to the bot’s conversations.","ghlAvailable":"Available now · assign its channels in GoHighLevel","voiceRequired":"GHL Voice AI is required","voiceRequiredHelp":"Voice, telephony, and call actions are tested and run inside GoHighLevel.","comingSoon":"Coming soon","contentFlowEngineHelp":"ContentFlow’s engine is in beta. Configure and publish its chat here.","engineSelected":"Selected","engineBeta":"Beta","saveContentFlowFirst":"Save the bot with the ContentFlow engine. Reopen it to choose the model and publish the chat.","kitTitle":"Summary","kitDescription":"This bot’s configuration and actions.","completedQuestions":"{count, plural, one {# completed qualification question} other {# completed qualification questions}}","mappedQuestions":"{count, plural, one {# linked to a GoHighLevel field} other {# linked to GoHighLevel fields}}","noKnowledgeBase":"No knowledge base","knowledgePurpose":"Knowledge base: what your bot knows about your business","knowledgeBaseAnswers":"{count, plural, one {# prepared answer} other {# prepared answers}}","linkedKnowledgeHelp":"They will be added to the selected GHL knowledge base","managedKnowledgeHelp":"It is separate from qualification questions","noKnowledgeHelp":"You can add it before activation","qualificationFolder":"CF_calif_ fields","qualificationFolderHelp":"New fields use this prefix so you can recognize them in GoHighLevel","instagramEntry":"Instagram entry","instagramEntryHelp":"Comment or message · off when installed","instagramNewFollowerEntryHelp":"Continues when the person replies to your manual or ManyChat welcome.","whatsappEntry":"WhatsApp entry","whatsappEntryHelp":"Ready to test before activation","emailInbox":"Email inbox","emailInboxHelp":"Connection must be verified","telephonyOff":"Telephony off","telephonyOffHelp":"Number and workflow are connected after the test is approved","realTest":"Real test in GoHighLevel","realTestVoiceHelp":"Web Call first; Phone Call for complete telephony","realTestChatHelp":"Prompt Optimizer or Test your agent, with QA resources","chooseKnowledgeWarning":"Choose the bot's knowledge base, or save only the blueprint for now.","addKnowledgeWarning":"Add at least one approved question and answer, or save only the blueprint for now.","pendingMappings":"{count, plural, one {# field mapping needs review} other {# field mappings need review}}","contentFlowDescription":"Save the design in ContentFlow, then publish the saved revision to test its chat. Saving does not activate conversations or channels.","contentFlowIdentityTitle":"ContentFlow bot","contentFlowIdentityDescription":"The design and its revisions are stored in ContentFlow. This engine does not need a native GoHighLevel agent.","contentFlowCrmHelp":"GoHighLevel remains the connection for contact data and the calendar. Selecting them does not confirm that the actions work yet.","contentFlowKnowledgeHelp":"ContentFlow will use the approved answers included in the revision you publish.","contentFlowLinkedKnowledgeHelp":"ContentFlow uses the FAQs saved here. The linked GoHighLevel knowledge base is not imported automatically.","contentFlowChannelsTitle":"Channels selected for the design","contentFlowTestTitle":"Test the ContentFlow chat","contentFlowTestHelp":"Save the design, reopen it, and publish that revision. Check the answers and actions before using it with customers."},"snapshotModules":{"foundation":"Safe foundation","chat_inbound":"Conversations","instagram_setter":"Instagram","whatsapp_inbound":"WhatsApp","email_inbound":"Email","webchat_inbound":"Web chat and tests","database_reactivation":"Contact reactivation","voice_inbound":"Inbound calls","voice_outbound":"Outbound calls"},"deployment":{"saveDestination":"Where do you want to save the bot?","localOnly":"Save only in ContentFlow","remoteCreate":"Also create in GoHighLevel, switched off","remoteUpdate":"Also update in GoHighLevel, switched off","localHelp":"Save the design and questions. The GoHighLevel agent is not created or changed.","remoteHelp":"Save the design and sync it to GoHighLevel. The bot remains off and will not answer customers.","selected":"Selected","localResult":"On save: a ContentFlow draft. You can continue later.","remoteResult":"On save: ContentFlow design and a GoHighLevel agent switched off.","remotePending":"We will save the draft and check GoHighLevel. If synchronization cannot finish, you will see the reason and the request will remain pending.","prepareForGhl":"Prepare for creation in GoHighLevel","voiceEditReview":"Remote voice editing requires review in GHL","updateGhlAgent":"Also update the GoHighLevel agent","createGhlAgentToo":"Also create the agent in GoHighLevel","createVoiceOff":"Create the voice agent off in GoHighLevel","createBotOff":"Create the bot off in GoHighLevel","emailManualReview":"This builder cannot sync the Email channel yet. Remove it in Context to create the bot with the other channels, or keep the draft with synchronization pending.","renewConnection":"Your intent will be saved. Renew the GHL connection to create the agent off and test it.","voiceSyncHelp":"Save the blueprint; voice changes will not be sent until verifiable syncing is available.","updateOffHelp":"The instructions will be updated and the agent will stay off so you can test the new revision. Review channel assignments separately in GoHighLevel.","createLinkedOffHelp":"The linked agent will be created off so it can be tested before activation.","createOffHelp":"We will then test it in the real GHL runtime. Uncheck this to save only the blueprint."},"save":{"updateInGhl":"Save and update in GHL","createInGhl":"Save and create in GHL","changes":"Save changes","createVoiceOff":"Create voice agent off","createBotOff":"Create bot off in GHL","preparedForGhl":"Save prepared for GHL","blueprint":"Save blueprint","checkGhl":"Save and check GoHighLevel"},"resources":{"connectGhl":"Connect GoHighLevel to choose the calendar and processes for this sub-account.","renewPermissions":"Renew GoHighLevel permissions to retrieve all resources.","partiallyUnavailable":"GoHighLevel could not show all resources. Save the design and try again later.","unavailable":"Calendars and automations cannot be shown right now. You can choose them before saving.","checking":"Checking: {resource}…","configure":"Open GHL settings (new tab)","retry":"Check again","notConnected":"Connect GoHighLevel to view: {resource}. Your design is kept.","noWorkflowValid":"No automation: valid. The bot will not start an automation when it finishes.","calendars":{"label":"Calendars","missing_scope":"Permission to view calendars is missing. Renew authorization; your selection is kept.","unavailable":"Calendars could not be loaded. Your selection is kept, but its availability still needs to be checked."},"workflows":{"label":"Automations","missing_scope":"Permission to view automations is missing. Renew authorization to choose one. “No automation” remains valid.","unavailable":"Automations could not be loaded. Your selection is kept. You can continue without an automation."},"knowledge":{"label":"Knowledge base","missing_scope":"Permission to view knowledge bases is missing. You can keep editing FAQs; renew authorization before syncing them with GoHighLevel.","unavailable":"Knowledge bases could not be loaded. Your FAQs and selected base are kept; check again before syncing."},"connectionReview":"This account’s connection needs a review. Your design is saved. Open GoHighLevel settings to see the next step."},"errors":{"incompleteQuestions":"The AI did not return a complete set of distinct questions. Your text has not been replaced. Select “Recommend questions” to try again.","campaignPages":"We could not load this campaign's pages.","ghlResources":"We cannot show GoHighLevel resources right now.","aiUnavailableDesign":"AI assistance is unavailable right now. Your design is unchanged; try again in a few minutes.","generateProposal":"We could not generate the proposal.","aiUnavailableQuestion":"AI assistance is unavailable right now. Your question is unchanged.","changeQuestion":"We could not change this question.","qualificationRequiredDetailed":"Write or generate at least one qualification question. The 'Required' switch does not approve it; it only means the bot must obtain that information before moving forward.","saveRetry":"We could not save the bot. Try again.","saveBot":"We could not save the bot.","qualificationRequired":"Complete at least one qualification question before saving. No approval is needed; just write it or generate it with AI."},"notices":{"changesSaved":"Changes saved","botSaved":"Bot saved","savedWithPreparations":"{subject}. Open the preparations on its card to see what is missing and how to complete it.","updatedInContentFlowAndGhl":"Bot updated in ContentFlow and GoHighLevel. It remains off until it is tested again.","savedInContentFlow":"Changes saved in ContentFlow.","savedReadyToReview":"Bot saved. You can now review and test it."},"fieldPicker":{"saveAnswerIn":"Save answer in","chooseOrCreate":"Choose or create field","dialogTitle":"Where should we save this answer?","dialogDescription":"Search by name or folder. If it does not exist, create it now.","connectionRequired":"GoHighLevel is not connected. You can keep editing the question; connect the integration to retrieve or create fields.","fieldsUnavailable":"Fields cannot be loaded without a GoHighLevel connection.","searchPlaceholder":"Search: goal, budget, urgency…","foldersLabel":"Folders","folders":{"all":"All","contentflow":"ContentFlow · Qualification","other":"Other folder","general":"General"},"createNew":"Create a new field","suggestedByAi":"Suggested by AI","fieldNamePlaceholder":"Field name","types":{"shortText":"Short text","longText":"Long text","number":"Number","amount":"Amount","date":"Date"},"createAndUse":"Create and use","folderHelp":"New fields use the CF_calif_ prefix. The ContentFlow group in this picker helps you find them; it does not create a GoHighLevel folder.","noField":"That field was not found. You can create it above.","errors":{"create":"We could not retrieve or create the field. Your question is preserved. Try again.","invalid":"Enter a valid name. The full name including CF_calif_ can contain up to 160 characters.","notConnected":"Connect GoHighLevel to create and verify the field.","scope":"Permission to read or create fields is missing. Review your GoHighLevel authorization.","conflict":"A field with this name has a different type, or there are multiple matches. Select it from the list or use another name.","unconfirmed":"GoHighLevel may have created the field, but we could not verify it yet. Retrying first checks whether it already exists."},"linkedField":"Linked field","close":"Close","namePreview":"Name in GoHighLevel: {name}","typeLabel":"Field type","creatingAndVerifying":"Creating and verifying…","capturePolicy":"GoHighLevel chat bots only fill empty fields. If the contact already has an answer in that field, it is kept. To save a separate answer for each campaign, choose a different field."},"conversationEntry":{"title":"How did this conversation start?","description":"This person just followed you. You or ManyChat send the welcome; this bot continues when they reply.","sender":"Who sends the first message?","manual":"Me, manually","manualHelp":"You send the welcome from Instagram or your inbox.","manychat":"ManyChat","manychatHelp":"You use a ManyChat automation that you configure separately.","messageLabel":"Complete opening message, including the question","placeholder":"Hi, I noticed you started following me. What would you like to improve in your business right now?","contextHelp":"Save the text you will actually use. This is context only: it does not send a message, connect ManyChat or confirm delivery.","next":"Then AI will prepare how to continue from that reply, using your business context.","required":"Write the opening message and its question before generating or saving this bot.","reviewTitle":"Conversation opening","reviewSender":"Who sends the first message: {sender}","edit":"Edit opening","handoff":{"title":"When launching: hand the conversation to the bot","pause":"The welcome message may leave the bot paused for that contact.","manual":"After sending it, open that person’s conversation in GoHighLevel and check that this bot is active to handle their reply.","manychat":"Set up the handover from ManyChat: it must stop replying and this bot must be active for that contact in GoHighLevel. Check it with a test contact.","laterHuman":"Keep the bot pause when someone on your team takes over later. This step prepares the handover; saving the design does not activate conversations."}},"createRecovery":{"newDraft":"Close and start a new draft","title":"Confirm your bot was saved","pending":"We have kept the content you submitted. Check the save to continue with that same bot; you can edit it afterwards. You can leave and return later.","loading":"Preparing your draft…","busy":"A new bot is already open in another tab. Continue there, or close it to continue here.","unavailable":"We cannot prepare the save in this browser. Close this builder and reopen it. If the problem continues, contact support.","recover":"Check and recover bot","saving":"Checking save…","recovered":"Bot recovered. Its current state is preserved; open Edit bot to continue."},"documents":{"title":"Documents for your bot","description":"Add manuals, catalogs or business information to the same knowledge base.","add":"Add document","select":"Select document","formats":"PDF, DOC or DOCX · up to 10 MB per file · {count} of {max} documents","available":"File verified in ContentFlow · pending bot synchronization","pending":"Upload awaiting verification","check":"Check upload","retry":"Select again","remove":"Remove {name} from the design","cancel":"Cancel upload","verified":"Document verified. Save the bot to continue synchronization.","retained":"References stay in your draft. Removing a document here changes the design; it does not delete the file or its history.","chooseBase":"Choose a knowledge base to add documents.","keepBase":"Remove the documents from the design before choosing “No knowledge base yet”.","busySave":"Wait for the upload to finish or cancel it before saving the bot.","busyKnowledge":"Wait for the upload to finish or cancel it before changing the knowledge base.","summary":"{count, plural, one {# document added} other {# documents added}}","summaryPending":"{count, plural, one {# upload awaiting verification} other {# uploads awaiting verification}}","phases":{"checking":"Checking file…","preparing":"Preparing upload…","uploading":"Uploading document…","verifying":"Verifying document…"},"errors":{"invalid":"Choose a valid PDF, DOC or DOCX file up to 10 MB.","differentFile":"The selected file does not match the original. Select the same file to recover the upload, or add it as a new document.","duplicate":"This document is already included in the design.","pending":"The upload is not complete yet. Select the same file again to continue.","expired":"This upload attempt has expired. Remove the pending document and add it again.","interrupted":"Upload interrupted. If the document appears in the list, check its status or select the same file to continue.","draft":"The reference could not be saved in this browser. Free some space or enable local storage before retrying.","limit":"You can add up to 10 documents per bot.","access":"Access to this account could not be verified. Sign in again and check the selected account.","unconfirmed":"The upload could not be confirmed. Your design is preserved. Check its status or select the same file again."},"text":{"button":"Paste text","title":"Text for the knowledge base","description":"Add information about your business for the bot to consult when answering.","name":"Document title","namePlaceholder":"For example: Services and terms","body":"Information for the bot","bodyPlaceholder":"Paste the text you want to add: services, terms, instructions or useful information for your customers.","count":"{count, number} of {max, number} characters","documentNotice":"The text will be saved as a document. If you use the GoHighLevel engine, it will appear under Files in the knowledge base after syncing.","saving":"Saving and checking the document…","add":"Add to design","retry":"Retry this document","close":"Close","invalid":"Check the title and text. The document could not be prepared; your text is still here.","pending":"The upload has not been confirmed yet. Your text is preserved: retry this same document or close and check its status in the list.","notAdded":"The document was not added. Check whether it is already in the list; you can review the text and try again.","cancelUpload":"Cancel upload"}},"communication":{"title":"How your bot communicates","description":"Choose its tone and level of detail. Start from an account Persona and adjust the style for this bot.","choosePersona":"Choose a reference Persona","defaultSource":"Default style","searchPersona":"Search Personas…","loading":"Loading Personas…","loadError":"Personas could not be loaded. Your settings are preserved.","empty":"No Personas available.","retry":"Try again","customizedSource":"Based on {name} · customized","inheritedSource":"Inherited from {name}","emptySource":"{name} has no style defined yet. We start with default settings that you can change here.","customizedBot":"Style customized for this bot","restoreDefaults":"Reset to default settings","restore":"Restore source style","legacy":"Saved style: {traits}. It stays unchanged until you customize it.","customize":"Customize style","tone":"Tone","length":"Response length","energy":"Energy","instructions":"Style instructions","instructionsPlaceholder":"For example: use plain language and avoid jargon or emojis.","voice":"Voice","voiceUnset":"No fixed voice","voiceName":"Name","voiceNamePlaceholder":"For example: Belén","voiceNameRequired":"Enter the name. Without it, this voice is not applied and the bot speaks as the team.","voiceGender":"How to speak about that person","voiceModes":{"team":"Team: they will help you","person":"Named person, third person","self":"I am that person"},"voiceGenders":{"feminine":"Feminine","masculine":"Masculine","neutral":"Neutral"},"voiceHelp":"The voice is saved with this bot. New questions and answers are written in this voice.","snapshotHelp":"A copy of the style is saved with this revision. Later Persona edits or AI question generation do not change these settings.","options":{"friendly":"Friendly","professional":"Professional","serious":"Serious","encouraging":"Encouraging","brief":"Brief","balanced":"Balanced","detailed":"Detailed","calm":"Calm","lively":"Lively"},"edit":"Edit style"},"lifecycle":{"title":"When a conversation ends or resumes","description":"Choose what to keep and when to follow up. These settings are saved with the bot version.","legacy":"This bot keeps its previous settings. Configuring these options turns follow-up off until you choose it.","configure":"Configure summaries and follow-up","summaryTitle":"Conversation summary","summaryEnabled":"Generate a summary","history":"Keep the latest summary and append each new summary to the history. Earlier summaries remain available.","inactivity":"Minutes without messages before summarizing","minimumMessages":"Minimum conversation messages","explicitClose":"Also when the conversation is explicitly closed","disconnect":"Closing the window or briefly losing connection does not mean the conversation has ended.","syncToGhl":"Also save the latest summary in GoHighLevel","summaryField":"Long text field for the latest summary","summaryPending":"This preference is saved in the design. Saving does not confirm the GoHighLevel summary settings or the workflow that adds a history note.","summarySyncUnavailable":"We do not sync the summary or custom field to GoHighLevel yet. Linking a CF_calif_* field does not activate the summary on the agent.","comingSoon":"Coming soon","quietHoursUnsupported":"To sync follow-ups, quiet hours must cross midnight (for example 21:00–09:00). This range is saved in the design but is not exported automatically.","followUpTitle":"Optional follow-up","enabled":"Enabled in the design","disabled":"Disabled","followUpEnabled":"Prepare follow-up messages","stopRules":"Use the same channel only. Cancel when the customer replies, opts out or a team member intervenes.","scenarioLabel":"Follow-up reason","scenarioEnabled":"Use this scenario","scenarios":{"no_reply":"No reply","busy":"Customer is busy","requested":"Customer requested it"},"scenarioHelp":{"no_reply":"Resume a conversation when the customer stops replying.","busy":"Applies when the customer says they are busy, not based on whether their browser is open.","requested":"Wait for the date or time agreed with the customer. The system must confirm that time before scheduling."},"scenarioSyncUnavailable":"Not available yet: this scenario has no confirmed automatic sync in GoHighLevel. Saving the design does not activate it.","step":"Message {number}","remove":"Remove message {number}","delay":"Wait after the previous step (minutes)","messageMode":"Writing method","aiMode":"AI using context","customMode":"Defined text","instructions":"What the AI should say","message":"Message text","messagePlaceholder":"Write the message or instructions for the AI…","generate":"Suggest a message with AI","generating":"Preparing a new suggestion…","proposal":"Suggestion for review · not applied yet","discard":"Discard","apply":"Apply to this message","applied":"Message updated","addStep":"Add a message (up to 5)","quietHours":"Do not send during these hours","start":"From","end":"Until","timing":"Account time zone. Each delay starts after the previous step. Up to 15 messages across scenarios; bot replies do not reset the limit.","providerPending":"Settings are checked during synchronization. Saving alone does not confirm follow-up in GoHighLevel; unconfirmed scenarios appear as pending preparations.","generationFailed":"A valid suggestion could not be generated. Your text is unchanged; you can try again.","incomplete":"Check the times, choose at least one scenario and fill in its messages or instructions before saving.","agreedTime":"First message: at the time requested and confirmed by the contact. Nothing is scheduled without a valid agreed time.","edit":"Edit summary and follow-up","summaryReview":"After {minutes} minutes of inactivity and at least {messages} messages.","scenarioReview":"{name}: {count, plural, one {# message} other {# messages}}","reviewIntent":"These are the saved preferences. Preparations show what the engine still needs to confirm before activation."},"journey":{"navigation":"Setup steps","advancedInstructions":"Additional instructions (optional)","editBot":"Change","proposalHelp":"AI can prepare a first draft using your business, campaign and conversation opening. In the next steps, you can review its style, answers and questions for the customer.","bot":{"title":"Your bot","description":"Choose its task and where it will run."},"campaign":{"title":"Business and campaign","description":"Set the business context and any material the bot should share."},"entry":{"title":"Conversation opening","description":"Choose the channels and how the conversation starts."},"communication":{"title":"How it speaks","description":"Review your Persona’s style and adjust it for this bot."},"knowledge":{"title":"What it knows","description":"Add information about your business so the bot can answer customer questions throughout the conversation."},"qualification":{"title":"What it asks","description":"Choose which details to ask the customer for and where to save each answer."},"actions":{"title":"What happens next","description":"Set up booking and the actions you need. Follow-ups and summaries have their own options."},"review":{"title":"Review and test","description":"Check the design and any remaining steps before saving or testing the bot."}}},"native":{"title":"Native GHL bots","readOnly":"Read only — manage in GHL","autopilot":"Autopilot","suggestive":"Suggestive","disabled":"Disabled","badge":"Native GHL","open":"Open in GHL","openAria":"Open {name} in GoHighLevel"},"channelSetup":{"title":"Channel assignments in GoHighLevel","linkedHelp":"Open the agent’s Deploy tab. For each channel, choose the number, account or widget and the contact tag filters, then save the assignment and agent changes. Editing the design in ContentFlow preserves the channels already configured in GoHighLevel.","draftHelp":"The agent is created off with no channels assigned. Then open GoHighLevel’s Deploy tab and assign the numbers, accounts or widgets it should handle. Your selection stays saved in ContentFlow.","verificationHelp":"ContentFlow shows your selection but cannot yet verify these assignments. If you have already configured them, review them in GoHighLevel before activating the bot.","openAgent":"Review channels in GHL"},"connectionReviewBadge":"Connection needs a review","connectionUnavailableBadge":"Connection could not be checked","connectionReviewAction":"View connection","documentManagement":{"open":"Manage documents ({count})","title":"Documents for {name}","description":"Review the files in the knowledge base used by this bot.","loading":"Checking documents…","sharedTitle":"Several bots may use this base","sharedHelp":"Removing a file affects every bot using this base, including bots created directly in GoHighLevel. These are the other references we know about in ContentFlow:","moreBots":"More bots in this account also reference the base.","empty":"There are no saved documents for this base.","remove":"Remove from base","continueRemoval":"Continue removal","finishDraft":"Update draft","confirmTitle":"Remove {name}","impact":"This file will be removed from the shared knowledge base and this bot’s draft. Other bots may need their documents reviewed.","retained":"The private original file and earlier draft revisions will be kept.","confirm":"I understand this removal affects every bot using this base.","confirmAction":"Confirm removal","close":"Close","removing":"Removing file…","removed":"File removed from the GoHighLevel base and the draft. The private original is kept.","removedDraftPending":"The file is already removed from GoHighLevel. The draft changed or could not be updated; open “Manage documents” again to finish that step.","pending":"Removal has not yet been confirmed. You can close this window and return to “Manage documents” to check and continue.","unknown":"We could not confirm the result. Reload the list and check the document before removing it again.","check":"Check again","reload":"Reload bot list","stale":"The bot or its documents changed. Reload the list and review the file again before removing it.","scope":"The connection does not allow managing these files. Review your GoHighLevel integration to renew access.","connection":"We could not confirm this bot’s connection. Review the GoHighLevel integration.","failed":"We could not check the documents. Try again in a moment.","states":{"not_uploaded":"No confirmed upload to GoHighLevel","upload_unconfirmed":"Upload awaiting confirmation","uploaded":"Sent to GoHighLevel; training is checked separately","removal_pending":"Removal awaiting confirmation","removed":"Removed from this base"}},"knowledgeReview":{"title":"Review questions for {name}","description":"Compare the FAQs in your draft with the current GoHighLevel content. Choose what to keep for each change.","loading":"Checking the knowledge base…","sharedTitle":"Several bots may use this knowledge base","sharedHelp":"These other ContentFlow bots reference it. When you sync changes to the knowledge base, they can use them too. GoHighLevel may have other bots that are not listed here.","noOtherBots":"We found no other ContentFlow bots referencing this knowledge base.","moreBots":"More bots are associated than those shown here.","automatic":"We will adopt {updated} answers updated in GoHighLevel and remove {removed} already deleted there.","noConflicts":"There are no incompatible changes. You can save the reviewed draft.","item":"Change {number}","local":"Keep my draft","remote":"Use GoHighLevel","removedLocal":"This question was removed from the draft. Keeping this option retains its pending removal.","removedRemote":"This question no longer exists in GoHighLevel. This option will also remove it from the draft.","recreate":"This choice prepares it as a new question for the next sync.","cannotResolve":"We cannot identify this question reliably. Review the knowledge base before checking again.","saveHelp":"Saving records your choices in this same draft. You can review and sync the bot afterwards; this action does not modify GoHighLevel.","cancel":"Close without saving","save":"Save choices","saving":"Saving…","saved":"Choices saved to the draft. Open “Edit bot” to review and sync the changes.","retry":"Check again","reload":"Reload bot list","stale":"The bot or knowledge base changed after you opened this review. Check again; if you saved the bot in another window, reload the list.","scope":"We cannot read GoHighLevel questions with the current connection. Review this account’s connection.","connection":"This account’s GoHighLevel connection could not be verified. Your draft is preserved.","invalid":"The selection could not be applied. Check the questions again and choose an option for each change.","failed":"We could not read all questions. Your draft is preserved; check again in a moment.","saveUnknown":"We could not confirm the save. Reload the bot list to check its status before saving again."},"contentflowTest":{"buttonAria":"Test bot {name}","configure":"Review publication","scopeTitle":"Test responses with ContentFlow","scopeDescription":"You can test a published version’s conversation without connecting GoHighLevel. Saving answers to a contact and booking appointments require the connection and those actions to be configured.","button":"Test the bot","close":"Close test","heading":"Conversation test","description":"Chat with the published version. Blueprint changes will be included after you save and publish again.","version":"Version {version}","frameTitle":"Test conversation with {name}","loading":"Preparing your bot…","error":"The bot publication could not be loaded.","retry":"Try again","originTitle":"Authorize this website to test it","unpublishedTitle":"Publish your bot to get started","originDescription":"Include this ContentFlow website in the allowed domains when publishing from the review step.","unpublishedDescription":"Save the blueprint and publish the bot in the review step. Then you can chat right here.","back":"Back to the blueprint","contactTest":"New test with a contact","publicTest":"Test without a contact","contactDescription":"Choose a contact from this company for a new conversation. The test uses the published version’s permissions; preparing the chat sends no messages and does not run the model.","contactPreparing":"Preparing the test…","contactOriginalSaved":"A saved test is available. Recover it to continue the same conversation.","contactRecoveryFailed":"The test could not be recovered. Try recovering the same conversation or explicitly prepare another one.","contactRecover":"Recover the same test","contactAnother":"Prepare another test","contactSearch":"Search contacts","contactLoading":"Loading contacts…","contactListError":"The contacts for this company could not be loaded.","contactEmpty":"No contacts match this search.","contactChoose":"Choose the test contact","contactPrevious":"Previous page","contactNext":"Next page","contactSelected":"Selected contact: {name}","contactStart":"Prepare chat with this contact"},"contentflowPublication":{"title":"Publish ContentFlow chat","revision":"Publish saved revision {revision}. Save any changes you want to include first.","model":"Response model","origins":"Websites where the chat will appear","placeholder":"https://yourcompany.com","originHelp":"One HTTPS domain per line. Include each version you use, such as www. This ContentFlow website will also be authorized to test the bot.","publish":"Publish saved revision","publishing":"Publishing…","botName":"Your ContentFlow bot","published":"Version {version} published. Add this code to your website.","embed":"Chat embed code","models":{"FAST":"Fast responses at a lower cost for simple questions and actions.","FAST_PREMIUM":"Fast responses with greater capability for everyday tasks and creation.","PRO":"Advanced reasoning at a lower cost for plans and complex workflows.","PRO_PREMIUM":"The highest reasoning capability for critical decisions and demanding tasks."},"errors":{"draftChanged":"The bot has changed. Reopen it to publish the latest revision.","targetRequired":"Save the bot with the ContentFlow engine first.","originInvalid":"Enter complete HTTPS domains without paths; for example, https://yourcompany.com.","invalidPublication":"Review the allowed domains. Enter between one and ten.","accessDenied":"You do not have access to publish this bot.","notAvailable":"Publishing ContentFlow bots is not yet enabled for this account.","notFound":"This bot is no longer available. Return to the bot list.","invalidConfirmation":"The publication did not return a valid confirmation.","unavailable":"The publication could not be confirmed. You can try again.","runtimeProfile":"The response profile does not match the saved configuration.","runtimeBudget":"The saved spending policy or its parent limits are no longer current. Review approvals before publishing.","runtimeOff":"The bot must be off with no GoHighLevel agent linked.","runtimeBinding":"A saved policy or calendar is no longer available in this account.","runtimeConfiguration":"The saved configuration contains options that are not supported yet.","runtimeContactBinding":"An authorized field no longer has a valid mapping. Review contact configuration before publishing."},"runtime":{"title":"ContentFlow AI","help":"Choose how your bot responds and which information or actions it can use. The knowledge you have already prepared is enough to test its answers.","guideLink":"Configuration guide and FAQs","loading":"Loading configuration…","reload":"Reload saved configuration","configure":"Configure AI","revision":"Saved configuration: revision {revision}","profile":"Response type","fast":"Fast","premium":"Fast premium","mode":"Intended mode when the service is enabled","off":"Off","autopilot":"Reply automatically","policy":"Spending policy for this account","choosePolicy":"Select an existing policy","previousPolicy":"Previous saved policy","policyRevision":"Current policy · revision {revision}","inactivePolicy":"Inactive policy · revision {revision}","noPolicy":"AI for this account still needs preparation before you can save and test the agent. You can continue completing your bot’s design.","maxSteps":"Maximum steps per reply","maxToolCalls":"Maximum tool calls per reply","turnDeadlineMs":"Reply deadline (ms)","maxContextTokens":"Maximum context tokens","maxOutputTokens":"Maximum output tokens","knowledgeRead":"Use bot knowledge","resourceRead":"Use the business resource","contactRead":"Read this conversation’s contact","contactHelp":"AI can only read the person linked to this conversation. Turning this off also disables contact updates and bookings.","calendars":"Calendars the agent can read","noCalendars":"There are no active calendars. Activate one in Calendar if you want AI to check availability. You can test the chat without a calendar.","savedCalendar":"Saved calendar: {id}","moreCalendars":"Load more calendars","handoff":"AI hands the conversation to your team when a person asks for help, a team member intervenes or an action repeatedly fails. Your team decides when to resume it.","discard":"Cancel changes","save":"Save configuration","saving":"Saving…","retrySave":"Retry the same save","unsaved":"You have unsaved changes.","saved":"Configuration saved. Publish the bot to include these changes.","errors":{"changed":"The bot has changed. Close and reopen the bot to load the current revision before editing or publishing.","unavailable":"Configuration could not be loaded. Try again.","access":"You do not have access to this account.","offRequired":"Configuration requires an off bot with no GoHighLevel agent linked.","bindings":"The policy or a calendar does not belong to this account or is no longer available.","invalid":"Review the selected permissions and reload the configuration if needed.","uncertain":"The save result has not been confirmed. Retry the same save before editing or publishing.","contactBindings":"A saved field no longer has a valid mapping. Remove it or correct its mapping and reopen the bot before saving or publishing.","bookingBindings":"Bookings require a linked contact, available steps/tools and native calendars from this account. Review selections and load remaining calendar pages."},"contactWrite":"Details AI may update","contactWriteHelp":"Enable contact reading and choose the fields AI may update. Each change requires the visitor’s confirmation.","contactWriteCount":"{count} of 20 fields selected","noContactFields":"No fields are available to configure changes.","unavailableContactField":"Unavailable saved field: {grant}","contactReview":"Update permissions","contactReadOnly":"This configuration does not allow contact field changes.","contactConsent":"Each change requires a specific proposal and visitor acceptance. Acceptance does not confirm application: only the tool receipt confirms the result.","contactVersionWarning":"These permissions are saved for a new publication. Removing fields does not revoke sessions using earlier versions; revoke the corresponding publication or session.","bookingReview":"Bot bookings","bookingEnable":"Allow appointments with visitor confirmation","bookingRequirements":"To book, enable contact reading and select an enabled ContentFlow calendar. You can test bot answers without enabling appointments.","bookingConsent":"The visitor reviews the time, timezone and professional and accepts the proposal. Continuing allows the agent to book only that appointment; acceptance alone does not create a booking.","bookingSync":"A confirmed ContentFlow appointment and external calendar synchronization are separate states. GHL-managed calendars require their own booking adapter.","bookingReadOnly":"Bookings are disabled; selected calendars only allow availability reads.","bookingVersionWarning":"Saving prepares permissions for a new publication. Removing bookings does not revoke sessions using previous versions; revoke their publication or session.","contactWriteFields":{"first_name":"First name","last_name":"Last name","full_name":"Full name","email":"Email address","phone":"Phone number","country":"Country","city":"City","company_name":"Company","job_title":"Job title","industry":"Industry","do_not_contact":"Do not contact"},"configured":"Capabilities saved for the next publication.","unconfigured":"Prepare your bot’s answers and actions.","close":"Close configuration","responsesTitle":"Answers","responsesHelp":"Choose how AI will respond and which information it can use.","contactsTitle":"Contacts","contactsHelp":"Optional. Allow access to the details of the person chatting with the bot.","agendaTitle":"Appointments","agendaHelp":"Optional. Select calendars to check availability and prepare bookings.","previousVersions":"What happens to previous versions","wizardSource":"Knowledge, questions, contact fields and the calendar come from the builder. Edit those steps to change bot behavior.","prepared":"Chat prepared using the saved builder configuration.","prepareNeeded":"Prepare chat using the latest saved builder configuration.","prepare":"Prepare chat","wizardWarnings":{"calendarUnavailable":"The chosen calendar is not active or linked yet. You can test text answers; appointments remain pending.","bookingUnavailable":"The chosen calendar is managed by GoHighLevel. Booking requires its integration; text chat can be tested separately.","unmappedQuestions":"Some questions have no valid contact field. Review their mapping in Questions; those answers will not be saved to the contact.","actionLimits":"The selected actions require reviewing service preparation. Its limits have not been increased automatically."}}}},"emailTemplateAdmin":{"saved":"Email saved","reset":"Templates restored to their defaults","errors":{"update":"We could not save the email.","reseed":"We could not restore the templates."}},"visualTemplates":{"editorialSource":{"campaignFallback":"Campaign","calendarLabel":"Template creations","executionNotes":"Draft created from the template studio; pending review.","carousel":{"titleLabel":"Carousel","objectivePrefix":"Create a contextual carousel for"},"singleImage":{"titleLabel":"Visual asset","objectivePrefix":"Create a contextual visual asset for"}},"frame":{"eyebrow":"Ads & Reels · Creatives","carousels":"Carousels","posters":"Posters","carouselDescription":"Create four- or six-slide carousels using each campaign's real context, identity, and data.","posterDescription":"Choose a visual family and adapt copy, branding, persona, and CTA with campaign context.","myCarousels":"My carousels","myPosters":"My posters","contentMap":"30-day map","templates":"Create from template","carouselHint":"Review, select, and publish by campaign","posterHint":"Review, select, and publish by campaign"},"carouselLibrary":{"campaignFallback":"Campaign","title":"My carousels","description":"{count, plural, one {# carousel created} other {# carousels created}} · filter by campaign, review, and publish from here.","create":"Create from template","searchPlaceholder":"Search my carousels…","emptyTitle":"No carousels match these filters yet","emptyDescription":"Create the first one from a template and it will appear here for review and publishing.","untitled":"Untitled carousel","open":"Open {name}","addSelection":"Select {name}","removeSelection":"Remove {name} from selection","slides":"{count} slides","unscheduled":"Unscheduled","approve":"Approve {name}","reject":"Reject {name}","selected":"{count, plural, one {# selected} other {# selected}}","publishOrganic":"Publish organically","publishing":"Preparing publication…","clear":"Clear selection","statuses":{"all":"All","Draft":"Draft","Generating":"Generating","Pending Review":"Pending review","Approved":"Approved","Scheduled":"Scheduled","Published":"Published","Failed":"Error"}},"libraries":{"all":"All templates","ads":"Ads","content":"Organic content","contentShort":"Content","carousels":"Carousels","infographics":"Infographics"},"library":{"searchPlaceholder":"Search by name, category, or style…","allCategories":"All design categories","allCarouselStyles":"All visual styles","allStyleTraits":"All visual characteristics","filterByCategory":"Filter by design category","filterByCarouselStyle":"Filter by visual style","filterByStyleTrait":"Filter by visual characteristic","emptyTitle":"No active templates yet","emptyDescription":"There are no templates available in this category yet.","noMatches":"No templates match these filters.","previewAlt":"{name} example","expandedPreviewAlt":"Expanded preview of {name}","expandedPreviewTitle":"Expanded preview of {name}","useTemplateNamed":"Use the {name} template","useTemplate":"Use template","pending":"Pending","pendingCertification":"Pending certification","selected":"Selected","viewLarger":"View larger","closePreview":"Close expanded preview","close":"Close"},"studio":{"selectAccount":"Select an account to open the studio.","libraryTitle":"Template library","libraryDescription":"Choose the style that best fits this campaign.","contextTitle":"Generation context","contextDescription":"Everything is resolved again on the server within {account}.","currentAccount":"the current account","campaign":"Campaign","persona":"Visual persona","avatar":"Customer avatar","generalAudience":"General audience","avatarHelp":"The selected audience is validated within this campaign.","ctaLabel":"CTA for this asset","ctaPlaceholder":"For example, Comment CHALLENGE","ctaInherited":"Inherited from campaign","ctaCustom":"Customized for this asset","ctaServerValidated":"validated again on the server","ctaPresets":{"comment":"Comment","contact":"Contact us","reserve":"Book now","register":"Sign up","discover":"Learn more"},"feedbackLabel":"AI guidance (optional)","feedbackPlaceholder":"E.g. emphasize that the challenge is practical and reduces overwhelm.","feedbackHelp":"Combined with the campaign, audience, persona and template role.","logoSource":"Design logo","brandLogo":"Brand logo","campaignLogo":"Campaign logo","campaignLogoMissing":"This campaign has no dedicated logo; the brand logo will be used.","format":"Format","ratioSquare":"Square","ratioFeed":"Feed portrait","ratioVertical":"Vertical","text":"Text","densityLow":"Low text","densityNormal":"Normal text","batch":"Number of designs","batchValue":"{batch}","batchOption":"{count, plural, one {# design} other {# designs}}","finalCost":"Final cost","quote":"{images} images · {credits} cr","quotePending":"Calculated in preview","zeroCreditPricing":"The proposal uses no image credits; final pricing uses the real number of 2K designs.","preparing":"Preparing…","viewWireframe":"Prepare free proposal","generateFinal2k":"Generate 2K finals","zeroCredits":"0 credits","proposalTitle":"Proposal · {name}","contentStructure":"Content structure","textArea":"Text area {index}"},"generation":{"preparingCopy":"Generating three complete proposals with your campaign context…","restoringReview":"Restoring the saved review…","copyTitle":"Copy for {name}","copyDescription":"Review the three proposals and their {count} slides before generating images.","reviewTexts":"Review each text","compactReviewDescription":"All slides stay visible at once. Edit the copy without losing sight of the selected design.","selectedDesign":"Selected design","templatePreviewAlt":"Selected design {name}","previewStaysVisible":"The reference stays visible while you review every slide.","infographicContent":"Structured infographic content","approveHelp":"Choose a proposal and review its copy. Approval does not use credits.","readyTitle":"Copy approved. Ready to generate.","readyDescription":"{count} 2K images will be created with {engine}. Total cost: {credits} credits.","generate":"Generate {count} images","confirmTitle":"Confirm final generation","confirmDescription":"Images will be generated directly and in parallel. No intermediate collage is created.","closeConfirmation":"Close confirmation","images":"Final images","resolution":"Resolution","engine":"Engine","cost":"Credits to deduct","confirmSpend":"Confirm and use {credits} credits","sending":"Sending generation…","sent":"Generation started · {credits} credits","progress":"Generating image {completed} of {total}","estimatedProgress":"Estimated progress: {progress}% · real completion is confirmed as each image is saved.","completed":"Generation completed: {count} images ready","outputAlt":"Generated image {index}","outputNumber":"Image {index}","waitingForOutput":"Waiting for image {index}","regenerateMissing":"Regenerate image {index} with AI","editOutputWithAi":"Edit or regenerate with AI","editOutputWithAiIndex":"Edit or regenerate image {index} with AI","maximizeOutput":"View full size","maximizeOutputIndex":"View image {index} full size","outputUpdated":"Image updated and saved in its position","engineGptImage2":"GPT Image 2","engineNanoBanana2":"Nano Banana 2","retryCopy":"Generate the copy again","reloadReview":"Reload the review","unknownTemplate":"selected template","quoteExpired":"This quote has expired. Prepare a new generation to get a current price; nothing will be created or charged automatically.","failedTitle":"Generation could not be completed","failedDescription":"The attempt stopped and its status remains visible. Prepare a new proposal to start a new generation with cost confirmation.","restart":"Prepare a new generation"},"carousel":{"selectAccount":"Select an account to open the carousel studio.","stepCampaign":"1. Choose the campaign","campaignFirstDescription":"The carousel and its copy will use this campaign's context, identity, and verified information.","stepTemplate":"2. Choose a template","activeOnly":"Choose a template to start your carousel.","editorialLinked":"Linked to the organic map","editorialLineage":"The carousel will stay linked to this campaign for review and publishing.","stepContext":"3. Customize the carousel","contextDescription":"Set the persona, CTA, and format for {account}.","avatarAccountGuard":"We will use the audience profile defined in this campaign.","ctaFinalOnly":"it will appear only on the final slide","slides":"Slides","slideCount":"{count} slides","sixOnly":"This family preserves only the observed six-slide source structure; no four-slide variant is invented.","quotePending":"{images} images · calculated in preview","zeroCreditPreview":"The structural preview uses no credits. The charge will use the real number of images once the 4/6 render is validated.","viewPreview":"View free preview","zeroCreditTextGeneration":"Creating and reviewing copy uses no image credits. You will see the real cost of the 4 or 6 final images before generation.","generateTexts":"Generate copy","generatingTexts":"Generating copy…","certificationCanaryNotice":"Staff certification canary · this pending template is isolated from the public library and bound to its exact catalog revision.","preparingContext":"Preparing your campaign context…","generatingThreeOptions":"Creating three complete options for you to choose from…","textResults":"Copy for {name}","textResultsDescription":"Review three {count}-slide options in {ratio} format.","generateFinals":"Generate {count} final images","finalGenerationGate":"You can generate the images after approving the carousel copy and design.","structuralPreview":"Structural preview · {name}","previewMeta":"{count} slides · {ratio} · {density}","finalCta":"Final CTA","missingEditorialLineage":"This view lets you choose the family, but it is not yet linked to an organic-map asset. Open Carousels from a calendar asset to generate and approve copy for the whole group.","copyProposals":"3 complete copy options","copyProposalsDescription":"Each option develops the complete carousel while preserving campaign context, facts, and CTA.","generating":"Generating…","generateOptions":"Generate 3 options","chooseArgument":"3. Choose the complete argument","chooseArgumentDescription":"The selection applies to the entire group. Copy marked for review cannot be approved.","zeroImageCredits":"0 image credits","variant":"Variant {index}","review":"Review","reviewSlides":"Review the carousel slide by slide","reviewSlidesDescription":"Edit directly or ask AI for help. Campaign context, evidence, and CTA remain server-owned.","slideNavigation":"Slide navigation","slidePosition":"Slide {index}/{count}","missingText":"Missing text","copyField":"Slide copy","campaignCta":"Campaign CTA","campaignCtaHelp":"This text belongs to the campaign and will appear only on the final slide.","aiInstruction":"Optional instruction for AI","aiInstructionPlaceholder":"For example, make it more direct, warmer, or focused on time savings","copyActions":{"rewrite":"Rewrite","shorten":"Shorten","expand":"Expand","alternative":"Try another","rewriteAll":"Rewrite all {count} with AI","applyingAll":"Rewriting all…"},"copyUpdated":"Copy updated with the campaign context","copyVariantUpdated":"The complete variant was rewritten coherently","copyApprovalDescription":"Choose your preferred option. Approving copy does not generate or charge for images yet.","validating":"Validating…","approveCopy":"Approve complete copy","copyApproved":"Copy approved for the complete group","visualGallery":"4. Visual gallery {grid}","visualGalleryDescription":"A single 2K image shows all {count} compositions for family approval. It is never cropped for publishing: {count} independent masters are generated afterward.","galleryQuote":"1 image · {credits} cr","galleryRetry":"The previous attempt will be preserved and corrections will be applied to a new gallery.","galleryCharge":"The charge occurs only when this single image is sent to the model.","sending":"Sending…","generateGallery":"Generate {grid} gallery","galleryGateClosed":"Review and approve the copy first to prepare the design.","generatingGallery":"Generating one 2K gallery…","refresh":"Refresh","galleryReviewAlt":"{grid} gallery for review","galleryReviewChecklist":"Review branding, persona identity, hierarchy, exact copy, numbers, panels, and ensure the CTA appears only on the final slide.","galleryChangesPlaceholder":"Describe specific changes for the next attempt","approveFamily":"Approve visual family","requestChanges":"Request changes","gallerySent":"Gallery sent · {credits} credits","galleryChangesSaved":"Changes saved; the next gallery will be a new attempt","familyApproved":"Visual family approved for final preparation","finalQuote":"Gallery approved. Final quote: {images} independent images · {credits} credits.","finalStillClosed":"Approval does not generate or charge images. You will see the exact cost of the 4 or 6 final images before continuing."},"admin":{"dynamicCatalog":"Dynamic catalog","title":"Visual templates","description":"Edit the record and its example directly in the database. There is one operational state: Active appears instantly for users; Inactive remains in administration.","newVilmaTemplate":"New template","edit":"Edit","exitEdit":"Exit edit mode","selectedCount":"{count, plural, one {# selected} other {# selected}}","delete":"Delete","deleting":"Deleting…","deleteTitle":"Delete template","deleteTitlePlural":"Delete {count} templates","deleteSingleDescription":"You are about to delete “{name}”. This action cannot be undone.","deleteBulkDescription":"You are about to delete {count} templates. The operation is atomic and cannot be undone.","deleteMore":"And {count} more.","deleteDependencyWarning":"Templates with associated generations are preserved to protect history, and none of the selected templates will be deleted.","confirmDelete":"Delete permanently","deleteSucceeded":"“{name}” was deleted from the catalog.","deleteSucceededPlural":"{count} templates were deleted from the catalog.","archive":"Archive","unarchive":"Restore","archiveInstead":"Archive instead","archiveSucceeded":"{count} templates were archived and removed from the catalog and frontend.","unarchiveSucceeded":"{count} templates were restored as inactive.","total":"Total","activePlural":"Active","inactivePlural":"Inactive","archivedPlural":"Archived","searchPlaceholder":"Search by name, category, or ID…","allLibraries":"All design types","filterByDesignType":"Filter by design type","allCategories":"All categories","filterByCategory":"Filter by category","allVisualStyles":"All visual characteristics","filterByVisualStyle":"Filter by visual characteristic","allStatuses":"Active and inactive","onlyActive":"Active only","onlyInactive":"Inactive only","filterByArchiveStatus":"Filter by archive status","onlyCurrent":"Not archived","onlyArchived":"Archived only","currentAndArchived":"All, including archived","sortByCreatedAt":"Sort by creation date","newestFirst":"Newest first","oldestFirst":"Oldest first","noMatches":"No templates match these filters.","paginationLabel":"Template pagination","rowsPerPage":"Per page","resultsCount":"{count} results","previousPage":"Previous page","nextPage":"Next page","pageCount":"Page {page} of {pages}","previewAlt":"ContentFlow example for {name}","noPreview":"No ContentFlow example","contentFlowExample":"ContentFlow example","originalReference":"Original reference · Super Admin only","compareFullscreen":"Compare both full screen","compareFullscreenDescription":"Open the ContentFlow example and the original reference together to spot differences precisely.","comparisonTitle":"Enlarged comparison of {name}","templateKeyLabel":"ContentFlow code:","originalIdLabel":"Original ID:","copyIdentifier":"Copy {value}","closeComparison":"Close enlarged comparison","originalReferenceAlt":"Original reference for {name}","sourceProvider":"Provider:","sourceName":"Original name:","sourceIdentifier":"Original ID:","sourceAsset":"Original asset:","comparisonSummary":"Concept and structure comparison","comparisonSummaryDescription":"Compare the ContentFlow replica with the original reference before activating the template.","minimumSimilarity":"Minimum expected similarity","slidesShort":"slides","backgroundPolicies":{"fixed-background-edit":"Editable fixed background","structure-reference":"Structure reference","recomposed-from-description":"Recomposed from description","hybrid":"Hybrid"},"active":"Active","inactive":"Inactive","archived":"Archived","revision":"Rev. {revision} · {slides} slides","noDefinition":"no definition","savedImmediately":"Saved to the database. The change is already live.","activated":"Template active: it is now visible in the user library.","deactivated":"Template inactive: it has been removed from the library without being deleted.","lastChange":"Rev. {revision} · last changed by {user}","system":"system","save":"Save","visibleToUsers":"Currently visible in the user library.","adminOnly":"Visible only in Super Admin.","activatedAt":"Activated: {date}","openVilmaReference":"Open reference","expand":"Enlarge","expandImage":"Enlarge {label}","closeExpandedImage":"Close enlarged image","liveRowNotice":"Saving updates the live row. If active, the new version replaces the previous one only after all server validations pass.","generationHarnessReady":"Generation harness ready","generationHarnessReadyHelp":"The definition is versioned, its human zones are certified, and every panel can render from the account's immutable snapshot.","generationHarnessBlocked":"Generation harness blocked","openCertificationCanary":"Open staff certification canary","selectInternalAccountForCertificationCanary":"Explicitly select an authorized internal account before opening the certification canary.","publicCard":"Public record","publicCardDescription":"The same image and text appear in administration and in the user library.","name":"Name","category":"Category","ownPreview":"Own example image","dynamicImageUrl":"Dynamic image URL","uploading":"Uploading…","uploadImage":"Upload image","imageUploaded":"Image uploaded. Select Save to apply it to administration and the frontend.","internalNotes":"Internal notes (not an AI chat)","conceptStructure":"Concept and structure","conceptStructureDescription":"These fields feed the prompt and RenderPlan; editing a JSON file in code is no longer required.","sourceFormat":"Source format","topology":"Topology","copyArc":"Copy arc","backgroundPolicy":"Background policy","backgroundFixed":"Editable fixed background","backgroundStructure":"Structure reference","backgroundRecompose":"Recompose from description","backgroundHybrid":"Hybrid","backgroundMaterials":"Background and materials","branding":"Branding","persona":"Persona","availableFormats":"Available formats","availableFormatsDescription":"A carousel family can be active with only six slides; four appears only when an observed Vilma mapping exists.","ratios":"Ratios","density":"Density","imageEngine":"Image engine","engineNanoBanana2":"Nano Banana 2 · fast and flexible","engineGptImage2":"GPT Image 2 · maximum text precision","imageEngineHelp":"The engine is stored with the template and the server validates it again before pricing.","infographicEngineLocked":"Infographics always use GPT Image 2 to maximize text and data precision.","availableSlides":"Available slides:","and":"and","fourEvidence":"The four-slide variant preserves Vilma evidence.","noFourEvidence":"No observed four-slide variant; none is invented.","slidesAndMessage":"Slides and message","slidesAndMessageDescription":"Correct each panel's concept, including figures, facts, persona, hierarchy, and visual treatment.","slide":"Slide {index}","narrativeRole":"Narrative role","copyObjective":"Copy objective","visualObjective":"Visual objective","densityBehaviour":"Density behavior","zones":"Zones","visualTreatment":"Visual treatment","contentInstruction":"Content instruction","readerTakeaway":"Reader takeaway","requireEvidence":"Require real evidence for this zone","importDescription":"Import a StrictReplicationBlueprint with a real sourceTemplateId. It is created Inactive and appears instantly in administration.","optionalOwnPreview":"Own example image (optional)","cancel":"Cancel","importInactive":"Import as Inactive"},"diagnostics":{"missing-slot":"A required block is missing.","unexpected-slot":"The template does not define this block.","over-budget":"The text exceeds the zone limit.","generic-copy":"The message is too generic.","duplicate-message":"The message is repeated on another slide.","weak-hook":"The hook does not specify an audience outcome.","unsupported-claim":"The claim requires verified evidence.","cta-mismatch":"The CTA does not match this asset.","argument-gap":"The argument has a gap between slides.","unknown":"The proposal did not pass a validation."},"blockers":{"invalidBlueprint":"The template structure is invalid.","invalidDefinition":"The render definition is invalid.","missingOwnPreview":"The own example image is missing.","vilmaPreviewForbidden":"The public image cannot be the original reference reserved for administration.","vilmaIdentityMismatch":"The original source identity does not match the record.","definitionMismatch":"The definition does not belong to this template.","zeroCreditPreviewRequired":"The template must support a zero-credit preview.","master2kRequired":"The master output must remain 2K.","personaZoneAuditRequired":"All and only the template's human zones must be certified in a versioned audit.","panelSemanticsAuditRequired":"The panel people and brand semantics require a versioned, source-bound audit.","visualCertificationRequired":"A source-bound visual certification with at least 95% fidelity is required.","panelIsolationRequired":"Every slide must use an isolated, verifiable source panel.","fidelityThresholdRequired":"Structure, brand, colour, and persona fidelity thresholds must be at least 95%.","personaDefinitionMismatch":"Persona zones in the blueprint and production definition do not match.","blueprintApprovalRequired":"The source-to-template blueprint has not been approved.","definitionApprovalRequired":"The production definition has not been approved.","fourSlideEvidenceRequired":"The source four-slide mapping still requires validation.","galleryPreviewRequired":"The gallery example is missing.","galleryApprovalRequired":"The gallery example has not been approved.","finalApprovalAndRelease":"Final generation remains disabled until copy and gallery approval and coordinated 4/6 app and worker publishing; no charge will occur first.","editorialLineageRequired":"The direct preview does not yet have editorial lineage. sourceItemId and sourceCalendarId must be created or linked before final rendering; no charge will occur first.","singleImageReleaseRequired":"Single-image final generation remains disabled until its account-scoped consumer is published and verified; preview is free."},"errors":{"certificationCanaryInvalidRequest":"The certification canary request is invalid.","certificationCanaryUnavailable":"This exact template revision is not eligible for a staff certification canary.","certificationCanaryStaffRequired":"Direct ContentFlow staff authorization is required for this certification canary.","certificationCanaryAuthorityInvalid":"The certification canary authority is invalid.","certificationCanaryPanelManifestRequired":"The certification canary requires a verified single-panel source manifest.","invalidCatalogFilters":"The catalog filters are invalid.","catalogLoadFailed":"The template catalog could not be loaded.","invalidJson":"The JSON is invalid.","legacyFlowRetired":"This flow was replaced by the single Active/Inactive state.","invalidCatalogMutation":"The catalog change is invalid.","invalidZoneKindMigration":"The requested zone-kind migration is invalid for this template.","personaZoneAuditSourceMismatch":"The persona-zone audit does not match this template's source contract.","panelSemanticsDefinitionMismatch":"The panel semantics do not match the production definition.","panelSourceIndexesInvalid":"The source-panel indexes must be complete, unique, and ordered.","panelSourceCropInvalid":"A source-panel crop is outside the approved source image.","panelSourceCropOverlap":"The source-panel crops overlap and cannot be certified.","panelSourceCoverageInvalid":"The source-panel crops do not cover the approved source image exactly.","panelSourceIdentityMismatch":"The source-panel manifest does not match this template revision.","panelSourceMaterializationRequiresInactive":"Deactivate the template before materializing its private source panels.","panelSourceMaterializationRequiresDefinition":"The template needs an approved production definition before its source panels can be materialized.","panelSourceMaterializationInvalid":"The private source-panel materialization is invalid or incomplete.","panelSourcePostReadMismatch":"The materialized source panels do not match the verified post-read receipt.","invalidCatalogDelete":"The request to delete templates is invalid.","duplicateCatalogDelete":"A template cannot appear twice in the same deletion.","duplicateCatalogArchive":"A template cannot appear twice in the same archive batch.","templateNotFound":"The template was not found.","templateUpdateFailed":"The template could not be updated.","templateDeleteFailed":"The template could not be deleted.","templateArchiveFailed":"The template archive state could not be changed.","templateInUse":"The template has associated generations and must be preserved to protect history.","archivedActivationBlocked":"Restore the archived template before activating it.","catalogDeleteConflict":"The catalog changed during deletion. Reload before trying again.","invalidVilmaImport":"The imported template does not satisfy the contract.","templateImportFailed":"The template could not be imported; verify that its source ID is real and unique.","codeSyncRetired":"Code synchronization has been retired; the catalog lives in the database.","invalidUpload":"Invalid image. Use PNG, JPG, or WebP up to 20 MB.","uploadStorageUnavailable":"Image storage is not configured.","uploadPreparationFailed":"The image upload could not be prepared.","uploadFailed":"The image could not be uploaded.","showcaseFamilyDisabled":"This family is not enabled for the first test.","showcaseStatusFailed":"The example status could not be loaded.","showcaseStagingOnly":"Example generation is enabled only in staging.","showcaseDispatchUnconfirmed":"Dispatch could not be confirmed. Retrying preserves the same generation and does not duplicate the charge.","showcasePreparationFailed":"The global example could not be prepared.","showcasePreparationRequired":"The ContentFlow design must be prepared first.","showcaseContextInvalid":"The global design needs a valid ContentFlow campaign, editorial asset, and persona.","showcaseAlreadyExists":"This template already has a generated example.","invalidLibraryFilters":"The library filters are invalid.","libraryLoadFailed":"The template library could not be loaded.","accountAccessDenied":"This selection does not belong to the current account.","invalidPreviewConfiguration":"The preview configuration is invalid.","selectionOutsideAccount":"The campaign, persona, or editorial asset does not belong to this account.","campaignLogoUnavailable":"The selected campaign has no valid image logo. Choose the brand logo or add a logo to the campaign.","sourceCreationFailed":"The asset could not be prepared within this campaign.","invalidCta":"The asset does not yet have a valid CTA.","templateInactive":"The template is not active for this library.","unsupportedFormat":"The template does not support this format combination.","invalidFinalRequest":"The final request is invalid.","finalReleaseDisabled":"Final generation remains blocked until family approval and coordinated app and worker publishing.","finalDispatchUnconfirmed":"Dispatch could not be confirmed. The same attempt can be retried without duplicating the render.","finalPreparationFailed":"The final render could not be prepared.","invalidGalleryRequest":"The gallery request is invalid.","galleryReleaseDisabled":"The gallery remains closed until the first visual family is approved and the app and worker are published together.","galleryDispatchUnconfirmed":"Dispatch could not be confirmed. The same attempt can be retried without duplicating the gallery.","galleryPreparationFailed":"The gallery could not be prepared.","insufficientCredits":"There are not enough credits.","reviewUpdateFailed":"The template review could not be updated.","reviewResumeFailed":"The saved review could not be restored.","invalidSessionId":"The session identifier is invalid.","invalidReviewAction":"The review action is invalid.","previewFailed":"The preview could not be created.","templateSaveFailed":"The template could not be saved.","noTemplateSelected":"No template is selected.","missingDefinition":"The template does not have a definition yet.","statusChangeFailed":"The status could not be changed.","galleryUpdateFailed":"The gallery could not be updated.","copyGenerationFailed":"Copy could not be generated.","copyApprovalFailed":"Copy could not be approved.","galleryGenerationFailed":"The gallery could not be generated.","galleryReviewFailed":"The gallery could not be reviewed.","copyPreparationFailed":"Copy could not be prepared.","missingVerifiedEvidence":"This asset does not have compatible verified evidence.","ctaEmpty":"The CTA cannot be empty.","ctaTooLong":"The CTA cannot exceed 80 characters.","ctaControlCharacters":"The CTA contains invalid characters.","invalidPreviewUrl":"The image must use a public path or HTTPS URL.","catalogRevisionConflict":"The template changed in another session. Reload before saving.","activeReplacementBlocked":"The active version does not pass server validation.","zoneKindMigrationRequiresInactive":"Deactivate the template before certifying or migrating its human zones.","visualCertificationRequiresInactive":"Deactivate the template before attaching its visual certification.","visualCertificationRequiresDefinition":"The template needs a valid versioned definition before visual certification.","visualCertificationMismatch":"The visual certification does not match this template source and definition.","visualCertificationBatchMismatch":"The certification batch does not match the locked catalog snapshot and template revisions.","zoneKindMigrationRequiresDefinition":"The template needs a valid definition before its human zones can be certified.","zoneKindMigrationInvalid":"The human-zone migration does not satisfy the versioned contract.","zoneKindMigrationMismatch":"A zone changed since review; reload before migrating it.","personaZoneAuditMismatch":"The certified human-zone list does not exactly match the template.","personaDefinitionMigrationMismatch":"The regenerated definition does not preserve the certified human zones exactly.","duplicateZoneKindMigration":"A zone cannot be migrated twice in the same revision.","duplicatePersonaZoneAudit":"A human zone cannot appear twice in the certification.","activationBlocked":"The template cannot be activated until its validations are resolved.","catalogCountMismatch":"The catalog does not contain the expected 40 source templates.","blueprintNotApproved":"The blueprint has not been approved.","blueprintApprovalRequired":"Approve the source-to-template blueprint first.","masterAccountRequired":"The global example must use the ContentFlow master account.","fourSlideEvidenceMissing":"This template does not have a validated four-slide variant.","personaRequired":"This family requires a visual persona.","editorialSourceRequired":"The campaign needs a valid carousel editorial asset.","previewApprovalBlocked":"The example does not pass approval validation.","sessionNotFound":"The session does not exist or does not belong to this account.","templateVersionChanged":"The active template version no longer matches this session.","personaReferenceRequired":"This template needs a persona with a valid reference image.","personaSelectionChanged":"The session persona no longer matches the selected persona. Restart generation before continuing.","copyGenerationClosed":"The session no longer accepts a new copy plan.","copyPlanRequired":"Generate the three copy variants first.","copyVariantInvalid":"Only a variant that passes limits, evidence, and CTA validation can be approved.","copyPlanOutdated":"The template now includes additional copy fields. Reload to regenerate the complete proposal before approving.","copyApprovalRequired":"Approve the complete copy first.","galleryAlreadyApproved":"This gallery has already been approved.","copyVariantsRejected":"None of the three copy proposals passed validation.","copyVariantAlreadyApproved":"The session already has a different approved copy variant.","copyNotReviewable":"The session does not yet have reviewable copy.","copySessionMismatch":"The approved copy does not belong to this session.","copyApprovalSaveFailed":"The approval could not be saved.","copyRevisionClosed":"Copy can no longer be changed in this review.","copySlotInvalid":"This copy block does not belong to the proposal.","campaignCtaImmutable":"The CTA belongs to the campaign and cannot be changed in this editor.","outputEditClosed":"Generated images can no longer be changed in this review.","outputEditInvalid":"The generated image update is invalid.","outputEditSaveFailed":"The generated image could not be updated.","copyTextRequired":"Copy cannot be empty.","copyAssistanceIntentRequired":"Choose an assistance action for this copy.","copyAssistanceFailed":"AI could not propose valid copy without breaking the context.","copyRevisionConflict":"The proposal changed in another session. Reload before continuing.","galleryNotReviewable":"The session does not yet have a reviewable gallery.","galleryReviewSaveFailed":"The review could not be saved."}},"appDataAudience":{"title":"Audience","description":"Reusable audience profiles that give every AI workflow richer customer context.","createButton":"New audience","createDescription":"Create a target audience profile. Define the demographics, interests, and behavior of your ideal audience.","avatarLabel":"Avatar","fieldLabels":{"Title":"Title","Resumen":"Summary","AgeRange":"Age range","Gender":"Gender","IncomeRange":"Income range","Education":"Education","Location":"Location","RelationshipStatus":"Relationship status","Motivators":"Motivators","Values":"Values","Attitudes":"Attitudes","Lifestyle":"Lifestyle","Fears":"Fears","Goals":"Goals","TypesOfMediaConsumed":"Types of media consumed","PersonalContent":"Personal content","EntertainmentContentConsumed":"Entertainment content consumed","ChannelsTheySubscribeTo":"Channels they subscribe to","BuyingBehavior":"Buying behavior","Habits":"Habits","Hobbies":"Hobbies","OfflineActivities":"Offline activities","KeyQuestions":"Key questions","Age":"Age","AvatarPhoto":"Avatar photo","URL Youtube":"YouTube URL","Perplexity Deep Research":"Perplexity deep research","Feedback Inicial":"Initial feedback","Framework GuardaRails":"Guardrails framework","Demografia":"Demographics","Objetivos y Deseos":"Goals and desires","Miedos":"Fears","Problema":"Problem"}},"appDataVoiceDna":{"description":"Create reusable AI voice profiles for tone, rhythm, and narrative style.","createButton":"New VoiceDNA profile","createDescription":"Define the tone, narrative style, and language patterns your AI-generated content should follow.","tabs":{"profiles":{"label":"VoiceDNA profiles","description":"Your reusable AI voice systems"},"sources":{"label":"Training sources","description":"Examples used to learn each voice"}},"sources":{"description":"Train your AI voice with real examples of how your brand speaks.","createButton":"Add training source","createDescription":"Add a reference video, audio file, or transcript so AI can learn your brand's voice."},"sentenceStructure":{"title":"Sentence structure","averageWords":"Average words","short":"Short sentences","medium":"Medium sentences","long":"Long sentences"},"training":{"title":"Train VoiceDNA","addSourceFirst":"Add VoiceDNA sources with transcripts before training.","running":"Training…","button":"Train with {count} sources","started":"Training started. The status will change to “Active” when it finishes.","error":"Training could not be started. Please try again."},"card":{"voiceProfile":"Voice profile"},"fieldLabels":{"VoiceName":"VoiceDNA name","VoiceDNA Sources":"VoiceDNA sources","Custom AI Instructions":"Custom AI instructions","Preview":"Preview","Instrucciones Importantes":"Important instructions","ExampleOfStyle":"Style example","GeneralType":"General type","NarrativePerspective":"Narrative perspective","VocabularyLevel":"Vocabulary level","Style":"Style","Tone":"Tone","AvgSentenceLength":"Average sentence length","ShortSentencesPct":"Short sentences percentage","MediumSentencesPct":"Medium sentences percentage","LongSentencesPct":"Long sentences percentage","AvgParagraphLength":"Average paragraph length","Complexity":"Complexity","ReadingGradeLevel":"Reading grade level","ReadingGradeLevelDescription":"Reading grade level description","WordsOver3SyllablesPer200":"Words over 3 syllables per 200","EmotionalExpressionRate":"Emotional expression rate","BurstinessRate":"Rhythm variation","CommonWordsRate":"Common words rate","NarrativeTechniques":"Narrative techniques","CommonPhrases":"Common phrases","Entrenar VoiceDNA":"Train VoiceDNA","Status":"Status"},"sourceFieldLabels":{"SourceID":"Source ID","VoiceDNA":"VoiceDNA","SourceType":"Source type","SourceURL":"Source URL","YT_VideoID":"YouTube video ID","Title":"Title","Attachments":"Attachments","TranscriptRaw":"Raw transcript","TranscriptClean":"Clean transcript","Notes":"Notes","AddedAt":"Added at","UpdatedAt":"Updated at","Status Transcript":"Transcript status","Attachments S3 URL":"Attachments S3 URL"}},"spyFilters":{"all":"All","clear":"Clear filters ({count})","clearAriaLabel":"Clear all {count} active filters","media":{"label":"Media","ariaLabel":"Filter by media type","videos":"Videos","images":"Images"},"duration":{"label":"Duration","ariaLabel":"Filter by duration","oneToFifteen":"1–15 s","fifteenToThirty":"15–30 s","thirtyToFortyFive":"30–45 s","fortyFiveToSixty":"45–60 s","sixtyToSeventyFive":"60–75 s","upToNinety":"Up to 90 s","overNinety":"Over 90 s"},"style":{"label":"Style","ariaLabel":"Filter by creative style","traditionalAd":"Traditional ad","organicReel":"Alternative organic reel","review":"Review"}},"personaTrash":{"edit":"Edit","title":"Persona trash","trashNamed":"Move {name} to trash","trashTitle":"Move {name} to trash?","confirmTitle":"Confirm removal of {name}","explanation":"This persona will be hidden from lists in every company it is shared with. You can restore it for 30 days. Its profile, photos, voice and links will be preserved for recovery.","typeName":"Type “{name}” to confirm:","cancel":"Cancel","continue":"Continue","confirm":"Move to trash","saving":"Saving…","restore":"Restore","recoveryInfo":"You can restore each persona within 30 days of moving it to trash.","recoverUntil":"Recoverable until {date}","expired":"The recovery period has ended.","loading":"Loading…","empty":"There are no personas in trash.","unnamed":"Unnamed","shared":"Only the owning company can manage this persona’s trash status.","nameMismatch":"The name has changed. Refresh the list and confirm again.","notReady":"Persona trash is not available in this environment yet.","failed":"Unable to complete the operation. Please try again."},"crmIntegration":{"campaignFilter":{"eyebrow":"Active campaign","help":"This filter applies to the dashboard, contacts and sources.","title":"Filter CRM by campaign","onlyActiveAccount":"Only campaigns from the active account.","all":"All campaigns","available":"{count, plural, one {# campaign available} other {# campaigns available}}","count":"{count, plural, one {# campaign} other {# campaigns}}","contacts":"{count, plural, one {# contact} other {# contacts}}","updating":"Updating contact attribution…","loadError":"Campaigns could not be loaded"},"contactViews":{"columns":"Columns","editor":"Column editor","reset":"Reset","search":"Search fields…","standard":"Main fields","custom":"Custom fields","selected":"Selected","noResults":"No matching fields","up":"Move left","down":"Move right","company_name":"Business Name","job_title":"Job title","industry":"Industry","city":"City","email":"Email","phone":"Phone","save":"Save new view","update":"Save changes to this view","delete":"Delete view","name":"View name","saved":"View saved","error":"Could not save. Please retry.","loadError":"Could not load your views. Please retry.","retry":"Retry","catalogError":"Some custom field names are unavailable. Check the GoHighLevel connection to load its catalog.","personal":"Custom views","saving":"Saving…","duplicate":"A view with this name already exists","limit":"Maximum 30 personal views","required":"Enter a name","empty":"Save your first view with the + button","presets":"Preset views","create":"Create view","rename":"Rename view","cancel":"Cancel","createDescription":"Save the current columns, filters and sort order as a new view. Give it a name you will recognize later.","renameDescription":"Choose a new name for this view. Its current columns and filters will also be saved.","deleteDescription":"The view “{name}” will be deleted. Contacts will be kept.","nameExample":"For example: Water industry professionals","duplicateHelp":"You already have a view with this name. Choose a different name for the new view.","viewSummary":"{columns} columns · saved filters","unnamedField":"Unnamed field · {id}"},"dashboard":"Dashboard","contacts":"Contacts","sources":"Sources","sync":"Sync history","integration":"GoHighLevel integration","title":"GoHighLevel connection","loading":"Loading…","connected":"Connected to GoHighLevel","type":"Connection type","location":"Sub-account ID","status":"Status","lastSync":"Last sync","import":"Import contacts from GHL","disconnect":"Disconnect GHL","disconnected":"GoHighLevel not connected","connect":"Connect GoHighLevel","active":"Active","inactive":"Inactive","never":"Never","connectDescription":"Connect your account to sync contacts, calendars and bots.","authorizeDescription":"The GoHighLevel marketplace will open to authorize the integration.","disconnectConfirm":"Disconnect GoHighLevel?"},"ghlSetupStatus":{"title":"GoHighLevel guide","loadingGuide":"Preparing your GoHighLevel experience…","guideTitle":"Guided setup","exitLater":"Leave and continue later","accountFallback":"your account","welcomeReady":"Ready to set up","welcomeTitle":"Let's get {accountName} off to a great start","welcomeDescription":"In a few minutes, we'll tailor your experience, connect the right location and start the first synchronization.","startGuide":"Start setup","manualSettings":"Go to manual settings","back":"Back","continue":"Continue","progressSaveError":"You can continue, but we could not save your progress yet. We will try again at the next step.","syncStartError":"The first synchronization could not be started. Check the connection before trying again.","finishError":"We could not finish the guide. Try again.","stepGoal":"Step 1 of 4 · Your goal","goalTitle":"How will you mainly use GoHighLevel?","goalDescription":"This helps us organize your experience and understand what matters most to each account.","stepExperience":"Step 2 of 4 · Your starting point","experienceTitle":"Tell us where you're starting","experienceDescription":"Just two quick answers. We will not import or change anything yet.","previousAccountQuestion":"Have you used GoHighLevel before?","contactVolumeQuestion":"About how many contacts do you have?","stepConnection":"Step 3 of 4 · Secure connection","connectedTitle":"Your account is already connected","connectTitle":"Connect GoHighLevel to ContentFlow365","connectedLocation":"Connected location","pendingAuthorization":"Authorization pending","connectionActive":"Active, recognized connection","passwordPrivate":"Your password is not shared with ContentFlow","prepareSync":"Prepare first synchronization","recoverPassword":"Can't sign in yet? Create or recover your password","encryptedConnection":"Encrypted, renewable connection","customFields":"Contacts and custom fields","inboxChannels":"Inbox and conversation channels","botsCalendar":"Bots, opportunities and calendar","stepSync":"Step 4 of 4 · First synchronization","primaryUse":{"sales_pipeline":{"title":"Sales and opportunities","description":"Organize leads, pipelines and sales follow-up."},"appointments":{"title":"Calendar and bookings","description":"Capture appointments and coordinate meetings automatically."},"customer_support":{"title":"Customer support","description":"Centralize conversations and reply from the inbox."},"automations_bots":{"title":"Bots and automations","description":"Qualify contacts and trigger intelligent journeys."},"marketing_followup":{"title":"Marketing and follow-up","description":"Nurture contacts by email, WhatsApp and other channels."},"all_in_one":{"title":"Everything in one place","description":"Use CRM, calendar, inbox and automations together."}},"experience":{"first_account":{"title":"This is my first account","description":"I want to start from scratch with the account included in ContentFlow."},"existing_account":{"title":"I already use GoHighLevel","description":"I have an account or location that is already in use."},"migration":{"title":"I'm migrating","description":"I have data in another tool or account and want to bring it over."}},"contactVolume":{"none":"None yet","under_1k":"Under 1,000","1k_10k":"Between 1,000 and 10,000","10k_50k":"Between 10,000 and 50,000","50k_plus":"Over 50,000","unknown":"I don't know yet"},"capabilityContacts":"Contacts","capabilityOpportunities":"Opportunities","capabilityCalendars":"Calendars","capabilityInbox":"Omnichannel inbox","capabilityBots":"Bots and fields","capabilityEmails":"Emails","accountRouteTitle":"Check the company in this link","accountRouteDescription":"The company in this link does not yet match the open account. Wait for it to finish loading or return to your accounts to check your access.","accountRouteHome":"Go to my accounts","connectionSummary":"Your GoHighLevel connection","connectionSaved":"GoHighLevel is connected","connectionMissing":"Connect GoHighLevel to get started","savedLocation":"Your GoHighLevel account","renew":"Renew connection","connect":"Connect with GoHighLevel","openingConsent":"Opening GoHighLevel…","consentHelp":"Continue to GoHighLevel to choose your account and allow the connection.","consentError":"We could not open GoHighLevel. Check the connection status again.","permissionsSeparate":"If a feature needs more access, you will see what is missing and how to enable it.","loadError":"We could not read the current status. Reload the page to check again.","reuseConnection":"You can continue with your existing connection. Use “Renew connection” to update its permissions.","useConnectionAction":"Choose “Connect with GoHighLevel” above to continue.","syncStartTitle":"Prepare the first synchronization","syncStartHelp":"Bring your GoHighLevel data into ContentFlow. Once the import starts, you can leave this screen.","syncStart":"Start synchronization","syncSending":"Starting the import…","syncReady":"Ready to import your data","syncAcceptedTitle":"Import requested","syncAcceptedRow":"Import requested","safeExit":"The import request was accepted. You can leave and check the result here when the server confirms it.","syncNotFinished":"The import has not finished yet. You can check its progress later.","syncSaveError":"The request was accepted, but we could not save the guide progress. Do not start the import again; check the synchronization log.","continueWithoutWaiting":"Continue without waiting","leaveNow":"Go to GoHighLevel settings","guideFinished":"Guide finished","completionAccepted":"We have received your data import request. You can keep using ContentFlow and check the progress later.","completionPending":"GoHighLevel is connected. You can start importing your data whenever you are ready.","viewConfiguration":"View GoHighLevel status","exploreInbox":"Explore Inbox","returnHelp":"Return to this guide from Integrations to review the connection or renew permissions.","provisioningSection":"Your access to GoHighLevel","canonicalReview":"Your email is linked to several accounts. Contact support to confirm which one you want to use; you do not need to connect again.","existingConnectionSeparate":"Your current connection is preserved. This review only concerns setting up the access included in your plan.","provisioning":{"not_included":{"title":"GoHighLevel access is not included","description":"Your plan does not include a GoHighLevel account managed by ContentFlow."},"pending":{"title":"Your access is pending","description":"Your GoHighLevel account still needs to be set up."},"creating_location":{"title":"Preparing your account","description":"We are preparing your business space in GoHighLevel."},"creating_user":{"title":"Preparing your access","description":"We have found your account and are checking that you can sign in."},"sending_instructions":{"title":"Access email not yet confirmed","description":"Your access is ready; we have not yet confirmed that the instructions were sent."},"ready":{"title":"Your access is ready","description":"Your GoHighLevel account and access are ready. Check the connection with ContentFlow above."},"requires_attention":{"title":"We need to review your access","description":"Contact support to finish setting up your GoHighLevel account."}},"checkingAccess":"Checking your access…","checkAccess":"Check access","resendAccess":"Resend instructions","noAccessInfo":"We do not have information about your GoHighLevel access yet.","reviewTitle":"Your connection needs a review","recoveryReadyDescription":"This account is verified for connection recovery. Select “Renew connection” and authorize the same GoHighLevel sub-account. Your data will be preserved.","reviewDescription":"We need to confirm which account the connection belongs to. Contact support; you do not need to reconnect while it is being reviewed.","checkAgain":"Check again","unavailableTitle":"We cannot check your connection right now","unavailableDescription":"We could not check GoHighLevel. Check again; this message does not mean you need to reconnect.","connectionPaused":"Authorization is currently unavailable on this page. Check its availability again.","openGuide":"Open the step-by-step guide","manualConnectionTitle":"Advanced manual connection","manualConnectionHelp":"Use this option only if support has asked you to connect with a private GoHighLevel key. To connect your account normally, use the button above.","manualLocationId":"Your GoHighLevel account ID","manualToken":"Private GoHighLevel key (PIT)","manualLocationName":"Account name (optional)","manualConnect":"Connect with a private key","manualConnecting":"Connecting…","manualConnectionError":"We could not complete the manual connection. Check the details with support before trying again.","importError":"We could not request the import. Check the connection before trying again.","nextStepsTitle":"Continue setting up your account","nextStepsHelp":"Check each section to see what is ready and what still needs to be set up.","nextSteps":{"contacts":{"title":"Contacts","description":"View the contacts imported into ContentFlow."},"inbox":{"title":"Conversations","description":"Review your conversations and connected channels."},"calendar":{"title":"Calendar","description":"Set up the calendar where you want to receive bookings."},"bots":{"title":"AI bots","description":"Design your bot, review the remaining steps and test its replies before activating it."}},"connectionDetails":"Connection details","checkImport":"Check import","importGuideSeparate":"Guide progress and a saved connection do not confirm the import outcome.","importOutcome":"Import outcome","import_completed":"The import process has finished. Review your data and sync history in the CRM.","import_failed":"The import failed or was cancelled. The data for this request has not been confirmed; the connection is checked separately.","import_queued":"The import is queued. It has not finished yet.","import_running":"The import is running. It has not finished yet.","import_unavailable":"The import outcome cannot be checked right now. Check its status again.","import_unconfirmed":"The import request is recorded, but its execution cannot yet be confirmed.","oauthConfigurationMissing":"GoHighLevel configuration is incomplete in this environment. Check again when it is available.","oauthConnectionUnsupported":"We need to verify the connection type and GoHighLevel account before renewing access. Check the status again.","oauthEnvironmentMismatch":"Authorization cannot return to this page with the current configuration. Check again when it has been corrected.","oauthInstallationPaused":"New connections are currently paused. Check their availability again.","permissionGranted":"Authorized","permissionHelp":"These permissions belong to the saved connection. One pending feature does not disconnect the others.","permissionMissing":"Access needed","permissionUnknown":"Not checked","permission_bots":"Chat bots","permission_voice":"Voice bots","permission_calendars":"Calendars","permission_contacts":"Contacts","permission_conversations":"Conversations","permission_knowledge":"Knowledge bases","permissionsTitle":"Connection permissions","recoveryComplete":"Connection saved. You do not need to authorize GoHighLevel again.","renewalPaused":"Your connection is still saved. Renewal is currently unavailable on this page. Check its availability again."},"contactNotes":{"title":"GoHighLevel notes and summaries","description":"Read this contact’s notes, including any conversation summaries saved as notes.","refresh":"Refresh GoHighLevel notes","loading":"Loading GoHighLevel notes…","accessError":"We cannot access these notes. Check your session and the integration permissions; the history could not be read.","connectionError":"The connection or linked contact has changed. Check the integration before loading the notes again.","sizeError":"This history exceeds the size we can display here. View it in GoHighLevel.","loadError":"GoHighLevel notes could not be loaded. Try again; this does not mean the history is empty.","retry":"Try again","notLinked":"This contact is not linked to GoHighLevel yet.","notConnected":"The GoHighLevel connection is unavailable. Internal ContentFlow notes remain available.","checkedAt":"Checked: {date}","empty":"GoHighLevel has no saved notes for this contact.","count":"{count, plural, one {# note · newest first} other {# notes · newest first}}","emptyBody":"Note without text.","showMore":"{count, plural, one {Show # more note} other {Show # more notes}}","localTitle":"Internal ContentFlow note","localDescription":"Saved in ContentFlow. The GoHighLevel note history appears below.","localPlaceholder":"Add an internal note about this contact…","saving":"Saving…"},"accountSignature":{"title":"ContentFlow365 signature","description":"Shown at the bottom of this account’s pages and emails. Only ContentFlow365 administrators can change it.","loading":"Loading settings…","error":"The signature could not be loaded or saved. Please try again."},"aeRender":{"close":"Close catalog","createTitle":"New AE Render from catalog","replaceTitle":"Regenerate from catalog","createDescription":"Choose a Remotion template. We will create a 4-second AE Render at the selected position and adapt its text to the video content.","replaceDescription":"Choose a Remotion template. We will adapt its text to this segment and keep its position and duration.","searchLabel":"Search templates","searchPlaceholder":"Search by name, style or category…","filterStyle":"Style","filterCategory":"Type / category","filterFormat":"Format","filterTypography":"Typography","filterImage":"Requires image","filterVideo":"Requires video","all":"All","clearFilters":"Clear filters","count":"{count, plural, one {# Remotion template} other {# Remotion templates}}","loading":"Loading catalog…","retry":"Retry","empty":"No templates match these filters. Try another search.","preview":"Preview of {name}","current":"Current template","more":"Show more","select":"Select a template","adapting":"Adapting template…","apply":"Use this template","newAtPosition":"New AE Render from catalog (4s)","saveFailed":"Could not save the AE Render.","unsaved":"Not all changes were saved. Your text is still here.","preparingEdit":"Preparing safe editing…","regenError":"Regeneration failed: {message}","createdDispatchFailed":"The AE Render was created, but generation could not be confirmed ({status}). Check its status before regenerating to avoid duplicates.","saving":"Saving…","saved":"Saved","error":"Error","retrySave":"Retry saving","regenTemplate":"Regenerate template","sending":"Sending…","errorRetry":"Error — Retry"},"slideImage":{"newWithFeedback":"New slide with feedback…","newAt":"New slide at {time} ({duration}s)","newFromImage":"New slide from poster or image…","createFeedbackTitle":"New slide with feedback","regenerateFeedbackTitle":"Regenerate slide with feedback","createFeedbackDescription":"Describe the slide you want. The image will follow the copy in this segment and your feedback.","regenerateFeedbackDescription":"Describe what to change. Your feedback takes priority over the original slide idea and is saved to the scene.","create":"Create slide","regenerate":"Regenerate","cancel":"Cancel","generating":"Generating image…","previewUnavailable":"Preview unavailable","pickerTitle":"Choose an image for the slide","pickerDescription":"Find a poster from your account or upload your own image.","uploadLabel":"Upload your own image","uploadHint":"Drag a PNG, JPG or WebP up to 10 MB; choose an aspect ratio before uploading","previewTitle":"How it will look in the vertical video","framingLabel":"Image framing","wholeImage":"Show the whole image","wholeImageDescription":"Keeps the whole poster visible and adds bands when needed.","fill":"Fill the frame","fillDescription":"Enlarges the image to 9:16; the sides may be cropped.","bandsLabel":"Band color","bandsTitle":"Band background:","black":"Black","white":"White","corporate":"Brand color","noBrandColor":"This visual identity has no primary color set.","framingPreview":"Vertical framing preview","useImage":"Use this image","saving":"Saving…","framingInvalid":"Invalid slide framing","backgroundInvalid":"Invalid background color","outsideMontage":"This interval is outside the montage","changed":"The slide has changed. Close and reopen the editor.","identifyFailed":"Could not identify this slide in the scene. Reopen it.","unidentified":"The slide could not be identified."},"creditPricing":{"title":"Credit pricing","subtitle":"Catalogue generated from the same rules used for charges","back":"Back to settings","currentPlan":"Current plan","plan":"{name} plan","monthly":"{count, number} cr/month","balance":"Available balance","fixed":"{count, number} cr","range":"{min, number}–{max, number} cr","fromPrice":"From {min, number} cr","free":"Free","variable":"Depends on the operation","explanation":"The exact price charged is saved in <transactions>Transactions</transactions>, together with the description, context and balance. Variable services show their cost before you confirm the operation.","categories":{"video":"Video","audio":"Audio and voice","campaigns":"Campaigns","images":"Images and thumbnails","avatars":"Avatars and virtual personas","social":"Social and Ads","youtube":"YouTube Intelligence","research":"Research and strategy","automation":"Assistant and automation","domains":"Domains"},"services":{"ai-companion":{"name":"AI Companion","description":"Assisted reasoning and execution in ContentFlow chat."},"ai-playbook-generation":{"name":"AI Playbook document","description":"Create a specialized document from Playbook context and answers."},"ai-playbook-refinement":{"name":"AI Playbook revision","description":"Rewrite a complete Playbook document following a change request."},"ai-playbook-factual-verification":{"name":"AI Playbook fact-checking","description":"Check verifiable document claims against web sources, with a report and source links."},"agency-flow-solutions":{"name":"Agency solutions","description":"Turn selected problems into sellable services with sales arguments."},"agency-flow-niche":{"name":"Niche analysis","description":"Study the market, problems, ability to pay, avatars, hooks and three priced offers."},"agency-flow-niche-reviews":{"name":"Niche analysis with real reviews","description":"Niche study plus analysis of real negative Google Maps industry reviews, with verbatim quotes and frequency."},"agency-flow-landing":{"name":"Agency landing page copy","description":"Headlines, subheading, call to action and landing sections written for your niche."},"agency-flow-agent":{"name":"24/7 agent instructions","description":"Write your agent’s system prompt with services, prices and objections."},"agency-flow-web-extract":{"name":"Business profile from website","description":"Read a business website and extract its 14 fields, distinguishing explicit and inferred information."},"agency-flow-proposal":{"name":"Sales proposal","description":"Ten-slide proposal for a specific customer, framed as a digital employee."},"agency-flow-leads":{"name":"Prospect search","description":"Find niche businesses on Google Maps with priority scores and outreach angles."},"agency-flow-app-builder":{"name":"AI app creation","description":"Generate and revise an app with AI, reserving credits and settling the charge on completion."},"video-short":{"name":"Short video workflow","description":"Create copy, audio, scenes and a short video."},"video-short-styled":{"name":"Styled video copy","description":"Generate copy tailored to a specific visual style."},"render-short":{"name":"Final video render","description":"Process and render the final video file."},"hyperframes-cloud-render":{"name":"Cloud HyperFrames render","description":"Render the approved montage with HyperFrames in HeyGen’s cloud."},"reel-avatar-performance":{"name":"Avatar performance for the Reel","description":"Generate a video of the selected avatar with the approved audio. Audio generation and the final montage render are quoted separately."},"reel-creative-edit":{"name":"Creative Reel edit","description":"Reel edited by ContentFlow's AI Director in the chosen style, with its cloud render. The real cost is charged up to the approved maximum."},"lead-magnet-generation":{"name":"Guide written with AI","description":"Content of a downloadable guide written with AI and turned into a PDF. The real cost is charged up to the approved maximum."},"lambda-render-premium":{"name":"Cloud video render","description":"Cloud video render according to duration and mode."},"reel-short":{"name":"Reel workflow","description":"Create scenes, copy, audio and video for a Reel."},"reels-generation":{"name":"AI Reel generation","description":"Generate complete vertical video pieces with AI."},"video-hooks":{"name":"Stop Scroller / video hook","description":"Generate a video hook using the selected engine."},"veo3-broll":{"name":"AI B-roll","description":"Generate supporting visual footage with a video engine."},"cine-video":{"name":"Cinematic video","description":"Prepare and generate scenes for a cinematic video."},"crea-clips-video-long":{"name":"Clips from long videos","description":"Detect and create short clips from a long video."},"montaje-video-hook":{"name":"Video editing","description":"Prepare and assemble a video piece."},"modifica-renders":{"name":"Render modification","description":"Regenerate or modify an existing render."},"publish-youtube-long":{"name":"YouTube video publishing","description":"Prepare and publish a long video on YouTube."},"broll-attachments":{"name":"B-roll file analysis","description":"Process and analyze supporting visual files."},"generate-audio":{"name":"Audio and voice","description":"Generate, process or edit audio for a content piece."},"background-music":{"name":"Background music","description":"Generate or select music for a video with assistance."},"voice-synthetic":{"name":"Synthetic voice","description":"Design and generate synthetic voice samples."},"campaign-product-details":{"name":"Product details","description":"Research and generate the strategic product profile."},"transcript-summary":{"name":"Transcript summary","description":"Analyze and summarize a transcript in structured form."},"campaign-angles":{"name":"Campaign angles","description":"Generate creative campaign angles."},"crear-copy-reel":{"name":"Reel copy","description":"Generate the script and copy for a Reel angle."},"onboarding-build-everything":{"name":"Build everything","description":"Voice, avatar and first Reel of the onboarding virtual influencer. Each stage charges its own service."},"campaign-angle-single":{"name":"One campaign angle","description":"The best angle of a run, for a quick Reel."},"reel-script-ai":{"name":"AI Reel script","description":"Write or rewrite your own Reel script with AI."},"campaign-angles-long":{"name":"Long-form angles","description":"Research and generate angles for long-form content."},"carteles-ads-campaign":{"name":"Campaign creatives","description":"Generate posters and visual ad creatives."},"thumbnail-create":{"name":"Thumbnail creation","description":"Generate a thumbnail or visual variation."},"thumbnail-analyze":{"name":"Image analysis","description":"Analyze an image visually with AI."},"clip-portada-regen":{"name":"Cover regeneration","description":"Create a new cover for a clip."},"titles-thumbnails-create":{"name":"Titles and thumbnails","description":"Generate title and thumbnail ideas together."},"ig-photos-calendar":{"name":"Instagram calendar","description":"Plan a month of Instagram posts and copy."},"ig-photos-generate":{"name":"Instagram photos","description":"Generate images for planned posts."},"visual-template-carousel":{"name":"Template-based editorial carousel","description":"Generate the four or six approved editorial carousel slides in 2K."},"visual-template-generation":{"name":"Template-based visual asset","description":"Generate the approved visual asset from a template in 2K."},"ig-photos-variation":{"name":"Instagram photo variation","description":"Generate visual alternatives for a post."},"ig-photos-scrape":{"name":"Instagram inspiration","description":"Analyze posts from an inspiration account."},"image-edit":{"name":"Image editing","description":"AI edit of a poster, avatar or persona photo that keeps the original."},"logo-vectorize":{"name":"High-quality logo","description":"Regenerate and vectorize a logo."},"avatar-regenerate":{"name":"Avatar regeneration","description":"Regenerate an avatar or its associated materials."},"video-avatar-omnihuman":{"name":"Cinematic Avatar video","description":"Generation of a video segment using the selected avatar and audio."},"avatar-create-omnihuman":{"name":"Cinematic Avatar creation","description":"Reservation for the avatar and its demo of up to 10 seconds; adjusted to the final cost."},"avatar-create-v4":{"name":"Avatar IV creation","description":"Create an Avatar IV and its initial demonstration."},"avatar-create-motion":{"name":"Motion avatar creation","description":"Create and prepare an animated avatar."},"avatar-create-v5":{"name":"Avatar V creation","description":"Reserve credits for Avatar V creation and demonstration, settled against the actual result."},"avatar-generate-images":{"name":"Avatar images","description":"Generate avatar reference images."},"avatar-regenerate-motion":{"name":"Motion avatar regeneration","description":"Regenerate avatar movement and preview."},"avatar-regenerate-preview-av4":{"name":"Avatar IV preview","description":"Regenerate voice and demonstration video for an Avatar IV."},"persona-face-samples":{"name":"Face samples","description":"Generate visual samples to define a virtual persona."},"persona-create":{"name":"Virtual persona creation","description":"Create and initially configure a virtual persona."},"persona-expresividad-seedance":{"name":"Virtual persona expressiveness","description":"Generate an expressiveness video to train the virtual persona."},"persona-master-collage":{"name":"Persona master collage","description":"Generate the virtual persona’s reference collage."},"publish-meta-ads":{"name":"Meta Ads publishing","description":"Prepare and publish a creative in Meta Ads."},"publish-meta-ads-carteles":{"name":"Meta Ads poster publishing","description":"Prepare and publish campaign posters in Meta Ads."},"meta-ads-ai-report":{"name":"Meta Ads report","description":"Analyze Meta Ads campaign performance with AI."},"chat-message":{"name":"AI assistant message","description":"Process a message through the ContentFlow assistant."},"crm-enrich-contact":{"name":"Contact enrichment","description":"Automatically research and enrich a CRM contact."},"mcp-generate-copy":{"name":"Agent copy generation","description":"Generate copy requested through an agent or MCP integration."},"mcp-generate-angles":{"name":"Agent angle generation","description":"Generate angles requested through an agent or MCP integration."},"mcp-generate-script":{"name":"Agent script generation","description":"Generate a script requested through an agent or MCP integration."},"crear-informe-news":{"name":"News report","description":"Create a current-affairs report and its content materials."},"research":{"name":"Daily research","description":"Research trends and sources for new content ideas."},"strategy-ai-analyze":{"name":"Strategy analysis","description":"Assisted marketing strategy analysis."},"strategy-product-research":{"name":"Product research","description":"Assisted research into a product and its market."},"offer-draft-generation":{"name":"AI offer draft","description":"Create a structured offer from the campaign and a short brief with AI assistance."},"vsl-generation":{"name":"Complete VSL generation","description":"Create a VSL’s strategic blueprint and final narration-ready script."},"youtube-thumbnail-intel":{"name":"YouTube Thumbnail Intelligence","description":"Analyze the channel’s best-performing thumbnails visually."},"youtube-ai-analysis":{"name":"YouTube AI Analysis","description":"Analyze the channel, content and performance patterns."},"youtube-intel-brief":{"name":"YouTube Intelligence Brief","description":"Summarize channel health, trends, keywords and publishing patterns."},"youtube-comments-analysis":{"name":"YouTube comment analysis","description":"Analyze topics, questions and sentiment in channel comments."},"youtube-comment-reply-gen":{"name":"Suggested YouTube reply","description":"Generate a suggested reply to a comment."},"youtube-comment-reply-send":{"name":"YouTube reply publishing","description":"Publish a prepared reply to a YouTube comment."},"remotion-template-gen":{"name":"AI Remotion template","description":"Generate an editable video template using AI."},"remotion-analyze-render":{"name":"Remotion render analysis","description":"Analyze an existing render visually and technically."},"domain-purchase":{"name":"Domain purchase","description":"Purchase and register a domain managed in ContentFlow."}}},"communityBot":{"badge":"Bot · Assistant"},"communityEdit":{"edited":"edited","edit":"Edit","delete":"Delete","save":"Save","cancel":"Cancel","title":"Title","body":"Text","space":"Space","noSpace":"No space","postDeleteConfirm":"Delete this post?","commentDeleteConfirm":"Delete this comment?","commentOptions":"Comment options","postOptions":"Post options","error":"Could not save the change. Try again."},"socialPublisherV2":{"tiktokPublishProgress":{"ariaLabel":"TikTok publishing status","completedTitle":"TikTok publishing complete","failedTitle":"TikTok could not complete the post","processingTitle":"TikTok is processing the video","completedDescription":"TikTok confirmed that publishing completed successfully.","failedDescription":"Review the error before starting a new publishing attempt.","processingDescription":"This may take a few minutes. This panel updates automatically until TikTok returns a final result.","providerStatusLabel":"Status returned by TikTok","processingCode":"PROCESSING","waitingCode":"WAITING_FOR_TIKTOK","closeLabel":"Close TikTok publishing status"},"composer":{"title":"Create post","closeLabel":"Close post composer","contentLabel":"Caption","contentPlaceholder":"Write the caption for your post...","characterCount":"{count, plural, one {# character} other {# characters}}","mediaHttpsLabel":"HTTPS media (one URL per line)","mediaUrlLabel":"Media URL (optional)","blueskyMediaHelp":"Bluesky accepts between 1 and 4 JPEG, PNG, or WebP images. Video is not available. The caption is used as the accessible image description.","postTypeLabel":"Post type","selectedAccounts":"{count, plural, one {Destination account (# selected)} other {Destination accounts (# selected)}}","nativeLabel":"Native","noActiveAccounts":"There are no active accounts with a publishing connection.","scheduleLabel":"Schedule (optional)","scheduleHelp":"If no date is selected, the post is added to the publishing queue.","cancel":"Cancel","schedule":"Schedule","publish":"Publish","publishTikTok":"Publish to TikTok","tiktok":{"title":"Publish directly to TikTok","help":"Review the destination account and its current options before sending the content.","creatorUnavailable":"TikTok cannot confirm that this account can publish right now. Try again later.","creatorReconnect":"Reconnect TikTok to grant Direct Post access.","loadingCreatorInfo":"Retrieving the latest creator information from TikTok...","destinationAccount":"TikTok account that will receive the post","videoPreview":"Video preview","checkingDuration":"Checking the video duration...","durationAllowed":"{duration} s of the {limit} s allowed for this account.","privacyLabel":"Privacy (required selection)","privacyPlaceholder":"Select an option...","privacy":{"selfOnly":"Only me","followers":"Followers","mutualFriends":"Mutual friends","everyone":"Everyone"},"unauditedPrivacyHelp":"During the audit, TikTok requires the creator account to be private and limits Direct Post to Only me. TikTok does not share the account's public or private state with ContentFlow365.","privateAccountConfirmation":"I confirm that this TikTok account is private for the unaudited test.","interactions":{"comments":"Comments","duet":"Duet","stitch":"Stitch"},"commercial":{"disclosure":"This content promotes a brand, product, or service.","ownBrand":"Your brand","ownBrandDescription":"You are promoting yourself or your own business.","ownBrandHelp":"The post will be labelled Promotional content.","brandedContent":"Branded content","brandedContentDescription":"You are promoting another brand or a third party.","brandedContentHelp":"The post will be labelled Paid partnership.","privateConflict":"Branded content cannot use Only me privacy.","selectionRequired":"Indicate whether the post promotes your brand, a third-party brand, or both."},"musicConsent":{"prefix":"By publishing, I agree to TikTok's","musicLink":"Music Usage Confirmation","brandedContentLink":"Branded Content Policy"},"videoRequired":"Add one video URL to publish to TikTok.","sendNotice":"The transfer starts only when you click Publish. TikTok may take a few minutes to process the video and display it on the profile.","editor":{"reconfirm":"Review privacy, interactions and commercial disclosure again before saving or publishing. Previous consent is not reused.","mediaType":"Content type","video":"Video","photo":"Photos","autoMusic":"Allow TikTok to add music automatically","completeSettings":"Complete the TikTok account, media, privacy and consent checks before continuing.","saveNotice":"Saving authorizes the selected settings for the existing scheduled post. Retry and move-to-front can start processing according to the queue schedule. TikTok may take a few minutes to display the result.","saveFailed":"The changes could not be saved. The publishing action was not started.","publishFailed":"The publishing request could not be confirmed. Check the post status before retrying.","processing":"TikTok publishing requested. Processing may take a few minutes.","save":"Save TikTok settings","publish":"Publish on TikTok now","retry":"Retry TikTok post","photoPreview":"Photo {index} of {count}","photoRequired":"Choose between 1 and 35 photos."}}}},"organicPublication":{"selectBatchBrand":"Brand for the selected posters","batchBrandHelp":"This brand will apply to all {count} posters. Review the destination accounts before confirming.","title":"Confirm organic publication","description":"Review the brand and the account on each network before scheduling the post.","loading":"Checking destinations…","brand":"Brand: {name}","unnamedAccount":"Selected account","destinationBlocked":"No available destination for this brand","schedule":"The next available time from the publishing rules will be used.","replaceCount":"This will replace {count} selected pending posts.","cancel":"Cancel","confirm":"Confirm destinations and schedule","cancelled":"Publication cancelled.","busy":"A publication confirmation is already open.","planChanged":"The brand, montage or a destination has changed. Close this window and review an updated plan.","brandRequired":"Select and save a brand before publishing.","dispatchUncertain":"Dispatch could not be confirmed. You can retry this same operation without creating a new publication.","unavailable":"Publication cannot be confirmed. Check the brand and its connections.","savingBrand":"Saving brand…","existing":"{platform}: previous publication is {status}","allowRepublish":"I want to create another publication of this already published content.","existingIntention":"A pending or uncertain publication already exists. Review it in Social Hub before publishing again.","targetMissing":"No connected account for this Brand.","statusQueued":"Queued","statusScheduled":"Scheduled","statusPublishing":"Publishing","statusPublished":"Published","statusUnknown":"Outcome unconfirmed","statusCancelled":"Cancelled","statusFailed":"Failed","rulesAmbiguous":"Multiple rules target this destination. Review the rules before publishing.","targetAmbiguous":"Several accounts match: resolve the Brand assignment.","ruleMissing":"No publishing rule for this platform.","bulkResult":"Requested: {requested} · Existing: {existing} · Errors: {errors}","selectBrand":"Choose the Brand for this publication","replaceSelected":"Replace this pending publication","refresh":"Refresh plan","replacementUncertain":"Removal from the platform is unconfirmed. Review the publication before trying again.","previousBrand":"History for {name}","close":"Close","publicationDetails":"{count, plural, one {View details and destinations for # publication} other {View details and destinations for # publications}}"},"trafficDashboard":{"statisticsTabs":"Statistics source","internalTab":"ContentFlow365 traffic","googleAnalyticsTab":"Google Analytics","description":"Visits to funnels, pages and the public website, separated by source.","origin":"Traffic source","funnelsAndPages":"Funnels and pages","publicWebsite":"Public website · ContentFlow365","publicWebsiteShort":"Public website","publicNotice":"Data begins when this integration is activated and visitors consent. Forms represent contacts confirmed in CRM. Google Analytics history is not included. Time on page and bounce rate are not collected yet.","languages":"Languages","websiteLanguage":"Website section","allLanguages":"All languages","spanishSection":"Spanish · ES","englishSection":"English · EN","allPages":"All pages","pageFilter":"Filter by page","searchPages":"Search pages","searchPagesPlaceholder":"Search by title or path…","noMatchingPages":"No pages match your search.","languageViews":"{language}: {count} views","noData":"No data","campaigns":"Campaigns","campaign":"Campaign","noCampaign":"No campaign","noMedium":"No medium","sourceMedium":"Source / medium","views":"Views","contacts":"Contacts","events":"Events","eventPageView":"Page views","eventCtaClick":"Call to action clicks","eventDownload":"Downloads","eventContact":"Confirmed contacts"},"googleAnalyticsTraffic":{"openAnalytics":"Open Google Analytics","refresh":"Refresh","description":"Summary of the selected Google Analytics property, including the history it has collected. Its figures may differ from ContentFlow365 internal tracking.","property":"Google Analytics property","selectProperty":"Select property","loading":"Loading Google Analytics…","notConnected":"No Google connection is available for this account.","scopeRequired":"The Google connection does not have Analytics read access yet. Enable it in Google Ads.","reconnectRequired":"Google rejected the saved access. Review the Analytics connection in Google Ads.","adminUnavailable":"Properties could not be loaded. Check access and that Google Analytics Admin API is enabled.","propertyForbidden":"This property is not available through this account’s connection.","dataForbidden":"Google denied the reports. Check property permissions and that Analytics Data API is enabled.","invalidQuery":"Check the dates and selected property.","unavailable":"Google Analytics could not be loaded. Try again.","manageConnection":"Review Google connection","propertyLimit":"Up to 100 accessible properties are shown. Open Google Analytics to view the rest.","noProperties":"No accessible properties were found through this connection.","chooseProperty":"Choose your website’s property to view the summary.","users":"Active users","sessions":"Sessions","views":"Page views","countries":"Visitor countries","country":"Country","sources":"Traffic sources","source":"Source","medium":"Medium","referrals":"Referring domains","domain":"Source domain","topRows":"Up to {count} top results out of {total}.","noData":"No data for these dates.","limitedData":"Google indicates sampling or privacy thresholds in these reports. Open Analytics for details.","referralNotice":"Domains from session sources that Google classifies as referral traffic. Search, social networks and campaigns also appear in Traffic sources."},"xAdsPublishDestination":{"platformName":"X Ads","help":"Prepare a reusable promoted-only Post. It is hidden from your timeline but public through its URL. Selected ad groups remain paused; no advertising spend is activated.","loading":"Checking X identity and source media…","unavailable":"Connect the intended X profile and advertising account, and enable uploads before selecting this destination.","error":"Could not check X or this source media.","retry":"Check again","connect":"Open X Ads connection","identity":"Advertising identity","selectIdentity":"Select the X profile","text":"Text for X (optional override)","textPlaceholder":"Leave empty to use the prepared copy and hashtags.","textHelp":"The landing URL is included. The complete text, hashtags and link must fit the conservative 280 weighted character limit. Meta and organic copy stay independent.","characterCount":"{count} / {max} weighted characters in this override","groups":"Existing paused ad groups","prepareOnly":"Leave groups unselected to prepare the Post ID first. Select up to 20 groups to associate the same Post.","noGroups":"No compatible paused groups. You can prepare the Post and associate it later.","creativeRoleOnly":"Your role can prepare creatives; campaign association requires an advertising manager.","targetRequired":"Select the intended advertising identity.","invalidSelection":"Complete the X destination and prepared content.","textTooLong":"Adapt the full X text to 280 weighted characters, including hashtags and the landing URL.","linkInvalid":"X requires a valid HTTPS landing URL.","pending":"X is still uploading or processing the media. Check this operation again before creating another one.","uncertain":"The X result is not confirmed. Check the saved operation; completed destinations will not be repeated.","rejected":"X or source validation rejected this media. Review the operation before retrying.","successTitle":"X creative prepared","receipt":"Post ID: {id} · {count} paused groups","successMessage":"Reusable X Post prepared; selected groups remain paused.","summary":"X Ads · @{username} · {count} paused groups","prepareSummary":"X Ads · prepare reusable Post ID","variant":"Video version for X","original":"Original montage","vertical":"Vertical montage","paused":"PAUSED"},"xAdsSetup":{"organicProfileTitle":"1. Brand's organic profile","organicIdentityConfirmation":". Confirm that this profile belongs to the brand you want to advertise.","operatorAuthorization":"Authorize with the user who manages your brand's advertising account, or grant that operator access from X Ads."},"xAdsConversions":{"title":"Conversions","description":"X web event tags, pixel and Conversion API","tableLabel":"X Ads conversions","event":"Event","type":"Type","status":"Status","id":"ID","noEvents":"No conversion events are available for this account.","apiTitle":"Conversion API","apiDescription":"CAPI is included in Standard Access. Account pixel tokens are encrypted separately from Ads OAuth and organic OAuth2. A server-managed token stays private on the server.","configured":"CAPI configured for {pixelId}","notConfigured":"CAPI is not configured for this pixel yet","pixelId":"X Pixel ID","pixelHint":"Copy the Pixel ID from the event source in X Events Manager. It is different from an Event ID.","managedToken":"This pixel uses a private server-managed token. Changes to that token are managed in the deployment environment.","saveEncrypted":"Save encrypted","tokenRequired":"Enter the Pixel ID and its X-Pixel-Token.","configuredSuccess":"Conversion API configured with encrypted storage","configureFailed":"Could not configure Conversion API. Check the selected account and pixel.","eventId":"Event ID","conversionId":"Unique conversion_id","twclid":"twclid (recommended)","hashedEmail":"SHA-256 email (optional)","eventFieldsRequired":"Enter a pixel, event, conversion_id and a valid twclid or SHA-256 identifier.","confirmRealEvent":"This sends a real Conversion API event. Do you confirm consent and that these are authorized test data?","eventAccepted":"Event accepted by Conversion API","sendFailed":"The diagnostic event was not confirmed. Check its operation receipt before retrying.","sendDiagnostic":"Send diagnostic event","privacyHint":"ContentFlow never displays the token again. Diagnostics require consent and an authorized test identifier."},"xAdsCampaignUi":{"liveRead":"Live read","pausedWrites":"PAUSED writes","writesBlocked":"Writes blocked","spendAllowed":"Spending allowed","spendDisabled":"Spending blocked","refresh":"Refresh","disconnect":"Disconnect","retry":"Retry","identityBoundary":"Organic X ≠ X Ads ≠ Developer app · tokens encrypted per tenant","officialDocs":"Official documentation","disconnectError":"Could not disconnect X Ads. Check the connection before trying again.","loadingSurface":"Loading X Ads…","native":"Native","pageSubtitle":"The Meta Ads experience using the official X API","liveRange":"Live · 7 days","selectAccountHelp":"Select a ContentFlow account to manage its X Ads.","migrationPending":"X Ads migration pending","migrationHelp":"The secure X Ads infrastructure must complete the publication process before using the integration.","previewError":"Could not preview the operation. Review the fields and try again.","executeError":"Could not complete the operation. Check its status before trying again.","uploadError":"Could not upload the image to X Ads. Check the file and selected identity.","operationComplete":"X Ads operation completed","disconnectConfirm":"Disconnect X Ads and remove the tenant’s encrypted OAuth 1.0a tokens?","disconnected":"X Ads disconnected","invalidParameters":"X rejected the parameters. Review the operation fields.","roleForbidden":"The operator does not have the X permission required for this operation.","accountMismatch":"The advertising account has changed. Refresh X Ads before continuing.","identityMismatch":"The public identity does not match the authorization. Select a promotable user from this account.","notApproved":"X has not yet approved this account to enable spending.","tabs":{"dashboard":"Dashboard","campaigns":"Campaigns","comments":"Comments","funnels":"Funnels","conversions":"Pro Conversions","reports":"Pro Reports","audiences":"Audiences & Journey","settings":"Settings"},"pausedGateError":"The operation does not satisfy the PAUSED/no-spend gate","wizardAria":"New X Ads campaign wizard","newCampaignX":"New X Ads campaign","closeWizard":"Close wizard","campaign":"Campaign","adSet":"Ad Set","reviewStep":"Ad and review","campaignName":"Campaign name","funding":"Funding instrument","select":"Select…","fundingMissing":"X returned no funding instruments. Configure one at ads.x.com.","groupName":"Ad Set name","start":"Start","end":"End","endAfterStart":"The end must be after the start.","automaticBid":"Automatic","customAudience":"Custom audience","broadProspecting":"Broad prospecting","keyword":"Keyword (optional)","keywordPlaceholder":"artificial intelligence for business","keywordMatch":"Match type","broad":"Broad","exact":"Exact","phrase":"Phrase","unordered":"Unordered","existingTweet":"Promote an existing Tweet","newPromotedOnly":"Create promoted-only","tweetOptional":"Tweet ID to promote (optional)","tweetPlaceholder":"e.g. 1951234567890123456","tweetHelp":"Use an authorized organic or promoted-only Tweet. Leave this empty to create a PAUSED campaign and Ad Set, then associate the creative later.","publicIdentity":"Public ad identity","selectIdentity":"Select a promotable user…","tweetText":"Promoted-only Post text","textPlaceholder":"Ad text…","mediaLibrary":"Media Library (optional)","noMedia":"No media","uploadImage":"Upload JPG, PNG or WebP · max. 5 MB","composerRequired":"The operator needs TWEET_COMPOSER permission to create promoted-only Posts.","identityMissing":"X returned no FULL promotable user for this ad account.","chooseIdentity":"Explicitly choose the profile that signs the ad; ContentFlow does not preselect a public identity.","perDay":"/day","preview":"Preview operation","auditedPreview":"Audited preview","cancel":"Cancel","back":"Back","continue":"Continue","name":"Name","pausedCampaign":"PAUSED campaign","pausedGroup":"PAUSED Ad Set","tweetId":"Tweet ID","replaceHelp":"X does not support editing a Promoted Tweet with PUT. ContentFlow creates the new association, then removes the previous one.","newCampaign":"New campaign","newGroup":"New Ad Set","newAd":"New ad","editCampaign":"Edit campaign","editGroup":"Edit Ad Set","replaceAd":"Replace ad","hierarchyTitle":"Campaigns → Ad Sets → Ads","hierarchyHelp":"The same hierarchy and workflow as Meta Ads; X calls the Ad Set a Line Item.","hierarchyAria":"X Ads hierarchy level","fullWizard":"Full wizard","search":"Search by name or ID…","allStates":"All statuses","active":"Active","paused":"Paused","draft":"Draft","listView":"List view","galleryView":"Gallery view","pause":"Pause","clear":"Clear","entitiesAria":"X Ads entities","status":"Status","spend":"Spend","impressions":"Impressions","clicks":"Clicks","ctr":"CTR","actions":"Actions","inspect":"Inspect","edit":"Edit","delete":"Delete","empty":"No results match these filters.","inspectorAria":"X Ads inspector","closeInspector":"Close inspector","providerData":"Provider data","security":"Safety","tenantIsolation":"· Tenant: isolated by account_id","allowed":"allowed","blocked":"blocked","audited":"audited","blockedPlural":"blocked","imageAdded":"Image added to the X Ads Media Library","spendBlocked":"Spending is blocked. This entity cannot be activated.","xUser":"X user","operator":"operator","xOnly":"X only","audiencePlacement":"X + Audience Platform","dailyBudget":"Daily budget ({currency})","totalBudget":"Total budget ({currency})","bid":"Bid ({currency}, optional)","newImage":"Newly uploaded image · {mediaKey}","operatorHelp":"@{operator} authorizes management; the selected identity signs the promoted-only Post.","closeEditor":"Close {title}","editorAria":"{title} X Ads","deleteConfirm":"Delete {name} from X Ads? This action cannot be undone.","activateConfirm":"Activating {name} can start spending your budget. Continue?","campaignCount":"Campaigns ({count})","groupCount":"Ad Sets ({count})","adCount":"Ads ({count})","selectedCount":"{count, plural, one {# selected} other {# selected}}","selectRow":"Select {name}","providerEnvironment":"· Provider: X Ads API · {environment}","activation":"· Activation: {status}","writes":"· Writes: {status}","warnings":{"promotedOnlyPublic":"A promoted-only Post does not appear on the timeline, but is public by URL.","hierarchyPaused":"X Ads has no validate-only mode: ContentFlow validates the contract and creates the campaign and Ad Set in PAUSED.","associationActive":"X returns the ad association as ACTIVE; the paused campaign and Ad Set prevent delivery.","groupWithoutAd":"The Ad Set will be created without an ad until a Tweet is associated.","campaignPaused":"The campaign will be created in PAUSED and cannot incur spend.","campaignRecheck":"ContentFlow will recheck that the campaign is PAUSED before editing it.","parentsPaused":"The Ad Set and its parent campaign must remain PAUSED.","groupRecheck":"ContentFlow will recheck that the Ad Set is PAUSED before editing it.","adParentsPaused":"The ad will only be associated with a PAUSED campaign and Ad Set.","replaceAssociation":"X does not support PUT for Promoted Tweets: ContentFlow will create the replacement and remove the previous association.","replacementParents":"The parent campaign and Ad Set must remain PAUSED throughout the operation.","audienceEmpty":"The audience is created empty and X will keep it untargetable until enough matches are processed.","audienceHashes":"ContentFlow only stores and sends identifiers that have already been normalized and hashed with SHA-256.","conversionConsent":"Conversion API requires applicable consent and normalized identifiers; conversion_id prevents duplicates with the Pixel.","asyncReport":"X processes the report in the background; results may take time and the official URL expires.","activationGate":"Activation requires allow_spend to be explicitly enabled.","deleteIrreversible":"Deletion in X Ads cannot be undone from ContentFlow."},"reports":{"totalSpend":"Total spend","tableLabel":"X Ads report","title":"Pro Reports","range":"Native data · {since} → {until}","rangeLimits":"Live: 7 days · async history: 90 days","requestHistorical":"Request 90 days","campaign":"Campaign","spend":"Spend","impressions":"Impressions","clicks":"Clicks","engagements":"Engagements","conversions":"Conversions","asyncTitle":"Asynchronous historical reports","asyncHelp":"X supports up to 90 days without segmentation. Download links are shown only when they come from the official host.","download":"Download JSON.gz","processing":"Processing","failed":"Report failed","cancelled":"Report cancelled","expired":"Report expired","downloadUnavailable":"Report completed; download unavailable","unknown":"Report status unavailable","emptyJobs":"No historical reports yet.","requested":"{count, plural, one {# historical report requested from X} other {# historical reports requested from X}}","requestFailed":"Could not finish requesting reports. Check the saved operations before trying again."}},"xAdsCampaignSafety":{"wizardSubtitle":"Campaign and ad group PAUSED · no ad delivery","campaignBudget":"ContentFlow creates the campaign and ad group in PAUSED. The budget is configured but cannot be spent until spending is enabled and the campaign is manually activated.","review":"Will create {campaigns} campaign, {groups} ad group and {ads} ad. Campaign and ad group: {status}.","createWithoutActivation":"Create without activating campaign","adSuccess":"{title} completed with campaign and ad group paused","entitySuccess":"{title} completed in PAUSED","adSubtitle":"Association under PAUSED campaign and ad group","entitySubtitle":"Campaign workflow · PAUSED status enforced","adNoSpend":"No spend: the campaign and ad group remain paused. X may show the ad association as ACTIVE; that status does not activate its campaign or ad group.","entityNoSpend":"No spend: the resource is checked in X before writing and stays PAUSED when created or changed.","associatePaused":"Associate with paused group","replacePaused":"Replace under paused group","createPaused":"Create in PAUSED","savePaused":"Save in PAUSED","audiencePlatformLabel":"Expand to X Audience Platform","audiencePlatformHelp":"Choose the advertiser domain and official IAB categories. Review inventory and brand safety before activation.","advertiserDomainLabel":"Advertiser domain","advertiserDomainPlaceholder":"example.com","iabCategoriesLabel":"Advertiser IAB categories","iabCategoriesHelp":"Select one or more categories that describe the advertiser. Use Command or Control to select multiple options.","iabCategoriesUnavailable":"The official IAB category list is unavailable. Refresh X Ads before continuing with Audience Platform.","primaryEventLabel":"Primary conversion event","primaryEventPlaceholder":"Select an event from this X Ads account…","primaryEventHelp":"X requires a primary event for website conversion campaigns. Create it in Events Manager if it is missing; choosing it does not verify the Pixel or enable spending.","objectiveLabel":"Objective","androidAppLabel":"Google Play ID","androidAppPlaceholder":"com.example.app","iosAppLabel":"Apple App Store ID","iosAppPlaceholder":"123456789","appIdentifierHelp":"App objectives require at least one identifier: a Google Play package or a numeric App Store ID. Check that it belongs to the app you want to promote.","objectives":{"websiteConversions":"Website conversions","websiteClicks":"Website traffic","engagements":"Engagements","reach":"Reach","videoViews":"Video views","followers":"Followers","appInstalls":"App installs","appEngagements":"App engagement"}},"avatarVBudget":{"back":"Back to settings","title":"Avatar V delegated budget","description":"Allow a specific OAuth client to create avatars within a credit and operation limit. You can revoke the grant at any time; work already started keeps its reservation.","selectAccount":"Select an account to manage these grants.","newGrant":"New grant","account":"Account","clientId":"OAuth client ID","grantId":"Grant ID","maxCredits":"Maximum credits","maxOperations":"Maximum avatars","hours":"Duration in hours (maximum 24)","review":"Review grant","reviewText":"You authorize client {clientId} to reserve up to {credits} credits across {operations} avatars for this account over {hours} hours.","approve":"Grant access","cancel":"Cancel","issued":"Grant ID: copy it to your MCP client to start the work","existing":"Previous grants","none":"No grants yet.","usage":"{used} of {max} credits; {operationsUsed} of {operationsMax} avatars","expires":"Expires","revoked":"Revoked","expired":"Expired","revoke":"Revoke","currentPrice":"Current price per avatar: {credits} credits. Granting this permission does not start a generation.","pending":"An approval is awaiting confirmation. Recover its result before preparing another.","pendingDetails":"Client {clientId}: up to {credits} credits and {operations} avatars. Expires: {expires}.","approvalRequestId":"Request ID","notRecorded":"No approval is recorded for this request yet. You can check again or resubmit exactly the same approval.","recover":"Check original approval","retryOriginal":"Resubmit the same approval","recordedGrant":"Approval recorded. Check the current grant status below","expiredAbsent":"The original request has expired and has no recorded approval. You can review a new grant.","storageError":"This browser cannot safely save or recover the request. Another approval cannot be sent until its state can be preserved.","conflictError":"The request does not match the original approval. Its identifier is preserved; no additional grant will be created.","expiryError":"The request has expired or exceeds 24 hours. Check its original result before preparing another.","clientError":"The OAuth client is unavailable for this grant. Check the original request before preparing another.","uncertainError":"The result could not be confirmed. The original request is preserved for recovery.","unavailableError":"The operation could not be completed. If a request is pending, check its result before sending another.","loading":"Loading grants…","listError":"Current grants could not be loaded. The list does not confirm the outcome of a pending approval."},"crmDealChat":{"requestFailed":"The request could not be completed. Your text is preserved so you can try again."},"creditTransfer":{"title":"Assign credits to {name}","close":"Close","storageUnavailable":"Pending transfers cannot be recovered. Check this browser's storage before continuing.","attemptChanged":"This pending transfer changed in another tab. Refresh balances before preparing another transfer.","confirmationUnavailable":"This transfer's confirmation cannot be recovered or saved. Keep the pending reference and check the result before preparing another operation.","pendingHelp":"Some transfers are awaiting confirmation. Review one to recover its result using the same reference.","review":"Review {amount, number} cr from {name}","unavailableCompany":"unavailable company","unnamedCompany":"unnamed company","noSource":"There is no other company available in this group to transfer credits.","from":"From","amount":"Amount (cr)","sourceBalance":"{name} ({balance, number} cr)","available":"Available: {balance, number} cr","retry":"Check or retry pending transfer","transfer":"Transfer","prepareAnother":"Prepare another transfer"},"trainingWeekEmails":{"reviewHelp":"Review every edition email: invitation, preparation, welcome, Directos and any offer. Give each email a purpose, useful context and a clear next step.","operationalTitle":"Welcome and Directos for this edition","operationalHelp":"Review each day’s program before writing. One Directos sequence combines three emails per day: program and FOMO at 10:00 in the event timezone, a reminder one hour before, and a short notice five minutes before. No automatic follow-up email. The schedule controls timing and recipients.","welcome":"Welcome","session":"Session {number}","reminder":"Reminder {number}","followUp":"Follow-up and exercise","subject":"Subject","body":"Email text"},"calendarGhlBinding":{"open":"Link GoHighLevel calendar","help":"Select an active calendar from the connected subaccount. This only saves its binding in ContentFlow; it does not activate bookings or create appointments.","loading":"Loading calendars…","calendar":"GoHighLevel calendar","choose":"Select a calendar","empty":"No active calendars are available in this subaccount.","error":"The selection could not be loaded. Check the connection and reload.","uncertain":"The result is unconfirmed. Retain this request and check its outcome; do not save again with a different identifier.","saved":"Binding saved. Bookings still require activation and validation.","more":"Load more calendars","original":"Original request: {id}","recover":"Check original request","reload":"Reload","save":"Save binding"},"websiteFunnels":{"paymentLinks":{"title":"Measurement for existing payment links","description":"Bind the Stripe link you already use to the offer page. This enables its measurement context while preserving the link, prices and payment access. Conversion acceptance is verified separately.","noPages":"First add an offer or checkout page to this campaign.","page":"Offer page","refresh":"Check status","loading":"Checking…","empty":"This page has no linked payment links yet.","live":"Live payment","test":"Test","enabled":"Measurement enabled","disabled":"Measurement disabled","prices":"Verified prices: {count}","disable":"Disable measurement","linkId":"Existing Stripe Payment Link ID","linkIdPlaceholder":"plink_…","alreadyEnabled":"This link is already bound and enabled.","bind":"Verify and bind link","saving":"Saving…","forbidden":"You do not have permission to manage this binding in the selected account.","loadFailed":"The binding could not be loaded. Check that this account has a supported Stripe connection and check again.","conflict":"The page, link or revision does not match. Check the current state before saving again.","uncertain":"The outcome could not be confirmed. Check the current state before repeating; the payment link still works."},"metadataTitle":"CF - Funnels","scheduleContract":{"title":"Required page · Times in your country","badge":"Funnel contract"},"webinarExpansion":{"retainedRelease":"Reconcile the inventory for page {page}: {previous} → {next}. Reviewed SHA256: {hash}. Keep the current publication.","title":"Update a webinar edition","description":"Review a campaign context, page, tag or email update document before applying it to the selected account.","contextPrevious":"Context saved in the edition","contextNext":"Campaign context to adopt","contextWarning":"Check both texts. The new text must match this campaign’s current description. This operation updates the edition context; it preserves pages, emails, schedules and sends.","contextSuccess":"Context updated. Pages, emails and sequence states have been preserved.","account":"Selected account: {account}","document":"Update document (JSON)","review":"Review update","working":"Checking…","accountMismatch":"The document belongs to another account. Select its account before continuing.","forbidden":"Your session does not have permission to apply this update in the selected account.","unavailable":"The edition could not be loaded. Retry the review.","invalid":"The document is invalid or exceeds the size limit. Review its fields.","conflict":"The edition, its links or its pages have changed. Check the installation and prepare a new review before continuing.","uncertain":"The result cannot be confirmed. Retry this same document to recover the operation without duplicates.","success":"Expansion saved. Added pages belong to the edition; replay and offer access follows their availability windows.","summary":"Preserving {retained} pages and adding {added}.","page":"{key} · Avatar: {avatar} · Release: {release} · SHA256: {hash}","reviewWarning":"Confirm that you reviewed the content and links of these releases in the publisher. Identifiers and hashes alone do not verify copy or design.","apply":"Confirm review and apply changes","retry":"Retry the same document","registeredTag":"Registration: {previous} → {next}","buyerTag":"Purchase: {previous} → {next}","tagWarning":"Migration requires all seven sequences to be paused. It updates the owned tags and audiences in ContentFlow but does not synchronize Go High Level. Reconcile contacts, triggers and bot filters in GHL before resuming.","tagSuccess":"Tags updated in ContentFlow. Contacts, triggers and bot filters still need to be reconciled in Go High Level before resuming the funnel.","emailSummary":"Reviewing {count} emails. Edition timezone: {timezone}.","emailDate":"Scheduled send: {date}","onEnrollment":"Send immediately on sequence enrollment.","datePending":"Send date still needs to be configured.","htmlRelease":"Page: {page} · Release: {release} · SHA256: {hash}","emailWarning":"Check the complete copy and dates. A review matching the saved emails preserves their active or paused state. Timing changes require the affected sequences to be paused. This operation does not send emails or catch up on past dates.","emailSuccess":"Cadence and copy saved. Matching sequences retain their state; sequences with timing changes remain paused. No emails have been sent or resent."},"webinarInstall":{"title":"Prepare a webinar edition","description":"Load the reviewed contract for this edition, check its details and save it to the selected account. Sequences remain paused and new pages remain drafts. Published pages adopted by the contract keep their publication.","file":"Webinar contract file","document":"Edition contract (JSON)","review":"Review contract","invalid":"The file does not contain a valid webinar contract or exceeds the size limit. Review the fields and load it again.","forbidden":"Your session does not have permission to install this contract in the selected account. Check the account and access before retrying.","conflict":"The edition or its pages have changed. Review the existing installation before attempting another operation.","uncertain":"The complete installation could not be confirmed. You can retry with this same contract: its installation key is preserved to recover the work without duplicates.","success":"Edition saved with seven sequences and 25 paused emails. Review links, page drafts and deliveries before activating the funnel.","summary":"7 sequences · 25 paused emails · general HTML pages","identity":"Persona: {persona} · Content language: {language}","inherited":"campaign or account setting","saving":"Saving edition…","retry":"Retry this same edition","install":"Save edition and drafts"},"challengePages":{"title":"Prepare challenge pages","description":"Use a reviewed document for an existing campaign to prepare registration, confirmation and schedule pages. Keep the same identities when retrying. This does not create a campaign or sequences, publish or send messages.","document":"Challenge pages document (JSON)","review":"Review pages","prepare":"Prepare three drafts","preparing":"Preparing…","retry":"Retry the same document","summary":"{count} sessions. Three draft HTML pages will be prepared.","invalid":"Review the document, its pages and the selected account.","forbidden":"You do not have permission to prepare these pages.","conflict":"The data or an existing page has changed. Review the installation before continuing.","uncertain":"Preparation could not be confirmed. Keep this document and retry with the same identities.","success":"Three drafts prepared. Review the pages before publishing.","needsReview":"Preparation processed. Blocked or manually edited versions need review; they have not been replaced or published."},"challengeEdition":{"title":"Create a challenge edition","description":"Prepare a new campaign, paused sequences and three HTML pages. Keep the same key and document to recover an attempt. Review remaining resources and publication separately.","document":"Challenge edition document (JSON)","review":"Review edition","prepare":"Prepare campaign and drafts","preparing":"Preparing…","retry":"Retry the same document","summary":"{count} sessions. Three draft HTML pages will be prepared.","invalid":"Review the document, its pages and the selected account.","forbidden":"You do not have permission to prepare these pages.","conflict":"The data or an existing page has changed. Review the installation before continuing.","uncertain":"Preparation could not be confirmed. Keep this document and retry with the same identities.","success":"Campaign and drafts prepared. Review sequences and pages; nothing has been published or sent.","needsReview":"Preparation processed. Blocked or manually edited versions need review; they have not been replaced or published."}},"campaignNavigator":{"all":"All campaigns","allDescription":"Show all records","change":"Change campaign","description":"Choose a campaign by its image and name.","empty":"No campaigns","current":"Current","select":"Select a campaign","statusPlanned":"Planned","statusRunning":"Running","statusFinished":"Finished","statusDraft":"Draft"},"adsTrendCharts":{"noData":"no data"},"adsCampaignLinks":{"link":"Link","linkTitle":"Link app campaigns with {platform} campaigns","modalTitle":"Link campaigns","modalDescription":"Associate an app campaign with {platform} campaigns, so you can filter {platform} by the app campaign you are working on.","appCampaign":"App campaign","selectAppCampaign":"Select a campaign…","platformCampaigns":"Linked {platform} campaigns","noPlatformCampaigns":"No {platform} campaigns available.","selectedCount":"{count, plural, one {# {platform} campaign selected} other {# {platform} campaigns selected}}","cancel":"Cancel","save":"Save","saving":"Saving…","close":"Close","saved":"Links saved","schemaPending":"{platform} campaign linking is not enabled yet.","saveFailed":"The links could not be saved. Please try again.","filterEmpty":"“{name}” has no linked {platform} campaigns. Click Link to associate them.","searchPlaceholder":"Search by name or ID…","typeFilter":"Campaign type","allTypes":"All types","costRange":"Cost period","statusFilter":"Status","status":{"all":"All","active":"Active","paused":"Paused","removed":"Removed"},"shownCount":"{shown} of {total}","noMatches":"No campaign matches the filters.","cost":"Cost","costTitle":"Cost in the selected period","startedSince":"Started since","startedOn":"Started {date}"},"adsPlatformNav":{"aria":"Ad platforms","goTo":"Go to {platform}","current":"You are in {platform}","inactive":"{platform} is not activated yet. Connect it from the left menu."},"leadMagnetVersions":{"open":"Versions","title":"Versions of “{title}”","description":"A version is saved each time the guide is written with AI or edited from the chat. The published one is the downloadable PDF; publishing another remakes the PDF at no cost.","loading":"Loading versions…","empty":"This guide has no versions yet. Write it with AI or ask for a change from the chat.","errorGeneric":"It could not be completed. Try again.","errorChanged":"The guide changed in the meantime. Open the versions again.","errorPreview":"The preview expired. Open this version again.","version":"Version {version}","published":"Published","sourceGenerated":"Written with AI","sourceEdited":"Edited","pdfPending":"Making the PDF of version {version}. The download link does not change.","previewTitle":"Preview of version {version}","confirmPublish":"Publish version {version}? Its PDF replaces the current one at the same link.","confirmRollback":"Restore version {version}? Its PDF replaces the current one at the same link.","cancel":"Cancel","confirm":"Yes, publish","publish":"Publish this version","rollback":"Restore this version"},"features":{"createApp":{"title":"Create App","intro":"Turn your offer into an app for your client with GoHighLevel AI Studio. Define the product, generate the Super Prompt and paste it into your GHL subaccount.","idea":"Idea","rolesStep":"Roles","logic":"Logic","product":"Product","scope":"Scope","result":"Super Prompt","step1":"1. Idea and outcome","step2":"2. Users, roles and isolation","step3":"3. How value is created","step4":"4. Product map","step5":"5. Offer, limits and security","step6":"6. Your Super Prompt for AI Studio","template":"What kind of app do you want to create?","template_client_portal":"Client portal","template_operations":"Internal operations","template_crm":"CRM and pipeline","template_membership":"Membership or training","template_blank":"From scratch","desc_client_portal":"Diagnosis, plan, deliverables and tracking for one client.","desc_operations":"Processes, tasks and approvals for a team.","desc_crm":"Extend contacts and opportunities in GHL CRM.","desc_membership":"Content, progress and tier-based access.","desc_blank":"Define a product from a minimal structure.","appName":"Working name","targetAudience":"Who will use it?","problem":"What specific problem does it solve?","outcome":"What outcome should the user achieve?","roles":"Roles","automationDetails":"How is the main result created?","approvalRole":"Who reviews or approves before publishing?","coreEntities":"Information to store","screens":"Main screens","primaryFlow":"Main journey from start to finish","notifications":"Notifications","metrics":"Useful metrics","integrations":"Additional integrations (optional)","entryTier":"Included offer or tier","upgradeTier":"Upgrade tier (optional)","upgradeBenefits":"What does the upgrade unlock?","privacyNotes":"Privacy and sensitive data","acceptanceCriteria":"Additional acceptance criteria","outOfScope":"Out of scope","single":"One client company","multi":"Multiple isolated workspaces","isolationHint":"A GHL subaccount does not replace app permissions. Every read, write and file must validate session, role and data scope on the server.","automatic":"Automatic","hybrid":"Hybrid with human review","human":"Managed by a person","options":"GoHighLevel capabilities","optionsHint":"Cloud stores app-specific data. CRM manages contacts, opportunities and calendars. App users are separate from GHL staff and contacts.","crmCapture":"Lead capture form connected to CRM","syncAppRegistrations":"Sync app registrations with CRM contacts","calendar":"GHL calendar","workflows":"GHL workflows","fileStorage":"Private files in Cloud Storage","payments":"GHL catalog and checkout","promptLanguage":"Prompt and app language","es":"Spanish","en":"English","previous":"Previous","next":"Continue","review":"Review from the start","generate":"Analyze and generate with AI","answer":"Answer and generate","regenerate":"Regenerate","recover":"Check and recover the same operation","copy":"Copy Super Prompt","copied":"Copied","download":"Download .md","open":"Open AI Studio","saved":"Draft saved in this browser","saving":"Saving draft…","brief":"Product brief","required":"Complete the field: {field}.","destination":"App destination","destinationReady":"Your app will be built in the {name} subaccount. Open AI Studio from here to continue.","destinationNotReady":"The GHL subaccount is not ready yet. You can prepare the prompt and review access in CRM.","destinationReview":"There is a subaccount conflict. Review the CRM connection before opening AI Studio.","crmAccess":"Review CRM access","costInfo":"GHL subaccount access is included according to your plan. AI Studio may consume credits and additional Cloud resources; review its limits before building.","setup":"GHL configuration and testing","instructions":"Copy the prompt, open AI Studio in the indicated subaccount and create a new project. Paste the document into the chat. Configure only the selected capabilities, test the flow and review pending items before publishing. AI Studio lets you export the code ZIP from Code.","privacy":"Build your app in GoHighLevel AI Studio","handoffCopy":"Generate your Super Prompt and click Copy prompt.","handoffOpen":"Click Open AI Studio to enter your GoHighLevel subaccount and create a new project.","handoffPaste":"Paste the Super Prompt into the AI Studio chat and send it to build your app.","handoffTest":"Test the app and request any changes you need before publishing. You can also download its code as a ZIP from Code.","migrated":"Your previous brief is ready to adapt to GoHighLevel. Migration has not generated anything or charged credits.","legacy":"Base44 history — reference only","legacyHint":"This result preserves its original content. Generate a new AI Studio prompt with the usual confirmation.","decisions":"Included decisions","assumptions":"Assumptions to review","questions":"Pending decisions (up to three)","balance":"Available balance: {balance} cr. Maximum reserve per call: {reserve} cr.","balanceUnavailable":"Balance unavailable. Refresh before confirming a new generation.","refresh":"Refresh balance","billing":"Reserved: {reserved} cr · charged: {charged} cr · refunded: {refunded} cr.","fallbackBilling":"The cost could not be reconciled; the indicated reserve is retained.","capBilling":"The charge was capped at the reserve and recorded for review.","reserveHint":"Each call is confirmed and settled separately. Unused credits are returned after settlement. Pending results are recovered with the same operation without starting another generation.","pending":"Generation is still in progress.","pendingAuto":"We are checking the result automatically. This may take a few minutes. We keep the same operation to avoid duplicate generation and charges.","pendingDelayed":"This is taking longer than usual. Use the button to check the result; we will recover the same operation without starting a new generation.","loading":"Preparing Create App…","error":"The operation could not be completed. The attempt is retained so you can check it without repeating the spend.","loadError":"Create App could not load or verify the account.","copyError":"Copy failed. Download the document.","insufficient":"Insufficient credits: you have {balance} and need {needed}.","planError":"Create App is available from Pro. Review this account’s plan.","planUnavailable":"No valid plan is associated with this account. Review its configuration; Create App is available from Pro.","budgetError":"Generation is unavailable: this account lacks a current provider budget. No spend has started.","retry":"Retry loading","library":"View in Library","documents":"My apps","documentsHint":"Each card saves the complete form and its Super Prompt. Open it to review any of the six steps or continue in AI Studio.","newApp":"Create another app","newAppDraftConfirm":"You are about to start another app and discard pending changes in this form. Continue?","openApp":"Open app","appLinks":"Your app links","appLinksHint":"After creating your AI Studio project, paste its editor link here and, once published, its public URL. Both are optional and saving them uses no credits.","editUrl":"AI Studio editor URL (optional)","publicUrl":"Published app URL (optional)","saveAppLinks":"Save links","linksSaved":"Links saved.","editApp":"Edit in AI Studio","viewApp":"View app","linkInvalid":"Enter a valid HTTPS URL without a username or password.","linkAccountError":"The editor link must open an AI Studio project in the subaccount linked to this account.","linkDestinationError":"Review the subaccount connection in CRM before saving its editor link.","linkSaveError":"The links could not be saved. Your inputs are retained so you can retry.","appReady":"Super Prompt ready","loadingApps":"Loading your apps…","documentsError":"The app list could not load. Your form and saved results are retained.","moreApps":"View more apps","noDocuments":"Your apps will appear here after generating their Super Prompt. You can create as many as you need.","confirmSending":"Generating…","confirmReserve":"Confirm: {cost} cr will be reserved · click again","confirmFixed":"Confirm ({cost} cr) · click again","confirmInsufficient":"No credits · you have {balance}, need {needed}","confirmError":"Error · click to retry","confirmIdleReserve":"{label} · reserve {cost} cr","confirmIdleFixed":"{label} ({cost} cr)","confirmReserveHint":"{cost} credits are reserved; unused credits are returned after settlement.","confirmFixedHint":"This action deducts {cost} credits from your balance.","studioBadge":"Agency Flow · GoHighLevel AI Studio","studioName":"GoHighLevel AI Studio"},"zernioCosts":{"title":"Observed Zernio costs","description":"Provider-reported amounts. Complete readings enter the infrastructure total; global discounts and estimated tax remain separate.","refresh":"Import current usage","refreshing":"Importing…","retry":"Recover attempt","retryNotice":"The result has not been confirmed. Recover this attempt before starting another import.","unavailable":"Zernio costs are unavailable.","noData":"No usage observations yet. The cost is unknown.","unsupported":"This account's billing does not support usage observations. The cost is unknown.","restricted":"Restricted reading. These amounts are excluded from global infrastructure costs.","complete":"Complete reading of the billing cycle.","observedAt":"Observed: {time}","net":"Net cycle usage","unattributed":"Amount not attributed to an account","tax":"Estimated tax (excluded from total)","unknown":"Unknown","accounts":"{count, plural, one {# account with provider attribution} other {# accounts with provider attribution}}","providerAccount":"Provider account","client":"Client ID","brand":"Brand ID","amount":"Net usage","limited":"Showing {count} of {total} accounts. The admin API returns the full attribution.","infrastructureUnavailable":"Infrastructure costs are unavailable for this session."},"metaAdsCampaignCommands":{"denied":"Current account and Brand consent is required.","create":"Create one paused Meta campaign through its admitted provider. Requires explicit create_paused_campaign confirmation and a stable mutation UUID. Campaign-level budgets use exact currency-major strings; the server resolves currency and precision. No activation, ad sets, ads or fallback after uncertainty. Rollout remains closed until validated. Show the budget and currency before requesting confirmation. expectedCurrency must match the server-retained currency; it cannot override evidence.","status":"Read the original owned Meta campaign operation and historical readback. Uses its operation UUID, never a native campaign ID. No provider call or recreation; uncertainty remains visible.","verify":"Read back the exact Meta campaign ID acknowledged by an owned operation and persist a historical comparison. Requires current read consent. Does not create, activate or retry a campaign.","operationTitle":"Campaign operation","operationRefresh":"Refresh status","operationVerify":"Check in Meta","operationLoading":"Checking…","operationDenied":"Access to this operation is no longer available.","operationClosed":"Campaign operations are not enabled yet.","operationUnavailable":"This operation cannot be checked right now.","operationCampaign":"Campaign {id}","operationChecked":"Historical check: {date}","operationConfigured":"Configured status","operationEffective":"Effective status","operationDaily":"Daily budget","operationLifetime":"Lifetime budget","operationUnknown":"Unknown","operationReadbackPending":"Creation is acknowledged. Its current state has not been checked yet.","operationConflicts":"Differences: {fields}","operationMissing":"Unverified fields: {fields}","outcomes":{"acknowledged":"Creation acknowledged","uncertain":"Result uncertain. This operation will not be repeated.","failed":"The provider rejected creation.","not_dispatched":"Creation was not dispatched."},"readback":{"verified":"The checked fields match the original request.","conflict":"The checked fields differ from the original request.","incomplete":"The check is incomplete."},"fields":{"identity":"account and campaign","name":"name","configuredStatus":"configured status","objective":"objective","buyingType":"buying type","specialAdCategories":"special ad categories","dailyBudgetMinor":"daily budget","lifetimeBudgetMinor":"lifetime budget","bidStrategy":"bid strategy"},"lookup":"Recover an owned operation by the original mutation UUID after a lost response. Local receipt lookup only, with current read consent; never create, rearm, retry or call the provider. An unavailable result does not prove that no effect occurred.","creationTitle":"Create a paused campaign","creationDescription":"Creates the campaign shell. Ad sets, ads and activation are separate steps.","creationName":"Campaign name","creationGoal":"Goal","creationLevel":"Budget level","creationCampaignBudget":"Campaign","creationAdsetBudget":"Ad set","creationCurrency":"Account currency (ISO code)","creationBudgetType":"Budget type","creationDaily":"Daily","creationLifetime":"Lifetime","creationAmount":"Amount","creationDecimal":"Use a decimal point. The server checks the account currency and its precision.","creationAdsetNotice":"No campaign budget. Set budgets when adding ad sets; budget sharing is not configured here.","creationCategories":"Special ad categories","creationSummary":"Paused · {amount} {currency} · {period}","creationConfirm":"I confirm this budget and currency for a paused campaign.","creationSubmit":"Create paused","creationPending":"Checking the original operation…","creationRetained":"An attempt is saved. Check it before starting another.","creationRecover":"Recover original attempt","creationNew":"New campaign","creationIssues":{"storage":"The saved attempt cannot be updated safely in this browser. Creation is blocked.","invalid":"Check the name, budget and currency before confirming.","unavailable":"The original result is unconfirmed. Recover the saved attempt; it will not be sent again.","currency":"The currency differs from the account evidence. Check the saved attempt before continuing.","cancel_pending":"This attempt cannot be cancelled yet. Check its status."},"goals":{"awareness":"Awareness","traffic":"Traffic","engagement":"Engagement","conversions":"Sales","lead_generation":"Lead generation","lead_conversion":"Lead conversion"},"categories":{"HOUSING":"Housing","EMPLOYMENT":"Employment","CREDIT":"Credit","ISSUES_ELECTIONS_POLITICS":"Social issues, elections or politics","FINANCIAL_PRODUCTS_SERVICES":"Financial products and services","ONLINE_GAMBLING_AND_GAMING":"Online gambling and gaming"},"cancel":"Cancel an owned campaign mutation only before dispatch. Requires explicit cancel_unsubmitted_campaign confirmation and its original mutation UUID, Brand and asset. Persists a terminal fence; never cancels armed or uncertain provider effects. A cancellation receipt permits a fresh explicit attempt; absence or an unavailable result does not.","creationCancel":"Cancel attempt","creationCancelled":"Attempt cancelled. You can prepare another campaign."},"crmGoogleCalendar":{"card":{"pendingTitle":"Connect Google Calendar","pendingBody":"Connect it in the Connections tab to use your calendars, availability and events.","description":"Connect your Google Calendar to view calendars, availability and events.","descriptionViaGhl":"Your bookings are managed from GoHighLevel. You can also connect Google Calendar directly.","note":"Direct connection with your Google account.","noteViaGhl":"Calendar operated through GoHighLevel.","noteViaGhlConnected":"Calendar operated through GoHighLevel. The direct connection is also active.","connect":"Connect Google Calendar","validate":"Validate connection","unavailable":"Not available","validated":"Direct Google Calendar connection validated."},"panel":{"title":"Google Calendar","description":"View your calendars and availability, and manage events from ContentFlow365.","refresh":"Refresh","disconnect":"Disconnect","disconnectConfirm":"Disconnect Google Calendar from this account?","loading":"Loading Google Calendar…","calendar":"Calendar","primary":"Primary","busyBlocks":"Busy blocks · 7 days","upcomingEvents":"Upcoming events","createTitle":"Create event","createHelp":"No attendees are added and no notifications are sent.","eventTitle":"Title","start":"Start","duration":"Duration","create":"Create","open":"Open","edit":"Edit","editPrompt":"New event title","delete":"Delete","manageHelp":"Only events created from ContentFlow365 can be edited or deleted.","empty":"No events in the next seven days.","allDay":"All day","errors":{"open":"Google Calendar could not be opened","action":"The action could not be completed","disconnect":"Google Calendar could not be disconnected"}}},"zernioConnection":{"title":"Instagram · Comment GUIDE","description":"Connect this account to deliver your guide from ContentFlow. The social network will display the provider during consent and then return you here.","monthlyCap":"Approved infrastructure limit: {amount} USD per connection per month.","costDetail":"This is an infrastructure reservation. Final cost is reconciled against provider billing; a connection may keep costing money even when it sends no messages.","accept":"I have reviewed this limit and want to start the connection.","connect":"Connect for Comment GUIDE","connecting":"Opening consent…","paused":"Connection saved. Automation remains paused until its permissions are verified.","active":"Account connected. Activate the recipe separately.","reconcile":"A connection is awaiting verification. Do not start another attempt; check its status with support.","failed":"The connection could not be confirmed. Refresh its status before trying again.","contextUnavailable":"The connection could not be checked.","toolDescription":"Reads an Instagram comment connection for an authorized Brand, current approved cap, saved duration and exit status. Returns the human link to review costs and start OAuth. Does not accept consent, connect or disconnect accounts, or send messages. An acknowledged exit does not prove billing stopped.","toolDenied":"Instagram connection is unavailable for this user and Brand.","metaAdsTitle":"Connect Meta Ads","metaAdsDescription":"Review this connection and its cost. Facebook shows the provider during consent and returns you to ContentFlow. Connecting does not enable advertising.","metaAdsSelection":"Ad account: {account}. Page: {page}.","metaAdsPermissionAdvertise":"Requested permission: advertising.","metaAdsPermissionFull":"Requested permission: full management.","metaAdsPaused":"Connection saved and paused. Each advertising operation still requires verification.","metaAdsConnect":"Connect Meta Ads","metaAdsToolDescription":"Read authorized Meta Ads connection readiness, selected account/Page and the approved reservation for the connection only (costCoverage: connection_only). Syncing active or in-review ads may add costs shared across the team; this reservation does not cap the total invoice or prove that a paused connection stops billing. Returns a ContentFlow link for a human to review cost and consent. Does not start OAuth, reserve spend, allocate connections or create/activate ads.","metaAdsToolDenied":"Meta Ads connection is unavailable for this user and Brand.","metaAdsMonthlyCap":"Approved reservation for the connection only: {amount} USD per connection per month.","metaAdsCostDetail":"This limit does not cover ads synced by the provider or cap its total invoice. Actual amounts are reconciled against provider billing.","metaAdsManagedCosts":"Synced active or in-review ads, including existing ads, may add costs shared across the whole team. Pausing the connection in ContentFlow does not prove that provider billing has stopped.","metaAdsAccept":"I have reviewed the connection reservation and possible additional costs and want to start the connection.","metaAdsReadToolDenied":"Meta Ads read is unavailable for this original user, token and Brand.","metaAdsReadAccountTool":"Read the explicitly selected Brand and Ads asset account through its eligible capability route. Returns exact native account fields or unavailable. Requires brand:read and metrics:read. Does not connect accounts, sync ads, accept spend or change campaigns.","metaAdsReadCampaignsTool":"Read one page of campaigns for the explicitly selected Brand and Ads asset. Uses the exact eligible source and encrypted cursor; returns native status, exact integer budgets in currency_minor and live freshness. Missing values remain null. Requires brand:read and metrics:read. Does not sync ads or write.","metaAdsReadInsightsTool":"Read campaign-level insights for an explicit Brand/Ads asset and ordered range of at most 730 days. Decimal strings/actions remain exact; currency is unknown and reach is not additive. Use only the returned encrypted cursor with the same range and limit. Requires brand:read and metrics:read. No ad sync or writes.","metaAdsReadTitle":"Ad account overview","metaAdsReadDescription":"Read the selected account, campaigns or statistics through its verified connection.","metaAdsReadAccount":"Account","metaAdsReadCampaigns":"Campaigns","metaAdsReadInsights":"Statistics","metaAdsReadLoading":"Checking the connection…","metaAdsReadUnavailable":"This query is not available for the selected account and permissions.","metaAdsReadFailed":"The query could not be completed.","metaAdsReadRefresh":"Refresh","metaAdsReadNext":"Next page","metaAdsReadFirst":"First page","metaAdsReadEmpty":"No results for this query.","metaAdsReadUnknown":"Unknown","metaAdsReadFrom":"From","metaAdsReadTo":"To","metaAdsReadApply":"Apply dates","metaAdsReadRangeInvalid":"Choose an ordered range of at most 730 days.","metaAdsReadName":"Name","metaAdsReadStatus":"Status","metaAdsReadCurrency":"Currency","metaAdsReadTimezone":"Time zone","metaAdsReadDailyBudget":"Daily budget (minor currency units)","metaAdsReadLifetimeBudget":"Lifetime budget (minor currency units)","metaAdsReadRemainingBudget":"Remaining budget (minor currency units)","metaAdsReadSpend":"Spend (currency unknown)","metaAdsReadImpressions":"Impressions","metaAdsReadClicks":"Clicks","metaAdsReadReach":"Reach","metaAdsReadActions":"Actions","metaAdsReadActionValues":"Action values","metaAdsReadRetrieved":"Retrieved: {time}","metaAdsReadExact":"Unknown values remain unknown. Reach cannot be added across campaigns. Budgets retain the original minor currency units.","metaAdsReadLimit":"Results per page","metaAdsAssetsTool":"List locally configured Meta Ads assets for an authorized Brand. Returns asset IDs for account, campaign and statistics queries. Configuration alone does not prove provider permission or availability. No connection allocation, provider API, ad sync, spend or advertising writes.","metaAdsAssetsBrand":"Brand","metaAdsAssetsChooseBrand":"Choose a brand","metaAdsAssetsChoose":"Choose an ad account","metaAdsAssetsEmpty":"No Meta Ads assets are configured for this brand.","metaAdsAssetsDescription":"Select a registered ad account. Each query checks its current connection and permissions separately.","metaAdsAssetsMore":"Next page of ad accounts","metaAdsAssetsTitle":"Ad account selection","setupDescription":"Prepare the connection, then authorize Instagram.","setupPrepare":"Prepare Instagram","setupPreparing":"Preparing…","setupPending":"We are checking the connection setup.","setupCheck":"Check status","setupFailed":"The connection could not be prepared. Contact support.","setupIdentityRequired":"Associate an Instagram account with this brand.","setupConfigurationPending":"This connection still needs to be configured.","chatGptAdsContextTool":"Read ChatGPT Ads connection state and the current Zernio connection quote for an authorized Brand and asset. Does not connect, share keys, activate campaigns or reserve costs.","chatGptAdsContextDenied":"ChatGPT Ads connection context is unavailable for this authorization.","chatGptLoading":"Loading connection…","chatGptContextError":"Connection details are unavailable. Check the selected account and Brand.","chatGptConnectTitle":"ChatGPT Ads connection through Zernio","chatGptConnectDescription":"Connect the selected advertiser. Campaign access is verified separately.","chatGptAdvertiser":"Advertiser: {id}","chatGptQuoteUnavailable":"Current quotes for both connection and Managed Ads are required.","chatGptCostDetail":"Connection and Managed Ads are quoted separately. Zernio automatically synchronizes the entire connected advertiser; a local pause does not stop that synchronization or its billing. Advertising spend is separate.","chatGptKeyLabel":"Dedicated Advertiser API key","chatGptKeySharing":"The key will be verified with OpenAI and shared with Zernio to manage this advertiser.","chatGptApprove":"I accept the connection cost and Managed Ads allowance shown for this advertiser and period.","chatGptConnect":"Connect advertiser","chatGptRecover":"Check pending connection","chatGptPendingHelp":"The attempt has been sent. Check its status before starting any other connection.","chatGptActionError":"The connection result could not be confirmed. Refresh its status; do not submit the key again.","chatGptRefresh":"Refresh status","chatGptState_unconnected":"Not connected","chatGptState_pending":"Pending verification","chatGptState_paused":"Connection held paused in ContentFlow365","chatGptState_active":"Connection active","chatGptState_revoked":"Connection revoked","chatGptState_disconnected":"Disconnected","chatGptSelectorTitle":"Choose a Brand and advertiser","chatGptAssetsEmpty":"No advertiser is registered for this Brand yet.","chatGptChooseAdvertiser":"Choose an advertiser","chatGptAlternative":"Choose advertiser and connection","chatGptAdsAssetsTool":"List registered OpenAI advertisers for an authorized Brand, with paginated IDs and local active/paused/revoked state. Local registration does not authorize provider access or spend.","chatGptRegisterHelp":"Register an existing OpenAI advertiser for this Brand. This step does not connect Zernio, share an API key or activate campaigns.","chatGptAdvertiserId":"OpenAI advertiser ID (adacct_…)","chatGptRegister":"Register advertiser","chatGptRegisterBusy":"Registering…","chatGptRegisterSaved":"Advertiser registered. Select it to continue the connection setup.","chatGptRegisterInactive":"This advertiser is already registered but is paused or revoked. Its status has been preserved.","chatGptRegisterError":"Registration could not be confirmed. Refresh the advertiser list before trying again.","adsBrandPrepare":"Prepare Brand","adsBrandPrepared":"Brand prepared","adsBrandReconcile":"Check preparation","adsBrandReview":"Preparation needs review","adsBrandPreparationDescription":"Free preparation. Connect accounts afterwards.","adsBrandPreparationFailed":"Preparation could not be completed.","adsBrandToolRead":"Read free Brand profile preparation for Ads. Read only; does not connect accounts or start synchronization.","adsBrandToolPrepare":"Prepare a free Brand profile for Ads; reconcile an uncertain attempt without repeating creation. Does not connect advertising accounts or accept costs.","activate":"Enable comments","activating":"Checking permissions…","chatGptProviderLoading":"Loading provider…","chatGptProviderUnavailable":"Provider preference is unavailable.","chatGptProviderTitle":"ChatGPT Ads provider","chatGptProviderUnset":"No saved preference","chatGptProviderNative":"Native OpenAI","chatGptProviderHelp":"Help: advertiser and provider","chatGptProviderSave":"Save provider","chatGptProvider_saved":"Preference saved.","chatGptProvider_conflict":"The preference changed in another session. Review the updated value before saving.","chatGptProvider_error":"The provider change could not be confirmed.","chatGptConnectionActionTool":"Connect a dedicated key only with accepted connection and Managed Ads quotes; their infrastructure costs may apply. recover uses the original attemptId without a key or new quote. exit_review reviews Zernio disconnection; exit_execute requires that same attemptId and acceptHistoryRemoval=true after explicit user acceptance. It removes provider history and does not pause ads. On uncertainty use exit_status with the original ID: never create another exit or switch providers to repeat the effect. exit_cancel only cancels an undispatched review, including an expired one; a new review is allowed only after confirmed cancelled status. Receipts do not establish billing cessation. cycle_renew requires acceptance of both connection and Managed Ads quotes for the observed cycle, without apiKey; cycle_status recovers the original attemptId without another reservation. A historical_acceptance receipt does not establish current permission or billing cessation. Never renew automatically or invent quotes.","chatGptProviderReadTool":"Read the advertiser's provider preference and revisions. This is not capability authorization.","chatGptProviderWriteTool":"Save OpenAI or Zernio for the selected advertiser using current expected revisions. Does not connect accounts, grant capabilities or activate ads.","chatGptProviderZernio":"Zernio","chatGptCampaignUnavailable":"The campaign operation is unavailable for this selection or authorization.","chatGptCampaignTool":"Read the retained provider, advertiser and currency with context (without creating resources), or preview, confirm or recover creation of a paused campaign for the selected Brand and advertiser. Uses the saved OpenAI or Zernio provider. Execution requires a prior review and its currency/budget confirmation; never activates campaigns or permits ad spend. Keep the same operationId to recover uncertain results. The read action lists campaigns with since and exclusive until dates, preserving Zernio partial inventory coverage. The detail action loads a native campaign and revision; preview accepts native campaign.update without activation. Zernio updates only support an explicit pause after verifying the live own status and parent identities; budget, name and creative edits remain unavailable. Use verify_native after selecting OpenAI to verify the existing native key and refresh basic account/campaign routing evidence. It does not grant commercial partner approval or enable conversions or ad spend. Use verify_zernio for the saved Zernio provider: verifies the existing connection and accepted cost without allocating another connection or starting ad sync. Native preview also accepts ad_group.create/update and ad.create/update, with independent routing capabilities and paused-only status. Zernio supports compound creation with campaign.create.input.initial_ad (countries, max_bid_micros, title, body, image_url, target_url), creating a new campaign, ad group and ad with all three explicitly paused and all three creation capabilities required. Standalone Zernio child creation is unavailable. Its ad_group.update and ad.update only support an explicit pause. For either provider, resources lists campaigns, ad_groups filtered by campaignId, or ads filtered by adGroupId; resources/entity reads a campaign, ad_group or ad by kind and id and returns its revision. Zernio hierarchy comes from synced mappings and may omit empty resources; entity/detail reads verify live own status and parents before pause review. These reads use the selected account/Brand/asset and never fall back to another provider. image.upload uploads an HTTPS image through the native provider with ads.creative.upload authority, prior review and zero advertising budget; it does not generate paid images. resources/created_files with purpose=image returns only images from successful native operations for the selected account, Brand, asset and advertiser; unscoped history is excluded. metrics reads native daily campaign statistics between since and exclusive until with ads.insights.read authority; returns currency, advertiser and measured fields without converting missing values to zero. Zernio metrics return advertiser-level daily impressions, clicks and spend with current accepted Managed Ads allowance; do not infer campaign breakdowns, conversions or ROAS. Pending backfill or incomplete coverage is not a complete report.","chatGptCampaignInventory":"Campaign inventory","chatGptSince":"From","chatGptUntilExclusive":"Until (excluded)","chatGptReadCampaigns":"Load campaigns","chatGptPartialInventory":"Zernio only lists campaigns with synced ads. An empty campaign may be missing; this does not mean it was deleted or failed to create.","chatGptNoCampaignRows":"No campaigns returned for this query.","chatGptCampaignName":"Campaign","chatGptCampaignStatus":"Status","chatGptLifetimeBudget":"Lifetime budget","chatGptDailyBudget":"Daily budget","chatGptUnknown":"Unknown","chatGptLiveData":"Live","chatGptSyncedData":"Synced","chatGptCampaignStatus_active":"Active","chatGptCampaignStatus_paused":"Paused","chatGptCampaignStatus_archived":"Archived","chatGptCampaignActions":"Actions","chatGptEditCampaign":"Edit campaign","chatGptProviderVerify":"Verify connection","chatGptProvider_verified":"Connection verified. Campaign spending remains blocked.","chatGptMetricsTitle":"Advertising performance","chatGptMetricsProviderPending":"Metrics for this provider are not yet available in this panel.","chatGptComparePeriod":"Compare with previous period","chatGptReadMetrics":"Read metrics","chatGptMetricsUnavailable":"Metrics for this period could not be retrieved.","chatGptComparisonUnavailable":"The previous period could not be retrieved; only the current period is shown.","chatGptScopedViewUnavailable":"This section is not yet available for the selected advertiser. Use Campaigns or Dashboard.","chatGptShowGroups":"Ad groups","chatGptShowAds":"Ads","chatGptNoChildren":"No child resources found.","chatGptAddGroup":"Add ad group","chatGptAddAd":"Add ad","chatGptEditGroup":"Edit ad group","chatGptEditAd":"Edit ad","chatGptChangeAdvertiser":"Change advertiser","chatGptManagedCap":"Managed Ads quote: USD {amount}, from {start} to {end}. This does not establish an accepted reservation or a Zernio-enforced cap.","chatGptSyncedChildren":"Synced inventory only; empty groups may be absent. Opening the editor verifies live status before preparing a pause.","chatGptMetricsAccountLevel":"Zernio provides synced daily impressions, clicks and spend for this advertiser. Campaign breakdowns and unsupported conversion metrics are not inferred. Reading requires a current accepted Managed Ads allowance.","chatGptConnectionQuote":"Connection quote: USD {amount} per connection per month. Acceptance is required before connecting.","chatGptExitTitle":"Disconnect Zernio","chatGptExitExplanation":"Disconnection removes the advertiser history in Zernio. It does not pause campaigns or confirm that billing has stopped. Review this exit before executing it.","chatGptExitReview":"Review disconnection","chatGptExitOperation":"Exit operation: {id}","chatGptExitExpires":"Review valid until: {date}","chatGptExitAccept":"I accept removing Zernio history and understand that ads will not be paused.","chatGptExitExecute":"Execute reviewed disconnection","chatGptExitRefresh":"Check original exit","chatGptExitRecovery":"Keep this operation. If a response is missing, check its status without creating another exit. Cost reconciliation remains pending.","chatGptExitError":"The result could not be confirmed. Check the original operation; do not submit it again.","chatGptExitState_reviewed":"Review prepared","chatGptExitState_claimed":"Operation claimed; confirmation pending","chatGptExitState_dispatched":"Dispatch recorded; result pending","chatGptExitState_acknowledged":"Zernio acknowledged disconnection; billing reconciliation pending","chatGptExitState_uncertain":"Uncertain result","chatGptExitState_reconcile":"Reconciliation required","chatGptExitState_cancelled":"Review cancelled","chatGptExitResumeReview":"Recover original review","chatGptExitCancelReview":"Cancel this review without disconnecting","chatGptExitNewReview":"Prepare a new review","chatGptCycleTitle":"Renew connection costs","chatGptCycleExplanation":"Renewal accepts infrastructure costs for this cycle. It does not activate ads, cap Zernio billing or settle outstanding costs.","chatGptCycle_unavailable":"Renewal cannot be prepared with the current evidence.","chatGptCycle_initial_cycle":"The initial cycle was accepted when connecting. It does not need renewal.","chatGptCycle_renewable":"A new cycle is available to review.","chatGptCycle_accepted":"This cycle already has recorded acceptance.","chatGptCycleAccept":"I accept both displayed quotes for this advertiser and period.","chatGptCycleRenew":"Confirm renewal","chatGptCycleOperation":"Renewal reference: {id}","chatGptCycleRecover":"Check original renewal","chatGptCycleReceipt":"Acceptance recorded from {start} to {end}: connection {connection} USD and Managed Ads {managed} USD. Current access is checked separately.","chatGptCycleRecovery":"If the response is lost, check this reference. Manual confirmation retains the same reference without creating another renewal.","chatGptCycleError":"The result could not be confirmed. Check the original renewal before continuing.","entryTitle":"Comment GUIDE","entryIntro":"One comment. Your guide by direct message.","entryConnectStep":"Connect Instagram","entryPostStep":"Choose a post","entryActivateStep":"Activate your recipe","entryInvalidBrand":"Open Comment GUIDE from your Brand to select the correct account.","entryLoading":"Loading your account…","renewalDescription":"The previous attempt expired. Authorize the same account again.","renewalCap":"Existing reservation: up to {amount} USD.","renewalAccept":"I want to reconnect this account.","renew":"Reconnect","boundedDuration":"Up to {days} billable days, followed by disconnection. Messages saved in ContentFlow are retained; external history may become unavailable.","disconnected":"Connection ended. History saved in ContentFlow is retained.","durationStatusTitle":"Connection duration","durationDeadline":"Deadline: {date} UTC","durationMaintenancePending":"Automatic exit configuration is pending.","durationBillingPending":"Billing reconciliation is pending.","durationState":{"scheduled":"Exit scheduled","preparing":"Ending connection","blocked":"Needs review","reconcile":"Checking exit","acknowledged":"Connection ended"},"replacementDescription":"Connect again with new consent. Your previous history stays available.","replacementAccept":"I approve this new connection and its cost for the stated duration.","replace":"Connect again","adsAssetIdentifier":"Advertising account ID","adsAssetSave":"Select account","adsAssetSaving":"Saving…","adsAssetRegistrationDescription":"Authorize access in the next step.","adsAssetRegistrationFailed":"The account could not be saved.","adsAssetRegistrationReview":"This account is paused or removed. Review its connection.","adsAssetToolContext":"Check whether an administrator may register an advertising account for this Brand. Local configuration only; does not connect to or query a provider.","adsAssetToolRegister":"Register an explicit advertising account ID for a Brand; reuse the same registration and preserve pauses or revocations. Does not prove provider permissions, start OAuth, synchronize, accept costs or create campaigns."},"instagramCommentRecipes":{"toolContext":"Read the current Instagram comment recipe workspace, verified connections and current per-effect quotes for an owned Brand. Saving creates no workflow or provider effect.","toolPosts":"List organic Instagram publications for the exact verified connection, including publications made outside this provider. Follow opaque pagination even after empty pages; results may be cached for ten minutes.","toolSave":"Save a complete Instagram comment recipe using explicit current quote acceptance and limits. The server independently gates activation. Retry an uncertain result with the same mutationId and identical input.","toolPause":"Pause an owned Instagram comment recipe at its current revision, including when the provider connection or quote has expired. Retry with the same mutationId after an uncertain result.","toolDenied":"The comment recipe operation is not authorized or is unavailable.","title":"Comment GUIDE","description":"Configure resource delivery from this screen. The first private message includes the link; the public reply is optional.","activationClosed":"You can prepare the recipe. Sending becomes available after the connection passes its checks.","unavailable":"Could not load comment settings.","recipe":"Recipe","newRecipe":"New recipe","connectionUnavailable":"The connection is no longer available. You can pause the recipe.","connection":"Instagram account","connectionNumber":"Instagram {number}","name":"Recipe name","keywords":"Keywords, separated by commas","allPosts":"Apply to all publications","publication":"Publication","choosePublication":"Choose a publication","savedPublication":"Publication saved in this recipe","untitledPublication":"Publication without text","loadingPosts":"Loading publications…","loadPosts":"Load publications","morePosts":"Load more publications","catalogDelay":"The list may take up to ten minutes to reflect changes. Publications created through other connectors are also eligible.","postsUnavailable":"Could not load publications.","privateMessage":"Private message","resource":"Resource HTTPS link","publicReply":"Optional public reply; one alternative per line","authorLimit":"Maximum per person and publication","postLimit":"Maximum per publication","privateCap":"Maximum budget per private message: {amount}","publicCap":"Maximum budget per public reply: {amount}","costDetail":"These amounts are operation limits, not final costs. Monthly connection cost is controlled separately. Saving sends no messages and reserves no sending budget.","accept":"I accept these limits and budgets for this configuration.","quoteUnavailable":"A current budget quote is missing for the selected operations.","saveDraft":"Save draft","activate":"Activate recipe","pause":"Pause recipe","saving":"Saving…","uncertain":"The result could not be confirmed. Retry the same request to recover its result without duplication.","retry":"Recover result","failed":"The operation could not be completed. Check the details and connection.","permissionUnavailable":"Current permissions are missing for this recipe’s operations.","legacyOverlap":"Another recipe is already active for this publication. Pause it before activating this one.","revisionChanged":"The recipe changed while you were editing. Review its current version before saving.","authorityUnavailable":"You no longer have permission to configure this Brand.","invalidRecipe":"Check the name, keywords, publication, HTTPS link and recipe limits.","reloadRecipe":"Load the current version","pilotDeliveryNotice":"Resource delivery pilot through Zernio. Continuation through native DMs has not been verified yet.","toolActivate":"Enable an already authorized paused Instagram connection for this Brand. Rechecks current authority and provider health; preserves existing routing policy. No OAuth allocation, costs, recipes, live recipe reactivation or messages. Requires brand:write, community:write and content:publish. Reuse mutationId after an uncertain response."},"deliveryMonitor":{"title":"Deliveries and costs","subtitle":"Delivery queue by exact chat title and evidenced production publications.","refresh":"Query providers","import":"Import manifest","export":"Export data","privacy":"Private operations panel. Codex inventory and Ubicloud invoices are explicitly imported; no live sidebar synchronization or verified billing API.","loading":"Loading observations…","forbidden":"Access is restricted to authorized ContentFlow365 staff.","error":"Observations could not be loaded. Retry or check the panel configuration.","importError":"The operation could not be completed. Check manifest format and storage availability.","saved":"Observations saved.","cached":"Recent snapshot retained: provider queries have a minimum five-minute interval.","inFlight":"A provider query is already running.","unknown":"Unknown","minutes":"{value} min","unlinked":"No linked chat","updated":"Queried: {date}","timezone":"Display timezone","window":"Interval: {since} → {until}.","billingWindow":"Billing and daily charts use UTC; daily invoices cannot allocate costs to Canary calendar days or simulate the last 24 hours.","publications":"Observed READY publications","pending":"Pending PRs","gross":"Observed gross usage USD","perPublication":"Cost per publication","mean":"Mean time to READY","p50":"p50 to READY","p95":"p95 to READY","republications":"Republications","samples":"Durations with evidenced start: {count}. Small samples limit percentile interpretation.","sharedCost":"Shared aggregate allocation, not the causal cost of a PR. Includes failures and open work; official and estimated figures stay separate.","incomplete":"Coverage of the full interval remains incomplete.","runnerAlert":"There is evidence of compilation on a runner other than Ubicloud.","sources":"Sources and coverage","manualSources":"Each source retains its timestamp. A failed query does not erase previous observations or prove absence of publications.","emptySources":"No sources queried yet. Import a manifest or query configured providers.","evidence":"Evidence","dailyCosts":"Daily official usage · USD · UTC","dailyPublications":"Observed daily publications · UTC","dailyTable":"Daily reconciliation · UTC · observed gross; ratios only for complete dates","day":"Day","discount":"Discounts / allowance","tax":"Taxes","net":"Net","costDetail":"Official and estimated detail by provider","official":"Official","estimate":"Estimated","queue":"Queue and timeline by chat","filter":"Filter by chat, PR or title","state":"State","allStates":"All states","pullRequest":"PR","stageEvidence":"Stage evidence","head":"Current SHA: {sha}","associationConflict":"Multiple chats claim this PR. Association needs correction; no chat is selected by title similarity.","association":"Evidenced association: {source}","readyAt":"Ready for delivery:","mergedAt":"Merge:","readinessIncomplete":"The delivery start does not evidence the current SHA. A new commit invalidates the previous candidate.","run":"Run and attempt","noJobDetail":"Job detail not queried in this snapshot; follow the link for evidence.","empty":"No deliveries match these filters. An empty inventory does not prove an empty queue.","configuration":"Observed configuration changes","noCausality":"Recorded context; no automatic causal attribution.","titleHistory":"Imported title history","sourceStates":{"ok":"Queried","partial":"Partial coverage","unavailable":"Unavailable access","manual":"Explicit import"},"stages":{"development":"Development / draft","ready":"Ready","admission":"Awaiting admission","checking":"Checks running","integration-wait":"Awaiting integration","integrating":"Integrating","building":"Building","uploading":"Uploading / publishing","published":"Published","failed":"Failed","cancelled":"Cancelled","unknown":"Publication not evidenced"},"paired":"Reconciled UTC dates: {days}. Gross usage: {gross} / {count} publications = {ratio}. This partial snapshot does not represent the entire interval.","parallelism":"Concurrent validation and shared publication","parallelEvidence":"Observed active app-contracts jobs: {active}. Peak concurrency in sample: {peak}; {samples} timed jobs. Verified delivered PRs: {prs}; READY publications: {publications}.","parallelLimits":"Validations can run ahead; merges remain ordered. One publication may include multiple PRs only when SHA or ancestry proves inclusion. Partial coverage does not prove savings or maximum capacity. Obsolete candidates retain their cost.","zoneCanary":"Atlantic/Canary","zoneUtc":"UTC","pageTitle":"CF - Deliveries","provisional":"Partial / provisional","historicalReference":"Approximate historical reference: USD 1 per publication. This is not a paired-period benchmark or proof of savings.","charts":"Observed interval trends","granularity":"Grouping","daily":"Daily","weekly":"Weekly · seven observed dates","chartLimits":"UTC. Duration: mean per PR with evidenced start and READY; queue: queued label to merge for the same candidate. Failures: observed attempts. Missing data stays blank; run coverage may be partial.","dailyDuration":"Time to READY · minutes","dailyFailures":"Failed attempts by observed start","dailyQueue":"Queue to merge · minutes","provider":"Evidence provider","allProviders":"All","fromDate":"From · UTC","toDate":"To · UTC","clearFilters":"Clear filters","filterLimits":"Filters affect the queue and cost detail; summary and charts retain the full interval. Ubicloud filters PRs with evidenced runners, without attributing its invoice to a PR.","staleData":"Snapshot is stale under the configured threshold","reviewWait":"Review wait · threshold exceeded","thresholds":"Review thresholds","thresholdLimits":"These only flag stale data or waits worth reviewing; they do not declare failures, cancel jobs, retry or change the queue. Range: 1–43200 minutes; defaults: 60.","staleMinutes":"Stale snapshot · minutes","waitMinutes":"Review wait · minutes","saveThresholds":"Save thresholds","candidateHistory":"Observed SHA and candidate history","candidateHistoryLimits":"Up to 2000 distinct states from the last seven import days; missing pushes are not reconstructed. A new SHA invalidates the earlier start; attempts retain links and outcomes.","providers":{"github":"GitHub","ubicloud":"Ubicloud","vercel":"Vercel"},"reasonLabel":"Evidenced reason:","reasons":{"draft":"The PR is a draft.","candidate-unverified":"The current SHA has no evidenced delivery start.","queue-labelled":"The queued label is observed; queue position detail is not verified.","publication-unverified":"Merge observed; verified READY publication is missing.","failed-evidence":"Linked evidence reports a failure.","checks-pending":"Checks are pending for the current SHA.","stage-evidence":"Stage is based on linked evidence; no additional cause is inferred."},"durationSamples":"Duration samples","queueSamples":"Queue samples","filters":"Evidence and detail filters","basis":"Basis","observedAt":"Observation time","completeObservation":"Complete observed date","billingLag":"Billing may arrive late or be corrected later. Amounts display up to four decimals; the ledger retains provider precision. A complete observed date is not a settled monthly invoice."},"whatsappOnboarding":{"title":"Set up a WhatsApp number","description":"Prepare your setup with your own number or a new number. This private pilot currently checks the steps you will need; it does not buy or connect numbers.","open":"Prepare a WhatsApp number","loading":"Loading private setup…","unavailable":"Number setup is unavailable for this account.","failed":"Could not prepare the steps. Try again.","existing":"Use my number","new":"Buy a new number","situation":"How do you currently use the number?","country":"Country code (optional, two letters)","numberType":"Number type (optional)","unspecified":"Not selected","prepare":"Review setup steps","cost":"Preparing these steps is free. Number rental and WhatsApp charges have not been quoted.","pending":"Provider operations are not enabled. These steps do not certify eligibility.","situations":{"unused":"Not used on WhatsApp","business_app":"WhatsApp Business mobile app","bsp":"GoHighLevel or another provider","personal_app":"Personal WhatsApp","unknown":"I am not sure"},"types":{"local":"Local","mobile":"Mobile","toll_free":"Toll-free"},"routes":{"new_number":"New number purchase and WhatsApp setup","unused_number":"Set up an unused number","coexistence":"Check Business App coexistence","migration":"Plan a provider migration","personal_review":"Review personal WhatsApp options","identify_setup":"Identify the current setup"},"requirements":{"ownership":"Confirm ownership and exclusive control of the number.","eligibility":"Verify Meta eligibility for the account, country and number before activation.","verification":"Confirm how the number can receive verification by SMS or voice.","business_app":"Check coexistence eligibility for the Business App and our Meta integration. Availability is not yet certified.","migration":"Inventory the existing provider, templates and routing; agree on a migration and recovery plan before changing GHL.","personal":"Review supported options and chat preservation. Do not delete the WhatsApp account automatically.","identify":"Identify whether the number uses the mobile app or an existing provider before choosing a connection path.","country":"Choose the country and number type; verify availability and regulatory requirements.","isolation":"Assign the number to an isolated customer telephony account.","quote":"Obtain a current quote showing recurring rental, upfront charges, currency and billing terms.","purchase":"Review and explicitly confirm the exact number and price before purchase. Reconcile an uncertain result before retrying.","registration":"After acquiring the number, complete Meta onboarding separately; ownership alone does not mean WhatsApp is connected."},"tool":"Prepare WhatsApp number onboarding with an existing number or a new Twilio number. Read-only planning; no live availability, quote, purchase, OTP, migration or connection. Existing numbers require situation; new numbers may include country and numberType. Returns complete localized requirements and explicitly unavailable provider actions.","managerTitle":"WhatsApp communication manager","managerDescription":"Private workspace for ContentFlow superadministrators. Prepare numbers and templates; provider operations remain disabled until the pilot is configured."},"brandAdmin":{"title":"App Translation","intro":"Global interface text for all users. Publications apply on subsequent navigation; open sessions keep their version.","search":"Search key or text","key":"Key","spanish":"Spanish","english":"English","publish":"Publish changes","reload":"Reload","busy":"Processing…","saved":"Version published. Propagation may take around a minute.","confirm":"Confirm global publication","confirmHelp":"These changes affect the selected section for all users. Review both languages before publishing.","cancel":"Cancel","history":"Published versions","restore":"Restore this version","restoreBundled":"Restore bundled text","restoreConfirm":"Confirm version restoration","restoreHelp":"A new version will be published with the selected text.","current":"Active version: {release}","draft":"There are unpublished changes.","incompatible":"The published version uses a different contract. Current bundled text is shown to prepare a compatible publication.","invalid":"Check keys and variables: both languages must preserve the original contract.","conflict":"Someone else published changes. Reload before publishing again.","unavailable":"Could not access translations. Please try again.","forbidden":"This section requires ContentFlow superadministrator access.","loadError":"Could not load the text.","matching":"{count, plural, one {# result} other {# results}}","pick":"Select a key to edit its text.","noChanges":"There are no changes to publish.","preview":"Text preview","discard":"Discard unpublished changes?","emptyHistory":"There are no published versions yet.","readerTitle":"Published catalog reader","readerReady":"The reader can load this published version.","readerPending":"The reader has not loaded this published version yet.","readerDetails":"Host: {host}. Render budget: {foreground}. Completed read: {completed}. Duration: {duration} ms. Failure stage: {failure}.","readerScope":"This checks the server reader. Verify the selected page and its nested flows after reloading; open pages keep their current version.","overviewPage":"Overview","sharedCategory":"Shared text and settings","sharedPage":"Shared text","settingsPage":"Settings","profilePage":"Profile","personaWizardPage":"Persona creation wizard","pagesNavigation":"Application pages","searchPages":"Search pages or categories","noPages":"No pages found.","availablePage":"Available","pendingPage":"Pending","pendingTitle":"This page is awaiting migration","pendingHelp":"Text for this page and its nested flows is not available in the editor yet. Drafts in other sections are preserved."},"inbox":{"common":{"all":"All","cancel":"Cancel","close":"Close","create":"Create","edit":"Edit","error":"Error","loading":"Loading…","name":"Name","phone":"Phone","phoneWithCountryCode":"Phone with country code","refresh":"Refresh","save":"Save","saving":"Saving…","select":"Select"},"errors":{"loadThreads":"Conversations could not be loaded. Please try again.","bulkAction":"The bulk action could not be completed.","createCase":"The case could not be created.","createAndLinkContact":"The contact could not be created or linked.","addToSales":"The contact could not be added to sales.","estimateAiReport":"The scope could not be calculated before analysis.","generateDraft":"The draft could not be generated.","invalidContactIdentity":"Add a valid email address or phone number.","linkContact":"The contact could not be linked.","loadAiReport":"The analysis could not be refreshed.","loadAiSettings":"The AI settings could not be loaded.","loadCampaignMetrics":"Campaign metrics could not be loaded.","loadCases":"Operational cases could not be loaded.","loadChannels":"Available channels could not be loaded.","loadCollaboration":"Collaboration details could not be loaded.","loadJourney":"The operational journey could not be loaded.","moveCase":"The case could not be moved.","moveSalesStage":"The sales stage could not be changed.","prepareSalesPipeline":"The sales pipeline could not be prepared.","publishInternalComment":"The internal comment could not be posted.","queueGhlContact":"The contact could not be queued in GHL.","reconcileCampaigns":"Campaign attribution could not be refreshed.","removeContactLink":"The contact link could not be removed.","saveAiSettings":"The AI settings could not be saved.","saveContact":"The contact could not be saved.","saveSnippet":"The quick reply could not be saved.","send":"The reply could not be sent. Try again.","searchContacts":"Contacts could not be searched.","startAiReport":"The campaign analysis could not be started.","updateFollowing":"Following could not be updated.","updateProjectState":"The case status could not be changed.","uploadFile":"The file could not be uploaded. Check its format and size."},"opportunities":{"callColumn":"Call","noCall":"No call","newSinceVisit":"{count, plural, one {# new opportunity} other {# new opportunities}} since your last visit","noNewOpportunities":"No new opportunities","callStatus":{"scheduled":"Scheduled","completed":"Completed","missed":"No-show","past":"Past"}},"bot":{"active":"CF automation active","check":"Checking automations…","controlAria":"ContentFlow automation status","controlTitle":"Controls ContentFlow automations. GoHighLevel does not expose its native per-contact bot state through the API.","inactive":"Inactive until reactivated","nativeUnavailableDescription":"Its API does not expose this state per contact. No ContentFlow automation is linked to this thread, and the GHL bot may keep replying.","nativeUnavailableTitle":"Native GoHighLevel bot: cannot be controlled here.","openInGhl":"Open this conversation in GoHighLevel","pause1h":"Pause for 1 hour","pause24h":"Pause for 24 hours","pause3d":"Pause for 3 days","pause7d":"Pause for 7 days","pausedUntil":"Paused until {date}","scopeWarning":"Only pauses {name}; not the GHL bot.","syncedTitle":"Status synchronized with GoHighLevel","thisAutomation":"this CF automation","unverifiedDescription":"No action is shown to avoid pausing the wrong bot. The native GoHighLevel bot may keep replying.","unverifiedTitle":"Bot control not verified.","retryControl":"Retry the same change","nativeWebTitle":"Native bot control for this conversation.","nativeWebScope":"Control of this thread’s native bot. Human replies follow the saved handoff policy."},"collaboration":{"addNote":"Add note","internal":"Internal collaboration","mentionsPlaceholder":"@mentions: comma-separated user IDs","notePlaceholder":"Internal comment (not sent to the contact)"},"comments":{"delete":"Delete comment","deleteWarning":"This permanently deletes the comment on Meta. The author will be notified. This action cannot be undone.","noComments":"No comments yet","noVisibleComments":"No visible comments on this post","openPost":"Open post in a new tab","selectPost":"Select a video or post on the left","selectPostDescription":"to see its comments here"},"composer":{"aiInstructionPlaceholder":"Tell AI what to reply… Example: confirm the refund and explain bank timing","aiDraft":"AI draft","anotherSubject":"Another option","approved":"Approved","approvedTemplate":"Select an approved template…","blockedSuffix":" · blocked","channelCannotReply":"This channel does not allow replies","bcc":"BCC","currentRecipient":"Thread recipient","emailSubject":"Subject (optional; leave blank to keep the thread)","emailTo":"Change recipient (optional)","emoji":"Add emoji","freeTextOrTemplate":"Free text (or choose a template)…","generateSubject":"Generate subject","includesHeader":"Includes {format}","preview":"Preview","quickReply":"Quick reply…","quickReplyName":"Quick reply name","readOnlySuffix":" · read only","removeAttachment":"Remove {name}","replyVia":"Reply via","replyWindow":"Window: {value}","replyWindowClosed":"Free-text window closed","replyWindowOpenUntil":"Window open until {date}","replyWindowUnknown":"No window recorded","saveQuickReply":"Save text as a quick reply","sendVia":"Send via {channel}","templateVariable":"Variable {position}","templateWindowClosed":"The 24-hour window is closed. Select an approved template to continue.","useAndEdit":"Use and edit","discard":"Discard","moreRecipients":"Recipients","rewriteWithAI":"Rewrite","toLabel":"To","tone":{"concise":"Brief","friendly":"Friendly","support_formal":"Formal support"},"upload":"Attach file","writeReply":"Write a reply…","writeWithAI":"Write with AI"},"contact":{"allow":"Allow","allowAllChannels":"Allow all channels","allowChannel":"Allow {channel}","anonymousVisitor":"Anonymous visitor","block":"Block","blockAllChannels":"Block all channels","blockChannel":"Block {channel}","blocked":"Blocked","blockedAll":"Blocked on all channels","blockedByGlobal":"Blocked by global block","blockedCount":"{count} blocked","canReceive":"Can receive","checkingConversations":"Checking conversations…","connectionError":"Connection error","contactNotFound":"Contact not found","conversations":"Conversations","conversationsAria":"Open conversations in the Inbox","conversationsLoadError":"Conversations could not be loaded.","conversationsNoGhlLink":"This contact is not linked to GoHighLevel","conversationsNone":"This contact has no conversations recorded in the Inbox yet","conversationsOpenCurrent":"Open the conversation in this Inbox","conversationsOpenNewTab":"Open the conversation in the Inbox (new tab)","conversationsOpenRecent":"Open the most recent conversation ({count} total) in the Inbox","instagramProfile":"Instagram","openInstagramProfile":"Open Instagram profile","copyEmail":"Copy email","copyPhone":"Copy phone","createAndLink":"Create and link","createContentFlowContact":"Create a ContentFlow contact","createOrUpdateGhl":"Create/update in GHL","crmInline":"Open the same full CRM record here","crmNewTab":"Open full record in a new tab","disableGlobalBlock":"Turn off the global block to choose channels individually.","disableGlobalFirst":"Disable the global block first","emailCopied":"Email copied","ghlPendingReplication":"Contact synchronized in GHL but not yet replicated in CF365.","lastActivity":"Last activity:","hideChannels":"Hide channel details","linkedDescription":"This is an internal ContentFlow link. The GoHighLevel contact and conversation do not change until GHL confirms its own merge.","linkedTo":"Linked in ContentFlow to {name}. This does not merge or replace the native GHL contact.","noName":"Unnamed contact","now":"now","openProbableWebsite":"Open the likely company website: {domain}","phoneCopied":"Phone copied","permissions":"Contact permissions","permissionsHint":"Green means the contact can receive. Red means blocked.","permanentOptOut":"Permanent opt-out","probableWebsite":"Likely website:","reauthorizeChannel":"The contact must authorize this channel again","receivesAll":"Receives on all channels","saveAndSync":"Save and synchronize","searchPlaceholder":"Search by name, email, or phone","syncing":"Synchronizing…","showChannels":"Show channel details","viewRecord":"View record","visitorWithData":"Visitor with details","unknownError":"Unknown error","insufficientCredits":"Insufficient credits (you need {needed}, you have {balance})","loading":"Loading…","loadingActivity":"Loading activity…","yes":"Yes","no":"No","assignContact":"Assign contact","changeLinkedContact":"Change linked contact","removeLink":"Remove"},"threadActions":{"archive":"Archive","assignMe":"Assign to me","markRead":"Mark as read","markUnread":"Mark as unread","resolve":"Resolve","star":"Star","unassign":"Unassign","unstar":"Unstar"},"pipelineDefaults":{"description":"Initial ContentFlow pipeline. Native GHL synchronization remains pending when no ghl_pipeline_id exists.","name":"Sales","stages":{"contact":"Contact","demo":"Demo / Call","interested":"Interested","lead":"New lead","lost":"Lost","proposal":"Proposal","won":"Won"}},"filters":{"ad":"Ad","attention":"Attention","attentionDescription":"Conversations with a sensitive AI signal, an active case, or a sensitive tag","aiClassification":"AI conversation classification","all":"All","allAiClassifications":"Any AI classification","anonymousVisitors":"No contact details","anyIdentity":"Any identity","anyDirection":"Any direction","clearFilters":"Clear filters","comments":"Comments","conversations":"Conversations","date":"Date","date30d":"30 days","date7d":"7 days","date90d":"90 days","liveChatIdentity":"Live Chat visitor identity","identifiedContacts":"With email or phone","inbound":"Inbound","manualAndAutomatic":"Manual + automated","manualOnly":"Manual only","mentions":"Mentions","more":"More filters","onlyAutomation":"Automation only","organic":"Organic","outbound":"Outbound","recent":"Recent","replied":"Replied","search":"Search…","source":"Source","starred":"Starred","status":"Status","today":"Today","unreplied":"Unreplied","visitorsWithData":"Visitors with details","yesterday":"Yesterday","unread":"Unread","unreadCount":"{count, plural, one {# unread message} other {# unread messages}}","unreadDescription":"Waiting to be opened, even if they are several days old. They leave this filter when opened."},"health":{"unavailable":"Health unavailable","noIncidents":"No incidents reported","realtimeStatus":"Realtime updates: {status}","connecting":"Connecting","disconnected":"Disconnected","ghlUnavailable":"Realtime updates: {status} · GHL health unavailable","incident":"Incident","noSample":"no sample","providerStatus":"{provider}: {status}. {details}","realtimeConnected":"connected","realtimeConnecting":"connecting","realtimeIdle":"idle","realtimeReconnecting":"reconnecting","review":"Review","socialRealtime":"Direct Instagram, Facebook, and YouTube comments in real time.","status":"Synchronization status: {status}","summary":"Realtime updates: {status} · Inbox health: {ghl} · p95 {p95} · pending >2m {pending} · outbound DLQ 24h {dlq} · gaps {gaps}","synchronized":"Synchronized"},"journey":{"aiAction":{"caseCreated":"Case created automatically","caseNotCreated":"Case detected but not created","humanReview":"Flagged for human review","noAction":"Classified without an automatic change","salesMoved":"Opportunity moved automatically","salesNotMoved":"Sales change detected but not executed","salesSuggested":"Move to sales suggested"},"aiRoutingHistory":"AI actions","addToSales":"Add to sales","adding":"Adding…","attention":"Attention","createProject":"Create project","createSupport":"Create issue","contactJourney":"Contact journey","contentFlowPipeline":"ContentFlow operational pipeline","ghlPipeline":"Pipeline synchronized with GoHighLevel","loading":"Loading sales and projects…","opportunityTitle":"Opportunity · {name}","projectOrSupport":"Project / support","projectTitle":"Project · {name}","projectsLimitation":"Cases are a ContentFlow layer; they are not presented as projects synchronized with GHL.","sales":"Sales","supportTitle":"Issue · {name}"},"message":{"automationSuffix":"· automation","emptyDescription":"New DMs and comments will appear here.","goLatest":"Go to latest message","humanReview":"Human review","hideEmail":"Hide email","noMessages":"No messages yet.","opened":"Opened","openedAt":"Opened: {date}","clicked":"Click","clickedAt":"Click: {date}","retry":"Retry","selectConversation":"Select a conversation","selectConversationDescription":"Choose a thread from the list to see its messages.","selectThread":"Select {name}","showFullEmail":"View full email","status":{"delivered":"Delivered","deliveredDescription":"The provider confirms delivery","failed":"Error","failedDescription":"The message could not be sent","pending":"Sending","pendingDescription":"ContentFlow is sending the message","read":"Read","readDescription":"The channel confirms that the recipient read it","sent":"Sent","sentDescription":"The provider accepted the message","unknown":"Unconfirmed","unknownDescription":"The channel has not reported a status yet"},"today":"Today, {time}","yesterday":"Yesterday, {time}"},"timeline":{"allChannels":"All","filterLabel":"Filter this conversation by channel","noMessagesInChannel":"There are no messages from this channel in the conversation.","channels":{"custom":"Custom","email":"Email","fb":"Messenger","gmb":"Google Business","ig":"Instagram","livechat":"Live Chat","sms":"SMS","voice":"Voice","wa":"WhatsApp","yt":"YouTube"}},"moderation":{"hoursAgo":"{value}h ago","minutesAgo":"{value} min ago","now":"now"},"page":{"areas":"Inbox areas","conversations":"Conversations","projects":"Project management","sales":"Sales opportunities","selectAccount":"Select an account to view the unified Inbox.","unresolvedCrmAccount":"The active CRM account could not be resolved."},"ai":{"category":{"angry":"Angry","complaint":"Complaint","demo_request":"Demo request","fraud_accusation":"Fraud accusation","insult":"Insult","issue":"Issue","neutral":"Neutral","other":"Other","positive":"Positive","praise":"Potential success story","purchase_intent":"Purchase intent","question":"Question","refund_request":"Refund request","spam":"Spam","support_request":"Support request"},"accountDescription":"Settings apply only to this subaccount. Uses the FAST role and records model, tokens, cost, and decision.","accountTitle":"AI classification and routing settings for this subaccount","active":"Active","classificationOnly":"AI · classification only","classifyIncoming":"Classify inbound messages","classificationDescription":"Evaluates intent, risk, urgency, and sentiment; it does not reply.","classificationEnableConfirm":"AI will analyze each new inbound message with the FAST role and record tokens and cost. Enable it for this subaccount?","closePanel":"Close panel","closeSettings":"Close AI settings","conservativeRouting":"Conservative routing","inactive":"AI · inactive","inactiveState":"Inactive","inboxAi":"Inbox AI","reportAnalyzing":"Analyzing topics, sales, complaints, and priority cases…","reportAvailableAssessments":"Available assessments","reportBeforeRun":"Before running","reportCalculating":"Calculating scope and cost…","reportCitedConversations":"Cited conversations","reportClose":"Close analysis","reportCost":" · cost ${cost}","reportDisclaimer":"Only stored assessments matching the campaign and current filters will be analyzed. Full conversations will not be resent, no messages will be sent, and no refunds or commercial changes will be executed. Final cost may vary and will be recorded.","reportEmpty":"There are no assessments to analyze","reportFailed":"The analysis could not be completed.","reportFinding":"Finding","reportEstimatedCost":"Estimated cost","reportMax":"Up to {count} will be used","reportMaxLabel":"Up to this many will be used","reportModel":"Role {role} · configured model {model}","reportNoSummary":"No summary available.","reportOpenConversation":"Open conversation","reportReviewAgain":"Review scope and analyze again","reportResultMeta":"{count} assessments · role {role}","reportScope":"· ~{input} input tokens · up to {output} output tokens","reportStart":"Start AI analysis","reportSubtitle":"Summarizes stored assessments; it does not issue refunds or send messages.","reportTitle":"AI conversation analysis","reportUnavailable":"Unavailable","routingDescription":"Creates cases or moves leads no further than Interested, with an audit trail.","routingEnableConfirm":"Routing may create cases and move leads no further than Interested. It will never send messages, issue refunds, or advance to Demo/Proposal/Won. Enable it?","routingSafe":"AI · safe routing"},"campaign":{"all":"All campaigns","analyzeWithAi":"Analyze with AI","channelCustom":"Custom","channelEmail":"Emails","channelVoice":"Voice","campaignCount":"{count} campaigns","contacts":"Contacts","conversations":"Conversations","conversationCount":"{count} conversations","filter":"Filter by campaign","interactions":"Interactions","reconcile":"Reconcile campaign attribution","refreshInbox":"Refresh conversations from Go High Level","onlyActiveAccount":"Only campaigns from the active account"},"projects":{"attention":"Needs attention","all":"All","createCase":"Create case","createdByAi":"Created by AI","createdByAiDescription":"AI classification created this case automatically through conservative routing.","critical":"Critical","criticalPriority":"Critical priority","description":"ContentFlow operational layer linked to conversations and contacts.","dueDate":"Due date","editCase":"Edit case","loading":"Loading cases…","moveCase":"Move case","needsAttention":"What needs attention","notes":"Notes","notesPlaceholder":"Add the context needed to manage this case…","newCase":"New case","newOperationalCase":"New operational case","noCases":"No cases","priorityCritical":"Critical","priority":"Priority","priorityCriticalFull":"Critical priority","priorityHigh":"High","priorityHighFull":"High priority","priorityLow":"Low","priorityLowFull":"Low priority","priorityNormal":"Normal","priorityNormalFull":"Normal priority","project":"Project","projects":"Projects","refreshCases":"Refresh cases","resolvedOrClosed":"Show resolved and closed","dropToStatus":"Drop here to change status","review":"In review","saveDetails":"Save details","statusAttention":"Needs attention","statusClosed":"Closed","statusNew":"New","statusResolved":"Resolved","statusReview":"In review","statusRefundOrDispute":"Refund or dispute requested","statusWaitingCustomer":"Waiting for customer","support":"Issues","thread":"Thread","title":"Project and issue management"},"sales":{"description":"Operational view; the full CRM retains analytics and advanced configuration.","preparing":"Preparing sales pipeline…","title":"Sales opportunities"},"sidebar":{"multichannel":"Multichannel","title":"Unified inbox","channels":"Channels","viewAll":"view all","allChannels":"All channels","googleBusinessReadOnly":"Google Business · read only","customProvider":"Custom provider","callsReadOnly":"Calls · read only","operator":"Operator","openProfile":"Open {name} in a new tab","folders":{"inbox":"Inbox","ads":"Ads","organic":"Organic","unassigned":"Unassigned","spam":"Spam","mentions":"Mentions","archived":"Archived"}}},"adminPurchases":{"refund":{"defaultNote":"Requested by the customer","dialogTitle":"Refund ContentFlow subscription","close":"Close","successTitle":"Refund sent to Stripe","successMessage":"Stripe will return {amount} to the original payment method.","fullOutcome":"The subscription has been cancelled and the account has been deactivated.","partialOutcome":"The subscription and access remain active.","closeAndRefresh":"Close and refresh","charged":"Charged","alreadyRefunded":"Already refunded","available":"Available","withdrawalLastDay":"Last day of the withdrawal period · {days} days have passed","withdrawalRemaining":"{days} days have passed · {remaining} of the 14 calendar days remain","withdrawalExpired":"Withdrawal period expired · {days} days have passed since purchase","withdrawalNotice":"This indicator describes the deadline but does not block a later administrative decision.","typeLegend":"Refund type","full":"Full","partial":"Partial","partialAmount":"Amount to refund (€)","partialAmountAria":"Partial amount in euros","invalidAmount":"Enter an amount between €0.01 and {maximum}.","internalNote":"Internal note","notePlaceholder":"Reason or context for the refund","realMoneyWarning":"This action moves real money","fullWarning":"Refunds the full remaining amount, cancels the subscription immediately, deactivates the account and closes its credit cycle.","partialWarning":"Refunds only the specified amount. The subscription and access remain active.","idempotencyNotice":"The operation is idempotent: a double-click will not duplicate the refund.","acknowledgement":"I have checked the customer, refund type and amount before returning the money.","confirmationLabel":"Type {command} to confirm","retryNotice":"Select Retry to check Stripe and repeat the request with the same secure key.","cancel":"Cancel","checking":"Checking…","startAgain":"Close to start again","retry":"Retry","refundAmount":"Refund {amount}","confirmationCommand":"REFUND","withdrawalBadge":{"expired":"{days} d · expired","lastDay":"{days} d · last day","remaining":"{days} d · {remaining} left","expiredTitle":"{days} days have passed: outside the 14-day withdrawal period","remainingTitle":"{days} days have passed; {remaining} of the 14 calendar days remain"},"errors":{"invalidRequest":"Required information or the two refund confirmations are missing.","purchaseNotFound":"Purchase not found.","missingInvoice":"This purchase does not have an associated Stripe invoice.","missingPaymentIntent":"The refundable payment for this invoice could not be found.","testPurchaseBlocked":"Synthetic test purchases cannot be refunded.","nothingRemaining":"This purchase has no remaining refundable amount.","invalidAmount":"The partial refund amount is invalid.","invalidOperationId":"The operation identifier is invalid.","idempotencyMismatch":"This operation already exists with a different amount.","operationFailed":"Stripe marked this attempt as failed. Close the window and start a new operation.","wrongStripeMode":"This panel runs on staging (Stripe test mode), so the real payment does not exist here. Issue the refund from production: app.contentflow365.com. Retrying here will always fail.","providerFailed":"Stripe could not complete the operation.","statusUnconfirmed":"The refund may have been created, but the full operation could not be confirmed. Retry from the same window.","generic":"The refund could not be completed."}},"details":{"daysSincePurchase":"Days since purchase","withdrawalWindow":"14-day withdrawal period","dayCount":"{count, plural, one {# day} other {# days}}","paymentMethod":"Payment method","recordType":"Record type","paymentReference":"Bank reference","internalNote":"Record note"},"source":{"stripe":"Stripe","bankTransfer":"Bank transfer","manual":"Manual record","upfrontPayment":"Upfront payment","subscriptionCheckout":"Subscription activation","existingSubscription":"Existing subscription","paymentConfirmed":"Payment confirmed","singlePayment":"1 payment","externalRefund":"Manual refund outside Stripe"},"csv":{"daysSincePurchase":"Days since purchase","withinWithdrawalWindow":"Within 14-day withdrawal period","daysRemaining":"Days remaining","paymentSource":"Payment method","recordType":"Record type","paymentReference":"Reference or note","yes":"Yes","no":"No"}},"emailSequences":{"aiChat":{"contextSubject":"Subject: {subject}","contextType":"Type: {type}","contextFramework":"Framework: {framework}","contextEngine":"--- Copywriting engine: {engine} ---","contextMethodology":"Methodology: {methodology}","contextWordRange":"Word range: {range}","contextPrinciples":"Principles:\n{principles}","contextBody":"--- Email body ---","requestFailed":"The assistant could not process the request.","connectionError":"Connection error. Try again.","open":"Edit with AI","title":"AI chat — Edit email","clearConversation":"Clear conversation","collapse":"Collapse AI chat","emptyPrompt":"Ask for changes to the subject, tone or length…","suggestions":{"shorter":"Make it shorter","subject":"Change the subject","urgency":"Add more urgency","informal":"Use an informal tone"},"inputPlaceholder":"Ask for changes to the email…","send":"Send request"},"preview":{"sampleFirstName":"Emily","sampleFullName":"Emily Smith","sampleEmail":"emily.smith@example.com","title":"Preview","sampleBadge":"Example: Emily · real links","copySubject":"Copy subject","copyPreheader":"Copy preheader","keyboardNavigation":"↑ / ↓ (keyboard): previous / next email · Esc: close","previous":"Previous (↑)","next":"Next (↓)","keyboardNavigationShort":"Use the keyboard: ↑ previous · ↓ next · Esc close","device":{"desktop":"Desktop","tablet":"Tablet","mobile":"Mobile"},"visual":"Visual","html":"HTML","copied":"Copied","copy":"Copy","close":"Close (Esc)","subject":"Subject:","iframeTitle":"Email preview","htmlSource":"HTML source","characters":"{count} characters","linksLoading":"Checking email links…","linksError":"This email cannot be opened or copied until its links are resolved. Check the campaign links and try again.","linksRetry":"Check again"},"schedule":{"madridTime":"Madrid time · Europe/Madrid","anchorDay":"D-day","evergreenDay":"Day +{days}","immediatelyAfterRegistration":"Immediately after registration","daysAfterRegistration":"+{days, plural, one {# day} other {# days}} after registration","hoursAfterRegistration":"+{hours} h after registration"},"autoSchedule":{"title":"Schedule sequence","sequenceSummary":"{name} — {count, plural, one {# email} other {# emails}}","close":"Close","eventDate":"Event date (webinar/launch)","eventType":"Event type","eventTypes":{"webinar":"Webinar / Live event","launch":"Launch","cartClose":"Cart close"},"tagFilter":"Filter contacts by tags","tagPlaceholder":"march-webinar, hot-leads","tagFilterActive":"Only contacts with tag: {tags}","tagFilterEmpty":"No filter — it will be sent to every contact in the account","senderName":"Sender name (optional)","senderPlaceholder":"Alex Morgan","scheduleHelp":"Schedule — select a date to edit it","restoreDates":"Restore automatic dates","dryRun":"Test mode (dry run)","dryRunHelp":"Does not send real emails","cancel":"Cancel","scheduling":"Scheduling…","scheduled":"Sequence scheduled","scheduleEmails":"Schedule {count, plural, one {# email} other {# emails}}","errors":{"scheduleFailed":"The sequence could not be scheduled. Try again."}},"broadcast":{"pendingRestored":"This sequence has a pending confirmation. The original email and audience have been restored. Confirm again to check or continue the same operation; do not select a new audience to repeat it.","dispatchFailed":"Queue confirmation is unavailable. You can confirm again: the same operation and recipients will be reused without creating another send.","title":"Broadcast","subtitle":"Send an email to a contact segment","close":"Close","steps":{"email":"Select email","segment":"Segment","send":"Send"},"selectEmail":"Select the email you want to send:","approved":"Approved","selectedEmail":"Selected email","summaryTitle":"Broadcast summary","email":"Email:","audience":"Audience:","delivery":"Delivery:","immediate":"Immediate","dryRun":"DRY RUN mode (simulate without sending)","dryRunHelp":"Resolves the audience and displays the result, but does not send emails. Use it to validate the selection before a real send.","realSend":"Real send","realSendWarning":"Emails will be sent individually through GHL. Contacts without an email address or GHL Contact ID are skipped automatically.","result":{"dryRun":"DRY RUN — simulation","started":"Broadcast started","noContacts":"No contacts","dryRunCount":"{count, plural, one {# contact matches} other {# contacts match}} (nothing was sent)","queuedCount":"{count, plural, one {# contact queued} other {# contacts queued}} for delivery","empty":"No contacts matched the selection","errors":"{count, plural, one {# error} other {# errors}}"},"back":"Back","cancel":"Cancel","next":"Next","simulating":"Simulating…","sending":"Sending…","simulate":"Simulate (DRY RUN)","confirm":"Confirm send","audienceSummary":{"smartList":"Smart List: {name}","tags":"Tags: {tags}","filters":"Filters: {filters}","none":"none","country":"country={country}","date":"date={from}→{to}"}},"audience":{"modes":{"smartList":"Smart List","tags":"Tags","filters":"Filters"},"smartListsLoading":"Loading smart lists…","smartListsEmpty":"There are no saved smart lists. Create one from the CRM page.","opportunityListTitle":"This Smart List is for CRM/Deals opportunities and cannot be used for email.","opportunityListBadge":"CRM/Deals","opportunityListWarning":"Not available for email — it uses Opportunity filters","tagsLoading":"Loading tags…","tagsSearch":"Search tags…","combination":"Combination","anyTagTitle":"Any tag (broader) — contacts with AT LEAST ONE selected tag","allTagsTitle":"All tags (narrower) — contacts with EVERY selected tag","any":"Any","all":"All","removeTag":"Select to remove","loading":"Loading…","noMatches":"No matches","noTags":"No tags available","showingFirstTags":"Showing the first 30 of {count}; use search to filter","filters":{"search":"Contact search","searchPlaceholder":"Name, email or phone","status":"Status","deals":"With deals","utmCampaign":"UTM Campaign","utmSource":"UTM Source","dateFrom":"From date","dateTo":"To date","all":"All","new":"New","lead":"Lead","mql":"MQL","sql":"SQL","customer":"Customer","churned":"Lost","withDeals":"With deals","withoutDeals":"Without deals"},"selectAudience":"Select an audience","calculating":"Calculating…","contacts":"{count, plural, one {# contact} other {# contacts}}","selectionMatches":"match the selection","selectionEmpty":"no matches","viewSample":"View sample","sampleTitle":"Sample (first 10)","close":"Close","noResults":"No results","unnamed":"(unnamed)","excluded":"Excluded","missingEmail":"no email","missingPhone":"no phone","missingGhlId":"no GHL ID"},"settings":{"title":"Email settings","subtitle":"Default sender and delivery engine for every sequence in this account.","resendTitle":"Default sender (Resend engine)","resendHelp":"Applies to sequences delivered through Resend. Each sequence can override its sender.","senderName":"Sender name","senderNamePlaceholder":"e.g. ContentFlow 365","senderEmail":"Sender email","resendDomainWarning":"Must use a domain verified in Resend (currently: {domain}).","globalSenderFallback":"Leave blank to use the global sender (ContentFlow365 · noreply@{domain}).","defaultEngine":"Default delivery engine","defaultEngineHelp":"Used as the default for new sequences. Each sequence can change it in its details.","ghlTitle":"Sender for GHL sequences","ghlHelp":"The From name and address used for delivery. The address must use a domain verified in GoHighLevel.","fromName":"Name (From)","fromNamePlaceholder":"e.g. Alex Morgan","fromEmail":"Email (From)","fromEmailPlaceholder":"e.g. alex@mail.example.com","verifiedDomains":"Verified domains (for the From address)","openEmailServicesTitle":"In GHL: Settings → Email Services → Dedicated Domain and IP","openEmailServices":"Open GHL → Email Services","domainsHelp":"GHL does not expose these domains through its API. This list includes domains already in use (auto); add any other domains you have verified. Select a domain to copy it.","noDomains":"No domains detected yet.","copyDomain":"Copy domain","copied":"copied ✓","useDomain":"use","useDomainTitle":"Use this domain in the Email (From) field","removeDomain":"Remove","automatic":"auto","addDomainPlaceholder":"add verified domain (e.g. mail.example.com)","add":"Add","domainsSaveHelp":"New domains are saved when you select Save settings.","replyTo":"Reply-to:","readingGhl":"reading from GHL…","ghlNotConnected":"GHL is not connected","ghlSenderUnavailable":"not available","replyToHelp":"This is the GHL location email where replies arrive. This panel currently records and displays the From address. To make GHL deliver from another address, change it in GoHighLevel or use a supported API override.","openGhl":"Open GHL","guideTitle":"Guide / lead magnet (download)","guideHelp":"The {token} link sent in the first email after registration.","campaign":"Campaign: {name}.","selectCampaign":"Select a campaign in Sequences & Broadcasts to edit its guide.","guidePlaceholder":"https://example.com/guide.pdf","saveGuide":"Save guide","saved":"Saved","openGuide":"Open guide","guideSharedHelp":"This is the same Guide · lead magnet URL shown on the Links tab. Saving it here updates the whole funnel.","saveSettings":"Save settings","errors":{"saveFailed":"The email settings could not be saved. Try again.","guideSaveFailed":"The guide URL could not be saved. Try again."}},"senderSelector":{"accountTitle":"Default WhatsApp number","accountHelp":"Used by every campaign and sequence in this account unless a campaign selects another number.","campaignTitle":"WhatsApp number for this campaign","campaignHelp":"Every sequence in the campaign inherits this selection. Leave it on inherit to use the account default.","loading":"Reading active HighLevel numbers…","scopeRequired":"The HighLevel connection does not grant phonenumbers.read yet. Enable it in Marketplace Developers and reconnect the account.","notConnected":"This account has no active HighLevel connection.","loadFailed":"Active HighLevel numbers could not be read. An unverified sender will not be saved or used.","choose":"Choose an active number","inherit":"Inherit default · {number}","inheritMissing":"Inherit default · not configured yet","save":"Save number","saved":"Saved","effective":"Effective sender: {number} · source {source}.","inactive":"{number} is no longer active in HighLevel; sending is blocked.","account":"account","campaign":"campaign"},"shared":{"anchor":{"countdown":"Countdown","forward":"Forward","mixed":"Mixed","atDate":"On the date","empty":"No emails","fixed":"Fixed date","evergreen":"Evergreen"},"latePolicy":{"scheduled":"Scheduled","skip":"Skip","sendNow":"Essential"},"status":{"active":"Active","completed":"Completed","stopped":"Exited","unknown":"Unknown"},"exit":{"purchasedValue":"Purchases {value} → exits","purchased":"Purchases → exits","tagValue":"Tag “{value}” → exits","tag":"Tag → exits","replied":"Replies → hand over to a person","atDateValue":"At {date} Madrid time → exits","atDate":"At a set date → exits","unknown":"Exit condition"}},"panel":{"title":"Email sequences","subtitle":"See who enters, what they receive and who exits at a glance.","refresh":"Refresh","selectAccount":"Select an account to view its sequences.","retry":"Retry","emptyTitle":"No sequences yet","emptyHelp":"When you create an email sequence, it will appear here with its active enrolments.","unnamed":"Unnamed sequence","paused":"Paused","audience":"Audience:","inside":"inside","errors":{"loadFailed":"The sequences could not be loaded. Try again."}},"links":{"selectCampaign":"Select a campaign in Sequences & Broadcasts and its funnel links will appear here.","title":"Funnel links ·","selectedCampaign":"selected campaign"},"whatsapp":{"defaultLabel":"WhatsApp · email #{position}","refresh":"Refresh","templatesLink":"WhatsApp templates","closeError":"Close error","dismissTemplates":"Dismiss template notice","dismissCapacity":"Dismiss capacity notice","saving":"Saving…","loading":"Loading WhatsApp channel…","addMessage":"Add message","offset":{"atEvent":"At the event time","before":"before","after":"after"},"errors":{"loadFailed":"WhatsApp could not be loaded. Try again.","missingVariables":"Missing values for {variables}","saveFailed":"The WhatsApp step could not be saved.","statusFailed":"The WhatsApp status could not be changed.","emailRequiredForDraft":"Link the WhatsApp step to an email before drafting with AI.","draftFailed":"The WhatsApp draft could not be generated.","pauseBeforeDelete":"Pause the step before deleting it.","deleteFailed":"The WhatsApp step could not be deleted.","completeRunFailed":"The manual GHL action could not be completed.","senderSaveFailed":"The sender number could not be saved. Make sure it includes the international prefix, for example +34."},"confirm":{"liveEvent":"LIVE MODE: ContentFlow will not send automatically. Up to 24 hours beforehand it will prepare a manual action and a frozen audience of approximately {eligible} contacts for a native GHL broadcast.","automatic":"This step will activate for {eligible} eligible contacts out of {audience} selected. It follows the sequence pause and exit rules.","activate":"Confirm activation?","delete":"Delete the step “{label}”?","completeRun":"Confirm that the native broadcast has been scheduled or sent in GHL."},"inlineHeader":{"title":"Optional WhatsApp within each email","description":"Enable it only where needed. It uses the same audience, rules and timing as the email and does not create another GHL workflow."},"header":{"title":"WhatsApp for this sequence","description":"Uses the same audience, date, enrolments, pause and exit rules. It does not create another GHL workflow."},"sender":{"title":"WhatsApp sender number","description":"This sequence inherits its sender from the campaign or, when there is no override, from the account default.","configured":"Outbound number fixed to {number}.","required":"Configure a default number in Settings or on the campaign before activating WhatsApp.","notConfigured":"Not configured","campaignSource":"Inherited from campaign","accountSource":"Inherited from account","scopeRequired":"The sender cannot be verified until phonenumbers.read is granted to the HighLevel connection.","inactive":"{number} is no longer active in HighLevel; sending is blocked."},"runs":{"title":"Pending live-event actions","eligible":"{count} eligible","eligibleOfAudience":"{eligible} eligible out of {audience}","manualHelp":"This will not be sent by API. Prepare and schedule the native GHL broadcast for this time.","markPrepared":"Mark as prepared in GHL"},"empty":{"title":"This sequence currently sends email only","description":"Draft the copy now and link an approved template when you are ready to activate it. New steps start paused."},"status":{"active":"Active","paused":"Paused"},"item":{"template":"Template","pending":"pending","liveTimingWarning":"This is close to the live event but uses the 1,000/hour lane. Choose Live mode if every message must go out together.","pauseToEdit":"Pause the step to edit it","edit":"Edit","editLabel":"Edit {label}","pause":"Pause","activate":"Activate","deleteLabel":"Delete {label}"},"stats":{"sent":"Sent","delivered":"Delivered","read":"Read","failed":"Failed","skipped":"Skipped"},"capacity":{"inlineWarning":"With {eligible} eligible contacts, automatic sending will take approximately {minutes} minutes. Use manual GHL mode for live messages that must go out together.","warning":"With {eligible} eligible contacts, automatic sending is not simultaneous and will take approximately {minutes} minutes. For a message immediately around the live event, use <strong>Live · manual GHL</strong>.","audience":"Active audience","eligibleNow":"{count} eligible now","standardLane":"Standard lane","minutes":"≈ {count} min","cycles":"{count} cycles · up to 1,000/hour when no other sends overlap","exclusions":"Exclusions","exclusionDetail":"{missingConsent} without consent · {optedOut} opted out · {dnd} DND/DNC · {missingPhone} without phone"},"inlineCard":{"add":"Add WhatsApp to this email","viewPendingTemplates":"View pending approved templates","pause":"Pause WhatsApp","activate":"Activate WhatsApp","title":"WhatsApp at the same time","draftWithoutTemplate":"Draft without template","optional":"Optional","draftPending":"Draft pending","openEditor":"Open the editor to draft with AI and choose an audience.","templatesBlocked":"{count} templates are visible, but none passes the complete preflight yet.","draftNow":"Draft the copy now and link an approved template later.","hide":"Hide","showMessage":"View message","mastersDisabled":"Master templates cannot be activated","templateRequired":"Register an approved template with a GHL ID","duplicates":"{count} messages are linked to this email. Keep only one to avoid duplicates.","active":"Active","paused":"Paused","stats":"{sent} sent · {delivered} delivered · {read} read","pauseToEdit":"Pause WhatsApp to edit it","edit":"Edit","editDetails":"Edit copy, audience and template","remove":"Remove WhatsApp","offset":{"atEvent":"At the event time","before":"before","after":"after"}},"templates":{"nonCompliant":"{count, plural, one {{formattedCount} approved template has a GHL ID} other {{formattedCount} approved templates have GHL IDs}}, but sending is blocked because the sender identity, opt-out text or <strong>Stop receiving</strong> button is missing.","missingId":"{count, plural, one {{formattedCount} approved template is visible} other {{formattedCount} approved templates are visible}}, but the real sending ID still needs to be imported from GHL. You can edit the draft while synchronisation is completed.","noneApproved":"{formattedCount} templates are registered in this location, but none is currently approved. Review them under WhatsApp → Templates; templates from another account cannot be used here.","noneRegistered":"This location has no registered templates yet. Create and approve the template in its own GHL location, then register it under WhatsApp → Templates."},"mode":{"live":"Live · manual GHL","automatic":"Automatic"},"audienceCriteria":{"and":"AND","or":"OR","activeAudience":"active sequence audience","filter":"GHL filter","exclude":"Exclude:"},"targeting":{"title":"Countries receiving this WhatsApp","description":"This narrows WhatsApp only; email keeps the full sequence audience.","all":"All","regions":{"europe":"Europe","latam":"LATAM","united_states":"United States"},"chooseCountries":"Choose individual countries","selected":"Selected","eligibleNow":"Eligible now","estimatedCost":"Estimated cost","costHelp":"Conservative estimate at {price} per message; the actual charge depends on Meta and GHL.","unknownExcluded":"{count} contacts without a country are excluded."},"safety":{"ready":"Account preflight passed","blocked":"Sending blocked for safety","unknownBlocker":"A required safety check has not passed.","blockers":{"safety_not_configured":"WhatsApp safety controls are not configured.","sending_paused":"WhatsApp sending is paused.","policy_warning_active":"Meta has an active policy or spam warning.","meta_quality_not_green":"Meta quality is not confirmed as green.","meta_quality_stale":"The Meta quality check is more than 24 hours old.","canary_not_passed":"The required canary has not passed.","canary_stale":"The canary is more than 24 hours old.","dnd_workflow_unverified":"The WhatsApp STOP → DND workflow is not verified.","whatsapp_sender_not_configured":"No WhatsApp sender number has been set for the account or campaign.","whatsapp_sender_not_active":"The configured sender number is no longer active in HighLevel.","whatsapp_sender_numbers_unavailable":"Active HighLevel numbers cannot be verified; sending is blocked.","audience_has_no_eligible_contacts":"The selection has no eligible contacts with WhatsApp consent."}},"editor":{"editTitle":"Edit WhatsApp message","addTitle":"Add WhatsApp message","newPaused":"A new message is saved paused.","close":"Close","copyTitle":"WhatsApp copy","copyDescription":"AI starts from the email. You can edit the result before saving.","drafting":"Drafting…","draftWithAi":"Draft with AI","draftPlaceholder":"WhatsApp message draft","serverCompliance":"The opt-out notice and sender identity are also added and validated on the server.","approvedTemplate":"Approved template","noTemplate":"No template · save draft only","templateMissingCompliance":" · opt-out or button missing","templateMissingId":" · GHL ID pending","templatesFound":"Approved templates found","templatesBlocked":"They are visible in ContentFlow but remain blocked until their real GHL identifier is imported.","ghlSend":"GHL send: {name} · {language}","internalName":"Internal name","sameTime":"Same time as the email","emailTiming":"Email #{position}: {subject}","mustStayLinked":"This WhatsApp must remain linked to an email.","timing":"Timing","customTiming":"Custom WhatsApp timing","asEmail":"Same as email #{position}: {subject}","minutesFromAnchor":"Minutes from the anchor","minutesHelp":"Negative means before, for example -15, -60 or -1440.","fromEnrollment":"from each person's enrolment","latePolicy":"If the person enrols late","lateOptions":{"scheduled":"Send only if they enrolled in time","skip":"Skip if it has already passed","sendNow":"Send now even if they are late"},"deliveryMode":"Delivery mode","deliveryOptions":{"automatic":"Automatic · up to 1,000/hour","live":"Live · prepare native GHL broadcast"},"liveNeedsDate":"Add a valid event date before using Live mode.","liveSafetyTitle":"Live-event safety lock","liveSafetyDescription":"ContentFlow prepares the manual action and freezes the audience up to 24 hours beforehand, but does not send by API. Schedule or launch the broadcast natively in GHL.","automaticLiveWarning":"This message is close to the live event, but automatic mode is not simultaneous. Consider Live mode.","variables":"Variables","variablesHelp":"Use fixed text or ContentFlow merge tokens.","variable":"Variable","variablePlaceholder":"Value or ContentFlow token","cancel":"Cancel","save":"Save","offset":{"atEvent":"At the event time","before":"before","after":"after"}}},"detailPanel":{"deliveryAttention":{"title":"{count, plural, one {# email operation awaiting verification} other {# email operations awaiting verification}}","description":"Some deliveries or template syncs require verification. They will not be repeated automatically; check their status with support.","unavailable":"Delivery status is unavailable right now. Refresh again in a moment."},"allSequences":"All sequences","retry":"Retry","automationSummary":"Entry and exit rules · sending","unnamed":"Unnamed sequence","refresh":"Refresh","refreshHelp":"Refresh sending, opens, recipients and today's activity for this sequence","editRules":"Edit rules","tabs":{"automation":"Automation","statistics":"Statistics","content":"Content"},"errors":{"notFound":"The sequence could not be found.","loadFailed":"The sequence could not be loaded. Try again."},"entry":{"title":"Entry","whoEnters":"Who enters","anchor":"Anchor","eventAnchor":"Event · {date}","evergreenAnchor":"When each contact enters · evergreen","entryWindow":"Entry window","startsAt":"From {date}, Madrid time","alwaysOpen":"Open from the beginning","endsAt":"until {date}, Madrid time","zoomActive":"Automatic Zoom registration · meeting {meetingId}","enrolled":"people enrolled","audienceCalculating":"Audience: calculating…","inAudience":"in the audience","notEnrolled":"{count} not enrolled","and":"and","or":"or","without":"without: {values}","everyone":"All contacts"},"emails":{"title":"Emails","empty":"This sequence does not have any emails yet.","noPreheader":"No preheader","sent":"{count} sent","pending":"{count} pending","opensHelp":"Opens · rate over delivered emails","clicksHelp":"Clicks · rate over delivered emails"},"exit":{"title":"Exit","whoExits":"Who exits","matchesAll":"(matches ALL)","matchesAny":"(matches ANY)","noConditions":"No exit conditions — contacts leave only after completing the sequence.","legacyStop":"Legacy operational stop: {date}, Madrid time","completed":"completed","stopped":"exited early"},"rules":{"title":"Edit entry and exit rules","manageTags":"Manage tags","manageTagsHelp":"Contact tags are managed in GoHighLevel","productionWarning":"⚠ Saving applies these rules to live enrolments","entryTitle":"Entry rules","entryDescription":"Define who enters, who is excluded and when new enrolments are accepted.","entersWith":"Enters if they have","emptyMeansEveryone":"Empty means every contact can enter.","addTag":"Add tag","excludeWith":"Does NOT enter if they have","addExclusion":"Add exclusion","entryWindow":"Entry window · Madrid time","entryWindowHelp":"Blocks new enrolments from forms, tags or imports without removing people already inside.","opensAt":"Opens at","closesAt":"Closes at","zoomTitle":"Automatic Zoom registration","zoomHelp":"Each new enrolment is registered once in Zoom. Credentials remain on the server.","zoomEnable":"Automatically register new people","zoomMeetingId":"Zoom meeting ID","zoomExample":"e.g. 123 4567 8901","exitTitle":"Exit rules","exitDescription":"Stops emails as soon as a person meets the selected conditions.","exitsWhen":"Exits the sequence if","noExitConditions":"No conditions — exits only after completing the sequence.","exitTypes":{"hasTag":"Has tag","purchased":"Has purchased · tag","replied":"Has replied","atDate":"Reaches date and time"},"madridTime":"Madrid time","tagPlaceholder":"Search or enter a tag","tagExample":"e.g. challenge-free-registration","exclusionExample":"e.g. challenge-vip, customer","removeCondition":"Remove condition","addCondition":"Add condition","cancel":"Cancel","save":"Save rules","andAll":"AND · all","orAny":"OR · any","viewAvailableTags":"View available tags","noTags":"There are no tags in this account yet.","noTagMatches":"No tag matches “{value}”.","useNewTag":"Use “{value}” · new","showingTags":"Showing 30 of {count}; type to search","remove":"Remove","errors":{"invalidEntryDate":"Enter a valid entry date and time in Madrid time.","invalidEntryOrder":"The opening time must be before entry closes.","invalidZoomMeeting":"Enter a valid numeric Zoom meeting ID.","invalidExitDate":"Review the exit date and time.","saveFailed":"The rules could not be saved. Try again."}},"today":{"title":"Receiving today","today":"Today","loading":"Calculating today's sends…","loadFailed":"Today's sends could not be loaded.","empty":"No email is due from this sequence today.","essential":"Essential","recipients":"{count} people"},"contact":{"title":"What is this person receiving?","placeholder":"name@example.com","search":"Search","searchFailed":"The contact search failed. Try again.","notEnrolled":"is not enrolled in this sequence.","enrolledIn":"is enrolled in:","unnamed":"Sequence","next":"Next:","noMoreSends":"No more scheduled sends.","help":"Enter an email address to see the person's sequences, status and next send."},"sendWindow":{"title":"Sending window","enable":"Send follow-ups only within a set window","help":"Emails due outside the window wait until it opens again. Welcome emails still send immediately.","active":"Sending window active","inactive":"Sending window inactive","from":"From","to":"to","madridTime":"Madrid time"},"statistics":{"sent":"Sent","delivered":"Delivered","bounces":"{count} bounces","opens":"Opens","openCount":"{count} opens","clicks":"Clicks","clickCount":"{count} clicks"},"recipients":{"title":"By recipient","searchPlaceholder":"Search by email or name…","loading":"Loading recipients…","loadFailed":"Recipients could not be loaded.","noMatches":"No recipient matches the search.","empty":"Nobody is enrolled in this sequence yet.","columns":{"contact":"Contact","status":"Status","sent":"Sent","opened":"Opened","clicks":"Clicks","lastActivity":"Last activity"},"range":"{from}–{to} of {total}","previousPage":"Previous page","nextPage":"Next page"},"controls":{"pauseHelp":"Pause sequence","activateHelp":"Activate sequence","active":"Active","paused":"Paused","ghlHelp":"GHL sends inside the GoHighLevel conversation using the location's sender and domain. Replies arrive in the GHL CRM inbox.","resendHelp":"Resend sends marketing email from ContentFlow365 with open and click tracking and an unsubscribe footer. Replies go to support@contentflow365.com."},"content":{"description":"Edit subjects, bodies and AI generation in the sequence author. Use this view to manage automation and statistics.","openAuthor":"Open content author"}},"page":{"title":"Email sequences","subtitle":"Generate AI email sequences for every phase of your funnel","generateSequence":"Generate AI sequence","scheduleSequence":"Schedule sequence","backToSequences":"Back to sequences","analyseWithAi":"Analyse with AI","approved":"Approved","approveAll":"Approve all","broadcast":"Broadcast","schedule":"Schedule","syncGhl":"Sync with GHL","unnamedSequence":"Sequence","master":{"title":"📦 You are editing a MASTER funnel template","description":"This is not a campaign sequence. It is the template installed when a new funnel of this type is created, and it never sends messages or enrols contacts directly. Changes affect only funnels installed from now on; existing live funnels are not changed.","badge":"MASTER · template","badgeHelp":"Master template for this funnel type. Edit it here, then install it in a campaign to use it; the master never sends messages."},"tabs":{"content":"Emails and WhatsApp","automation":"Automation and sending"},"generating":{"title":"AI is generating the sequence…","description":"Analysing the campaign, audience and context"},"stats":{"emails":"Emails","approved":"Approved","drafts":"Drafts","aiVersion":"AI version","sequences":"Sequences","totalEmails":"Total emails","generated":"Generated","syncedGhl":"Synced with GHL"},"status":{"draft":"Draft","generated":"Generated","approved":"Approved","synced":"Synced","active":"Active","paused":"Paused","completed":"Completed","failed":"Failed","unknown":"Unknown"},"filters":{"phase":"Phase","type":"Type","status":"Status","clear":"Clear","groupBy":"Group by","phaseOptions":{"all":"All","pre":"Before","durante":"During","post":"After"},"typeOptions":{"all":"All","nurturing":"Nurturing","invitacion":"Invitation","fomo":"FOMO","directos":"Live sessions","venta":"Sales"},"statusOptions":{"all":"All","draft":"Draft","generated":"Generated","approved":"Approved","synced":"Synced","active":"Active"},"groupOptions":{"none":"List","fase":"Phase","tipo":"Type"}},"groups":{"phase":{"pre":"Before the event","durante":"During · live sessions","post":"After the event"},"type":{"invitacion":"Invitation","nurturing":"Nurturing","fomo":"Entry FOMO","directos":"Live sessions","venta":"Sales"},"unclassified":"Unclassified"},"loading":"Loading sequences…","empty":{"selectCampaignTitle":"Select a campaign","selectCampaignDescription":"Choose a campaign to view or create its email sequences.","noSequencesTitle":"No sequences","noSequencesDescription":"This campaign has no sequences yet. Select Generate AI sequence to get started.","createFirst":"Create first sequence","noFilterMatches":"No sequences match these filters."},"delete":{"title":"Delete sequence","description":"All emails in the sequence will be deleted.","cancel":"Cancel","confirm":"Delete"},"card":{"generating":"Generating…","new":"New","aiWriting":"AI is writing the emails…","emailCount":"{count, plural, one {# email} other {# emails}}","created":"Created","delete":"Delete sequence","audience":{"title":"Sequence audience","smartList":"Smart List","emptyTags":"No tags","tags":"{count, plural, one {# tag} other {# tags}}","filters":"Filters: {value}","audience":"Audience"},"anchor":{"evergreen":{"label":"Evergreen","hint":"Relative to each contact's enrolment (+0h, +6h…). No fixed date."},"countdown":{"label":"Countdown date","hint":"Fixed: actual offsets count backwards towards the date."},"forward":{"label":"Forward date","hint":"Fixed: actual offsets move forwards from the date."},"mixed":{"label":"Mixed date","hint":"Contains offsets both before and after the anchor date."},"atAnchor":{"label":"On the date","hint":"All actual offsets fall exactly on the anchor date."},"empty":{"label":"No schedule","hint":"There are no emails from which to calculate the direction yet."},"unknown":{"label":"Fixed date","hint":"The schedule direction is not available yet."},"countdownDateTitle":"Counts backwards towards this date","forwardDateTitle":"Counts forwards from this date","date":"Anchor {date}"},"rules":{"entry":"Entry","everyone":"everyone","excluded":"exclude: {values}","exit":"Exit","hasTag":"has tag “{value}”","purchased":"purchased “{value}”","replied":"replied","unknownExit":"exit condition","auto":"auto: {tag}","paused":"Paused"}},"analysis":{"loadingTitle":"Analysing sequence with AI…","loadingDescription":"Reviewing subjects, copy, structure and persuasion","title":"AI sequence analysis","description":"Automated quality and persuasion review","close":"Close analysis","score":"Score","strengths":"Strengths","improvements":"Improve","suggestions":"Suggestions","fallback":{"metrics":{"subjects":"Subject lines","body":"Copywriting · body","variety":"Type variety","completeness":"Completeness"},"strengths":{"subjectLength":"Subject lines use an effective length for opens","typeVariety":"Good variety of email types","preheaders":"Most emails include a preheader","frameworks":"Uses multiple copywriting frameworks","conciseBody":"Concise, well-structured body copy","goals":"Clear goal for each email"},"improvements":{"subjectLength":"Optimise subject length to 30–60 characters","typeVariety":"Add more variety of email types","preheaders":"Add a preheader to every email","longBody":"Shorten body copy to improve engagement"},"suggestions":{"frameworks":"Try different frameworks such as AIDA, PAS and BAB","goals":"Set a specific objective for each email","abTest":"Consider A/B testing the first three subject lines","sequenceLength":"Add two or three emails for a more robust sequence"}}}},"timeline":{"empty":"There are no emails in this sequence yet.","emailCount":"{count, plural, one {# email} other {# emails}}","approvedCount":"{count, plural, one {# approved} other {# approved}}","draftCount":"{count, plural, one {# draft} other {# drafts}}","readingMode":"Reading mode","readingModeHint":"Reading mode opens emails as you scroll. Use ↑ and ↓ to jump between them.","readingModeInstructions":"Reading mode: scroll to open emails automatically · <keys>↑ ↓</keys> to jump · click one to keep it open.","copyAll":"Copy all","copied":"Copied","copyAction":"Copy","subject":"Subject","preheaderDescription":"Preheader · the text shown with the subject in the inbox","preheaderPlaceholder":"Add a short line that complements the subject","copySubject":"Copy subject","noPreheader":"No preheader","copyPreheader":"Copy preheader","hideBody":"Hide body","showFullBody":"View full body","feedbackPlaceholder":"Feedback for AI, for example: 'more urgency', 'casual tone' or 'add a customer story'","save":"Save","cancel":"Cancel","approved":"Approved","approve":"Approve","edit":"Edit","sendFeedback":"Send","regenerate":"Regenerate with AI","delete":"Delete","viewHtml":"View formatted email (HTML)","status":{"draft":"Draft","generated":"Generated","approved":"Approved","synced":"Synced","sent":"Sent","scheduled":"Scheduled","active":"Active","paused":"Paused","completed":"Completed","failed":"Failed","unknown":"Unknown"},"copy":{"emailHeader":"Email {position}: {type}{framework}","schedule":"Schedule","subject":"Subject","preheader":"Preheader","goal":"Goal"}},"configDialog":{"title":"Generate AI sequence","close":"Close","steps":{"funnel":"Funnel type","phase":"Phase","engine":"Copy engine","configuration":"Configuration"},"funnelIntro":"Choose the funnel you want to create. Each funnel contains optimised phases and specific email types.","funnelMeta":{"webinar":{"description":"Registration, replay and closing sequence for live events","stat":"3 phases, 16 emails"},"launch":{"description":"Pre-launch, announcement and cart-close sequence","stat":"3 phases, 12 emails"},"evergreen":{"description":"Automated welcome, nurturing and sales sequence","stat":"3 phases, 12 emails"},"nurturing":{"description":"Ongoing value content to maintain engagement","stat":"1 phase, 5 emails"}},"phaseIntro":"Each phase has a specific objective and email types optimised to convert.","emailTypeCount":"{count, plural, one {# email type} other {# email types}}","defaultCount":"{count} by default","emailCount":"{count, plural, one {# email} other {# emails}}","engineIntro":"Choose the copywriting engine that will define the writing style of your emails.","hideDetails":"Hide details","viewMethodology":"View methodology","keyPrinciples":"Key principles","example":"Example:","idealFor":"Ideal for: {value}","newsContext":"Current-affairs context","optional":"Optional","newsPlaceholder":"Add a current news item or data point for the emails, for example: 'Bitcoin has just broken $100K'.","newsHint":"AI will weave this context into the emails to make them more timely and relevant.","configurationIntro":"Customise the sequence settings. Every field is optional; AI will use sensible defaults.","senderName":"Sender name","senderPlaceholder":"David","emailQuantity":"Number of emails","writingTone":"Writing tone","tones":{"direct":{"label":"Direct","description":"Clear and concise"},"empathic":{"label":"Empathetic","description":"Emotionally connected"},"provocative":{"label":"Provocative","description":"Challenges the status quo"},"aspirational":{"label":"Aspirational","description":"Inspires action"}},"webinarData":"Webinar details","webinarDate":"Webinar date","webinarTime":"Webinar time","cartClose":"Cart close","cartCloseDate":"Closing date","offerName":"Offer name","offerPlaceholder":"Premium programme","summary":"Summary","summaryLabels":{"emails":"Emails","funnel":"Funnel","engine":"Engine","tone":"Tone"},"successTitle":"Generating in the background","successDescription":"AI is writing your emails with the {engine} engine.","successHint":"You can close this window; progress will appear on the sequence card.","back":"Back","cancel":"Cancel","next":"Next","generating":"Generating…","generate":"Generate sequence"},"requestErrors":{"loadSequences":"Sequences could not be loaded.","loadSequence":"The sequence could not be loaded.","generate":"The sequence could not be generated.","updateSequence":"The sequence could not be updated.","deleteSequence":"The sequence could not be deleted.","updateItem":"The email could not be updated.","reorder":"The emails could not be reordered.","regenerate":"Email regeneration could not be started.","syncGhl":"The GHL synchronisation could not be started."},"catalog":{"engines":{"classic":{"label":"Direct Response","source":"Kennedy, Walker, Brunson","description":"Rotating classic frameworks: AIDA, PAS, BAB and PASTOR. Short, direct emails.","methodology":"Direct Response Marketing — proven copywriting frameworks used by Dan Kennedy, Jeff Walker and Russell Brunson. Each email uses a different framework to keep the sequence varied.","principles":{"p1":"AIDA: Attention → Interest → Desire → Action","p2":"PAS: Problem → Agitation → Solution","p3":"BAB: Before → After → Bridge (your offer is the bridge)","p4":"PASTOR: Problem → Amplify → Story → Testimony → Offer → Response","p5":"Mandatory rotation: never repeat a framework in consecutive emails"},"exampleSubject":"Your trading experience is your biggest enemy","idealFor":"Fast sequences, A/B tests and standard funnels","wordRange":"150–250"},"david-style":{"label":"David style","source":"David Aranzabal — real campaign emails","description":"Long-form, story-led emails with market news, authority, a contextual P.S. and a legal disclaimer.","methodology":"David Aranzabal's approach, developed through more than 20 years of financial email marketing and over 145,000 students. Each email connects real market news to the offer, builds authority with concrete evidence and closes with an emotional P.S.","principles":{"p1":"Newsjacking: open with the day's news and connect it to the event or product","p2":"Natural authority: use relevant media, figures and events as evidence","p3":"Repeat the CTA two or three times with a direct registration link","p4":"Mandatory P.S.: always contextual and emotional, never generic","p5":"Finish with the appropriate educational or financial disclaimer","p6":"Always mention the bonus or gift as a registration incentive"},"exampleSubject":"BITCOIN -50%: how to identify a bottom without guessing","idealFor":"Webinars, financial products and investor audiences","wordRange":"300–400"},"benai":{"label":"Ben AI Content","source":"Ben AI Marketing — SEO method adapted to email","description":"Value first, without fluff. Every paragraph contributes. Inspirational, technical and pragmatic tone.","methodology":"The Ben AI Marketing method used in ContentFlow365's SEO blog, adapted to email. Every paragraph must deliver real value so the reader finishes thinking: I can do this today. It applies ten proven headline formulas to subject lines.","principles":{"p1":"Zero fluff: remove any paragraph that does not deliver direct value","p2":"Actionable: the reader should be able to act immediately","p3":"Use proven subject formulas: curiosity gap, how-to, contrarian and result-led","p4":"Tone: inspirational, technical and pragmatic — never academic or dull","p5":"Evidence-led: support every claim with data, examples or cases"},"exampleSubject":"7 ways to protect your portfolio that actually work","idealFor":"Nurturing, educational sequences and value content","wordRange":"250–400"},"isra-bravo":{"label":"Isra Bravo 300","source":"Isra Bravo — one daily email","description":"Up to 300 words. One personal story per email. Raw and conversational, with a one- or two-sentence bridge from story to offer.","methodology":"Isra Bravo's method: one daily email of no more than 300 words, without social media, benefit lists or elaborate designs. A short personal story ends with one persuasive link. Consistent execution matters more than polishing a single email.","principles":{"p1":"300 words maximum — the constraint forces every word to work","p2":"One personal story per email, never a list of benefits","p3":"Write as you speak, as if you were dictating it","p4":"Bridge from story to offer in one or two sentences","p5":"No bullet points, emojis or elaborate HTML — plain text","p6":"The subject is an intriguing line from the story, not a benefit"},"exampleSubject":"The mistake that cost me €8,000","idealFor":"Daily engagement, personal brands and Spanish-speaking audiences","wordRange":"Max 300"},"soap-opera":{"label":"Soap Opera Sequence","source":"Andre Chaperon + Russell Brunson","description":"Serialised sequences with open loops and cliffhangers. Each email closes one loop and opens another.","methodology":"Andre Chaperon and Russell Brunson's serialised approach, based on the Zeigarnik effect. Each email resolves the previous open loop and ends with a cliffhanger that gives the reader a reason to open the next one.","principles":{"p1":"Email 1 — Set the stage: welcome and open the first personal-story loop","p2":"Email 2 — High drama: backstory, crisis and a larger loop","p3":"Email 3 — Epiphany: the discovery and first mention of the offer","p4":"Email 4 — Hidden benefits: unexpected benefits and social proof","p5":"Email 5 — Urgency + CTA: close with genuine urgency and a guarantee","p6":"Always close the previous loop before opening a new one"},"exampleSubject":"But when I opened the platform the next morning…","idealFor":"Welcome sequences, launches and high-conversion onboarding","wordRange":"300–500"},"hormozi":{"label":"Hormozi Value","source":"Alex Hormozi — $100M Offers / $100M Leads","description":"Deliver substantial value before asking for anything. Direct and generous. Value equation: outcome × likelihood ÷ time × effort.","methodology":"Based on Alex Hormozi's $100M Offers and $100M Leads frameworks. Give so much useful value that readers assume the paid offer goes further. Apply the value equation and the MAGIC headline formula.","principles":{"p1":"Lead with value: give away the what and why; charge for the how","p2":"Maximise outcome and likelihood; minimise delay and effort","p3":"MAGIC headlines: Magnetic reason, Avatar, Goal, Interval, Container","p4":"Specificity sells: 47 seconds beats fast; €4,271 beats thousands","p5":"Get straight to the value and remove unnecessary introductions","p6":"Make the CTA a natural extension of the value, never a forced pitch"},"exampleSubject":"3 trades. €4,271. Zero stress.","idealFor":"Cold outreach, lead nurturing and high-value offers","wordRange":"200–350"}},"funnels":{"webinar":{"label":"Webinar funnel","phases":{"registro":{"label":"Registration invitation","description":"Maximise webinar registrations with pre-event urgency."},"replay":{"label":"Replay invitation","description":"Create urgency to watch the post-event replay."},"ultimasHoras":{"label":"Final hours","description":"Drive final conversion as the offer closes."}}},"launch":{"label":"Launch funnel","phases":{"preLaunch":{"label":"Pre-launch","description":"Build anticipation and the waiting list."},"launch":{"label":"Launch","description":"Official announcement and first sales."},"cartClose":{"label":"Cart close","description":"The final hours of the launch offer."}}},"evergreen":{"label":"Evergreen funnel","phases":{"welcome":{"label":"Welcome","description":"Make a strong first impression and deliver immediate value."},"nurturing":{"label":"Nurturing","description":"Build education, authority and trust."},"pitch":{"label":"Sale","description":"Move from value to the offer."}}},"nurturing":{"label":"Nurturing","phases":{"nurturing":{"label":"Continuous nurturing","description":"Maintain engagement with an ongoing value sequence."}}}},"emailTypes":{"painPoint":"Pain point","fomo":"FOMO","socialProof":"Social proof","curiosity":"Curiosity","scarcity":"Scarcity","dayOf":"Event day","lastCall":"Last call","replayAvailable":"Replay available","highlights":"Highlights","testimonials":"Testimonials","replayEnding":"Replay ending","cartReminder":"Cart reminder","objectionBreaker":"Objection breaker","bonusReveal":"Bonus reveal","countdown":"Countdown","doorClosing":"Doors closing","teaser":"Teaser","behindScenes":"Behind the scenes","earlyBird":"Early bird","announcement":"Announcement","faq":"FAQ","welcome":"Welcome","valueDelivery":"Value delivery","storyTelling":"Storytelling","education":"Education","caseStudy":"Case study","insight":"Insight","engagement":"Engagement","value":"Value","softPitch":"Soft pitch","hardOffer":"Direct offer","custom":"Custom","invitacion":"Invitation","valor":"Value","recordatorio":"Reminder","objecion":"Objection","agenda":"Agenda","upgrade":"Upgrade","bienvenida":"Welcome","oferta":"Offer"}},"linkEditor":{"title":"Campaign link","label":"Link text","insert":"Insert link","unconfigured":"Destination needs configuration or verification in Links.","help":"The campaign reference is preserved. The destination is checked again when sending.","saveError":"Not saved. Check the links and try again.","roles":{"registro":"Registration","confirmacion":"Registration confirmation","replay":"Event replay","whatsapp":"WhatsApp","vip":"VIP pass","checkout":"Payment","gracias":"Thank you","horarios":"Schedule","sala":"Live room","oferta":"Offer","directo_1":"Live session 1","directo_2":"Live session 2","directo_3":"Live session 3","directo_4":"Live session 4","directo_5":"Live session 5","app":"App","guia":"Guide"}}},"editorPro2":{"estimateNeedsUpdate":"The quote needs updating before you continue. What you asked for stays the same and nothing has been charged.","tools":{"noEditableVisualTrack":"There is no editable visual track available to open Media.","selectText":"Place the playhead over text, captions, or a CodeScene to edit it.","selectVisual":"Place the playhead over a visual clip to open its effects and transitions.","selectAudioVideo":"Place the playhead over an audio or video track to edit its mix."},"workspace":{"resizeViewerTimeline":"Resize viewer and timeline"},"inspector":{"closedCodeScene":"This CodeScene arrived as a closed artifact: its ABI does not expose editable text or properties. Regenerate it through MCP to change its content.","exposedVariables":"These variables were exposed by HyperFrames/MCP and can be changed without replacing the entire video.","noIndependentElements":"This graphic has no independent elements."},"professionalAudio":{"checkNow":"Check now"},"proxyBatch":{"fetchError":"The project's proxies could not be retrieved.","closeForNow":"Close for now"},"stage":{"resumeOnReturn":"It will resume when you return to this tab."},"audioAnalysis":{"recovering":"Automatically recovering the music map ({code}).","validationFailed":"The music map did not pass safe validation ({code})."},"existingAudio":{"title":"Existing voices for the montage","prepare":"Review voices and balance","confirm":"Confirm existing voices","recover":"Check original approval","retryOriginal":"Retry the original confirmation","cost":"Cost of this confirmation: 0 credits.","balance":"Available balance: {balance} credits.","selected":"Voice audio assets in the saved revision: {count}.","saveFirst":"Save your changes before approving voices.","unavailable":"The approval could not be verified. Keep its identifier and check the result before sending again.","pending":"The response still needs verification. Check the original approval.","confirmed":"Existing voices approved. This confirmation used no credits.","approvalReference":"Approval: {id}","missingSession":"Your personal session is required to confirm voices.","storageUnavailable":"The approval identifier could not be preserved. No confirmation was sent.","balanceUnavailable":"The current balance is unavailable.","refreshBalance":"Check updated balance"}},"academy":{"catalog":{"unsupported":"Academy requires an exact Spanish or English content variant.","defaultTitle":"Academy 365","empty":"There are no courses in this academy yet.","heroEyebrow":"Four paths · one platform","heroTitle":"What do you want to learn or build?","heroDescription":"Master ContentFlow, grow your business, create an AI agency, or build digital products.","explore":"Explore","courseCatalog":"Course catalog","searchPlaceholder":"Search for a course or outcome…","school":"School","allSchools":"All","level":"Level","allLevels":"All","beginner":"Beginner","advanced":"Advanced","draftsOnly":"Drafts only","sortSchool":"By school","sortAz":"A-Z","sortLevel":"By level","noResults":"No courses match those filters.","otherCourses":"Other courses","for":"For:","courseCount":"{count, plural, one {# course} other {# courses}}"},"card":{"draft":"Draft","new":"New","comingSoon":"Coming soon","inProduction":"In production","completed":"Completed","project":"Project:","lessonCount":"{count, plural, one {# lesson} other {# lessons}}","navigableOverview":"Browsable overview","progress":"{percent}% completed","levelBeginner":"Beginner","levelAdvanced":"Advanced"},"stats":{"yourProgress":"Your progress","courses":"courses","started":"started","completed":"completed","lessons":"lessons","overall":"Overall progress","other":"Other"},"course":{"unsupported":"Academy requires an exact Spanish or English content variant.","notFound":"Course not found.","back":"Back to academy","invalidLinkTitle":"This Academy link does not match the current route, lesson, or language.","invalidLinkBody":"For safety, no substitute lesson has been opened.","publishConfirm":"Publish the course: users will see it and a new-course notification will be sent.\n\n⚠️ The database is shared. Publish only when the code is in production.","unpublishConfirm":"Unpublish the course (it will no longer appear in the catalog).","draftOnlyYou":"Draft · only you can see it","unpublish":"Unpublish","publish":"Publish course","yourProgress":"Your progress","moderate":"Moderate comments","inProduction":"In production","comingSoon":"Coming soon","overviewReady":"The course structure is ready","overviewBody":"You can review the full syllabus. Only chapters with verified Spanish and English versions can be opened; the rest remain in production.","courseProject":"Course project","projectTbd":"Practical project to be defined","structure":"Structure","school":"School","level":"Level","syllabus":"Syllabus and lessons","productionPending":"Pending production","closeIndex":"Close index","openIndex":"Open lesson index","lessons":"Lessons","courseIndex":"Course index","noLessons":"This course has no lessons yet.","lessonReady":"Available","lessonInPreparation":"In production","blockedLessonTitle":"This chapter cannot be opened yet","blockedLessonBody":"You can review its title and learning goal in the syllabus, but its video, transcript, check, and progress remain locked until both its Spanish and English versions are approved.","levelBeginner":"Beginner","levelAdvanced":"Advanced"},"lesson":{"typeVideo":"Video","typeText":"Reading","typeQuiz":"Quiz","typeAssignment":"Assignment","previous":"Previous","next":"Next","completed":"Completed","markCompleted":"Mark as completed","downloadPdf":"Download PDF","summary":"Lesson summary","showLess":"Show less","showMore":"Show more","empty":"This lesson has no content yet.","keyIdeas":"Key ideas","buildInContentFlow":"View in ContentFlow","loading":"Loading lesson…"},"quiz":{"passed":"Passed!","almost":"Almost…","score":"You answered {correct} of {total} correctly ({percent}%)","passedBody":"You passed the quiz.","failedBody":"You need {percent}% to pass. Review the lesson and try again.","question":"Question {current} / {total}","check":"Check answers","saving":"Saving…","continue":"Continue","completeContinue":"Complete and continue","retry":"Try again"},"player":{"region":"Chapter player","play":"Play","pause":"Pause","progress":"Progress","backSeconds":"Go back {seconds} seconds","forwardSeconds":"Go forward {seconds} seconds","unmute":"Unmute","mute":"Mute","volume":"Volume","speed":"Playback speed","normalSpeed":"Normal (1×)","enterFullscreen":"Enter fullscreen","exitFullscreen":"Exit fullscreen"},"notifications":{"aria":"Academy notifications","title":"Academy updates","markRead":"Mark as read","empty":"No updates"},"comments":{"title":"Reactions and comments","placeholder":"Write a comment…","send":"Send","empty":"Be the first to comment.","hidden":"Hidden","delete":"Delete comment","now":"now","minutesAgo":"{count} min ago","hoursAgo":"{count} hr ago","daysAgo":"{count} d ago"},"moderation":{"back":"Back to academy","title":"Comment moderation","all":"All","visible":"Visible","hiddenPlural":"Hidden","search":"Search text or user…","empty":"There are no comments.","hidden":"Hidden","show":"Show","hide":"Hide","delete":"Delete","deleteConfirm":"Delete this comment?","minutesAgo":"{count} min ago","hoursAgo":"{count} hr ago"},"pages":{"platformSubtitle":"Four schools to master ContentFlow, grow, deliver services, or build products with AI.","clientSubtitle":"Courses and training for this account."},"preview":{"badge":"Isolated preview · read only","fixture":"Sanitized fixture: {name}","language":"Actual language: English","progress":"Course progress","completedCount":"{completed} of {total} items completed","audioGate":"Narration pending · reserved voice: {voice}","audioBody":"The edit remains silent until explicit authorization is granted to use the voice provider.","audioReady":"Narration ready · {voice}","audioReadyBody":"Local audio generated for this chapter and synchronized with its captions.","editorialPendingDescription":"Content in progress using the complete workflow and real product screens.","editorialRejected":"Chapter in progress","editorialRejectedBody":"We are rebuilding this chapter to teach the complete process, step by step, on real product screens. It will remain locked until every check passes.","editorialBlocked":"Content in progress","invalidLink":"The link does not match this course variant. No substitute lesson has been opened.","section":"Section {number}","video":"Chapter","quiz":"Check","transcript":"Accessible transcript","viewApp":"View in app · QA fixture","previous":"Previous","next":"Next","complete":"Mark as completed","completed":"Completed","localOnly":"No publishing, external playback, or customer data"}},"reelWizard":{"serverAudioRunning":"Generating the audio started from the chat…","serverAudioFailed":"The audio started from the chat could not be generated. The credits were refunded; you can try again.","avatarModelHelp":"The video uses the selected avatar’s model. Cinematic Avatar uses OmniHuman 2.","humanMontageReview":{"playbackErrorTitle":"Preview unavailable","loadingEngine":"Loading player…","loadingComposition":"Preparing preview…","playbackError":"The montage or its audio could not be played. Refresh the preview before approving.","title":"HyperFrames review","description":"Review the montage and listen to its audio before approving it. Approval applies this montage to the Reel; cloud rendering is quoted and confirmed afterwards through ContentFlow.","navigation":"Reel links","reel":"Open Reel","library":"Open Library","loading":"Checking the montage…","error":"The current state could not be confirmed. Refresh to check the same proposal before trying again.","applied":"Montage approved and applied. Return to the chat to prepare the package and request a cloud rendering quote.","notReady":"This proposal is not ready yet or needs corrections. Continue with the agent using the same proposal.","accepted":"Your approval is already recorded. You can finish applying it without generating another montage.","preview":"Montage preview","expired":"The preview is unavailable or expired. Refresh it to review this same proposal.","refreshPreview":"Refresh preview","confirm":"I have reviewed this montage and its audio and want to apply it to the Reel.","resume":"Finish applying the approved montage","accept":"Approve and apply montage","reload":"Refresh status"},"audioBudget":{"title":"Audio budget","reference":"Reference estimate for the saved audio selection. The balance is checked when you consult it. This does not confirm generation or include the rest of the Reel.","amount":"Estimated audio: {credits} credits · Available balance: {balance} credits","insufficient":"You don’t have enough credits to generate this audio.","unavailable":"We couldn’t calculate the audio cost. Try again in a few seconds.","loading":"Calculating credits…","read":"Check audio budget and balance"},"stepProgress":"Step {current} of {total} — {description}","steps":{"content":{"label":"Content","description":"Idea, angle or script"},"copy":{"label":"Copy","description":"Generate a script with AI"},"audio":{"label":"Audio","description":"Synthetic voice"},"montage":{"label":"Montage","description":"Visual style and music"},"render":{"label":"Render","description":"Generate the video"},"publish":{"label":"Publish","description":"Cover and publication"}},"sources":{"angle":{"label":"From angle","description":"Select an existing angle"},"idea":{"label":"From idea","description":"Create from an idea"},"custom":{"label":"Your own script","description":"Paste or write your script"},"avatarContext":{"label":"From avatar with context","description":"Write the script from an avatar's product or event"}},"requirements":{"source":"For an angle, list this account's campaigns first and then its angles, including those awaiting a script. You may also choose an account-owned idea or write a custom script of at least 50 characters. A script drafted by the agent uses only this conversation and sources it explicitly consulted; do not attribute ContentFlow context that was not retrieved.","personaAndSet":"Choose a Persona and an Avatar Set with a usable voice, belonging to that Persona and compatible with the orientation and engine.","paidSteps":"The voice, the full video and the render use credits. Check the quote for the exact selection and the current balance before confirming each paid operation; what each amount means comes in pricing."},"avatarSets":{"loading":"Loading avatar sets…","noSearchResults":"No results for this search.","identityPending":"This person’s Avatar 5 avatars need identity verification (see the notice above).","noAvatarV":"This person has no ready Avatar 5 avatars. Choose an available compatible avatar or check the Avatars section.","noNormal":"This person has no {orientation} avatars compatible with “Normal Avatar”. Create one in the Avatars section or choose another person with a compatible avatar.","horizontal":"horizontal","vertical":"vertical"},"ideasUnavailable":"I could not read the ideas in this account.","operation":{"description":"Plan a Reel through the six-step wizard. This pricing operation is a catalogue concept; it does not create a Reel. The exact charge depends on the selected copy, audio, avatar and render stages.","sourceMode":"Choose an account-owned angle or idea, or a custom script.","sourceId":"Existing angle or idea ID belonging to the authenticated account; omit for a custom script.","customScript":"A custom script of at least 50 characters, required only when source_mode is custom.","personaId":"Persona belonging to the authenticated account.","avatarSetId":"Voice-ready Avatar Set of that Persona, compatible with the format and avatar engine.","format":"Reel canvas orientation, independent of the Reel workflow.","avatarEngine":"Avatar engine supported by the selected Avatar Set.","outputKind":"Reel wizard selection; creation requires a separate recoverable executor.","executionNote":"Use get_reel_wizard_options and account-scoped selector tools to guide the user. Full path: create_reel_draft → prepare_reel_script_scenes → estimate_reel_audio → start_reel_audio → approve_reel_audio → estimate_reel_full_video → start_reel_full_video → get_reel_full_video_operation → estimate_render_video → cf_render_video → cf_create_montage. Each paid step has its own quote; do not call browser session routes or present a catalogue price as a live quote.","publicMessage":"I can create a Reel with you from start to finish: script and scenes, voice, full video with avatar, motion graphics and b-roll, final render and «Final montage» to publish. Before each paid step I show you its credit quote; the catalogue price is only a reference."},"productionIntents":{"standard":{"label":"Reel with AI Director","description":"A Reel assembled by the AI Director from an angle, idea or your own script."},"advertisement":{"label":"Ad","description":"A Reel with an advertising script. It is assembled with the same process as the Reel with AI Director."},"virtual_worlds":{"label":"Virtual worlds","description":"A narrative journey through visual scenes and worlds."},"availability":"These are production intents. The complete creative composition and final cloud render workflow is not yet verified as available. Check stages, permissions, budget and balance before offering execution."},"types":{"tips":"Tips","story":"Story","question":"Question","controversial":"Controversial","tutorial":"Tutorial","beforeAfter":"Before/After"},"draftInvalidSelection":"Review the source, persona and avatar selection before creating the Reel.","draftSelectionChanged":"A creation is pending with a different selection. Restore the original selection to check that operation without creating another Reel.","draftUnconfirmed":"We cannot confirm draft creation yet. The original operation is preserved; retrying will check its status without creating another Reel.","draftAccountChanged":"Return to this Reel’s account to recover its creation or continue.","copyOperationFailed":"This step could not be completed. Check its status before running the operation again.","draftMissing":"The original operation is not found yet; this does not confirm it failed. You can check again or explicitly resend the same request with its original identifier and selection.","resubmitOriginalDraft":"Resend the original creation and continue","copyInsufficientCredits":"Insufficient credits. Available balance: {balance} credits.","closeOriginalDraft":"Close original request","closeDraftTitle":"Close draft request","closeDraftExplanation":"If the Reel was already created, we will recover it. Otherwise, we will close this request to prevent it from running later. This does not delete Reels or cancel copy, audio or renders. It uses no credits.","confirmCloseDraft":"Confirm closure","keepDraftRequest":"Keep request","draftClosurePending":"Closure needs verification. We keep the original request and will not start another creation.","draftClosureUnconfirmed":"We could not confirm closure. Check the same request before continuing.","draftClosureMissing":"The original receipt was not found. This does not confirm closure; you can check again or explicitly resend the same closure.","draftClosureConfirmed":"The original request is closed. You can select the content for a new Reel.","draftAlreadyCreated":"The original Reel was already created: {id}. Open it to continue; this step does not start any generation.","openOriginalReel":"Open original Reel","openDraftLibrary":"Open Library","checkDraftClosure":"Check original request","resendDraftClosure":"Resend same closure","startNewDraftSelection":"Select content for a new Reel","closeDraftOperation":"Request to close: {id}","audioBudgetChanged":"The voice or audio cost has changed. Refresh the estimate and confirm it again. No credits have been deducted.","audioBudgetUnavailable":"The audio estimate could not be verified. Generation has not started and no credits have been deducted.","hyperframesStages":{"worlds-montage-preview":"Worlds montage preview","worlds-montage":"Worlds montage proposal","worlds-montage-status":"Read worlds montage","worlds-storyboard-save":"Save storyboard in Library","worlds-storyboard-document":"Read saved storyboard","worlds-storyboard-approve":"Approve storyboard","worlds-storyboard-approval":"Read storyboard approval","authoring-recovery":"Recover original settlement","worlds-storyboard-estimate":"Worlds storyboard budget","worlds-storyboard":"Worlds storyboard generation","worlds-storyboard-status":"Storyboard status and review","project-prepare":"Prepare project with approved audio","source-prepare":"Prepare approved source","source-recover":"Recover original source","authoring-estimate":"Creative composition budget","authoring":"Create the original composition","authoring-status":"Original composition status and credits","review":"Proposal and preview for review","render-quote-prepare":"Prepare the original render quote","render-estimate":"Final render budget","render":"Final cloud render","render-status":"Final video status and delivery","availability":"Each stage requires its permissions and checks. A configured stage does not confirm that you can execute it or that its budget is available. For each generation, obtain its budget and balance and request explicit confirmation. Editorial review is separate from that confirmation. Preserve original identifiers when an operation remains pending."},"cinematicTimeline":{"failedRefunded":"Some shots could not be generated. The credits for those shots have been refunded.","title":"Cinematic Avatar","description":"Your video is waiting: confirm the premium cost of the avatar shots to continue.","amount":"{count, plural, one {# shot} other {# shots}} · {credits} credits","unavailable":"We could not confirm the status. Retry to continue with the same request.","insufficient":"You do not have enough credits. Add credits and try again.","submitted":"Generating your avatar shots…","working":"Preparing…","retry":"Retry the same request","confirm":"Confirm and generate","estimate":"Confirm cost to continue","cancel":"Cancel","waitingBanner":"Your video is paused until you confirm the cinematic avatar cost.","waitingBannerAction":"Go to confirm"},"contextAvatar":{"title":"Start from an avatar with context","help":"Pick an avatar created with a presentation context: the persona, engine and avatar set below are filled in, and the script can use its product or event.","clear":"Remove","productLabel":"Product: {title}","eventLabel":"Event: {title}","empty":"This account has no avatars created with a presentation context yet."},"scriptAi":{"asIs":"Your text is used as written. AI only steps in when you press «Write with AI» or «Rewrite with AI».","usingContext":"The AI will use the context of {label}.","instructionsLabel":"Instructions for the AI","instructionsPlaceholder":"Instructions for the AI (optional): «shorter», «open with a question»…","write":"Write with AI","rewrite":"Rewrite with AI","undo":"Undo","confirmWrite":"Writing the script with AI costs {credits, plural, one {# credit} other {# credits}}. Your balance: {balance}.","confirmRewrite":"Rewriting the script with AI costs {credits, plural, one {# credit} other {# credits}}. Your balance: {balance}.","confirm":"Confirm","cancel":"Cancel","insufficient":"Not enough credits: {credits} needed and you have {balance}.","failed":"The script could not be generated. Try again."},"avatarShare":{"costHint":"Recommended: about {recommended}%. Each avatar second is paid separately, so more avatar time makes the video more expensive.","costWarning":"Above the recommended {recommended}%: more avatar time makes the video more expensive. The exact cost is confirmed before the shots are generated.","title":"Avatar time","seconds":"≈ {seconds} s of avatar in a {total} s Reel","secondsUnknown":"Seconds are calculated once the audio is generated.","note":"Trial version: the Director places the avatar to match this percentage. Scenes forced to camera only count as avatar."},"renderStall":{"title":"The video has not progressed for {minutes} minutes","body":"It may still be working in the background. Do not relaunch it: the avatars already ordered would be lost. If it does not progress, contact support.","status":"Status: {status}","unknownStatus":"(no status)","keepWaiting":"Keep waiting"},"fullVideoRoute":{"note":"Reels with AI Director and ads are finished over MCP just like in the app: script and scenes, approved audio, «Generate full video» (AI Director, avatar, motion graphics, slides and b-roll), final render and «Final montage» to publish. Each paid step has its own credit quote and needs confirmation.","worldsUnavailable":"Virtual worlds is not available yet. Alternative: create a «Reel with AI Director» with the b-roll composition.","hyperframesAlternative":"Alternative route in testing for creative Reels with HyperFrames. It is not verified end to end; use the full video route unless the user explicitly asks for it."},"contentLanguage":{"title":"Video language","loading":"Working out the language…","summary":"{language} — {reason}.","help":"Voice, subtitles, on-screen text and slides will be in this language.","sources":{"persona":"{persona}'s language","campaign":"the campaign's language","brand":"the brand's language","account":"the company's language","default":"default language","explicit":"chosen by you"}},"copyReservationRefunded":"This Reel's avatar reservation was already refunded, so it cannot be launched again. Create a new Reel."},"tiktokAds":{"pageTitle":"CF-TikTok Ads","title":"TikTok Ads","subtitle":"Manage advertising for the selected TikTok account.","loading":"Loading TikTok data…","retry":"Retry","permissionError":"You do not have permission to view this advertising account.","reconnectError":"Reconnect TikTok Ads to restore access.","invalidRequest":"Check the identifiers, dates and filters.","selectAdvertiserHelp":"Select an authorized advertising account to view its data.","setupPending":"The TikTok Ads connection still needs configuration. Contact your administrator.","readError":"TikTok data could not be retrieved. Try again.","pagination":"Page {page} of {pages} · {count} results","fetchedAt":"Retrieved: {date}","previous":"Previous","next":"Next","yes":"Yes","no":"No","unavailable":"Unavailable","entityLevel":"Level","levels":{"advertiser":"Advertising account","campaign":"Campaigns","adgroup":"Ad groups","ad":"Ads"},"refresh":"Refresh","clearFilters":"Clear filters","emptyEntities":"TikTok returned no items for these filters.","name":"Name","id":"Identifier","status":"Status","budget":"Budget","actions":"Actions","campaignId":"Campaign: {id}","adgroupId":"Ad group: {id}","viewAdgroups":"View ad groups","viewAds":"View ads","funnelHelp":"View the impressions, clicks and conversions reported by TikTok for the selected period.","reportHelp":"View TikTok metrics by account, campaign, ad group or ad.","startDate":"Start date","endDate":"End date","daily":"Daily breakdown","applyFilters":"Apply filters","missingMetricsHelp":"Unavailable metrics are displayed as unavailable. Values restricted by TikTok keep their original format.","emptyReport":"TikTok returned no metrics for these filters.","date":"Date","metrics":{"spend":"Spend","impressions":"Impressions","clicks":"Clicks","ctr":"CTR","cpc":"CPC","cpm":"CPM","conversion":"Conversions","cost_per_conversion":"Cost per conversion","conversion_rate":"Conversion rate"},"commentsHelp":"View comments and replies for an ad group during a selected period.","adgroupIdLabel":"Ad group ID","commentType":"Comment type","commentTypes":{"ALL":"All","COMMENT":"Comment","REPLY":"Reply"},"sortBy":"Sort by","commentSort":{"CREATE_TIME":"Date","LIKES":"Likes","REPLIES":"Replies"},"sortOrder":"Order","sortOrders":{"DESC":"Descending","ASC":"Ascending"},"loadComments":"Load comments","chooseAdgroup":"Enter the ad group ID and dates to retrieve its comments.","emptyComments":"TikTok returned no comments for these filters.","unknownAuthor":"Author unavailable","replyTo":"Reply to comment: {id}","adId":"Ad: {id}","likes":"Likes: {count}","replies":"Replies: {count}","commentPermission":"Management permission reported by TikTok:","viewVideo":"View video","pixelHelp":"View the pixels available to this account. This lookup does not verify their installation on a website.","audiencesHelp":"View owned and shared audiences available to this account.","emptyPixels":"TikTok returned no pixels for this account.","emptyAudiences":"TikTok returned no audiences for this account.","ownedByAdvertiser":"Owned by this account:","pixelCode":"Pixel code: {code}","pixelActivity":"Reported activity: {status}","eventsDelay":"TikTok updates events every 2–4 hours; a new pixel may not show events yet.","eventsUnavailable":"Event information is unavailable.","emptyPixelEvents":"TikTok returned no events for this pixel.","pixelScript":"View installation code","matchedUsers":"Matched users: {count}","audienceValid":"Valid audience:","shared":"Shared:","expiresAt":"Expires: {date}","refreshConnection":"Refresh connection","saving":"Updating connection…","connect":"Connect TikTok Ads","reconnect":"Reconnect TikTok Ads","disconnect":"Disconnect TikTok Ads","advertiser":"Advertising account","selectAdvertiser":"Select an account","advertiserId":"Advertising account: {id}","environments":{"production":"Production","preview":"Testing"},"disconnectHelp":"This account’s advertising connection will be removed from ContentFlow365. Campaigns will keep their status in TikTok.","confirmDisconnect":"Confirm disconnection","cancel":"Cancel","tabsLabel":"TikTok Ads sections","tabs":{"dashboard":"Dashboard","campaigns":"Campaigns","comments":"Comments","funnel":"Funnel","pixel":"Pixel","reports":"Reports","audiences":"Audiences"},"connectToView":"Connect TikTok Ads and select an advertising account to view this section.","chooseAccount":"Select a ContentFlow365 account to open TikTok Ads.","creation":{"title":"Create paused campaign","pausedHelp":"The campaign, ad group and ad will be created paused. Review the details before confirming.","loadingContext":"Loading advertising account…","contextError":"This account’s currency and timezone could not be retrieved.","retry":"Retry","context":"Account {id} · Currency {currency} · Timezone {timezone}","writesDisabled":"Ad creation is not enabled for this connection. You can review the details.","permissionError":"You do not have permission to create ads for this account.","contextChanged":"The connection or account has changed. Check the details again.","originalGrantRequired":"Continuing this creation requires its original user and authorization. Keep the original reference to consult or reconcile it; do not create a duplicate.","invalidDraft":"Check names, budget, dates, targeting, identity and media.","budgetPrecisionError":"Enter a positive budget using the decimals allowed by this account’s currency. Use a decimal point; the amount will not be rounded.","currencyUnsupported":"Budget precision has not been verified for this account’s currency. Creation cannot continue yet.","requestError":"This campaign could not be checked. Review the connection and details.","uncertainHelp":"If creation did not finish or the response is uncertain, check this same operation and verify its resources before continuing.","campaignName":"Campaign name","groupName":"Ad group name","adName":"Ad name","objective":"Objective: traffic to a website.","budget":"Budget limit","budgetMode":"Budget type","gender":"Gender","budgetHelp":"The budget configures a limit; this flow creates paused ads. A dynamic daily budget is a weekly daily average: once activated, TikTok may spend up to 125% on a day and up to seven times the daily average over a week.","start":"Start (UTC)","end":"End (UTC)","scheduleHelp":"Enter dates and times in UTC. TikTok receives this schedule in UTC, even when the advertising account uses another timezone.","locations":"Location IDs","interests":"Interest IDs (optional)","audiences":"Included audience IDs (optional)","excludedAudiences":"Excluded audience IDs (optional)","targetingHelp":"Enter TikTok IDs separated by commas. TikTok will check that targeting is available for this account.","ages":"Ages","disableComments":"Disable comments","identityType":"Identity type","businessCenter":"Authorized Business Center ID","identity":"TikTok identity","selectIdentity":"Select an identity","identitiesError":"Authorized identities could not be retrieved. Check the type and Business Center.","previousIdentities":"Previous identities","nextIdentities":"More identities","mediaKind":"Ad media","advertiserVideo":"Existing account video","sparkPost":"Authorized Spark Ads post","mediaHelp":"Use media already in this account or an authorized post. The preview will check IDs and permissions before creation.","videoId":"Video ID","coverId":"Cover image ID","postId":"Post ID","adText":"Full ad text","adTextRules":"{count}/100 characters using TikTok's limit. Chinese and Japanese characters count twice. Emojis are not allowed.","destination":"Destination URL","cta":"Call to action","preview":"Review paused campaign","review":"Review before creation","names":"Campaign: {campaign} · Ad group: {adgroup} · Ad: {ad}","reviewBudget":"Budget: {budget} {currency} · {mode}","reviewSchedule":"From {start} to {end} · UTC · Account timezone: {timezone}","reviewTargeting":"Locations: {locations} · Ages: {ages} · Gender: {gender}","reviewAudiences":"Included audiences: {included} · Excluded: {excluded} · Interests: {interests}","reviewComments":"Comments: {value}","reviewIdentity":"Identity: {identity} · {type} · Business Center: {businessCenter}","reviewPost":"Spark post: {id}","reviewVideo":"Video: {video} · Cover: {cover}","none":"None","disabled":"Disabled","enabled":"Enabled","sparkExpiry":"Spark authorization valid until: {date}","confirmation":"I have reviewed the details and confirm paused creation of the campaign, ad group and ad, without activating spend.","create":"Create all three levels paused","continue":"Continue this same paused creation","working":"Processing operation…","operation":"Operation: {id}","checkStatus":"Check saved status","candidateId":"Native ID to verify an uncertain creation (optional)","reconcile":"Verify resources in TikTok","previewContinue":"Review before continuing","historicalVerification":"Creation was verified when it completed. Use verification to check its current state in TikTok.","budgetModes":{"BUDGET_MODE_DAY":"Daily","BUDGET_MODE_TOTAL":"Total","BUDGET_MODE_DYNAMIC_DAILY_BUDGET":"Dynamic daily"},"genders":{"GENDER_UNLIMITED":"All","GENDER_MALE":"Male","GENDER_FEMALE":"Female"},"ageGroups":{"AGE_18_24":"18–24","AGE_25_34":"25–34","AGE_35_44":"35–44","AGE_45_54":"45–54","AGE_55_100":"55+"},"identityTypes":{"TT_USER":"Linked TikTok account","AUTH_CODE":"Spark authorization code","BC_AUTH_TT":"Business Center authorized account"},"ctas":{"LEARN_MORE":"Learn more","SHOP_NOW":"Shop now","SIGN_UP":"Sign up","CONTACT_US":"Contact us","DOWNLOAD":"Download"},"states":{"reserved":"Ready to create","campaign_pending":"Campaign creation awaiting verification","campaign_created":"Campaign created; continuation required","adgroup_pending":"Ad group creation awaiting verification","adgroup_created":"Ad group created; ad still needed","ad_pending":"Ad creation awaiting verification","complete":"Creation completed and verified","uncertain":"Uncertain response; verification required","provider_rejected":"Creation not sent; review access before continuing"},"entityLinks":{"campaign":"View campaign {id}","adgroup":"View ad group {id}","ad":"View ad {id}"},"originalContext":"Original operation context: {currency} · {timezone}","newCampaign":"Prepare another paused campaign","locationsError":"A selected location is no longer available or its hierarchy could not be verified. Update the selection before reviewing. Selected locations overlap. Remove the country or its inner location before reviewing.","audiencesError":"TikTok could not confirm a selected audience is available. Update the selection before reviewing the campaign.","targetingError":"The selected categories could not be verified in TikTok. Review targeting and check the campaign again.","helpGuide":"Paused campaign guide","scheduleUnavailable":"The start must be within the last 12 hours or in the future, no later than 1 January 2028 UTC. The end must follow the start and be no later than 1 January 2038 UTC. Review the updated schedule.","coverAspectHelp":"The cover must have the same aspect ratio as the video. We verify native dimensions before sending; a rounded library ratio is not sufficient.","coverAspectError":"Choose a cover with the same aspect ratio as the selected video.","mediaDimensionsError":"TikTok did not provide usable video and cover dimensions. Check the selected resources and review again before sending.","savedAudienceError":"Choose an available Saved Audience and review its current configuration again. TikTok could not confirm the audience, its unchanged settings or the parent campaign’s eligibility."},"openCreation":"Create paused campaign","hideCreation":"Hide creation","media":{"videos":"Account video library","images":"Account cover images","libraryHelp":"Choose existing media from this advertising account. Previews are temporary; refresh them when needed. TikTok checks media eligibility before creation. A video cover preview URL is not a cover image ID. TikTok returns up to 10,000 recently modified assets.","searchName":"Video name","search":"Search videos","sort":"Video order","createdSort":"Recently created","modifiedSort":"Recently modified","refresh":"Refresh library","selected":"Selected ID: {id}","loading":"Loading TikTok media…","error":"The TikTok media library could not be retrieved. Check the connection and library permissions, then refresh.","page":"Page {page} of {pages} · {count} results","empty":"No media returned for this page and search.","unnamed":"Unnamed media","unknown":"Unavailable","dimensions":"Size: {width} × {height}","placements":"Available placements: {values}","notDisplayable":"TikTok reports that this asset is not displayable. Review its eligibility before creation.","previewVideo":"Open temporary video preview","noPreview":"Preview unavailable or expired. Refresh the library to retrieve a current link.","chooseVideo":"Choose video {id}","chooseImage":"Choose cover image {id}","previous":"Previous media","next":"More media"},"posts":{"title":"Authorized Spark Ads posts","help":"Choose a video post under the selected TikTok identity. TikTok verifies post access and authorization before ad creation. Previews are temporary; refresh them when needed.","selectIdentity":"Select a TikTok identity and, when required, its authorized Business Center to view posts.","keyword":"Post text or exact post ID","search":"Search authorized posts","excludeAdsOnly":"Show organic posts only","organicLimit":"TikTok returns a maximum of 500 recent organic posts with this filter.","refresh":"Refresh posts","selected":"Selected post ID: {id}","loading":"Loading TikTok posts…","error":"Posts could not be retrieved for this identity. Check the connection and permissions, then refresh.","page":"Post page {page}","empty":"TikTok returned no posts for this page and filters.","cover":"Cover of TikTok post {id}","noText":"No post text returned","unknown":"Unavailable","nativeStatus":"TikTok post status: {status}","authStatus":"Authorization status: {status}","authStart":"Authorization starts (UTC): {time}","authEnd":"Authorization ends (UTC): {time}","noAuthorization":"TikTok returned no authorization details. Creation will verify the post and applicable permissions.","preview":"Open temporary post preview","noPreview":"Preview unavailable or expired. Refresh to retrieve current links.","choose":"Choose post {id}","cursorError":"TikTok returned a repeated or missing pagination cursor. Refresh the posts before continuing.","previous":"Previous posts","next":"More posts"},"locations":{"title":"Available TikTok locations","help":"Choose locations for Traffic to a website on TikTok. A location and locations within it cannot be combined. TikTok will check account permissions and limits when creating the ad group.","loading":"Loading TikTok locations…","error":"Could not verify locations for this account.","refresh":"Refresh locations","search":"Search locations by name, country or ID","results":"{count} matches from {total} locations returned by TikTok.","selected":"Selected locations","remove":"Remove location {id}","empty":"TikTok returned no locations for these settings.","noMatch":"No locations match your search.","overlap":"Selected locations overlap. Remove the country or its inner location before reviewing.","unavailable":"A selected location is no longer available or its hierarchy could not be verified. Update the selection before reviewing.","previous":"Previous locations","next":"More locations","page":"Page {page} of {pages} of the local search","levels":{"COUNTRY":"Country or region","PROVINCE":"Province or metropolitan area","CITY":"City","DISTRICT":"District"}},"audiencePicker":{"title":"Available TikTok audiences","help":"Select audiences to include or exclude. Audiences shared by other advertisers are also shown. Only audiences marked available by TikTok can be selected; they will be checked again when reviewing the campaign. Creation is still subject to TikTok limits and permissions.","loading":"Loading TikTok audiences…","error":"Could not verify audiences for this account.","refresh":"Refresh audiences","overlap":"The same audience is included and excluded. Remove it from one selection.","selectedIncluded":"Selected included audiences","selectedExcluded":"Selected excluded audiences","included":"Include","excluded":"Exclude","remove":"Remove {id} from {role}","search":"Search this page by name, type or ID","results":"{count} matches on this page from {total} audiences returned by TikTok.","noMatch":"No audiences on this page match your search.","empty":"TikTok returned no audiences on this page.","unknown":"Unknown","details":"Availability: {validity} · Ownership: {ownership} · Shared: {shared} · Matched users: {users}","available":"Available","unavailable":"Unavailable","owned":"Owned","notOwned":"Another advertiser","yes":"Yes","no":"No","expires":"Expiry reported by TikTok: {value}","expiring":"TikTok reports this audience will expire in less than 60 days.","choose":"{role} {name} ({id})","previous":"Previous audiences","next":"More audiences","page":"Page {page} of {pages}"},"targeting":{"title":"Interests and behaviors","help":"Search TikTok’s catalog for this advertiser. Keep each category’s type and exact ID; results do not establish eligibility to run an ad.","conflictHelp":"Additional interests and purchase intent cannot be combined. Choose up to 100 IDs per type and 10 search terms.","type":"Targeting type","types":{"GENERAL_INTEREST":"General interests","ADDITIONAL_INTEREST":"Additional interests","PURCHASE_INTENTION":"Purchase intent","VIDEO_INTERACTION":"Video interactions","CREATOR_INTERACTION":"Creator interactions","HASHTAG_INTERACTION":"Hashtag interactions"},"keyword":"Search term in TikTok","search":"Search TikTok","listAll":"List this type","keywordRequired":"Additional interests require a search term.","loading":"Reading TikTok categories…","error":"TikTok categories could not be verified. Refresh before selecting.","refresh":"Refresh categories","selected":"Selected interests and behaviors","seed":"Search: {keyword} ({language})","remove":"Remove {type}: {id}","filter":"Filter the current TikTok results","results":"{count} of {total} returned results. This filter and paging are local.","noMatch":"No matching results in this catalog.","empty":"TikTok returned no categories for this query.","previous":"Previous results","page":"Page {page} of {pages}","next":"Next results","hashtagTypes":{"HASHTAG":"Individual hashtag","HASHTAG_BUNDLE":"Hashtag bundle"},"videoSettings":"Video behavior settings","period":"Video interaction period","periodAny":"No definite timeframe","periodDays":"{days} days","actions":{"WATCHED_TO_END":"Watched to the end","LIKED":"Liked a video","COMMENTED":"Commented on a video","SHARED":"Shared a video","FOLLOWING":"Followed the creator","VIEW_HOMEPAGE":"Viewed the creator’s profile"},"creatorSettings":"Creator behavior settings","creatorPeriod":"Creator interactions have no definite timeframe.","hashtagPeriod":"Hashtag targeting uses hashtag views with no definite timeframe.","reviewSelection":"{type}: {id}. Catalog language: {language}. Search term: {keyword}.","reviewVideoSettings":"Video behavior: {period}; {actions}.","reviewCreatorSettings":"Creator behavior, no definite timeframe: {actions}."},"ownedMedia":{"title":"Upload from ContentFlow Library","help":"Select an existing owned output, review its name and confirm preparation. Each advance sends one upload phase. This does not generate media, create an ad, activate a campaign or spend an advertising budget.","advertiser":"Advertising account: {id}","search":"Search Library","find":"Find owned media","loading":"Loading owned media…","libraryError":"Library could not be loaded. Check access and try the search again.","partial":"Some Library sources are unavailable. This list may be incomplete.","empty":"No owned media on this page.","unavailable":"This output cannot be selected. It may be unavailable, archived or lack a canonical source.","previous":"Previous Library page","next":"Next Library page","fileName":"Name for TikTok","selection":"Selected source {id}, output {slot} · {name}","operation":"Upload operation {id}","refresh":"Read saved upload status","busy":"Checking this operation…","missing":"No saved operation was found in this account and advertiser. Do not start a replacement for an uncertain upload.","progress":"Transferred bytes: {bytes} of {total}","nativeId":"TikTok media ID: {id}","notDisplayable":"TikTok reports that this asset cannot be displayed. It cannot be selected here.","eligibilityUnknown":"TikTok did not report display eligibility. Campaign review must verify the selected media.","confirm":"I confirm this action for this source and advertising account. It will not activate ads.","prepare":"Prepare the selected output","resend":"Resend the original preparation request","advance":"Advance one upload phase","retryUnsent":"Retry the phase proven unsent","expire":"Release an expired preparation","verify":"Verify the exact TikTok media ID","choose":"Use the verified TikTok media ID","newUpload":"Prepare another owned output","disabled":"Media uploads are not enabled or native writes are paused. Saved status can still be read.","permissionError":"Your current account role does not permit this action.","connectionError":"Reconnect TikTok and select this advertiser, then read the original operation. A new connection does not replace the original write authority.","notExpired":"This preparation has not expired, is already frozen or has a native upload reservation. Refresh its saved status.","invalidSelection":"Choose an available owned output and enter a valid name of up to 100 characters.","operationError":"This action could not be confirmed. Read the saved status before continuing; keep the same operation ID.","preparation":{"queued":"Preparation queued.","preparing":"The original worker is checking and freezing the media.","frozen":"Original media prepared and retained for upload.","failed":"Preparation failed. No frozen native upload was created.","expired":"Preparation expired. Its original claim is retained."},"upload":{"reserved":"Ready to begin native upload.","start_pending":"The upload start awaits a confirmed receipt.","uploading":"Ready to transfer the next part.","part_pending":"The transferred part awaits a confirmed receipt.","parts_uploaded":"All parts transferred; ready to finalize.","finish_pending":"Finalization awaits a confirmed receipt.","file_ready":"Temporary TikTok file ready to bind.","bind_pending":"Binding awaits a confirmed receipt.","awaiting_native_metadata":"Permanent media ID received; native metadata verification is pending.","verified":"Media bytes and native metadata verified.","uncertain":"The phase may have been sent. Automatic resending is blocked.","unsent":"This phase is proven unsent and may be retried explicitly.","expired":"The temporary native file expired. No write can reuse it."},"advertiserMismatch":"Select advertising account {id} to recover this upload. The operation cannot be moved to another advertiser.","preview":"Open owned media preview","helpGuide":"Library and recovery guide"},"connectionGuide":"TikTok Ads connection guide","management":{"open":"Manage ads","hide":"Hide management","resume":"Resume operation","edit":"Edit {name}","title":"Manage TikTok ads","help":"Review the current TikTok state and your proposed change before confirming execution.","permissionError":"Your current access does not allow this operation. Ask an account administrator to review your permissions.","contextChanged":"The selected account or advertiser is unavailable or has changed. Return to the list and check the connection.","budgetUnavailable":"Budget changes are unavailable until the required native spend can be verified. An unavailable spend is never treated as zero.","writesDisabled":"Changes or spending actions are disabled for this connection.","nativeUnsupported":"TikTok does not allow this change for the current resource, campaign type or parent state.","reviewChanged":"The reviewed TikTok state has changed or it needs reviewing again. Check the operation status before continuing.","invalidDraft":"Check the resource IDs, name, budget and required confirmations.","recoveryRequired":"This operation needs recovery. Check its status and read TikTok again before taking another action.","missingOperation":"No saved operation was found for this reference. No new operation has been created.","requestError":"The operation could not be confirmed. Keep this reference and check its status.","reference":"Operation: {id} · Advertiser: {advertiser}","loading":"Checking operation…","deliveryUnknown":"The response is not confirmed. Check the original operation status before executing or cancelling again.","action":"Change","ids":"TikTok resource IDs","idsHelp":"Use the exact TikTok IDs, separated by commas or spaces. Name and budget changes use one resource; status changes support up to 20 different resources.","newName":"New name","newBudget":"New budget","currency":"Advertiser currency: {currency}","contextLoading":"Checking advertiser currency…","newStatus":"New status","confirmActivation":"I want to activate these resources and allow delivery according to their TikTok settings.","confirmDeletion":"I want to delete these resources in TikTok.","confirmChange":"I confirm these resources and the proposed change for review.","review":"Review change","reviewPending":"The review response is unavailable. The original draft and reference have been retained.","draftSummary":"Retained draft: {action} · IDs: {ids} · Name: {name} · Budget: {budget}","retryReview":"Retry the same review","closeLocalReview":"Close this local draft after the empty status check","refreshStatus":"Check original operation status","receipt":"Operation state: {state} · Execution attempts: {attempts}","intent":"Reviewed change: {action} · {level} · IDs: {ids}","desiredName":"Proposed name: {name}","desiredBudget":"Proposed budget: {budget} {currency}","desiredState":"Proposed status: {state}","activationHelp":"Activating a resource can start ad delivery and spending when its parent resources and schedule allow it.","deletionHelp":"Execution requests deletion in TikTok. Closing this panel does not undo that action.","liveBudgetHelp":"This resource is active. Changing its budget can change its spending limit.","entityId":"TikTok ID: {id}","hierarchy":"Campaign: {campaign} · Ad group: {group}","nativeState":"Status: {state} · Campaign type: {family}","ancestorState":"Campaign status: {campaign} · Ad group status: {group}","money":"Budget: {budget} {currency} · Budget mode: {mode}","spend":"Verified spend: {spend} {currency}","cbo":"Campaign budget optimization: {value}","timezone":"Advertiser time zone: {timezone}","before":"TikTok state reviewed before the change","current":"Latest state read from TikTok","reviewExpired":"It needs reviewing again. Check the original operation status; nothing was changed.","verification":"Execution verified: {verified} · Operation settled: {settled} · Proposed state observed: {observed}","observedAt":"Read from TikTok at {date} (UTC)","confirmExecution":"I confirm execution of this reviewed change.","confirmRetry":"The previous attempt is confirmed unsent. I explicitly request another attempt of this same operation.","retryUnsent":"Retry confirmed unsent operation","execute":"Execute reviewed change","confirmCancellation":"I confirm cancelling this operation before a native change is sent.","cancel":"Cancel unsent operation","reconcile":"Read TikTok and reconcile","reviewConflict":"Review current conflict","conflictHelp":"TikTok returned a retained final response that did not verify the entire proposed change. Review every current resource. Accepting this state closes the operation without another native change, even if a later observation matches the proposal.","confirmResolution":"I accept the current TikTok state shown in this conflict review.","resolve":"Accept current state","acceptedConflict":"The current state was accepted. This does not verify that TikTok applied the originally proposed change.","returnToList":"Return to ads list","actions":{"rename":"Rename","set_budget":"Change budget","set_status":"Change status","set_dayparting":"Edit weekly delivery","set_schedule":"Edit start and end dates","set_ad_copy":"Edit ad copy","set_ad_assets":"Edit identity and media","set_ad_destination":"Change destination and call to action","set_adgroup_targeting":"Change group targeting"},"states":{"reviewed":"Reviewed","pending":"Pending","unsent":"Confirmed unsent","uncertain":"Execution uncertain","responded":"Final response retained","verified":"Execution verified","cancelled":"Cancelled before dispatch","resolved":"Current state accepted"},"nativeStates":{"ENABLE":"Active","DISABLE":"Paused","DELETE":"Deleted","FROZEN":"Frozen"},"families":{"manual":"Manual auction","legacy_smart_plus":"Legacy Smart+","upgraded_smart_plus":"Upgraded Smart+","reach_frequency":"Reach & Frequency","aco":"Automated creative optimization"},"budgetModes":{"BUDGET_MODE_INFINITE":"Unlimited","BUDGET_MODE_DAY":"Daily","BUDGET_MODE_TOTAL":"Lifetime","BUDGET_MODE_DYNAMIC_DAILY_BUDGET":"Dynamic daily"},"helpGuide":"Read the editing and recovery guide","confirmPartialSuccess":"I allow this status change to succeed for only some of the selected ad groups.","partialSuccessReviewed":"This review allows partial success. Successful and failed group IDs will be shown separately.","partialResponse":"TikTok updated only part of the reviewed group batch. Read every original ID and review the current state before accepting the result.","nativeRejected":"TikTok returned a documented rejection. Read the original resources and review the current state before closing this attempt.","nativeOutcome":"Native response: {kind} · Successful IDs: {succeeded} · Failed IDs: {failed} · TikTok code: {code}","outcomes":{"complete":"Complete acknowledgement","partial":"Partial success","rejected":"Rejected"},"preservedSettings":"Existing settings required by TikTok are preserved in this edit.","preservedContext":"Objective: {objective} · Promotion: {promotion} · Campaign type: {campaignType}","updateContextUnavailable":"TikTok has not returned enough existing configuration to edit this group. Read its current settings again; do not replace missing fields with defaults.","emptySelection":"Empty native selection","updateFields":{"pacing":"Budget delivery","operating_systems":"Operating system","audience_type":"Retargeting audience type","audience_ids":"Included audiences","excluded_audience_ids":"Excluded audiences","ios14_targeting":"iOS targeting","min_ios_version":"Minimum iOS version","catalog_authorized_bc_id":"Catalog Business Center","deep_funnel_optimization_status":"Deep funnel optimization","deep_funnel_event_source":"Deep funnel event source type","deep_funnel_event_source_id":"Deep funnel event source ID","deep_funnel_optimization_event":"Deep funnel optimization event","expansion_enabled":"Audience expansion","expansion_types":"Audience expansion types","location_ids":"Included locations","zipcode_ids":"Included postal codes","age_groups":"Age groups","gender":"Gender","exclude_age_under_eighteen":"Exclude ages under 18","comment_disabled":"Comments disabled","bid_type":"Bidding strategy","bid_price":"Cost cap bid","conversion_bid_price":"Conversion cost cap","secondary_optimization_event":"Secondary optimization event","deep_bid_type":"Deep event bidding strategy","roas_bid":"ROAS goal","deep_cpa_bid":"Deep event cost cap","next_day_retention":"Day 2 retention ratio","shopping_ads_retargeting_type":"Shopping Ads retargeting mode","shopping_ads_retargeting_actions_days":"Retargeting action window (days)","included_custom_actions":"Included action conditions","excluded_custom_actions":"Excluded action conditions","shopping_ads_retargeting_custom_audience_relation":"Custom audience relation","languages":"Targeting languages","interest_category_ids":"Interest categories","interest_keyword_ids":"Additional interests","purchase_intention_keyword_ids":"Purchase intention categories","smart_audience_enabled":"Smart audience enabled","smart_interest_behavior_enabled":"Smart interests and behaviors enabled","actions":"Behavioral conditions","min_android_version":"Minimum Android version","device_model_ids":"Device models","network_types":"Connection types","carrier_ids":"Mobile carriers","isp_ids":"Internet service providers","device_price_ranges":"Device price range (native values)","dayparting":"Weekly delivery schedule","share_disabled":"Sharing disabled","blocked_pangle_app_ids":"Pangle blocked app list IDs","spending_power":"Spending power","household_income":"Household income","audience_rule":"Audience rule","saved_audience_id":"Saved audience ID","auto_targeting_enabled":"Automatic targeting enabled","search_result_enabled":"Search results ads enabled","automated_keywords_enabled":"Automatic keywords enabled","search_keywords":"Search keywords","brand_safety_type":"Brand safety type","brand_safety_partner":"Brand safety partner","inventory_filter_enabled":"Inventory filter enabled","contextual_tag_ids":"Contextual tag IDs","category_exclusion_ids":"Excluded category IDs","vertical_sensitivity_id":"Vertical sensitivity ID","included_pangle_audience_package_ids":"Included Pangle audience package IDs","excluded_pangle_audience_package_ids":"Excluded Pangle audience package IDs","frequency":"Frequency cap","frequency_schedule":"Frequency interval (days)","is_hfss":"HFSS setting","is_lhf_compliance":"LHF compliance setting"},"budgetSpendHelp":"Review reads this resource’s TikTok spend: the advertiser day for daily budgets and the full accumulated spend for lifetime budgets. Editing the limit does not activate ads.","spendPeriodDay":"Spend period: {date}, in {timezone}.","spendPeriodLifetime":"Spend period: the full lifetime of this resource.","budgetPrecisionInvalid":"Enter a valid amount using the advertiser currency’s precision. Invalid amounts are not rounded into accepted values.","observedFields":{"bidType":"Current bidding strategy","billingEvent":"Billing event","optimizationGoal":"Optimization goal","optimizationEvent":"Optimization event","shoppingAdsType":"Shopping ad type","placements":"Current placements","scheduleType":"Observed schedule","scheduleStartTime":"Observed start (UTC+0)","scheduleEndTime":"Observed end (UTC+0)","placementType":"Observed placement type"},"budgetBelowBid":"The new ad group budget must be greater than its current cost cap bid. Review the native bid before changing the budget.","customAction":"{action} ({code}) · {days} days","customActionCodes":{"VIEW_PRODUCT":"View product","ADD_TO_CART":"Add to cart","PURCHASE":"Purchase"},"behaviorCondition":"{scene} ({code}) · {period} · Interactions: {actions} · Categories: {categories}","behaviorAnyPeriod":"No defined timeframe","behaviorPeriodDays":"{days} days","behaviorScenes":{"VIDEO_RELATED":"Video interactions","CREATOR_RELATED":"Creator interactions","HASHTAG_RELATED":"Hashtag interactions"},"daypartingFullTime":"Full-time delivery","daypartingWindow":"{day} {start}–{end}","weekdays":{"monday":"Monday","tuesday":"Tuesday","wednesday":"Wednesday","thursday":"Thursday","friday":"Friday","saturday":"Saturday","sunday":"Sunday"},"weeklyEditorTitle":"Weekly delivery","weeklyEditorHelp":"Select each half-hour slot from Monday through Sunday. TikTok treats an entirely empty week or a fully selected week as full-time delivery. Review the selected windows before execution.","weeklyAllTime":"Select full-time delivery","weeklySelectDay":"Select all of {day}","weeklyClearDay":"Clear {day}","desiredWeekly":"Requested delivery: {windows}","liveWeeklyHelp":"Changing delivery dates or windows on an enabled group can affect advertising delivery and requires spend permission.","scheduleEditorTitle":"Start and end dates","scheduleEditorHelp":"Dates are in UTC+0. Replace the start only before the current group start has been reached. A new start may be up to 12 hours earlier than now and no later than 2028-01-01 00:00:00; an end may be no later than 2038-01-01 00:00:00. Changing only the end keeps the current start and requires a group with start and end dates.","scheduleMode":"Date change","scheduleModes":{"change_end":"Change only the end","replace":"Replace the schedule before it starts"},"scheduleType":"Schedule type","scheduleTypes":{"SCHEDULE_START_END":"Start and end dates","SCHEDULE_FROM_NOW":"Start date with an automatic ten-year end"},"scheduleStart":"New start (UTC+0)","scheduleEnd":"New end (UTC+0)","desiredScheduleEnd":"Requested end (UTC+0): {end}; current start retained.","desiredScheduleReplace":"Requested dates (UTC+0): {start} to {end}.","scheduleNotEditable":"This date change is unavailable for the current schedule. A start already reached cannot be replaced; changing only the end requires a group with defined start and end dates.","scheduleInvalid":"The proposed start is now outside TikTok’s allowed time window. Read the current schedule and review new dates.","newAdText":"New ad copy","searchAdText":"Search ad copy {index}","copyMode":"Copy type","addAdText":"Add copy","removeAdText":"Remove copy {index}","copyHelp":"The mode must match the existing ad. Search ads with multiple texts accept one to five texts. The destination, button, identity and media are retained. The text of an organic post used through Spark Pull is edited in TikTok, not here.","copyNotEditable":"TikTok did not return an editable configuration or the mode does not match the existing ad. No update was sent.","copyInvalid":"Each text allows up to 100 weighted characters and cannot contain emojis.","currentAdCopy":"Current ad copy","desiredAdCopy":"Requested copy:\n{text}","liveCopyHelp":"This ad is enabled. Editing copy can affect review and delivery and requires current spend permission.","copyModes":{"single":"Single text","search":"Multiple Search texts"},"copyGuide":"Ad-copy editing guide","assetsHelp":"Change the identity and video/cover or authorized organic post of an existing manual video ad. Keep the current identity type and media mode. Text, destination, button and ad status are preserved; an organic post supplies its own text and cover. Changing between uploaded video and organic post is still unavailable.","assetsGuide":"Guide to editing identity and media","assetsNotEditable":"TikTok has not returned a complete editable manual video configuration for this ad.","assetsTransitionUnavailable":"Keep the existing identity type and media mode. Switching types or between uploaded video and an organic post is not available yet.","assetsUnavailable":"The selected identity, media or Spark authorization is unavailable. Check access and choose authorized resources.","desiredAssets":"Identity: {identity} · Type: {type} · Business Center: {businessCenter}\nMedia: {media}","videoCover":"Video {video} · Cover {cover}","organicPost":"Organic post {post}","currentAssets":"Current identity: {identity} · Type: {type}\nVideo: {video} · Cover: {cover} · Organic post: {post}","liveAssetsHelp":"This ad is enabled. Changing its identity or media requires advertising-spend permission. The change does not pause or enable the ad.","destinationHelp":"Edit a manual website Traffic video ad. Keep its current UTM parameters in the new URL. Review must retrieve the complete configuration, check the pixel and validate identity and media before allowing the change.","desiredDestination":"Requested destination: {url}\nCall to action: {cta}","currentDestination":"Current destination: {url}\nNative CTA: {cta}\nAd group pixel: {pixel}","destinationPreservesConfiguration":"The observed name, text, identity, video, cover, tracking and disclosure settings are preserved.","destinationNotEditable":"The complete configuration of this ad cannot be reconstructed. A manual website Traffic video ad with a fixed CTA is required; native observations are missing or include settings this editor cannot yet preserve.","destinationPixelUnavailable":"Tracking pixel ownership or its association with the original ad group cannot be confirmed. Review TikTok access and configuration.","destinationParametersMismatch":"The new URL must contain each current UTM parameter exactly once with its exact value.","liveDestinationHelp":"This ad is enabled. Changing its destination may affect delivery and requires the current spend permission. This change neither enables nor pauses the ad.","destinationGuide":"How to edit the destination and call to action","targetingHelp":"Enter the complete selection that should remain in the group. An empty list removes current audiences or interests. Review retrieves native configuration and retains all other settings.","targetingGuide":"How to edit group targeting","targetingNotEditable":"This group uses targeting configuration the editor cannot yet retain, or TikTok did not return the required observations. Review native settings before continuing.","targetingUsRemoval":"TikTok does not allow removing every United States location from this group. Retain at least one valid US location.","targetingUnavailable":"The selection could not be verified against the advertiser’s current catalogs and permissions. Refresh the data and review again.","liveTargetingHelp":"The group is enabled. Changing its targeting can affect delivery and requires current spend permission. This operation neither enables nor pauses the group.","targetingIncludedAudiences":"Included audience IDs; leave empty to remove all","targetingExcludedAudiences":"Excluded audience IDs; leave empty to remove all","targetingInterests":"Interest IDs; leave empty to remove all"},"commentManagement":{"title":"Manage TikTok ad comments","help":"Review the original comments, then confirm the native reply or moderation separately. A saved operation keeps its original intent and every attempt.","deletionEvidenceHelp":"A deletion acknowledgement is not verified deletion. Empty, hidden or unavailable lists do not prove that a comment was deleted.","operation":"Original operation: {id}","action":"Comment action","actions":{"reply":"Reply to an original comment","set_visibility":"Change comment visibility","delete":"Delete one own comment"},"visibilityLabel":"Requested visibility","visibility":{"HIDDEN":"Hidden","PUBLIC":"Public"},"replyText":"Complete reply text","confirmChange":"I confirm this exact comment change.","confirmPublic":"I confirm making these comments public.","confirmDeletion":"I confirm deleting this own comment.","review":"Review native comments","retryReview":"Retry the same original review","refreshStatus":"Read saved status","recoverHelp":"Recovery reads the original saved operation. It does not execute or resend it.","selected":"Selected comment IDs: {ids}","selectedCount":"{count, plural, one {# selected comment} other {# selected comments}}","manageSelected":"Manage selected comments","clearSelection":"Clear selection","selectComment":"Select comment {id}","manage":"Manage this comment","resume":"Resume saved comment operation","hide":"Hide comment operation","receipt":"Saved state: {state}. Attempts: {attempts}.","intent":"Original action: {action}. Ad group: {group}. Read range: {start} to {end}.","before":"Original native review","current":"Current native observation","commentId":"Comment ID: {id}","hierarchy":"Campaign: {campaign} · Group: {group} · Ad: {ad}","identity":"Video: {video} · Identity: {id} · Type: {type}","permissions":"Management permission: {manage} · Can delete own comment: {remove} · Business account linked: {linked}","verification":"Provider verified now: {verified} · Request settled: {settled} · Desired state observed: {observed}","outcome":"Final native response: {kind} · Reply ID: {id} · Provider code: {code}","outcomes":{"reply_created":"Reply acknowledged with native ID","acknowledged":"Change acknowledged","rejected":"Change rejected"},"observedAt":"Native observation (UTC): {date}","confirmExecution":"I confirm sending this exact reviewed change to TikTok.","confirmRetry":"I confirm retrying this authentically proven-unsent attempt.","execute":"Send reviewed change","retryUnsent":"Retry proven-unsent change","confirmCancellation":"I confirm cancelling this reviewed or proven-unsent operation locally.","cancel":"Cancel saved intent","reconcile":"Read exact native state","reviewConflict":"Review current native conflict","conflictHelp":"Accepting this current state closes the local operation. It does not retry, undo or verify the original TikTok change.","confirmResolution":"I accept this freshly reviewed native state as a local resolution.","resolve":"Accept current state","acceptedConflict":"The native conflict was accepted locally; this does not establish provider verification.","returnToList":"Return to comments","deliveryUnknown":"Delivery or local persistence is uncertain. Keep this operation and read its status; do not create a replacement or resend it.","reviewExpired":"It needs reviewing again; nothing was changed.","reviewChanged":"The native review changed or needs repeating. Read the saved operation before continuing.","permissionError":"Your current user needs the required comment read or publish permission.","contextChanged":"The account, advertiser or grant changed. Reopen the operation under its authorized context.","nativePermission":"TikTok does not provide the required comment ownership, identity or mutation permission for this action.","recoveryRequired":"This operation requires exact native recovery. An unknown reply cannot be identified by text or resent.","nativeRejected":"TikTok returned a final rejection. A matching observation does not verify execution; review the current state for explicit local acceptance.","writesDisabled":"TikTok writes are currently disabled. Saved status and eligible local cancellation remain available.","invalidDraft":"Check the selected comments, dates, full reply text and separate confirmations. The full native request must fit the 64 KiB SaaS limit; text is never truncated.","invalidReference":"The saved operation reference is incomplete, duplicated, invalid or belongs to another advertiser.","missingOperation":"The original operation is unavailable in this authorized partition. Keep its reference and check your access.","requestError":"The comment operation could not be confirmed. Read the saved status before attempting another action.","states":{"reviewed":"Reviewed","pending":"Pending","unsent":"Proven unsent","uncertain":"Uncertain","responded":"Final response retained","verified":"Previously verified","cancelled":"Cancelled locally","resolved":"Conflict accepted locally"},"guide":"Comment management and recovery guide"},"commentThread":{"title":"Comment thread","open":"View full thread","relationshipHelp":"The query shows the original comment and its replies, or the selected reply and its original. The verified hierarchy belongs to the reference comment; related rows retain only data returned by TikTok.","invalidReference":"The thread link is incomplete, duplicated or belongs to another advertiser.","reference":"Reference comment: {id}","hierarchy":"Campaign {campaign} · Group {group} · Ad {ad}","identity":"Video {video} · Identity {id} ({type})","createdAt":"Native date: {value}","permissions":"Management: {manage} · Own deletion: {remove} · Linked account: {linked}","flags":"Pinned: {pinned} · Blocked word: {blocked}","empty":"TikTok returned no rows on this page. The reference comment remains available above.","noAbsenceProof":"An empty page or missing comment does not prove deletion. Reading the thread does not authorize changes.","refresh":"Read the thread again"},"reportJobs":{"title":"Reports by quarter and year","help":"Request a native report for an explicit calendar period. Requesting a report does not activate ads or spend an advertising budget.","period":"Period","periods":{"quarter":"Calendar quarter","year":"Calendar year","range":"Date range"},"year":"Year","quarter":"Quarter","quarterNumber":"Quarter {quarter}","startDate":"Start date","endDate":"End date","level":"Reporting level","levels":{"advertiser":"Advertiser","campaign":"Campaign","adgroup":"Ad group","ad":"Ad"},"daily":"Daily breakdown","start":"Request native report","loading":"Checking the original report operation…","operation":"Report operation:","check":"Check original report","invalidSelection":"Choose a valid calendar period and reporting level.","originalGrantRequired":"This report requires its original user and advertiser connection. Reconnecting does not transfer it to a new grant.","permissionError":"You do not currently have permission to read this advertiser's report.","requestFailed":"The report could not be requested or checked. Keep the original operation and check it again.","uncertainHelp":"The creation result is uncertain. Check this original operation; do not request a replacement to repeat it.","selection":"{start} – {end} · {level} · {daily}","dailyEnabled":"Daily breakdown","dailyDisabled":"Period totals","advertiserContext":"Currency: {currency} · Advertiser timezone: {timezone}","fileNotAvailable":"No downloadable file is available for this report yet.","resumeReserved":"Continue the original unsent request","newReport":"Choose another report","states":{"reserved":"Request retained; native creation has not been dispatched","create_pending":"Native creation is pending","uncertain":"Native creation result is uncertain","task_known":"Original native task retained","task_failed":"Native report failed","task_canceled":"Native report was canceled","artifacts_ready":"Requested artifacts sealed"},"nativeStates":{"QUEUING":"Queued","PROCESSING":"Processing","SUCCESS":"Native task succeeded","FAILED":"Failed","CANCELED":"Canceled"},"format":"Requested files","formats":{"csv":"CSV","pdf":"PDF","both":"CSV and PDF"},"pdfLanguage":"PDF language","pdfLanguages":{"es":"Spanish","en":"English"},"requestedFormat":"Requested files: {format}","requestedPdfLanguage":"PDF language: {language}","prepareFiles":"Prepare report files","preparationBusy":"The report files are already being prepared. Check their status before trying again.","filesPrepared":"Report file preparation is complete. Download availability is shown separately.","downloadCsv":"Download CSV","downloadPdf":"Download PDF"},"reportPdf":{"title":"TikTok Ads performance report","period":"{startDate} – {endDate}","advertiser":"Advertiser: {id}","currency":"Currency: {currency}","timezone":"Advertiser timezone: {timezone}","collectedRows":"Collected rows: {count}","coverage":"These figures describe the collected native rows. Advertiser-wide completeness has not been attested.","invoiceBoundary":"This performance report is not a TikTok invoice.","summary":"Collected totals","detail":"Native row detail","total":"{label}: {value}","unavailable":"Unavailable","knownSubtotal":"Known collected subtotal: {value}","unknownRows":"Rows with missing, suppressed or invalid measurements: {count}","noRows":"The native file contains no rows. This does not establish zero spend.","row":"Row {index}: {id}","day":"Native reporting date: {day}","metrics":{"spend":"Spend","impressions":"Impressions","clicks":"Clicks","ctr":"CTR","cpc":"CPC","cpm":"CPM","conversion":"Conversions","cost_per_conversion":"Cost per conversion","conversion_rate_v2":"Conversion rate"}},"childCreation":{"title":"Create a paused group or ad","help":"Create one group in an existing Manual Traffic campaign, or one ad in an existing website/click/CPC group with TikTok placement. The selected native parent is checked again before creation. The new resource remains paused and does not authorize ad delivery.","level":"Resource to create","adgroup":"Ad group","ad":"Ad","nativeParent":"Choose an existing TikTok parent","selectParent":"Choose a campaign or ad group","parentId":"Exact existing parent ID","parentsError":"Existing TikTok parents could not be loaded.","previousParents":"Previous parents","nextParents":"Next parents","parentUnavailable":"This native parent is unavailable, changed or incompatible. Check the original operation and select a supported parent before a new review.","scopeMismatch":"This retained operation belongs to another advertiser or its link is incomplete. Return to the original advertiser and complete operation link. No new resource will be created here.","reviewParent":"Existing campaign: {campaign} · {campaignId}. Existing group: {group} · {groupId}.","reviewName":"New paused resource: {name}","confirmation":"I confirm this exact configuration and existing parent. Create only this new resource paused, without activating advertising.","new":"Start another group or ad","open":"Create group or ad","hide":"Hide group or ad creation","resume":"Resume original group or ad operation","createGroup":"Create group in this campaign","createAd":"Create ad in this group","unpersistedId":"TikTok returned another native ID whose persistence is unconfirmed: {id}. Keep the original operation and reconcile; do not create again.","states":{"reserved":"Original configuration reserved; no dispatch confirmed.","pending":"Original native attempt is pending; check or reconcile without creating again.","uncertain":"The native outcome is uncertain. Keep the original operation and known IDs.","provider_rejected":"The original attempt did not dispatch. Review the same configuration before continuing with its original grant.","complete":"The new paused resource, exact configuration and original native hierarchy were verified."}},"savedAudiences":{"title":"Saved TikTok audiences","help":"Inspect targeting configurations saved in the selected ad account. Listing an audience does not apply it to an ad group or confirm that TikTok permits its use for your campaign.","catalogType":"Audience catalog","custom":"Custom audiences","filter":"Saved audience IDs, separated by commas; leave blank for all","applyFilter":"Apply filter","invalidFilter":"Enter up to 100 different TikTok audience IDs.","empty":"TikTok returned no saved audiences for this query.","id":"Saved audience ID: {id}","configuration":"View targeting configuration","emptyValues":"No values returned","ageUnder18":"13–17","viewHashtag":"Viewed a hashtag","categoryIds":"Category IDs: {ids}","priceHelp":"These are the device-price values returned by TikTok. TikTok adds 50 to a configured upper limit when applying device targeting; the displayed series is preserved as returned.","scenes":{"VIDEO_RELATED":"Video interactions","CREATOR_RELATED":"Creator interactions","HASHTAG_RELATED":"Hashtag interactions"},"fields":{"location_ids":"Location IDs","gender":"Gender","age_groups":"Age groups","languages":"Language codes","audience_ids":"Included audience IDs","excluded_audience_ids":"Excluded audience IDs","interest_category_ids":"Interest category IDs","interest_keyword_ids":"Interest keyword IDs","actions":"Behavior targeting","operating_systems":"Operating systems","min_android_version":"Minimum Android version","min_ios_version":"Minimum iOS version","device_model_ids":"Device model IDs","network_types":"Connection types","carrier_ids":"Carrier IDs","device_price_ranges":"Native device-price values"},"inheritHelp":"TikTok inherits this Saved Audience’s targeting. Manual targeting is not sent alongside it. Review every inherited setting; unavailable values remain unknown. The server checks the original advertiser and unchanged configuration again before sending. TikTok still validates objective, location, age and device eligibility.","select":"Use {name} · {id}","selected":"Selected Saved Audience","manualTargeting":"Manual targeting","savedTargeting":"Saved Audience"}},"linkedinConversionRules":{"title":"Manage conversion rules","help":"Create or edit Insight Tag rules and choose which campaigns use them.","providerDiagnostic":"LinkedIn diagnostic: {diagnostic}","create":"New conversion rule","detail":"View rule","edit":"Edit conversion rule","name":"Rule name","type":"Conversion type","clickWindow":"Click attribution window","viewWindow":"View attribution window","days":"{days, plural, one {# day} other {# days}}","attribution":"Attribution","eachCampaign":"Each campaign","oneCampaign":"One campaign per conversion","value":"Conversion value","noValue":"No value","fixedValue":"Fixed value","dynamicValue":"Dynamic value","amount":"Amount ({currency})","tracking":"Tracking method","event":"Specific event","url":"Page URL","enabled":"Enable this conversion rule","eventHelp":"An event rule needs its conversion ID in the consent-controlled website integration. Creating the rule does not install or send events.","urlHelp":"Each OR group needs an exact URL or a prefix ending after the domain on one of these published hosts: {hosts}. All rules within a group must match.","group":"OR group {number}","allConditions":"All conditions must match","match":"Match type","urlValue":"URL or substring","remove":"Remove condition","and":"Add AND condition","or":"Add OR group","removeGroup":"Remove group","campaigns":"Associated campaigns","noAssociatedCampaigns":"None","urlConditions":"URL conditions","noUrlConditions":"No URL conditions","associated":"Current associations: {campaigns}","campaign":"Campaign","chooseCampaign":"Select a campaign","reviewAssociation":"Review association change","associationHelp":"Select one campaign to add or remove its association. No campaign is automatically selected or activated.","unknown":"Not verified","willAssociate":"Associate with campaign {campaign}.","willRemoveAssociation":"Remove association with campaign {campaign}.","windowsSummary":"Click: {click, plural, one {# day} other {# days}} · View: {view, plural, one {# day} other {# days}}","confirmationHelp":"Confirm the exact rule settings. This does not activate advertising or send conversion events. Changes to enabled rules and associations can affect measurement and optimization of existing campaigns.","loadFailed":"Could not verify conversion rules. Read again before changing anything.","reviewFailed":"Could not verify this preview. Reload current settings and check the selected account, tag, hosts and permissions.","invalid":"Check the rule name, URL conditions and decimal amount. Use a dot and at most two decimal places.","trackingRequired":"Publish the confirmed Insight Tag and eligible website domains in website tracking settings before managing rules.","wrongAccount":"This reference belongs to another ad account. Select the original account before opening it.","unsupported":"The full rule cannot be edited through this Insight Tag contract. Its current settings are preserved.","recoveryFailed":"The original reference could not be read. Keep it and read again; do not repeat the write.","referenceFailed":"Could not save the original reference. No write was sent.","uncertain":"The write result is unknown. Keep the original reference and check its status without creating another attempt.","previousOperations":"Previous conversion operations","types":{"ADD_TO_CART":"Add to cart","DOWNLOAD":"Download","INSTALL":"Install","KEY_PAGE_VIEW":"Key page view","LEAD":"Lead","PURCHASE":"Purchase","SIGN_UP":"Sign up","OTHER":"Other"},"matchTypes":{"EXACT":"Exactly equals","STARTS_WITH":"Starts with","CONTAINS":"Contains"},"actions":{"create":"Create conversion rule","update":"Update conversion rule","association":"Change campaign association"},"capi":{"title":"Server conversion rules (CAPI)","help":"Create and edit Conversions API rules and explicitly select their campaigns. These rules do not require an Insight Tag.","create":"New server conversion rule","refresh":"Refresh CAPI rules","empty":"No Conversions API rules are visible for this account.","active":"Active","inactive":"Inactive","scopeMissing":"This connection requires r_ads and rw_conversions. Standard approval alone does not grant these scopes.","roleMissing":"Your LinkedIn ad account role does not permit managing conversions.","expired":"The LinkedIn connection has expired. Reconnect before changing conversions.","writesDisabled":"Conversion writes are disabled in this environment. Available rules can still be read.","loadFailed":"Could not verify CAPI rules. Refresh before changing them.","reviewFailed":"Could not verify this preview. Check permissions, current rule settings and campaign association.","invalid":"Check the rule name, conversion type, attribution windows and decimal amount. Extended windows depend on the conversion type.","unsupported":"LinkedIn did not provide a complete editable CAPI definition. Current settings are preserved.","windowHelp":"180 and 365 days are available for supported lead, purchase, cart and application types. Marketing and sales qualified leads require API 202608 or later.","confirmHelp":"Saving changes measurement and may affect campaign optimization. It does not activate ads or send events. Campaign association is a separate explicit operation.","persisted":"Acknowledgement saved in the original receipt: {value}","ackNotPersisted":"LinkedIn acknowledgement was observed, but saving it was not verified. Keep the original operation and read its status; do not repeat the write.","nativeRule":"LinkedIn conversion rule: {id}","originalSettings":"Original approved settings","previous":"Previous CAPI rule operations","types":{"ADD_TO_CART":"Add to cart","DOWNLOAD":"Download","INSTALL":"Install","KEY_PAGE_VIEW":"Key page view","LEAD":"Lead","PURCHASE":"Purchase","SIGN_UP":"Sign up","OTHER":"Other","SAVE":"Save","START_CHECKOUT":"Start checkout","SCHEDULE":"Schedule","VIEW_CONTENT":"View content","VIEW_VIDEO":"View video","ADD_BILLING_INFO":"Add billing information","BOOK_APPOINTMENT":"Book appointment","REQUEST_QUOTE":"Request quote","SEARCH":"Search","SUBSCRIBE":"Subscribe","AD_CLICK":"Ad click","AD_VIEW":"Ad view","COMPLETE_SIGNUP":"Complete sign-up","SUBMIT_APPLICATION":"Submit application","PHONE_CALL":"Phone call","INVITE":"Invite","LOGIN":"Log in","SHARE":"Share","DONATE":"Donate","ADD_TO_LIST":"Add to list","START_TRIAL":"Start trial","OUTBOUND_CLICK":"Outbound click","CONTACT":"Contact","QUALIFIED_LEAD":"Qualified lead","MARKETING_QUALIFIED_LEAD":"Marketing qualified lead","SALES_QUALIFIED_LEAD":"Sales qualified lead"}},"events":{"title":"Send server conversion events","help":"Prepare a conversion or a batch, review it and confirm real delivery to LinkedIn.","refresh":"Refresh ingestion status","writesDisabled":"Event delivery is disabled in this environment. Original receipts remain available.","loadFailed":"Could not read event ingestion or eligible rules. Refresh before sending.","invalid":"Check IDs, rules, matching data, dates, amounts, source and both consent declarations. Each event needs matching data; duplicate events are rejected.","reviewFailed":"Could not verify these events. Rules must be enabled CAPI rules in this account. Website sources require a reviewed published domain and privacy policy.","accepted":"Accepted events · last 7 days","matched":"Matched events","attributed":"Attributed conversions","unavailable":"Not available","telemetryHelp":"Ingestion over the last {days} days. Acceptance does not prove matching or attribution. Empty verified ingestion is zero; unavailable reporting remains unavailable.","telemetry":"Original event ingestion history","status":"Status","operations":"Operations","events":"Events","acceptedColumn":"Accepted","prepare":"Prepare conversion events","mode":"Delivery format","single":"Single event","batch":"Batch of events","rule":"Enabled CAPI rule","chooseRule":"Select a rule","eventId":"Stable event identifier","time":"Conversion time","amount":"Optional amount ({currency})","identifierType":"Matching identifier type","identifierValue":"Matching identifier value","singleHelp":"Keep the original event ID across integrations and retries. Events must be within the past 90 days. Amounts use the account currency and up to two decimal places. The server verifies the rules again.","timeZone":"Conversion time uses your browser time zone: {zone}.","additional":"Additional matching fields","additionalJson":"Additional matching JSON","additionalHelp":"Optional userIds, userInfo, lead or externalIds. Additional userIds are appended to the primary identifier. userInfo requires both name parts; hashed names require API 202609 or later. Use only authorized non-sensitive matching data.","batchJson":"Event array (JSON)","batchHelp":"Paste 1–5000 events with conversionId, stable eventId, conversionHappenedAt in milliseconds, user and optional amount. Each user supports the same matching fields as a single event. Transport byte limits also apply; split batches before sending and never resend attempted events.","sourceKind":"Event source","website":"Website","offline":"Offline","sourceUrl":"Reviewed HTTPS source URL","sourceReference":"Original offline source reference","sourceHelp":"Website sources require the workspace’s reviewed published domain and privacy policy. Offline references identify the authorized source. Source and matching fields are not stored in receipts.","consent":"I confirm advertising consent for these events and matching data.","noSensitive":"I confirm that these events and their source contain no sensitive data.","summary":"{count, plural, one {# event} other {# events}} · Source: {source} · Account currency: {currency}","confirmHelp":"This sends real conversion data and may affect attribution or optimization. It is not a simulated test. Review the exact events and matching data above before confirming.","confirm":"I approve sending these exact events to LinkedIn.","send":"Send approved events","receiptSummary":"Original submission: {count, plural, one {# event} other {# events}} · Source: {source}","receiptRules":"Original conversion rules: {ids}","receiptAccepted":"Accepted events: {count}","ack":"Acknowledgement observed: {observed} · Saved: {persisted}","receiptHelp":"The receipt contains only counts, rule IDs and status. It does not verify matching or attribution. Read the original result; do not repeat an uncertain delivery.","another":"Prepare a different submission","previous":"Previous event submissions","associations":{"associated":"Campaign association reported","none":"No campaign association reported","unverified":"Campaign associations not verified"},"identifierTypes":{"SHA256_EMAIL":"Email (SHA-256 hash)","LINKEDIN_FIRST_PARTY_ADS_TRACKING_UUID":"LinkedIn first-party tracking UUID","ACXIOM_ID":"Acxiom identifier","PLAINTEXT_IP_ADDRESS":"IPv4 address","SHA256_IP_ADDRESS":"IP address (SHA-256 hash)","GOOGLE_AID":"Google advertising UUID"},"scopeMissing":"This connection requires r_ads and rw_conversions. Standard approval alone does not grant these scopes.","roleMissing":"Your LinkedIn ad account role does not permit managing conversions.","expired":"The LinkedIn connection has expired. Reconnect before changing conversions.","ackNotPersisted":"LinkedIn acknowledgement was observed, but saving it was not verified. Keep the original operation and read its status; do not repeat the write.","results":{"reserved":"The event submission is reserved; delivery is not confirmed.","acknowledged":"LinkedIn accepted the event submission. Matching and attribution remain unverified.","unsent":"The events were not sent. Review the source and current permissions before preparing a corrected submission.","provider_rejected":"LinkedIn rejected the event submission. Review the original result before preparing corrected data.","uncertain":"Event delivery is uncertain. Read the original operation; do not resend its events."}}}},"marketing":{"avatares":{"nav":{"modules":"Modules","login":"Sign in","startNow":"Get started"},"hero":{"badge":"AI Avatars","h1Line1":"An avatar that works.","h1Line2":"Even when you don't.","desc":"Emili is your virtual influencer with 90+ looks and scenarios. Or clone your own face and voice to generate endless videos of yourself — without recording another second.","tags":{"variations":"90+ Variations","clonedVoice":"Cloned voice","realisticAvatar":"Realistic avatar","quality4k":"4K Quality","verticalHorizontal":"Vertical & Horizontal","noRecording":"No recording"},"ctaStart":"Get started","ctaModules":"See all modules","emiliAlt":"Emili — AI Virtual Influencer by ContentFlow365","floatingPill":{"count":"90+ avatars","sub":"unique variations"},"floatingBadge":"Cinematic AI"},"stats":{"looks":"Looks & scenarios","quality":"Cinematic quality","recording":"Recording time","publish":"Publishes non-stop"},"emili":{"eyebrow":"Your brand has a face","h2":"Emili — your influencer who never stops","desc":"Imagine an influencer who publishes every day, in every format, with no vacations or off days. Emili has 90+ different looks and scenarios, and the AI picks the right one for each video.","bullets":{"0":"90+ Emili variations with different looks, outfits, and scenarios. The AI picks the most appropriate version for each video.","1":"Luxury home, beach, gym, studio, street, car... The setting reinforces the message and makes the content more credible.","2":"4K quality in both vertical and horizontal. Ready to publish on Instagram, YouTube, TikTok, and Meta Ads without any edits.","3":"Fully automated: avatar, voice, subtitles, and final edit are generated in a single flow — no intervention needed."},"imageAlt":"Emili — Virtual Influencer with 90+ variations","floatingBadge":{"count":"90+ variations","sub":"looks and scenarios"}},"clone":{"eyebrow":"Scale without recording","h2":"Your digital clone. Your voice. Your face.","desc":"Clone your voice and face just once. From there, generate videos with your image, your voice, and your style — without recording anything else. Unlimited presence online, zero production time.","bullets":{"0":"Clone your voice once. Record 3 minutes of audio and the AI generates a voice identical to yours for every future video.","1":"Clone your face once. Upload a video of yourself and generate your digital clone, ready to produce content without ever recording again.","2":"Write the script and receive the video with your face and your voice. That simple. Fully automatic.","3":"Publish on every platform without multiplying your time. Your clone works while you focus on what matters."},"mockup":{"urlBar":"contentflow365.com/avatares","avatarLabel":"Your Avatar","voiceLabel":"Cloned voice — ElevenLabs","active":"Active","generating":"Generating video...","steps":{"0":"Script generated","1":"Audio synthesized (your voice)","2":"Avatar rendering","3":"Final edit"}},"floatingBadge":{"title":"No recording","sub":"endless videos with your clone"}},"avatarsGrid":{"eyebrow":"Always different","h2":"A different look for every video","desc":"Emili switches scenarios and styles in each video so your content always looks fresh. The AI picks the perfect version based on the video's topic.","scenarios":{"luxuryHome":{"title":"Luxury Home","desc":"Elegant living rooms, floor-to-ceiling windows, and premium décor. Ideal for aspirational and lifestyle content."},"beach":{"title":"Beach","desc":"Beach settings with natural light, sand, and sea. Perfect for vacation and lifestyle-oriented content."},"gym":{"title":"Gym & Fitness","desc":"Modern workout environments. Complements health, wellness, and personal-growth content."},"studio":{"title":"Professional Studio","desc":"Clean studio backdrop with cinematic lighting. The classic for business and educational content."},"street":{"title":"Street","desc":"Urban outdoors with movement. Brings energy and dynamism to casual, cultural, and social content."},"car":{"title":"In the Car","desc":"The interior of a luxury vehicle. A viral trend format for direct, conversational, and authentic content."}},"showcaseAlt":"Sofia — AI Avatars in different scenarios and styles"},"techStack":{"eyebrow":"How it works","h2":"Professional-grade technology","desc":"Behind every avatar is a coordinated system that generates voice, image, and final edit in a fully automated flow.","cards":{"avatar":{"title":"Cinematic avatar","desc":"Your avatar or Emili's in 4K quality. Vertical and horizontal format, ready for any platform."},"voice":{"title":"Indistinguishable voice","desc":"Clone your voice with just 3 minutes of audio. The AI generates natural speech identical to yours in any language."},"selection":{"title":"Smart selection","desc":"The AI automatically picks the most appropriate avatar, look, and scenario for each video based on the content."},"orchestration":{"title":"Fully orchestrated","desc":"Script, audio, avatar, and edit are coordinated automatically. If anything fails, it retries on its own."}}},"cta":{"h2Line1":"Your video presence.","h2Line2":"Unlimited.","desc":"Use Emili as your virtual influencer — or clone yourself. Generate endless content without recording another second.","ctaStart":"Get started","ctaModules":"See all modules"},"footer":{"logoAlt":"ContentFlow365","rights":"2024-2026 ContentFlow365. All rights reserved."}},"blog":{"nav":{"back":"Modules","login":"Sign in","startNow":"Get started"},"hero":{"heading1":"From video to SEO article.","heading2":"Automatically.","body":"Transform your YouTube videos into optimized SEO articles automatically. 10 professional templates, your own subdomain, and effortless publishing.","tags":{"templates":"10 Templates","seoAuto":"Auto-optimized SEO","subdominio":"Custom Subdomain","rss":"RSS Feed","templateLab":"Template Lab","aiRedaccion":"AI Writing"},"startNow":"Get started","allModules":"See all modules","screenshotAlt":"Automatic Blog SEO - Overview"},"statsStrip":{"items":{"templates":{"label":"10 Templates","desc":"Professional editorial designs"},"seo":{"label":"Auto-optimized SEO","desc":"Rank on Google effortlessly"},"subdominio":{"label":"Custom Subdomain","desc":"blog.yourdomain.com — automatic"},"rss":{"label":"RSS Feed","desc":"Distribute your content automatically"}}},"templates":{"badge":"Professional design","title":"10 templates ready to publish","description":"Choose from 10 professional editorial designs for your blog — from classic editorial style to visual magazines or newsletter format. Preview on desktop, tablet, and mobile before applying.","bullets":{"0":"Live preview on desktop, tablet, and mobile — don't publish until you're 100% happy","1":"10 professional styles: classic editorial, magazine, minimalist, newsletter, visual masonry, and more","2":"AI recommends the best design based on your content type","3":"Switch designs in one click without losing articles or settings"},"screenshotAlt":"Blog SEO - Template Lab with desktop/tablet/mobile preview"},"videoToArticle":{"badge":"Fully automated","title":"From video to article in one click","description":"Upload your video and AI handles everything: extracts the transcript, rewrites it SEO-optimized, and publishes the article on your blog. No manual intervention.","bullets":{"0":"Automatic transcription from YouTube — no copying or pasting","1":"AI rewrites and optimizes for search engines: structure, titles, meta tags, and keywords","2":"Published automatically on your subdomain blog.yourdomain.com","3":"Every article includes an RSS feed for automatic distribution to other platforms"},"screenshotAlt":"Blog SEO - From video to article automatically"},"featuresGrid":{"sectionBadge":"Everything included","sectionTitle":"Your blog, completely automated","sectionDesc":"From your video transcript to RSS distribution, every article is created and published without lifting a finger.","items":{"templates":{"title":"10 Templates","desc":"Classic editorial, magazine, minimalist, newsletter, visual masonry, archive, cards, split-screen, compact, and gallery. One for every style."},"redaccionIA":{"title":"AI Writing for SEO","desc":"AI rewrites your transcript optimizing structure, titles, description, keywords, and readability to rank in search engines."},"subdominio":{"title":"Custom Subdomain","desc":"Every account gets blog.yourdomain.com automatically configured. No DNS changes or technical knowledge required."},"templateLab":{"title":"Template Lab","desc":"Explore all designs in a visual gallery. Preview on desktop, tablet, and mobile before picking your favorite."},"autoPublicacion":{"title":"Auto-publish","desc":"The article is published automatically when your video is ready. No manual steps or review required."},"rss":{"title":"RSS Feed","desc":"Native RSS feed per account. Compatible with readers, aggregators, and content distribution platforms."}}},"cta":{"heading1":"Your video content deserves","heading2":"to live as text too.","body":"Every video you publish can become an SEO article that drives organic traffic for years. Automatically.","primary":"Get started","secondary":"See all modules"},"footer":{"copyright":"2024-2026 ContentFlow365. All rights reserved."}},"crm":{"nav":{"back":"Modules","login":"Sign in","startNow":"Get started"},"hero":{"badge":"Intelligent CRM","heading1":"The CRM that works","heading2":"with your content.","body":"Contacts, deals, visual pipeline, qualification bots, and AI. Automatic sync with Go High Level. All inside your content platform — no tool-switching required.","startNow":"Get started","allModules":"See all modules","tags":{"pipelineVisual":"Visual Pipeline","scoringInteligente":"Intelligent Scoring","syncGHL":"Sync with Go High Level","botsCualificacion":"Qualification Bots","trackingConversiones":"Conversion Tracking","listasInteligentes":"Smart Lists"},"screenshotAlt":"CRM - Kanban Opportunities Dashboard"},"statsStrip":{"pills":{"pipelineVisual":"Visual Pipeline","scoringInteligente":"Intelligent Scoring","syncGHL":"Sync with Go High Level","cualificacionAutomatica":"Automatic Qualification"}},"opportunities":{"badge":"Close more deals","title":"See all your opportunities at a glance","description":"Drag and drop your deals between stages on a visual board. AI analyzes every opportunity and tells you which ones have the highest probability of closing — so you focus your energy where it matters most.","bullets":{"0":"Visual drag & drop board: move deals between stages by dragging the cards","1":"Intelligent scoring: AI ranks each opportunity and prioritizes the most profitable ones","2":"Call analysis, engagement, and deal health with actionable recommendations","3":"Smart lists: save custom filters and access them with a single click"},"screenshotAlt":"CRM - Kanban Opportunities Dashboard with AI Scoring"},"contacts":{"badge":"Know your customers","title":"All your contacts with their complete history","description":"Get the full context on every contact: calls, emails, notes, and events in a timeline. Leads from Meta Ads arrive automatically. Segment, filter, and act with all the information you need.","bullets":{"0":"Complete history: calls, emails, notes, and events for every contact in one place","1":"Auto-prioritize: AI scores each lead so you know who is ready to buy","2":"Smart lists: save your favorite filters and access key segments instantly","3":"Meta Ads leads appear automatically in your contact base — no manual import needed"},"screenshotAlt":"CRM - Contact Management with Analytics"},"featuresGrid":{"sectionBadge":"Everything included","sectionTitle":"Everything you need to sell more","sectionDesc":"A CRM connected to your content, your campaigns, and your tools. No app-switching. No lost data.","items":{"pipelineVisual":{"title":"Visual Pipeline","desc":"Drag & drop board with customizable stages. See the total value of each stage and your sales pipeline progress at a glance."},"contactosCentralizados":{"title":"Centralized Contacts","desc":"Every contact's full history in one place: activity, notes, tags, and score. Automatic sync with Go High Level."},"scoringInteligente":{"title":"Intelligent Scoring","desc":"AI analyzes every opportunity — engagement, deal health, and concrete recommendations. Prioritizes deals with the highest close probability."},"cualificacionAutomatica":{"title":"Automatic Qualification","desc":"Conversational bots that qualify leads with configurable questions. Responses are saved directly to your CRM with no manual intervention."},"syncGHL":{"title":"Sync with Go High Level","desc":"Automatic sync with Go High Level: contacts, opportunities, and calendar events always up to date. No duplicates, no effort."},"trackingConversiones":{"title":"Conversion Tracking","desc":"Measure the real impact of your campaigns with advanced conversion tracking. Works even when the browser blocks cookies or scripts."}}},"cta":{"heading1":"Your CRM shouldn't live","heading2":"apart from your content.","body":"Stop jumping between Go High Level, spreadsheets, and your content platform. Everything in one place — synced and powered by AI.","primary":"Get started","secondary":"See all modules"},"footer":{"copyright":"2024-2026 ContentFlow365. All rights reserved."}},"dataDeletion":{"metaTitle":"Data deletion — ContentFlow365","metaDescription":"Public instructions to disconnect LinkedIn, Meta, Instagram, Pinterest, Threads or Bluesky from ContentFlow365 and request deletion of the associated data.","backToHome":"← Back to home","title":"Social-integration data deletion","lastUpdated":"Last updated: September 20, 2026","intro":"This page explains how to disconnect LinkedIn, Meta, Instagram, Pinterest, Threads or Bluesky from ContentFlow365 and request deletion of data associated with those connections.","controller":{"title":"Data controller","body":"ContentFlow365 is a product of FX FOR A LIVING SLNE (B76044221). For privacy or data-deletion matters, use the <contact>public contact channel</contact> published by ContentFlow365."},"disconnect":{"title":"1. Disconnect the integration","app":"<strong>From ContentFlow365:</strong> if the connection appears in your workspace, open Social Hub → Accounts, find the relevant network and click “Disconnect”. ContentFlow365 will delete or invalidate the local credentials for that connection and stop making new calls on your behalf.","meta":"<strong>Meta and Instagram:</strong> open Facebook <meta>Business Integrations settings</meta>, select ContentFlow365 and remove its access. Meta will revoke the granted permissions.","linkedin":"<strong>LinkedIn:</strong> you can also remove ContentFlow365 from the permitted-services section of your LinkedIn account. For a company Page, an administrator may also ask ContentFlow365 to securely delete the Community data associated with the relevant Account.","pinterest":"<strong>Pinterest:</strong> you can also remove ContentFlow365 from the security or connected-apps section of your Pinterest account, if the connection is listed there.","threads":"<strong>Threads:</strong> you can also remove ContentFlow365 from the authorised-app management for the Meta or Instagram account used for Threads, when that control is available.","bluesky":"<strong>Bluesky:</strong> you can also withdraw ContentFlow365 authorisation from the authorised-application or session management provided by your Bluesky/PDS service, if your provider exposes that control."},"request":{"title":"2. Request deletion","body":"Send a request through ContentFlow365's <contact>public contact channel</contact> using the subject “Social-integration data deletion”. Include:","items":{"account":"your ContentFlow365 account reference, as shown in your workspace;","connection":"the affected network and the minimum identifier needed to locate the connection, such as the LinkedIn Page, Meta/Instagram Page or professional account, Pinterest advertising account, Threads username, or Bluesky handle; we do not need Pinterest board names;","scope":"whether you want to delete one social integration, several integrations or your entire account."},"warning":"Do not include passwords, tokens, verification codes or identity documents in the request."},"deleted":{"title":"3. Data we will delete","intro":"After validating the request, we will delete or unlink, as applicable:","items":{"tokens":"OAuth tokens, permissions and, for Bluesky, the encrypted OAuth session stored for the connection;","identities":"minimum connection identifiers included in the validated scope, such as the authorising LinkedIn member and Pages, Meta/Instagram assets, the Pinterest advertising-account identifier, the Threads identifier and username, or the Bluesky DID, handle and PDS. ContentFlow365 does not retain Pinterest profile or board names or Pinterest Ads responses as persistent connection metadata;","content":"drafts, text, titles, descriptions, links and media references stored in ContentFlow365 that are included in the request;","publishing":"internal publication states and technical receipts or identifiers retained only where needed and permitted;","automations":"automation rules, keywords, replies and links configured for that connection;","events":"webhook events, comments, delivery identifiers and associated operational logs, except for information that must be retained temporarily for security, fraud prevention or legal compliance."}},"providerContent":{"title":"4. Content already published on the network","body":"Disconnecting a network or deleting its data from ContentFlow365 does not automatically remove posts, Pins, campaigns, ads or files that already exist on LinkedIn, Meta, Instagram, Pinterest, Threads or Bluesky. To remove that content or advertising asset as well, delete it from the relevant account on the network itself. Likewise, revoking ContentFlow365 from a network stops future access but does not replace a request to delete data that remains in ContentFlow365."},"time":{"title":"5. Processing and confirmation","body":"We will acknowledge the request and, after verifying identity and scope, process deletion in accordance with applicable requirements. If we must retain specific information for security, fraud prevention or a legal obligation, we will limit its use to that purpose. We will send confirmation to the verified address when processing is complete."},"commenters":{"title":"People who comment or reply on Instagram","body":"If you commented on media managed by a ContentFlow365 customer and received an automated reply, you may also request deletion of the associated operational data. Include the Instagram username, business or media, and approximate comment date so we can locate it without asking for credentials."},"nav":{"privacy":"Privacy Policy","terms":"Terms & Conditions"},"footer":"2024-2026 ContentFlow365 — FX FOR A LIVING SLNE (B76044221). All rights reserved."},"externalCheckout":{"errors":{"invalidJson":"The request is invalid.","inviteNotFound":"Link not found.","inviteCompleted":"This signup has already been completed.","inviteNotActionable":"This link has expired or been revoked.","actionInvalid":"Invalid action.","inviteUpdateFailed":"We could not update the link.","accountRequired":"Select an account before searching contacts.","accountNotFound":"Account not found.","contactSearchFailed":"We could not search contacts.","inviteListFailed":"We could not load the signup links.","inviteFieldsRequired":"Complete the email, name, offer, and reference fields.","transferDetailsInvalid":"The transfer amount or date is invalid.","expiryInvalid":"Expiry must be between 1 and 720 hours.","offerUnavailable":"The offer is no longer available.","offerInactive":"The offer is no longer active.","offerEnvironmentMissing":"The offer is not configured in this environment.","offerConfigurationInvalid":"The offer is not configured correctly.","duplicateActiveInvite":"An active link already exists for this email. Copy or resend it from the history.","inviteCreateFailed":"We could not create the signup link.","linkInvalid":"Invalid link.","linkCheckFailed":"We could not verify the link.","buyerTypeRequired":"Choose Individual or Company.","activeSubscription":"This email already has an active subscription. Contact support.","buyerTypeLocked":"This checkout was already opened with a different tax option.","linkUnavailable":"The link is no longer available.","checkoutOpenFailed":"We could not open checkout. Try again or contact support.","generic":"We could not complete the operation. Try again."},"public":{"unavailableTitle":"Link unavailable","unavailableFallback":"The link has expired or is no longer valid.","privateSecure":"Private and secure signup","transferConfirmed":"Transfer confirmed","completeSignup":"Complete your {offer} signup","paymentRegistered":"Hi {name}. Your payment of {amount} has been recorded.","linkedEmail":"Linked email","buyerType":"Buyer type","buyerCompany":"Company or self-employed","buyerIndividual":"Individual","buyerPending":"You will choose before Stripe","monthsIncluded":"{months} months are included in the payment already received.","cardRenewal":"Stripe will store your card securely. Today's total is €0; after {months} months, {amount}/month will be charged.","personalLink":"Personal, single-use link tied to this email.","buyerQuestion":"Are you buying as an individual or a company?","individualTax":"7% IGIC in Spain · 0% outside Spain","companyTax":"0% (reverse charge) · Stripe will request your tax ID","continueStripe":"After choosing, you will continue to Stripe · €0 today","expiresAt":"Expires {date}","completed":"This link has already been used and signup is complete. You need a new link for another test.","expired":"This link has expired. Request a new one to complete signup.","revoked":"This link was revoked. Request a new one to complete signup.","unavailable":"This link is no longer available."},"admin":{"createPaymentLink":"Create payment link","activateTitle":"Activate bank-transfer purchase","description":"Record the payment, send a private link, and collect the card for future renewal.","buyerAndTransfer":"Buyer and transfer details","selectBuyer":"First, find the buyer","searchIntro":"Search the funnel, CRM, and ContentFlow users. If they do not exist yet, you can continue directly with their email.","searchLabel":"Search by email or name","searchPlaceholder":"Name or email in Funnel / CRM / ContentFlow","searching":"Searching…","noMatches":"We could not find anyone matching that search.","continueWithEmail":"Continue with {email}","viewLatestLinks":"View latest links ({count})","backToSearch":"Back to buyer search","selectedBuyer":"Selected buyer: {email}","changeBuyer":"Change buyer","unnamed":"No name","buyerEmail":"Buyer email","name":"Name","offer":"Offer","paymentMode":"Payment mode","singlePayment":"1 payment","paymentMethod":"Payment method","confirmedTransfer":"Confirmed bank transfer","amountReceived":"Amount received (€)","paidAt":"Transfer date","buyerType":"Buyer type (IGIC)","buyerChooses":"The buyer will choose on the link","paymentReference":"Bank reference or memo","referencePlaceholder":"E.g. TRANSFER 2026-08-02 / Surname","expiry":"Link expiry","hours":"{hours} hours","days":"{days} days","offerSummary":"{months} months included; card required; renewal at {amount}/month afterwards.","createAndSend":"Create and email","createdAndSent":"Link created and sent by email.","createdEmailFailed":"Link created, but the email could not be sent. You can copy it below.","linkReady":"Link ready","latestLinks":"Latest links","refresh":"Refresh","empty":"There are no links yet.","company":"Company","individual":"Individual","buyerPending":"IGIC not selected","referenceShort":"Ref.","emailSent":"email sent","emailFailed":"email failed","copy":"Copy","resend":"Resend","revoke":"Revoke","confirmRevoke":"Revoke the link for {email}?","resent":"Email resent.","revoked":"Link revoked.","status":{"pending":"Pending","checkoutCreated":"Checkout opened","completed":"Completed","expired":"Expired","revoked":"Revoked"}},"email":{"fallbackName":"customer","subject":"Complete your ContentFlow365 signup · {offer}","greeting":"Hello <strong>{name}</strong>,","transferConfirmed":"We have confirmed your transfer of <strong>{amount}</strong> for <strong>{offer}</strong>.","billingInstruction":"Complete your billing details and register your card. On the next screen, choose whether you are buying as an <strong>Individual</strong> or as a <strong>Company or self-employed person</strong> so IGIC is applied correctly.","zeroCharge":"<strong>No charge will be made today</strong>: {months} months are included, and renewal at {amount}/month will begin afterwards.","cta":"Complete my signup","expiry":"This is a personal, single-use link and expires on {date}. If you do not recognise this purchase, reply to this email.","subscriptionDescription":"{offer}: {days} days included. Renewal starts afterwards at {amount}/{interval}.","month":"month","year":"year"}},"home":{"challengeBanner":{"linkLabel":"Reserve a free place for Create Your AI Clone","dateLabel":"Live challenge · July 25–26","title":"Create Your AI Clone","subtitle":"Your avatar, your voice and a month of content","viewChallenge":"View challenge","started":"Challenge started","reserveFree":"Reserve for free","countdown":"{days, plural, one {# day} other {# days}}, {hours, plural, one {# hour} other {# hours}} and {minutes, plural, one {# minute} other {# minutes}}"},"hero":{"badge":"Powered by AI","h1Line1":"Your brand.","h1Line2":"Publishing 365 days a year.","h1Line3":"No team.","subtitle":"<brand>ContentFlow365</brand> is the content factory behind brands that win on social without hiring a single editor. AI that writes, edits, designs and publishes — videos, reels, blogs and ads — straight to YouTube, Instagram, TikTok and more.","ctaPrimary":"Get started","ctaSecondary":"See how it works","generating":"AI generating content","stats":{"automations":"Automations","pieces":"Pieces per idea","publishing":"Active publishing","team":"Team required"}},"pipeline":{"eyebrow":"Pipeline","h2Line1":"From idea to publication —","h2Gradient":"hands-off.","subtitle":"Your content flows through 6 automatic phases. Every piece is generated, reviewed and published with zero manual intervention.","bottomNote":"6 phases. 30+ pieces. 0 manual intervention.","cta":"See plans","steps":{"idea":{"title":"Idea","desc":"An idea, a link, a WhatsApp voice note or a transcript","detail":"Paste a link, upload audio or type your idea. The AI extracts the concept."},"script":{"title":"Script + Copy","desc":"Scripts, titles, descriptions and copy for 7 social networks","detail":"6 copywriting styles. Adapted per platform automatically."},"video":{"title":"Video + Reels","desc":"Automatic edit with scenes, music, AI voice and subtitles","detail":"AI slides, B-roll, ElevenLabs voice, word-level SRT. Rendered in ShotStack."},"creatives":{"title":"Creatives","desc":"Thumbnails, banners and ad copy for Meta Ads with AI","detail":"KIE.ai, Fal, DALL-E. Landing page generated from each ad."},"podcast":{"title":"Podcast + Blog","desc":"Professional audio with Auphonic and an SEO-optimised article","detail":"Automatic RSS feed. 10 blog templates with AI selection."},"publish":{"title":"Publishing","desc":"Automatic on YouTube, Instagram, TikTok, LinkedIn, X and more","detail":"Scheduled via Metricool. Pinned comment. Fully on autopilot."}}},"emili":{"eyebrow":"Your autopilot","h2Line1":"Create content for","h2Gradient":"every network","h2Line3":"from one place.","subtitle":"You pick the angle. The AI produces scripts, videos, reels, thumbnails, social copy, podcast, blog and ads — all connected and ready to publish.","piecesLabel":"pieces per video","stats":{"copyStyles":{"label":"Copy styles","sub":"Isra Bravo, Hormozi and more"},"spyPlatforms":{"label":"Spy platforms","sub":"Meta, IG, TikTok, LI, X"},"blogTemplates":{"label":"Blog templates","sub":"Automatic AI selection"},"automations":{"label":"Automations","sub":"From idea to publication"}}},"bento":{"eyebrow":"Modules","h2Line1":"9 modules.","h2Line2":"One place.","subtitle":"Spy, Meta Ads, CRM, landings, blog, trending, publishing, podcast and multi-account. All integrated and working together.","replaces":"Replaces","viewModule":"View module","items":{"spy":{"title":"Competitor Spy","desc":"Monitor Meta Ads, Reels, TikTok, LinkedIn and X from your competitors. Discover what works before they do.","tag":"5 platforms"},"metaAds":{"title":"Meta Ads Dashboard","desc":"Create, manage and analyse Meta Ads campaigns without leaving the platform. AI Reports included.","tag":"AI Reports"},"crm":{"title":"Integrated CRM","desc":"Contacts, deals, Kanban pipeline, qualification bots and two-way sync with GoHighLevel.","tag":"GHL Sync"},"landings":{"title":"AI Landing Pages","desc":"Generate landings from any ad. Template Lab with live preview. Forms, analytics and tracking built in.","tag":"Template Lab"},"blog":{"title":"Auto SEO Blog","desc":"Turn videos into SEO-optimised articles. 10 blog templates. Your own subdomain.","tag":"10 templates"},"trending":{"title":"Trending Intelligence","desc":"Detect real-time trends by platform and niche. Personalised per account with hashtags and categories.","tag":"Real-time"},"publish":{"title":"Multichannel Publishing","desc":"Schedule and publish automatically to YouTube, Instagram, TikTok, LinkedIn, X, Facebook and Pinterest.","tag":"7 networks"},"podcast":{"title":"Podcast from Video","desc":"Professional audio with Auphonic. RSS feed, AI show-cover art. From long video to podcast in one click.","tag":"RSS feed"},"multiAccount":{"title":"Multi-Account & White Label","desc":"Manage multiple brands from one dashboard. Agency mode with sub-accounts, credits and custom branding.","tag":"Agency"}}},"onboarding":{"eyebrow":"Setup in 10 minutes","h2Line1":"Your account sets itself up.","h2Line2":"You just approve.","subtitle":"Persona, voice, audience, visual identity — the AI learns who you are and how you communicate in minutes. Ready to produce from day one, without endless forms or onboarding manuals.","screenshotAlt":"ContentFlow365 onboarding completed with Persona, VoiceDNA, Visual Identity and Audience cards","bullets":{"b1":{"title":"Persona & VoiceDNA","desc":"The AI studies how you write and speak to clone your style across every piece"},"b2":{"title":"Visual identity","desc":"Colors, typography and visual tone applied automatically to every output"},"b3":{"title":"Audience mapped","desc":"The AI defines who you're speaking to and adapts the message per social platform"}}},"product":{"eyebrow":"Product","h2Line1":"One platform.","h2Line2":"All the content you need.","capabilities":{"videos":{"title":"Videos that produce themselves","items":["Write your idea and receive a complete video","Unique AI images generated for each scene","Professional voice — cloned or AI-generated","Perfectly synced subtitles","HD-ready to publish without touching an editor"]},"reels":{"title":"Reels for every network","items":["Clips automatically extracted from the long video","Copy adapted per platform across 6 styles","AI-designed cover for each clip","Direct publishing to Instagram, TikTok and YouTube"]},"ads":{"title":"Ads that convert","items":["Professional creatives generated with AI","Ad copy optimised for each audience","Landing page created from each ad in one click","Dashboard with metrics and smart reports"]}}},"socialProof":{"stats":{"automations":{"label":"AI Automations","desc":"Inngest functions in production"},"pipeline":{"label":"Pipeline phases","desc":"From idea to publication with zero intervention"},"blog":{"label":"Blog templates","desc":"Automatic AI selection"},"spy":{"label":"Spy platforms","desc":"Meta Ads, IG, TikTok, LinkedIn, X"}}},"agents":{"eyebrow":"Your AI team","h2Line1":"25 AI experts.","h2Line2":"Your complete team.","subtitle":"Not chatbots — specialists that produce, design, publish and analyse on your behalf. 24 hours. 7 days. No payroll, no vacations.","humanTeam":"Equivalent human team","withCF":"With ContentFlow365","humanCost":"€6,200/month","cfCost":"From €99/month","agentsCount":"{n} agents","bottomNote":"What used to take a team of 8, now done by 25 AI agents — for you.","cta":"Explore plans","teams":{"production":{"name":"Production","agents":{"Luna":"Scriptwriter","Marco":"Visual Director","Dante":"Video Editor","Emili":"Host","Vox":"Voiceover","Aria":"Audio","Rex":"B-Roll","Nova":"Animator"}},"creative":{"name":"Creative","agents":{"Pixel":"Thumbnails","Carla":"Banners","Iris":"Image Editor","Atlas":"Landing Pages","Hook":"Stop Scroller"}},"strategy":{"name":"Strategy","agents":{"Strategia":"Campaigns","Scout":"Spy","Trend":"Trending","Sage":"Onboarding"}},"distribution":{"name":"Distribution","agents":{"Pulse":"Social Media","Quill":"Blog SEO","Cast":"Podcast","Clip":"Reels"}},"sales":{"name":"Sales","agents":{"Adra":"Meta Ads","Deal":"Leads","Link":"CRM","Radar":"Metrics"}}}},"pricing":{"eyebrow":"Pricing","h2Line1":"Pick your plan.","h2Line2":"Scale whenever you want.","mostPopular":"Most popular","perMonth":"€/mo","perYear":"€/yr","billedAnnually":"billed annually","bookCall":"Book a call","contactPrice":"Contact us for pricing","plans":{"adsIA":{"name":"Ads AI","credits":"300 credits/month","desc":"AI ads, copy, Reels and image banners.","features":["~15 ads/month (8 banner styles)","Copy in 6 voices + AI angles","AI thumbnails + thumbnails","AI Image Editor","Competitor spy (read)","Product research"],"cta":"Start with Ads AI"},"botsIA":{"name":"Bots AI","credits":"800 credits/month","desc":"Everything above + GoHighLevel CRM and AI bots. Great for video Reels and video Ads.","features":["Everything in the previous plan","Full GoHighLevel account","CRM + Pipeline + Deals","WhatsApp + Instagram DM","24/7 AI bots","Website included","AI training community"],"cta":"Start with Bots AI"},"contentIA":{"name":"Content AI","credits":"3,600 credits/month","desc":"Everything above, for daily professional video Reels and Ads.","features":["Everything in the previous plan","AI reels pipeline","AI Avatars (Motion + AV4)","Meta Ads campaigns","Automatic publishing","Real-time metrics"],"cta":"Start with Content AI"},"pro":{"name":"Pro","credits":"10,000 credits/month","desc":"Everything above, for producing long-form YouTube videos.","features":["Everything in the previous plan","Long videos + Clips","Podcasts + Blog SEO","AI landing pages","Multi-account / Agency","Priority support","Trending Intelligence"],"cta":"Start with Pro"}}},"trust":{"badges":{"security":{"title":"Your data, always safe","desc":"Every account is completely isolated. Nobody touches your content."},"uptime":{"title":"Always on","desc":"European infrastructure with 99.9% uptime. Your content never stops."},"support":{"title":"Real support, not a chatbot","desc":"Response in under 24 h. Exclusive community and live sessions."}}},"finalCta":{"h2Line1":"Stop creating content","h2Gradient":"by hand.","subtitle":"What used to need a full production team, your ContentFlow365 account now handles with artificial intelligence.","cta":"Start your content factory"},"footer":{"privacy":"Privacy","terms":"Terms","contact":"Contact","copyright":"2024-2026 ContentFlow365 — FX FOR A LIVING SLNE All rights reserved."},"avatar":{"eyebrow":"AI Avatars","h2Line1":"Create with your own AI.","h2Gradient":"Or ours.","subtitle":"A virtual influencer that works 24/7. Or your own digital clone to scale your presence without recording again.","replaces":"Replaces","card1":{"badge":"Virtual Influencer","title":"Emili, your AI influencer","desc":"90+ avatars with different looks, settings and styles. Your brand has a face. And it never stops.","cta":"See Virtual Influencer","altImage":"Emili — Virtual AI Influencer","tags":["90+ avatars","HeyGen","4K","Vertical & Horizontal","Talking Photo"]},"card2":{"badge":"Clone Your Voice & Face","title":"Your digital clone, no camera","desc":"Clone your voice and face once. Generate videos of yourself without recording a single second more. Scale your presence infinitely.","cta":"See Avatar Cloning","altImage":"Clone your AI avatar","clonedLabel":"Cloned avatar · Active","generatingLabel":"Generating","tags":["Cloned voice","ElevenLabs","Your own avatar","Infinite","No recording"]}},"reels":{"eyebrow":"Reels & Angles","h2Line1":"From angle to Reel.","h2Gradient":"In minutes.","subtitle":"From a single idea, the AI generates multiple angles and produces the full Reel: script, images, voice, music and subtitles. You just approve.","replaces":"Replaces","features":{"angles":{"title":"Multiple angles per idea","desc":"Get 10 Reels from a single piece of content to publish for weeks"},"production":{"title":"Production without a team","desc":"Script, images, avatar, voice and music generated automatically"},"gallery":{"title":"Your Reels gallery","desc":"All your Reels organised, ready to review and publish"},"hook":{"title":"First 3 seconds","desc":"Hooks designed to stop the scroll and capture attention"}},"cta":"View Reels module","altListado":"Reels listing","altStudio":"Reel Studio"},"youtube":{"eyebrow":"YouTube Production","h2Line1":"The YouTube editor","h2Gradient":"that works on its own.","subtitle":"Write your idea or paste a script. The AI generates the images, voice, subtitles, thumbnail and publishes to your channel. No video editor needed.","replaces":"Replaces","features":{"images":{"label":"AI Images","desc":"Unique for each scene"},"broll":{"label":"B-roll video","desc":"Synced clips"},"animations":{"label":"Animations","desc":"Professional motion graphics"},"thumbnails":{"label":"Thumbnails","desc":"Optimised for clicks"},"voice":{"label":"Professional voice","desc":"Cloned or generated"},"hd":{"label":"HD video","desc":"Ready to publish"}},"cta":"View YouTube module","altMontajeList":"Video Assembly — YouTube Editor","altMontajeEditor":"Assembly Editor with Slides and B-Roll"},"integrations":{"eyebrow":"Integrations","h2Line1":"Connect all your tools.","h2Gradient":"One workflow.","subtitle":"ContentFlow365 connects with the platforms you already use. A central hub that orchestrates your content pipeline end to end."}},"landings":{"nav":{"back":"Modules","login":"Sign in","startNow":"Get started"},"hero":{"badge":"AI Landing Pages","heading1":"From ad to landing page.","heading2":"In seconds.","body":"Generate professional landing pages directly from any ad or video. Choose from 10 conversion-optimized designs, preview them on any device, and publish with your own subdomain in one click.","tag1":"10 Professional Designs","tag2":"AI Generation","tag3":"Live Preview","tag4":"Conversion Tracking","tag5":"Your Own Subdomain","tag6":"Built-in Analytics","cta":"Get started","allModules":"See all modules","screenshotAlt":"AI Landing Pages - Template Lab"},"stats":{"designs":{"label":"10 Designs","desc":"Optimized to convert"},"ai":{"label":"AI Generation","desc":"Landing ready from any ad"},"tracking":{"label":"Advanced Tracking","desc":"Measure every conversion precisely"},"subdomain":{"label":"Your Subdomain","desc":"your-brand.contentflow365.com"}},"templateLab":{"badge":"Choose your style","title":"10 professional designs, instant preview","description":"Choose from 10 professional designs optimized to turn visitors into customers. Preview them instantly on desktop, tablet and mobile. AI recommends the design that best fits your brand.","bullet1":"Live preview on desktop, tablet and mobile without leaving the screen","bullet2":"AI analyzes your ad and recommends the design with the highest conversion probability","bullet3":"10 distinct styles: editorial, minimal, magazine, newsletter, masonry and more","bullet4":"Easy A/B testing: try different designs to see which one converts better","screenshotAlt":"Template Lab - Live preview on desktop tablet mobile"},"analytics":{"badge":"Measure every result","title":"Know exactly what works and what doesn't","description":"Every landing automatically measures your visitors' behavior: how long they stay, how far they scroll and where they click. Advanced conversion tracking that works even when the browser blocks cookies.","bullet1":"Measure visits, scroll depth, time on page and CTA clicks automatically","bullet2":"Advanced conversion tracking that works even without cookies, with maximum precision","bullet3":"Forms connected to CRM: every lead is saved automatically with all their data","bullet4":"Privacy compliance: tracking only activates after visitor consent","screenshotAlt":"Integrated analytics and tracking in landing pages"},"grid":{"eyebrow":"Everything included","heading":"Landings that convert, not just look good","body":"Every ad deserves a landing that turns visitors into customers. With tracking, forms and your own subdomain from day one.","designs":{"title":"10 Professional Designs","desc":"Editorial, minimal, magazine, newsletter, masonry and 5 more. Each optimized for a different conversion goal. You choose the one that fits best."},"aiContent":{"title":"AI-Generated Content","desc":"AI creates the full landing content from your ad: headline, copy, CTA, benefits and social proof. Ready to publish in seconds."},"preview":{"title":"Multi-Device Preview","desc":"See how your landing looks on desktop, tablet and mobile before publishing. Switch designs instantly without losing your content."},"forms":{"title":"Lead-Capturing Forms","desc":"Integrated forms that send every lead directly to your CRM and Go High Level. Instant notifications and automatic lead scoring."},"tracking":{"title":"Conversion Tracking","desc":"Measure the real impact of every landing with advanced tracking that works even when browsers block cookies. Maximum precision."},"subdomain":{"title":"Your Own Subdomain","desc":"Publish each landing at your-brand.contentflow365.com. Your brand always visible, with a professional URL ready to share."}},"publishing":{"badge":"Publish in one click","title":"From ad to published landing in seconds","body":"Manage all your landings from a single dashboard. See the status of each one, filter what you need and publish directly without switching screens.","screenshotAlt":"Landing Pages - Publishing status and filters","check1":"See instantly if your landing is ready or published","check2":"Filter by status: in progress, ready or published","check3":"Find landings by ad or video type","check4":"Search by design style in seconds","check5":"Publish or unpublish with one click","check6":"Copy your landing URL and share it instantly"},"cta":{"heading1":"Every ad deserves","heading2":"a perfect landing.","body":"Stop using generic landing pages. Generate a personalized landing for every ad, with full tracking and your own subdomain, in seconds.","primary":"Get started","secondary":"See all modules"},"footer":{"copyright":"2024-2026 ContentFlow365. All rights reserved."}},"mcpIntegration":{"metaTitle":"Connect ContentFlow365 to AI assistants","metaDescription":"Set up the ContentFlow365 MCP connection in Claude, Codex, Cursor, ChatGPT, or Grok and manage access to your workspace.","brand":"ContentFlow365","support":"Contact support","eyebrow":"Integration guide","title":"Connect ContentFlow365 to an AI assistant","intro":"Connect your ContentFlow365 workspace through its remote MCP server. Your assistant can discover the tools your account is allowed to use. You review access in ContentFlow365 during OAuth sign-in.","connectionTitle":"Connection URL","connectionIntro":"When your assistant asks for a custom remote MCP server, enter this URL and choose OAuth authentication:","connectionSteps":"Sign in with your ContentFlow365 account, select the workspace you can access, and approve the permissions shown. Return to the assistant to confirm the connection.","installTitle":"Add it to your assistant","claude":"Claude: Open Customize, then Connectors, add a custom connector, and enter the URL above. Connect your account when prompted.","claudeCodeIntro":"Claude Code: Run","claudeCodeOutro":"and open /mcp to authorize it.","codexIntro":"Codex: Run","codexOutro":"and then run","cursor":"Cursor: Open Settings, then MCP, add a remote server with this URL, and complete the OAuth prompt.","grok":"Grok on grok.com: Open Connectors, choose a new custom connector, enter the URL, and authorize your account.","chatgpt":"ChatGPT: If your workspace offers custom MCP apps, add this URL as a custom app and authorize ContentFlow365. Directory availability depends on marketplace review.","accessTitle":"Access and charges","access":"The tools available to you depend on your account permissions and enabled features. Connecting does not by itself start a paid generation or publish content. Review the current credit quote and balance before you confirm a paid action. The server checks access and charging rules for each operation.","privacyIntro":"Your assistant may display ContentFlow365 workspace results in its conversation. Review the assistant provider's data settings before sharing information there. See our","privacyLink":"privacy policy","privacyOutro":"for ContentFlow365 data handling.","disconnectTitle":"Disconnect or get help","disconnectIntro":"Remove ContentFlow365 from your assistant's connected apps or MCP settings to stop that client from using the connection. If the assistant offers a revoke or disconnect action, use it to remove its authorization. Contact","supportLink":"ContentFlow365 support","disconnectOutro":"if a connection remains visible or a tool fails.","localhost":"Desktop assistants may return the browser to a 127.0.0.1 callback after approval. That address belongs to the assistant on your computer. Check the assistant's connection status to confirm setup."},"metaAds":{"nav":{"back":"Modules","login":"Log in","startNow":"Get started"},"hero":{"badge":"Intelligent Advertising","heading1":"Meta Ads","heading2":"Dashboard","body":"Create, manage and optimize your Meta Ads campaigns without leaving your content platform. Real-time metrics dashboard, AI-generated reports and automations that save you hours.","tags":{"directConnection":"Direct Meta Connection","allCampaigns":"All Your Campaigns","aiReports":"AI Reports","audiences":"Detailed Audiences","realtime":"Real-Time Data","automated":"Fully Automated"},"screenshotAlt":"Meta Ads Dashboard — spend, impressions, clicks, leads and CPL in real time"},"kpiStrip":{"badge":"Everything at a glance","heading":"The metrics that matter, always visible","body":"Filter by period (today, 7 days, 30 days or custom) and watch your results update in real time. Fast decisions, clear data.","kpis":{"spend":{"label":"Total Spend","desc":"Track your investment instantly"},"reach":{"label":"Reach","desc":"How many people see your ads"},"clicks":{"label":"Clicks & CTR","desc":"Who clicks and how many"},"leads":{"label":"Leads & Cost","desc":"Leads generated and how much each one costs"},"sales":{"label":"Sales","desc":"Conversions and revenue generated"},"updated":{"label":"Always Up to Date","desc":"Fresh data every minute"}}},"aiModules":{"badge":"Your advertising co-pilot","heading":"The AI that optimizes your campaigns","body":"Six AI tools that analyze your campaigns from every angle. Actionable insights — all from a single screen.","modules":{"creatives":{"title":"Which Creatives Work","desc":"Find out which ads drive the most results and why. The AI analyzes your creatives and tells you what to repeat and what to change."},"reports":{"title":"Intelligent Reports","desc":"The AI connects your videos with your ads, analyzes the full funnel and gives you concrete recommendations to improve results."},"analysis":{"title":"Advanced Analysis","desc":"Find out which days perform best, where you're over-spending, and compare periods to optimize your ad investment."},"audience":{"title":"Know Your Audience","desc":"See who responds to your ads: age, gender, platform, device and location. Know exactly who you're reaching."},"spy":{"title":"Spy on the Competition","desc":"Find out what's working in your industry: trends, successful copy patterns and ideas based on real data from your niche."},"automations":{"title":"Automations","desc":"Publish ads automatically, pause underperformers and get alerts when something needs your attention. Your time is worth gold."}},"screenshotAlt":"Ads gallery — all your ads with metrics and status in one place"},"campaigns":{"badge":"Manage without switching tabs","heading":"All your campaigns under control","description":"Create, edit and manage campaigns, ad sets and individual ads — all synced with Meta Ads. No need to open Business Manager.","features":{"create":"Create Advantage+ campaigns directly from ContentFlow","toggle":"Activate and pause campaigns with a single click","filter":"Find what you need: filter by status, objective or name","views":"List view with metrics or gallery view with creative previews","sort":"Sort by spend, impressions, CTR, cost per lead, sales and more","aiReport":"The AI generates a full report with improvement recommendations","sync":"Data synced with Meta Ads in real time","expand":"Expand campaigns to see ad sets and individual ads"},"screenshotAlt":"Meta Ads — campaigns table with 18 campaigns"},"adsGallery":{"badge":"Your creatives","heading":"All your ads, organized and in control","description":"View all your ads in a visual gallery or detailed list. Filter by status, search by name and activate or pause any ad without opening Meta Business Manager.","bullet1":"Gallery view with previews and list view with all metrics","bullet2":"Find any ad instantly: filter by status, search by name","bullet3":"Activate or pause ads with one click, without leaving ContentFlow","bullet4":"Link ads to your videos and montages to see which content drives results","screenshotAlt":"Meta Ads — ads gallery with filters"},"techSpecs":{"heading":"What's included in your dashboard","specs":{"integration":{"label":"Integration","value":"Direct Meta connection"},"security":{"label":"Security","value":"Automatic secure authentication"},"module":{"label":"Module","value":"Full platform"},"charts":{"label":"Charts","value":"5 chart types"},"audiences":{"label":"Audiences","value":"5 analysis dimensions"},"metrics":{"label":"Metrics","value":"13 sortable metrics"},"reports":{"label":"Reports","value":"AI-generated"},"updateFreq":{"label":"Update","value":"Every 1 to 30 minutes"}}},"cta":{"heading1":"Invest smarter in Meta Ads","heading2":"with AI by your side","body":"Stop wasting time in Business Manager. Manage your campaigns, analyze results and optimize your investment — all from one place.","primary":"Get started","secondary":"See all modules"},"footer":{"copyright":"2024-2026 ContentFlow365. All rights reserved."}},"multiCuenta":{"nav":{"modules":"Modules","login":"Sign in","startNow":"Get started"},"hero":{"badge":"Agency","headline1":"Manage all","headline2":"your accounts.","headlineAlt":"From one dashboard.","body":"Manage all your clients from a single login. Each one with their own workspace, credits, and your brand. Switch to any account in one click — no sign-out needed.","tags":{"separatedClients":"Separate Clients","budgetPerClient":"Per-Client Budget","yourBrandVisible":"Your Brand Front & Center","instantAccess":"Instant Access","globalView":"Global View","totalPrivacy":"Total Privacy"},"cta":"Get started","back":"← Back to modules"},"heroMock":{"myAccounts":"My Accounts","stats":{"activeAccounts":"Active accounts","totalCredits":"Total credits","users":"Users"},"accountStatus":{"active":"Active","paused":"Paused"},"credits":"credits","addSubAccount":"+ Add sub-account"},"statsStrip":{"eyebrow":"Built to scale","heading":"Add clients without adding complexity","body":"Every new client gets their own workspace, their own credits, and their own isolated data. Your agency grows — without the management overhead.","items":{"spacePerClient":{"label":"One Workspace per Client","desc":"Each client works in their own isolated environment"},"controlSpend":{"label":"Control Spending","desc":"Assign credits per client with no surprises"},"yourBrandEverywhere":{"label":"Your Brand Everywhere","desc":"Your logo, your colors, your domain"},"immediateAccess":{"label":"Immediate Access","desc":"Jump into any account with one click"}}},"subcuentasMock":{"subAccount":"Sub-account","active":"Active","metrics":{"remainingCredits":"Remaining credits","users":"Users","videosThisMonth":"Videos this month","storage":"Storage"},"checks":{"isolatedData":"Isolated data","ownCredits":"Own credits","userRoles":"User roles","whiteLabelActive":"White label active"}},"whiteLabelMock":{"configTitle":"White Label Config","brandPalette":"Brand palette","settings":{"customDomain":{"label":"Custom domain","value":"app.moneyclub.com"},"logoAndColors":{"label":"Logo & colors","value":"Configured"},"noContentFlowBranding":{"label":"No ContentFlow branding","value":"Active"}}},"subcuentasFeature":{"eyebrow":"All your clients, one dashboard","heading":"Every client in their own workspace","body":"Manage all your clients from a single login. Each one has their own budget, their own team, and their data completely isolated. No mixing, no confusion.","bullets":{"addClient":"Add a new client in seconds. Each one gets their own dashboard, settings, and content — completely separate.","controlBudget":"Decide how many credits each client gets. Control spending so one client never impacts another's budget.","inviteTeam":"Invite each client's team with the permissions they need. You decide who sees what.","privacy":"Total privacy between clients. No client can see or access another client's information."}},"whiteLabelFeature":{"eyebrow":"Your brand, your platform","heading":"Your clients see your brand — not ours","body":"Set your logo, your colors, and your domain. Your clients work on a platform that looks and feels like your agency — with no trace of ContentFlow365.","bullets":{"customDomain":"Each client accesses their own custom domain. app.yourclient.com instead of a generic link.","colorsAndLogo":"Your agency's colors, logo, and brand name on every screen. The experience is 100% yours.","noContentFlowBranding":"ContentFlow365 doesn't appear anywhere. Your agency is always front and center.","oneClickAccess":"Jump into any client's account with one click. No passwords, no signing out."}},"featureGrid":{"eyebrow":"Everything you need","heading":"Scale without the chaos","body":"Everything you need to manage more clients — without management consuming more of your time.","items":{"spacePerClient":{"title":"One Workspace per Client","desc":"Each client works in their own dashboard with their own settings and resources. Add new clients in seconds."},"controlledBudget":{"title":"Controlled Budget","desc":"Assign credits to each client separately. Know exactly how much each one spends at any moment."},"brandFirst":{"title":"Your Brand Front & Center","desc":"Your agency's logo, colors, domain, and name on every screen. Your clients see your brand — not ours."},"oneClickAccess":{"title":"One-Click Access","desc":"Jump into any client's account instantly from your dashboard. No passwords, no signing out."},"globalView":{"title":"Global View","desc":"See the status of all your clients at a glance — credits, activity, users, and progress on one screen."},"securityAndPeace":{"title":"Security & Peace of Mind","desc":"Each client's data is completely isolated. Per-user permissions, access logs, and automatic protection."}}},"cta":{"heading1":"Scale your agency","headingAlt":"without losing control.","body":"Manage all your clients from one dashboard. Isolated data, per-account credits, and your brand front and center.","startNow":"Get started","allModules":"See all modules"},"footer":{"rights":"2024-2026 ContentFlow365. All rights reserved."}},"nav":{"production":{"label":"Production","sectionTitle":"Content Production","items":{"reels":{"label":"Reels & Angles","desc":"From angle to Reel in minutes"},"youtube":{"label":"YouTube Production","desc":"An editor that works on its own"},"avatares":{"label":"AI Avatars","desc":"Your 24/7 digital influencer"}}},"modules":{"label":"Modules","sectionTitle":"All Modules","items":{"spy":"Spy Intelligence","metaAds":"Meta Ads","crm":"Integrated CRM","landings":"AI Landings","blog":"Blog & SEO","trending":"Trending","publicacion":"Social Publishing","podcast":"Podcast","multiCuenta":"Multi-Account"}},"pricing":"Pricing","login":"Sign in","bookCall":"Book a call","viewPlans":"View plans","startNow":"Get started","menu":"Menu","language":{"label":"Language","es":"Español","en":"English"}},"podcast":{"metadata":{"title":"Video to Podcast — ContentFlow365","description":"Turn your videos into professional podcast episodes with Auphonic audio, an RSS feed, AI cover art, and automatic Spotify and Apple Podcasts distribution.","openGraphDescription":"Go from video to podcast in one click with Auphonic audio, an RSS feed, AI cover art, Spotify, and Apple Podcasts."},"nav":{"back":"Modules","login":"Sign in","startNow":"Get started"},"hero":{"badge":"MULTIPLY YOUR REACH","heading1":"Your long-form video,","heading2":"turned into a professional","heading3":"podcast.","body":"Automatically convert your YouTube videos into podcast episodes with studio-quality audio, a distribution-ready feed, and an AI-generated cover. One video, two audiences, zero extra work.","tags":{"audioProfesional":"Professional Audio","rssFeed":"RSS Feed","portadaIA":"AI Cover Art","spotify":"Spotify","applePodcasts":"Apple Podcasts","publicacionAutomatica":"Auto-Publish"},"cta":"Get started","allModules":"See all modules","screenshotAlt":"Podcast from Video — module overview"},"stats":{"items":{"audio":{"label":"Flawless Audio","desc":"Studio quality, automatically"},"reach":{"label":"Reach Everyone","desc":"Automatic distribution across all platforms"},"cover":{"label":"Professional Cover","desc":"AI-generated cover art"},"platforms":{"label":"Spotify & Apple","desc":"Where your listeners are"}}},"auphonic":{"badge":"Studio quality","heading":"Audio that sounds professionally produced","body":"Your video audio wasn't built for podcasting. ContentFlow365 processes it automatically so it sounds like it was recorded in a professional studio — noise-free, balanced volume, ready to publish.","bullets":{"noise":"Automatic background noise removal — your voice sounds clean and professional, free from hum and ambient noise.","volume":"Volume optimized for Spotify and Apple Podcasts — your listeners will never need to touch the volume again.","balance":"Intelligent audio balancing — even if you record at different times or with different mics, the result sounds consistent.","auto":"Fully automatic, ready in minutes — no audio editor to open, no manual tweaks."},"screenshotAlt":"Podcast — automatic professional audio"},"rss":{"badge":"Configure once, forget forever","heading":"Your podcast on every platform — hands-free","body":"Every time you publish a video, your podcast updates automatically on Spotify, Apple Podcasts, and every directory. Configure the feed once and every episode appears automatically wherever your listeners are.","bullets":{"auto":"Every new episode is added to the feed automatically — no file uploads, no form-filling.","everywhere":"Available on Spotify, Apple Podcasts, Google Podcasts, Amazon Music and more — without lifting a finger.","metadata":"Episode title, description, duration, and cover always complete and platform-ready.","permanent":"Your permanent podcast URL — configure once on each platform and never touch it again."},"screenshotAlt":"Podcast — automatic RSS feed"},"featureGrid":{"badge":"Everything included","heading":"From video to podcast in one click","body":"Fully automated: extracts audio, enhances it with AI, generates the cover art, and distributes to every platform. You just record the video.","items":{"audioPro":{"title":"Professional Audio","desc":"Your audio sounds clean, balanced, and perfectly leveled. Processed automatically — no audio editor needed."},"feedUpdated":{"title":"Always Up-to-Date Feed","desc":"Every new episode appears automatically on every platform. No file uploads, no link copying."},"aiCover":{"title":"AI-Generated Cover Art","desc":"Professional cover image created automatically for your show and each episode. Ready to publish."},"spotify":{"title":"On Spotify Instantly","desc":"Your episodes appear on Spotify automatically. Configure once and forget."},"apple":{"title":"Ready for Apple Podcasts","desc":"Format, metadata, and images always correct for Apple Podcasts. No manual adjustments."},"analytics":{"title":"Watch Yourself Grow","desc":"Track your published episodes, their status, and distribution metrics from a single dashboard."}},"screenshotAlt":"Podcast from Video — fully automated"},"cta":{"heading1":"Multiply the reach of your","heading2":"video content","heading3":"without extra effort.","body":"Every video you record can also reach podcast listeners. No extra editing, no extra hours, no new tools.","primary":"Get started","secondary":"See all modules","proof":{"audio":"Professional audio included","distribution":"Automatic distribution","noTools":"No extra tools needed"}},"footer":{"copyright":"2024-2026 ContentFlow365. All rights reserved."}},"privacidad":{"backToHome":"← Back to home","metaDescription":"ContentFlow365 privacy policy: user information, purpose of processing, GDPR rights, data sharing and security measures.","title":"Privacy Policy","lastUpdated":"Last updated: October 30, 2026","nav":{"sectionLabel":"Legal documents","current":"Privacy Policy","terms":"Terms & Conditions","dataDeletion":"Data deletion","refund":"Refunds & Cancellations","withdrawal":"Right of Withdrawal"},"s1":{"title":"1. Information for users","p1":"FX FOR A LIVING, S.L.N.E., hereinafter the DATA CONTROLLER, is the controller of users' personal data and informs you that such data will be processed in accordance with Regulation (EU) 2016/679 of 27 April 2016 (GDPR) on the protection of natural persons with regard to the processing of personal data and on the free movement of such data. The following information on processing is provided:","purposeTitle":"Purpose of processing","purpose":"Maintaining an educational and/or commercial relationship with the User.","operationsTitle":"Processing operations","operations":{"item1":"Sending educational and/or commercial promotional communications by email, fax, SMS, MMS, social communities or any other electronic or physical medium, present or future, that enables such communications. These communications will be sent by the DATA CONTROLLER and will relate to its products and services, or those of its collaborators or suppliers with whom it has entered into a promotional agreement.","item2":"Carrying out statistical studies.","item3":"Processing orders, requests or any type of query submitted by the user through any of the available contact channels.","item4":"Sending the website newsletter."},"retentionTitle":"Data retention criteria","retention":"Data will be retained for as long as there is a mutual interest in maintaining the purpose of processing. Once no longer necessary for that purpose, data will be deleted using appropriate security measures to ensure pseudonymisation or complete destruction.","communicationTitle":"Data sharing","communication1":"We will not share your personal data with third parties unless we are legally required to do so or have previously agreed to it.","communication2":"In order to provide you with an adequate service and manage our relationship with you as a client, the categories of companies that process your data on behalf of FX FOR A LIVING, S.L.N.E. — as part of the services we have contracted from them — are tax and accounting advisory and management companies, and information technology services companies.","communication3":"We also inform you that, for the same purpose stated above, certain companies providing services to FX FOR A LIVING, S.L.N.E. may access your personal data (international data transfers). Such transfers are made to countries with a level of protection equivalent to that of the European Union (European Commission adequacy decisions).","communication4":"For more information, please contact us at: <link>support@contentflow365.com</link>.","rightsTitle":"User rights","rights":{"withdraw":"Right to withdraw consent at any time.","access":"Right to access, rectification, portability and erasure of your data, and to restriction of or objection to its processing.","complaint":"Right to lodge a complaint with the supervisory authority (<aepd>aepd.es</aepd>) if you consider that the processing does not comply with applicable regulations."},"contactTitle":"Contact details to exercise your rights","contactAddress":"<strong>Postal address:</strong> FX FOR A LIVING, S.L.N.E. C/La Añaza, 29 1º Dcha, 35500 Arrecife (Las Palmas).","contactEmail":"<strong>Email:</strong> <link>support@contentflow365.com</link>"},"s2":{"title":"2. Mandatory or optional nature of information provided by the User","p1":"By ticking the relevant boxes and entering data in fields marked with an asterisk (*) in the contact form or download forms, users expressly, freely and unambiguously accept that their data is necessary for the provider to handle their request, while the inclusion of data in the remaining fields is voluntary. The User warrants that the personal data provided to the DATA CONTROLLER is accurate and undertakes to notify any changes to that data.","p2":"The DATA CONTROLLER informs users that, whenever it intends to transfer personal data, it will first request the express, informed and unambiguous consent of the Users.","p3":"All data requested through the website is mandatory, as it is necessary for the provision of an optimal service to the User. If not all data is provided, we cannot guarantee that the information and services provided will be fully suited to your needs."},"s3":{"title":"3. Security measures","p1":"In accordance with the provisions of current data protection regulations, the DATA CONTROLLER is complying with all GDPR requirements for the processing of personal data under its responsibility, and in particular with the principles set out in Article 5 of the GDPR, under which data is processed lawfully, fairly and transparently in relation to the data subject and is adequate, relevant and limited to what is necessary in relation to the purposes for which it is processed.","p2":"The DATA CONTROLLER warrants that it has implemented appropriate technical and organisational policies to apply the security measures required by the GDPR in order to protect users' rights and freedoms, and has provided users with the information necessary to exercise those rights."},"s4":{"title":"4. YouTube API Services integration","p1":"ContentFlow365 uses Google's <strong>YouTube API Services</strong> (YouTube Data API v3 and YouTube Analytics API) to provide the following features to the User once they have explicitly connected their YouTube channel through Google's OAuth 2.0 flow:","features":{"upload":"Publishing videos created by the User to their YouTube channel (<code>youtube.upload</code>).","thumbnail":"Setting a custom thumbnail on the uploaded video (<code>youtube</code>).","comment":"Publishing a pinned comment on the uploaded video (<code>youtube</code>).","privacy":"Changing the video privacy status (from unlisted to public) on the date scheduled by the User (<code>youtube</code>).","analytics":"Displaying the User's public and private channel and video statistics in their internal dashboard (<code>youtube.readonly</code>, <code>yt-analytics.readonly</code>)."},"s4_1":{"title":"4.1 Acceptance of Google and YouTube terms","p1":"By using ContentFlow365's YouTube integration, the User expressly agrees to be bound by the <ytTerms>YouTube Terms of Service</ytTerms> and Google's <googlePrivacy>Privacy Policy</googlePrivacy>."},"s4_2":{"title":"4.2 What data we obtain from YouTube and how we use it","p1":"ContentFlow365 only obtains and stores from YouTube API Services the data strictly necessary to provide the User with the features described above:","data":{"tokens":"<strong>OAuth tokens (access token and refresh token)</strong> — stored encrypted in our database and used exclusively by our backend services to execute the operations authorised by the User. They are not shared with third parties or used for any other purpose.","channel":"<strong>YouTube channel ID and name</strong> connected to the account, as well as the email address associated with the Google account — displayed in the User's internal dashboard so they can identify which channel is connected and disconnect it if they wish.","metadata":"<strong>Video metadata</strong> published by the User through the platform (title, description, tags, publication date, YouTube video ID) — stored in our database to display publication status, link to analytics, and allow the User to manage their published video history.","stats":"<strong>Aggregated channel statistics</strong> (views, subscribers, interactions, watch time) — shown to the User in their internal analytics dashboard. This data is temporary and periodically refreshed from the YouTube Analytics API."},"noShare":"ContentFlow365 does <strong>NOT</strong> transfer, sell, share or disclose to any third party the data obtained from YouTube API Services. Data is used exclusively within the private scope of the User who connected it. The only exception is when you yourself ask an AI assistant you have connected to ContentFlow365 to show you that data (section 11): in that case it is returned only to you, through that assistant, to provide the feature you requested."},"s4_3":{"title":"4.3 YouTube data storage and retention","p1":"OAuth tokens are stored encrypted in databases hosted in the European Union (Supabase, Frankfurt) and remain active until the User explicitly revokes the integration. Published video metadata is retained for the lifetime of the User's account on the platform. Upon account cancellation, this data is deleted within a maximum of 30 days.","p2":"Aggregated channel statistics are periodically refreshed and may be cached for up to 24 hours to reduce calls to the YouTube Analytics API. This data never leaves ContentFlow365's servers."},"s4_4":{"title":"4.4 How to revoke ContentFlow365's access to your YouTube account","p1":"The User can revoke ContentFlow365's access to their YouTube data at any time using either of these two methods:","methods":{"fromApp":"<strong>From ContentFlow365</strong>: go to <em>Social Hub → Accounts</em>, find the \"YouTube Direct connected\" card and click \"Disconnect\". Revocation is immediate: the access token is invalidated, the refresh token is marked as inactive in our database, and ContentFlow365 can no longer make YouTube API calls on behalf of the User.","fromGoogle":"<strong>From Google security settings</strong>: go to <googlePerms>https://myaccount.google.com/permissions</googlePerms>, find \"ContentFlow365\" in the list of authorised third-party apps and click \"Remove access\". This action revokes access on Google's side and propagates the invalidation to our servers on the next token use attempt."}},"s4_5":{"title":"4.5 Limited Use — compliance with YouTube API policies","p1":"ContentFlow365's use of information received from Google APIs, including the transfer of that information to any other application, adheres to the <policy>Google API Services User Data Policy</policy>, including the Limited Use requirements."}},"s5":{"title":"5. Meta and Instagram integration","intro":"ContentFlow365 allows customer businesses to voluntarily connect their Facebook Pages and professional Instagram accounts through Meta's authorisation process. Each business chooses which assets to connect and which automations to enable.","dataTitle":"5.1 Data we receive","dataIntro":"Depending on the permissions granted and features used, we may process:","data":{"tokens":"<strong>OAuth tokens and granted permissions</strong>, stored only in access-restricted server-side infrastructure.","assets":"<strong>Asset identifiers and metadata</strong>, such as Facebook Pages, professional Instagram accounts, usernames and selected media.","comments":"<strong>Comment and webhook data</strong>, such as comment ID, text, date, related media and the app-scoped Instagram identifier.","delivery":"<strong>Delivery identifiers and statuses</strong> required to record a public or private reply and prevent duplicate sends."},"purposeTitle":"5.2 How we use this data","purpose":"We use this data only to provide features configured by the customer business: display and select its own assets, detect keywords in comments on supported posts, Reels, Stories or Live broadcasts, publish a reply under the comment, send one private reply with the requested resource, and display automation status and errors. We do not sell this data or use it to build our own advertising profiles.","commentersTitle":"5.3 People who comment or reply","commenters":"A person does not need to be a ContentFlow365 customer for Meta to send us the minimum data from their interaction with a professional account managed by a customer. That data is processed on behalf of the business that configured the automation, solely to respond to the requested interaction, prevent duplicates and maintain an operational and security record.","retentionTitle":"5.4 Retention, disconnection and deletion","retention":"Connection data is retained while the integration remains active and for as long as needed to maintain the operational history requested by the customer. When Meta is disconnected, we stop using the token. The account owner or a person who interacted with it may request deletion of associated data; we will complete the request within 30 days, except where legal or security obligations apply.","deletion":"See the public <deletion>Meta and Instagram data-deletion instructions</deletion>."},"s6":{"title":"6. Google Ads, Data Manager and Google Analytics integration","intro":"ContentFlow365 lets each customer business voluntarily connect its own Google user and select the Google Ads Customer it wants to manage. The authorisation is bound to the corresponding ContentFlow account and does not grant access to other customer businesses.","dataTitle":"6.1 Data we receive","dataIntro":"Depending on the features enabled by the business, we may process only:","data":{"tokens":"<strong>Encrypted OAuth token, authorising-user email and granted scopes</strong>, stored in access-restricted server-side infrastructure.","ads":"<strong>Google Ads identifiers, configuration and metrics</strong> for the selected Customer: campaigns, ad groups, ads, assets, targeting, comments, conversions and statistics required to display and manage them.","audiences":"<strong>First-party data intended for Customer Match</strong>. Identifiers are normalised and hashed before transmission; ContentFlow365 requires confirmation of a valid consent basis and does not retain unhashed identifiers in the upload record.","analytics":"<strong>Read-only Google Analytics 4 metadata</strong>, such as accounts, properties and audiences, so the business can select the correct measurement source. ContentFlow365 cannot modify Analytics data with this permission."},"purposeTitle":"6.2 How we use this data","purpose":"We use it only to display real information from the accounts selected by the User and to execute advertising actions the User previews and expressly confirms. Campaigns, ad groups and ads created by ContentFlow365 are paused by default. We do not activate spend automatically, use this data for our own advertising, or use it to train artificial-intelligence models.","securityTitle":"6.3 Security, retention and disconnection","security":"Tokens are encrypted before storage and bound to one ContentFlow account and its selected Customers. They are retained while the integration remains active or until Google revokes them. Operational history is retained for the life of the account and deleted within 30 days after cancellation, except where legal or security obligations apply.","revoke":"The User can withdraw authorisation from <strong>Google Ads → Connection & setup → Disconnect</strong>, or from <googlePerms>their Google Account permissions</googlePerms>. On disconnection, ContentFlow365 removes the stored authorisation and stops making calls on the User's behalf; it does not delete existing Google accounts, campaigns or videos.","limitedUseTitle":"6.4 Limited use and no disclosure","limitedUse":"ContentFlow365 does not sell, rent or disclose data received from Google APIs. Its use and any permitted transfer adhere to the <policy>Google API Services User Data Policy</policy>, including the Limited Use requirements."},"s7":{"title":"7. Google Calendar integration","intro":"ContentFlow365 lets an authorised account member voluntarily connect their own Google Calendar from the private Sales & CRM workspace. The authorisation is isolated to the matching ContentFlow account.","dataTitle":"7.1 Data we receive","data":{"tokens":"<strong>Encrypted OAuth access and refresh tokens, authorising-user email and granted scopes</strong>, stored only in access-restricted server-side infrastructure.","calendarList":"<strong>Calendar identifiers, names, access roles and time zones</strong> so the user can select the correct calendar.","availability":"<strong>Free/busy time ranges</strong> required to display availability without disclosing unrelated event content.","events":"<strong>Event identifiers, titles, start/end times and links</strong> needed to display and manage the events selected or created by the user."},"purposeTitle":"7.2 How we use this data","purpose":"We use Google Calendar data only to list the connected user's calendars, show availability and upcoming events, and create, edit or delete an event after an explicit user action. We do not use Calendar data for advertising, sell it, disclose it to unrelated third parties, or use it to train general-purpose artificial-intelligence models.","securityTitle":"7.3 Security, retention and revocation","security":"OAuth tokens are encrypted before storage and never exposed to the browser. Connection metadata is retained while the integration remains active. Calendar responses are limited to the active account and are not retained beyond what is necessary to provide the requested feature. Disconnecting immediately removes the stored OAuth credentials; minimal audit metadata is retained only where required for security, fraud prevention or legal compliance.","revoke":"The user can disconnect Google Calendar from Sales & CRM → Calendar → Connections, or remove ContentFlow365 from <googlePerms>Google Account connections</googlePerms>. ContentFlow365 then stops making Calendar API calls on the user's behalf.","limitedUseTitle":"7.4 Limited Use and no disclosure","limitedUse":"ContentFlow365's use and any permitted transfer of information received from Google APIs adhere to the <policy>Google API Services User Data Policy</policy>, including the Limited Use requirements."},"s8":{"title":"8. Native publishing to Pinterest, Threads and Bluesky","intro":"ContentFlow365 may offer integrations that let the User voluntarily connect their own Pinterest, Threads or Bluesky accounts and publish content from their private workspace. Each integration is enabled only after the User completes the relevant provider's authorisation flow.","permissionsTitle":"8.1 Authorisation and permissions","permissionsIntro":"ContentFlow365 does not request or retain passwords for these networks. When the User enables an integration, we use the provider's or AT Protocol's OAuth flow to request only the permissions required:","permissions":{"pinterest":"<strong>Pinterest</strong>: <code>user_accounts:read</code>, <code>boards:read</code>, <code>boards:write</code>, <code>pins:read</code> and <code>pins:write</code> to identify the authorised account, query available boards and create or check requested Pins. ContentFlow365 does not provide general board management; <code>boards:write</code> is requested because it is part of the permissions required by Pinterest's Pin-creation operation.","threads":"<strong>Threads</strong>: <code>threads_basic</code> and <code>threads_content_publish</code> to identify the connected profile and publish text, images or video when requested by the User.","bluesky":"<strong>Bluesky</strong>: the AT Protocol scope <code>atproto include:app.bsky.authCreatePosts?aud=did:web:api.bsky.app%23bsky_appview blob?accept=image/jpeg&accept=image/png&accept=image/webp&accept=text/vtt</code> to create posts and upload only JPEG/PNG/WebP images or WebVTT captions selected by the User. Video uses separate service authorisation inherited from the create-post permission; we do not request an OAuth video-blob permission."},"dataTitle":"8.2 Data we process","data":{"credentials":"<strong>Authorisation credentials</strong>: Pinterest and Threads OAuth tokens, or Bluesky's DPoP-bound OAuth session, encrypted before storage and limited to the ContentFlow365 account that initiated the connection.","identities":"<strong>Minimum connection identifiers</strong>: for Threads, the identifier and username needed to display the connected destination; for Bluesky, the DID, verified handle and PDS server needed to identify the account and route requests to the correct server.","content":"<strong>User-provided content</strong>: text, title, description, link, media references or files, and publishing or scheduling instructions that the User saves or confirms in ContentFlow365.","status":"<strong>Publication state</strong>: internal job state, technical timestamps and the receipt or identifier returned by the network only where needed and permitted to confirm the result, prevent duplicates or link the publication history requested by the User.","pinterestMinimization":"<strong>Pinterest minimisation</strong>: we query the profile and available boards live to display the selector, but do not retain the profile name or avatar, board names, or the board collection as persistent connection metadata. The selected destination is processed only to execute the authorised publication, in accordance with Pinterest's rules."},"purposeTitle":"8.3 Purpose and limits","purpose":"We use this data solely to connect the selected account, show the User which destination is in use, prepare and execute publications they confirm, and report their status. We do not publish to a different account, sell integration data, or request analytics, messaging, moderation, advertising or general account-administration permissions for these features.","retentionTitle":"8.4 Retention, disconnection and published content","retention":"Encrypted credentials are retained while the connection remains active. User-created content and the minimum operational history are retained while needed to provide account features or meet applicable security, fraud-prevention or legal-compliance requirements. When a network is disconnected, we delete or invalidate the credentials stored for that connection and stop making new calls on the User's behalf.","publishedContent":"Disconnecting the integration or deleting its data from ContentFlow365 does not automatically remove Pins, Threads posts or Bluesky posts already published to the User's account. That content remains under the User's control on the relevant network and must be deleted there if the User also wants it removed.","deletion":"See the public <deletion>social-integration disconnection and data-deletion instructions</deletion>."},"s9":{"title":"9. Pinterest Ads integration","intro":"After Pinterest's specific approval and a separate enablement step, ContentFlow365 may offer a read-only view that lets an authorised User inspect their own Pinterest advertising accounts. This feature remains separate from organic publishing and is not enabled merely by connecting Pinterest.","permissionsTitle":"9.1 Authorisation and permissions","permissions":"The initial phase requests <code>ads:read</code> in addition to the organic permissions only when the User enables Pinterest Ads. <code>billing:read</code> will be requested only if read-only access to billing profiles and invoices is separately enabled. This phase does not request <code>ads:write</code>, <code>billing:write</code>, catalogue, lead-form, conversion, beta or restricted permissions.","dataTitle":"9.2 Data we query","data":{"connection":"<strong>Connection</strong>: encrypted OAuth credentials, granted scopes, expiry and technical connection status.","accounts":"<strong>Advertising accounts</strong>: identifier, name, country, currency, time zone and owner permissions needed to validate and display the selected account.","entities":"<strong>Structure and performance</strong>: campaigns, ad groups and ads, their relationships, objective, format, settings, budgets or caps, configured status, delivery or review status, and aggregated metrics such as spend, impressions, clicks, CTR, conversions, leads or checkouts.","supporting":"<strong>Read-only supporting data</strong>: audiences without member lists; conversion tags and setup status without Conversion API events or personal identifiers; and, only with <code>billing:read</code>, billing identifiers, type, brand, status and invoice amounts, never full card or bank-account numbers."},"purposeTitle":"9.3 Purpose and limits","purpose":"We use this data solely to let the User select their own advertising account, inspect a dashboard, hierarchy and delivery or review status, measure performance and diagnose configuration. We do not sell or disclose it, combine it across ContentFlow accounts, use it for our own advertising, profile individuals or train artificial-intelligence models.","retentionTitle":"9.4 Querying, retention and security","retention":"Pinterest Ads responses are queried live, returned as private non-cacheable content and not stored in the database or as persistent connection metadata. They remain only transiently during the authenticated request or session. Tokens are encrypted server-side and retained while the connection is active; minimum technical logs contain neither tokens nor the response body returned by Pinterest.","limitsTitle":"9.5 Enablement, disconnection and deletion","limits":"Initial access is restricted to the internal team and is read-only: it does not create, edit or activate campaigns, ads or audiences, send conversion events or initiate spend. Customer access requires Pinterest Standard approval and the corresponding review. On disconnection, ContentFlow365 deletes or invalidates the local authorisation and stops making calls; it does not delete existing Pins, campaigns or ads on Pinterest. Deletion requests are processed under the public <deletion>data-deletion instructions</deletion>."},"s10":{"title":"10. LinkedIn Community Management integration","intro":"ContentFlow365 lets a customer business voluntarily connect a LinkedIn Page it administers and publish organic content from its private workspace. Company Page connections are separate from personal-profile publishing and are enabled only when LinkedIn has granted the product the corresponding access tier.","permissionsTitle":"10.1 Authorisation and permissions","permissions":"The administrator starts LinkedIn's OAuth flow and grants only the permissions needed to discover the Pages they administer and publish to the selected Page: <code>rw_organization_admin</code>, <code>r_organization_social</code> and <code>w_organization_social</code>. ContentFlow365 does not request the LinkedIn password and does not publish until the User selects a destination and confirms a publication.","dataTitle":"10.2 Data we process","data":{"credentials":"<strong>Credentials and consent:</strong> encrypted OAuth tokens, granted permissions, technical consent timestamps and the minimum identifier of the member authorising the connection.","pages":"<strong>Administered Pages:</strong> the identifier, public name, visible handle and administrative role of Pages returned by LinkedIn so the User can select the correct destination. Page-profile fields are automatically removed before exceeding LinkedIn's eight-week retention limit.","content":"<strong>User-selected content and destination:</strong> text, links and media references saved or confirmed for publication, together with the identifier of the selected Page.","delivery":"<strong>Operational result:</strong> internal publication status and, where needed and permitted, the identifier or URL returned by LinkedIn to confirm the result and prevent duplicate publications."},"purposeTitle":"10.3 Purpose, isolation and limits","purpose":"We use this data solely to connect the selected Page, display available destinations, publish organic content confirmed by the User and report the result. Each connection is isolated by ContentFlow365 Account and Brand; we do not share data across customers, sell it, use it for advertising, sales prospecting, recruitment, or train general-purpose artificial-intelligence models.","retentionTitle":"10.4 Retention, disconnection and secure deletion","retention":"Encrypted credentials are retained while the connection remains active. Page-profile information is automatically scrubbed after 55 days. On disconnection, ContentFlow365 deletes or invalidates the local authorisation and stops making new calls. After validating a LinkedIn Community data-deletion request, a protected administrative operation stops new native publications, deletes OAuth connections and flows, unlinks or redacts Page identities, and erases provider-derived identifiers, URLs, metrics, errors and metadata. Only the customer's own content and the minimum idempotency outcome needed to prevent duplicate publication are retained.","publishedContent":"Disconnecting LinkedIn or deleting its data from ContentFlow365 does not automatically remove publications that already exist on LinkedIn. To remove those as well, the User must delete them from the relevant LinkedIn Page.","deletion":"See the public <deletion>social-integration disconnection and data-deletion instructions</deletion>."},"s11":{"title":"11. Using ContentFlow365 from AI assistants (MCP)","intro":"ContentFlow365 offers a connector based on the Model Context Protocol (MCP) so that an authorised member of a customer account can use ContentFlow365 tools from a compatible AI assistant, such as ChatGPT, Codex or Claude. This section complements the rest of this policy and applies only when you connect and use an assistant.","connectionTitle":"11.1 Connection and permissions","connection":"You connect an existing ContentFlow365 account through OAuth from the assistant and approve the permissions shown on the ContentFlow365 consent screen. ContentFlow365 does not receive your assistant password, and the assistant does not receive your ContentFlow365 password. Each connection is limited to the account, brand and permissions you approve, and the same roles, approvals and credit controls as in the web application continue to apply.","dataTitle":"11.2 Data we process","data":{"connection":"<strong>Connection data:</strong> the connected account and brand, the acting user, the assistant application, the permissions granted, consent and expiry dates, and the technical records needed to verify access and investigate errors.","requests":"<strong>Requests and parameters:</strong> the information the assistant sends to a tool when you ask it to, such as text, links, files, the selected brand or Persona, campaign, contact or advertising identifiers and the chosen settings.","results":"<strong>Results:</strong> the information a tool returns to the assistant, such as brand, Persona, library, campaign, CRM, calendar, credit, advertising or social-media data from your account, and links to generated content.","operations":"<strong>Operation records:</strong> status, timestamps, credit estimates, charges and refunds, duplicate-prevention records and provider references, kept for billing, recovering operations and auditing."},"purposeTitle":"11.3 Purpose","purpose":"We use this data only to authenticate the connection, run the tools you request in your own account, return the results to your assistant, charge and reconcile the related credits, keep the service secure and resolve incidents. We do not sell this data, we do not use it for advertising profiles, and we do not use the content of your requests to train general-purpose AI models.","recipientsTitle":"11.4 Recipients","recipientsIntro":"Depending on the tool you use, data may be received by:","recipients":{"assistant":"<strong>The provider of the AI assistant you connected</strong> (for example OpenAI or Anthropic), which receives the results you request together with what you write in the conversation. Those conversations are governed by its own terms and privacy policy; for example, in some ChatGPT plans data may be used to improve its models if you have that setting turned on.","ai":"<strong>AI model and media-generation providers</strong> that process the inputs needed for the text, images, voices, avatars or videos you request.","platforms":"<strong>Advertising, social-media, messaging, webinar and CRM platforms</strong> you have connected (for example Google, Meta, TikTok, LinkedIn, X, Pinterest, HighLevel, Zoom or ClickMeeting), when you ask to read information from them or act on them.","infrastructure":"<strong>Infrastructure providers</strong> for hosting, databases, background processing and storage, acting as processors on our behalf."},"google":"Data obtained from Google APIs (YouTube, Google Ads, Google Analytics or Google Calendar) is returned to your assistant only when you expressly request it within your own account, to provide the feature you are using, and remains subject to the Limited Use requirements described in sections 4, 6 and 7.","retentionTitle":"11.5 Retention, revocation and deletion","retention":"Connection data is kept while the connection is active, and unused connections expire automatically after a prolonged period of inactivity. Created content and operation records are kept while your account is active and for as long as needed for the purposes above; billing records are kept for the periods required by tax and accounting law. They are then deleted or anonymised according to the criteria in section 1.","revoke":"You can revoke an assistant's access at any time from <strong>Settings → Connected apps</strong> in ContentFlow365 or from the assistant's own settings. Revoking stops future access but does not delete content already created or conversations stored by the assistant provider.","deletion":"To request access to, correction or deletion of your data, see the <deletion>data deletion instructions</deletion> or write to <link>support@contentflow365.com</link>."},"s12":{"title":"12. Zoom integration","intro":"ContentFlow365 lets a Zoom account administrator voluntarily connect their Zoom account to a ContentFlow account to create meetings, register the people who sign up on that account's pages and import attendance from completed meetings and webinars. The connection is isolated to the ContentFlow account that authorises it. In this integration, ContentFlow365 processes Zoom data on behalf of the customer who connects it.","dataTitle":"12.1 Data we receive from Zoom","data":{"credentials":"<strong>OAuth access and refresh tokens, Zoom account and user identifiers, the authorising user's email and the granted scopes</strong>, stored only in access-restricted server-side infrastructure.","meetings":"<strong>Meeting and webinar data:</strong> identifiers, topic, description, dates, duration, time zone, attendee join link and registration settings. The host start link and meeting passcode are never sent to the browser.","registrants":"<strong>Registrants:</strong> first name, last name and email of the people registered for one of the customer's meetings or webinars, and the join link Zoom assigns to them.","participants":"<strong>Attendance:</strong> display name, email (when Zoom provides it), join and leave times and minutes connected for each participant in completed meetings and webinars.","settings":"<strong>A single setting of the user who creates the meeting</strong> (the entry and exit chime), which ContentFlow365 turns off so that meetings created from the app start without sound alerts."},"purposeTitle":"12.2 How we use this data","purpose":"We use Zoom data only to provide the features the customer requests in their own account: creating and listing their meetings, registering in Zoom the people who sign up on their pages, showing them their attendance reports and letting them follow up with their own registrants and attendees in their CRM. We do not use Zoom data for our own advertising or marketing, we do not build advertising profiles of Zoom users, we do not sell or disclose this data to unrelated third parties and we do not use it to train artificial-intelligence models.","sharingTitle":"12.3 Who it is shared with","sharing":"Zoom data is visible only to authorised users of the ContentFlow account that connected Zoom. It is hosted by infrastructure providers (database and servers) bound by confidentiality and security obligations equivalent to those in this policy. If the customer uses ContentFlow365 from an AI assistant (section 11), the assistant receives the results the customer requests.","retentionTitle":"12.4 Retention and deletion","retention":"Credentials are kept while the connection is active. When the customer clicks \"Disconnect\" in Integrations → Zoom, ContentFlow365 asks Zoom to revoke the authorisation and deletes the tokens; reports already imported remain available to the customer until they ask us to delete them. If the customer removes the app from the Zoom App Marketplace, Zoom notifies us and we automatically delete the tokens and every report imported from Zoom for that connection. Reports the customer uploaded themselves as CSV files do not come from Zoom and are kept.","rights":"To access, correct or delete the Zoom data of an account, write to <link>soporte@contentflow365.com</link> or follow the <deletion>data deletion</deletion> procedure. We respond within 30 days at most."},"footer":"2024-2026 ContentFlow365 — FX FOR A LIVING, S.L.N.E. (B76044221). All rights reserved."},"publicacion":{"nav":{"back":"Modules","login":"Sign in","startNow":"Get started"},"hero":{"badge":"7 NETWORKS","heading1":"Publish everywhere","heading2":"your audience is. From","heading3":"one single place.","body":"Schedule and auto-publish to YouTube, Instagram, TikTok, LinkedIn, X, Facebook and Pinterest from a single visual calendar. Less time managing channels, more time creating content.","cta":"Get started","allModules":"See all modules","screenshotAlt":"Social Hub - Multi-channel publishing calendar"},"stats":{"networks":{"label":"7 Networks, 1 Place","desc":"YouTube, Instagram, TikTok, LinkedIn, X, Facebook, Pinterest"},"visual":{"label":"Plan Visually","desc":"See your entire content strategy at a glance"},"autopilot":{"label":"Publish on Autopilot","desc":"Your content publishes itself when it's ready"},"results":{"label":"Clear Results","desc":"Metrics from every network in one dashboard"}},"calendar":{"badge":"Your strategy at a glance","title":"Your entire content week on a single screen","description":"Stop jumping between apps. Plan and schedule posts for all 7 networks from a visual calendar with month, week or day view. See exactly what goes out, when and where.","bullet1":"Switch between month, week or day view depending on what you need to plan","bullet2":"Schedule for YouTube, Instagram, TikTok and the rest from the same place","bullet3":"Drag and drop to reorganize your calendar instantly","bullet4":"Filter by platform to focus on what matters right now","screenshotAlt":"Social Hub - Visual publishing calendar"},"automation":{"badge":"Publish without babysitting","title":"Your content publishes itself — when it's ready","description":"Set rules once and forget about manual publishing. When your content is approved, it publishes automatically to the right network, in the right format, at the optimal time.","bullet1":"Publishes only when content is approved — no rushing, no forgetting","bullet2":"Each format goes to the right network automatically: long to YouTube, short to TikTok and Instagram","bullet3":"Get notified when something publishes or needs your attention","bullet4":"If a network fails temporarily, it retries on its own — no intervention needed","screenshotAlt":"Social Hub - Automatic publishing rules"},"networks":{"eyebrow":"Where your audience is","heading1":"7 social networks,","heading2":"one single place","body":"Every platform has its own formats and rules. ContentFlow365 adapts your content so it lands perfectly on each one — without you having to think about it.","screenshotAlt":"Social Hub - Overview of scheduled posts","youtube":{"title":"YouTube","desc":"Publish long videos, Shorts and premieres with title, description, tags and thumbnail ready. No need to open YouTube Studio."},"instagram":{"title":"Instagram","desc":"Posts, Reels and Stories with first comment, hashtags and location. Schedule and relax."},"tiktok":{"title":"TikTok","desc":"Publish your short videos with caption and hashtags directly. Reach the youngest audience without effort."},"linkedin":{"title":"LinkedIn","desc":"Share on your profile or company page. Position yourself as a go-to voice in your industry with B2B content."},"x":{"title":"X / Twitter","desc":"Schedule tweets with images, videos and threads. Publish at peak engagement moments."},"facebook":{"title":"Facebook & Pinterest","desc":"Amplify your organic reach with Facebook posts and Pinterest pins, all from the same calendar."}},"cta":{"heading1":"Your content deserves to reach","heading2":"everywhere it matters,","heading3":"with zero extra effort.","body":"Connect your social networks once and let ContentFlow365 handle publishing at the right time, on every platform, in the right format.","primary":"Get started","secondary":"See all modules","check1":"No credit card required","check2":"7 networks included","check3":"Automatic publishing"},"footer":{"copyright":"2024-2026 ContentFlow365. All rights reserved."}},"reels":{"nav":{"back":"Modules","login":"Sign in","startNow":"Get started"},"hero":{"badge":"AI Reels","title1":"From angle to Reel.","title2":"Without lifting a finger.","description":"AI analyzes your content, generates multiple angles, writes the script, creates the slides, picks the music, and publishes the Reel. You just approve.","tags":{"multipleAngles":"Multiple angles","aiAvatar":"AI Avatar","stopScroller":"Stop Scroller","proVoice":"Professional voice","fullyAuto":"100% automatic","directPublish":"Direct publishing"},"cta":{"start":"Get started","allModules":"See all modules"},"screenshotAlt":"Reels gallery — thousands of Reels produced","statPill":"Thousands of Reels produced"},"stats":{"multiply":{"label":"Multiply your content","desc":"From a single idea, AI generates multiple Reels with different angles"},"noIntervention":{"label":"Zero intervention","desc":"From idea to published Reel — everything happens automatically"},"yourFace":{"label":"Your face or ours","desc":"An AI avatar presents each Reel with perfect lip-sync"},"firstSeconds":{"label":"First 3 seconds","desc":"Hooks designed to stop the scroll and capture attention instantly"}},"angles":{"badge":"AI Angles","title":"One idea, many Reels","description":"Why create a single Reel when you can get 10? AI analyzes your idea and generates different angles — hooks, tips, stories, questions — so you publish more without thinking more.","bullets":{"approaches":"Up to 10 different angles per idea: hooks, value tips, storytelling, thought-provoking questions, and more","script":"Each angle comes with the script, call to action, and description copy ready to go","connected":"Everything stays linked to the original content so you always know where each Reel came from","maximize":"Get the most out of every idea. One piece of content = weeks of posts across your networks"},"screenshotAlt":"Reels gallery produced with AI angles"},"reelStudio":{"badge":"Reel Studio","title":"Your Reel studio. Without the studio.","description":"Everything you need to produce a professional Reel is in one panel: script, visuals, music, and publishing. You just review and approve.","bullets":{"script":"Scene-by-scene script in your communication style, with hashtags and call-to-action included","ideas":"Idea bank and inspiration organized by category so you never run out of content","music":"Music selected automatically based on the Reel's tone, with the option to swap it","visuals":"Support images and clips generated for each scene — no searching required"},"screenshotAlt":"Reel Studio — Script, Ideas and Audio in one panel"},"aeTemplates":{"badge":"AE Templates","title":"Cinema-grade motion graphics. No After Effects.","description":"Hundreds of After Effects templates baked in — animated bars, comparison matrices, donut charts, hooks. Pick one, type in your data, and render at pro motion-designer quality.","bullets":{"library":"Growing template library sorted by use case: stats, comparisons, hooks, transitions","data":"Live-editable data — change a number or label and the render updates instantly","brand":"Every template auto-adapts to your brand colors and typography","render":"Cloud render. No After Effects install. No 30-minute waits."},"screenshotAlt":"AE Templates library ready to customize"},"featureGrid":{"sectionBadge":"Complete production","sectionTitle":"Everything a Reel needs","sectionDesc":"From the initial angle to publishing across your networks. Every piece of the puzzle automated so you can focus on strategy.","features":{"multipleAngles":{"title":"Multiple angles","desc":"From a single idea, AI generates different angles so you publish more content without thinking more."},"voiceScript":{"title":"Script in your voice","desc":"The script is written in your communication style, with narrative structure and call to action included."},"avatar":{"title":"An avatar that represents you","desc":"An AI avatar with your likeness and voice presents each Reel. No recording, no editing, no camera time."},"visuals":{"title":"Images and clips","desc":"Support images and clips generated automatically for each scene. Vertical format ready for social media."},"hook":{"title":"Hook in 3 seconds","desc":"The first seconds of the Reel are designed to stop the scroll and capture attention instantly."},"publish":{"title":"Publish across all networks","desc":"One click and your Reel goes live on Instagram, TikTok, and YouTube Shorts — without leaving the platform."}}},"pipeline":{"sectionBadge":"How it works","sectionTitle":"4 steps. Reels published.","sectionDesc":"From your idea to a Reel in front of your audience. Everything happens automatically — you just supervise.","stepLabel":"Step {number}","steps":{"idea":{"title":"Idea or video","desc":"Start from any idea, recording, or existing content. AI analyzes it and extracts its potential."},"angles":{"title":"AI generates angles","desc":"Multiple versions are created, each with a different script, copy, and narrative structure."},"production":{"title":"Full production","desc":"Avatar, images, support clips, music, and subtitles are generated automatically for each Reel."},"published":{"title":"Published to your networks","desc":"One click schedules and publishes to Instagram, TikTok, and YouTube Shorts — all from the platform."}},"proofPoints":{"noCamera":"No recording on camera","noEdit":"No video editing","noMusic":"No searching for music","noScript":"No writing scripts","noSchedule":"No manual scheduling"}},"gallery":{"badge":"Reels Gallery","title":"Your Reels library, always ready","description":"Every Reel AI produces appears in your gallery. Review, preview, edit whatever you want, or publish directly. Content organized and ready whenever you decide.","screenshotAlt":"Reels gallery — thousands of vertical Reels produced","highlights":{"organize":"All your Reels in one place, with instant visual preview","status":"See the status of each Reel: in production, ready, published, or scheduled","preview":"Preview the video before publishing to make sure everything is perfect","publish":"Publish to Instagram, TikTok, and YouTube Shorts with a single click","filter":"Filter by angle, status, date, or platform to find what you need","regen":"Not happy with something? Regenerate the script, images, or audio without starting over"}},"cta":{"title1":"Your Reels channel,","title2":"on autopilot.","description":"Stop hunting for ideas, writing scripts, and editing videos. ContentFlow365 turns every idea into a complete Reel and publishes it for you.","start":"Get started","allModules":"See all modules"},"footer":{"copyright":"2024-2026 ContentFlow365. All rights reserved."}},"spy":{"nav":{"back":"Modules","login":"Sign in","startNow":"Get started"},"hero":{"badge":"5 Platforms","heading1":"Spy on your competition","heading2":"before you create anything.","body":"Monitor your competitors' Meta Ads, Instagram Reels, TikTok, LinkedIn, and X in real time. Discover which angles, formats, and copy work — before spending a dollar on production.","cta":"Get started","demo":"See demo","pills":{"ads":"96 Ads","reels":"119 Reels","sources":"5 active sources"},"screenshotAlt":"Spy Intelligence — main dashboard with 5 platforms"},"stats":{"items":{"platforms":{"label":"5 Platforms","desc":"Meta, Reels, TikTok, LinkedIn, X"},"frequency":{"label":"2x per day","desc":"Updated morning and afternoon automatically"},"ai":{"label":"AI Analysis","desc":"Spots winning angles instantly"},"filters":{"label":"Find what matters","desc":"Advanced filters and key metrics"}}},"feature1":{"badge":"Smart gallery","title":"Find winning ads in seconds","description":"Every ad and reel monitored by the AI receives an automatic performance analysis. Discover which sales angles work, which hooks grab attention, and which creatives are delivering results — all organized so you can act fast.","bullets":{"scoring":"The AI automatically scores every ad and reel so you instantly see which ones perform best","angles":"Classified by sales angle: pain, aspiration, transformation, social proof…","filters":"Filter by platform, format, content type, date, and performance to find exactly what you're looking for","action":"Turn any insight into your own content with a single click"},"screenshotAlt":"Spy Intelligence — smart ad gallery"},"feature2":{"badge":"Multi-platform","title":"5 platforms, one dashboard","description":"Forget opening five different tabs. Meta Ads, Instagram Reels, TikTok, LinkedIn, and X/Twitter — all monitored from a single dashboard. Automatic scraping twice a day so you always have the freshest data on your competition.","bullets":{"platforms":"5 integrated platforms: Meta Ads Library, IG Reels, TikTok, LinkedIn, X/Twitter","update":"Automatic updates twice a day so you always have the freshest data","stats":"Global stats at a glance: total pieces, active today, breakdown by platform","search":"Combinable search and filters by source, platform, date range, and performance"},"screenshotAlt":"Spy Intelligence — dashboard with 5 integrated platforms"},"featureGrid":{"badge":"Full coverage","heading":"One dashboard for your entire industry","body":"From paid ads to organic content. Five platforms monitored automatically, everything centralized in one place.","items":{"metaAds":{"title":"Meta Ads Spy","desc":"Monitor your competitors' active ads on Meta. Spot creatives, copy, and offers that are working in your niche."},"igReels":{"title":"Instagram Reels","desc":"Track your competitors' top-performing Reels. Analyze durations, hooks, and editing patterns that drive engagement."},"tiktok":{"title":"TikTok Videos","desc":"Discover viral videos in your niche on TikTok. Filter by views, likes, and date to spot emerging trends."},"linkedin":{"title":"LinkedIn Posts","desc":"Analyze the B2B content generating the most engagement on LinkedIn. Identify top topics, formats, and posting frequencies."},"twitter":{"title":"X / Twitter","desc":"Monitor high-impact tweets and threads from industry leaders. Detect narratives and messages that resonate with your audience."},"aiAngles":{"title":"Angle Analysis","desc":"The AI automatically classifies every piece by sales angle, content type, and copy pattern. Get insights ready to apply to your strategy."}},"screenshotAlt":"Spy Intelligence — competitor ad gallery with AI scoring"},"techSpecs":{"heading":"What's included in your Spy","items":{"platforms":{"label":"Platforms","value":"5 integrated"},"update":{"label":"Updates","value":"2x per day"},"monitoring":{"label":"Monitoring","value":"100% automatic"},"filters":{"label":"Filters","value":"Advanced search"},"stats":{"label":"Statistics","value":"Key metrics"},"intelligence":{"label":"Intelligence","value":"AI built-in"},"infra":{"label":"Infrastructure","value":"EU Cloud"},"angles":{"label":"AI Angles","value":"Auto-classified"}}},"cta":{"heading1":"Find out what works","heading2":"before you spend a dollar.","body":"Stop guessing. Monitor your competition across 5 platforms, analyze with AI, and create winning content with real data.","primary":"Get started","secondary":"See all modules"},"footer":{"copyright":"2024-2026 ContentFlow365. All rights reserved."}},"terminos":{"metaTitle":"Terms & Conditions — ContentFlow365","metaDescription":"Legal terms and conditions, intellectual property, refund policy, right of withdrawal, and governing law for ContentFlow365.","backToHome":"← Back to home","title":"Terms & Conditions","lastUpdated":"Last updated: April 10, 2026","nav":{"sectionLabel":"Legal documents","privacy":"Privacy Policy","lssi":"Legal Notice","refund":"Refunds & Cancellations","withdrawal":"Right of Withdrawal"},"lssi":{"title":"Legal Notice — Information Society Services","p1":"FX FOR A LIVING, S.L.N.E., operator of the ContentFlow365 website, hereinafter the DATA CONTROLLER, makes this document available to users in order to comply with the obligations set out in Law 34/2002 of 11 July on Information Society Services and Electronic Commerce (LSSICE), Official Gazette No. 166, and to inform all website users of the conditions of use.","p2":"Anyone who accesses this website assumes the role of user and undertakes to observe and strictly comply with the provisions set out herein, as well as any other applicable legal provision.","p3":"FX FOR A LIVING, S.L.N.E. reserves the right to modify any information that may appear on the website, without any obligation to give prior notice to users, it being sufficient to publish such changes on the ContentFlow365 website.","s1":{"title":"1. Identification details","domain":"<strong>Domain name:</strong> https://www.contentflow365.com","tradeName":"<strong>Trade name:</strong> ContentFlow365","legalName":"<strong>Legal name:</strong> FX FOR A LIVING, S.L.N.E.","nif":"<strong>Tax ID (NIF):</strong> B76044221","address":"<strong>Registered address:</strong> C/La Añaza, 29 1º Dcha, 35500 Arrecife (Las Palmas)","phone":"<strong>Phone:</strong> 902 933 172","email":"<strong>Email:</strong> <a>soporte@contentflow365.com</a>"},"s2":{"title":"2. Intellectual and industrial property rights","p1":"The website — including, without limitation, its programming, editing, compilation and other elements necessary for its operation, designs, logos, text and/or graphics — is owned by the DATA CONTROLLER or, where applicable, is used under express licence or authorisation from the authors. All website content is duly protected by intellectual and industrial property law and registered in the relevant public registries. Regardless of the intended purpose, any total or partial reproduction, use, exploitation, distribution or commercialisation requires the prior written authorisation of the DATA CONTROLLER. Any previously unauthorised use constitutes a serious breach of the author's intellectual or industrial property rights.","p2":"Designs, logos, text and/or graphics not owned by the DATA CONTROLLER that may appear on the website belong to their respective owners, who are solely responsible for any dispute that may arise in connection with them. The DATA CONTROLLER expressly authorises third parties to link directly to specific content on the website, and in any case to redirect to the main website at https://www.contentflow365.com.","p3":"The DATA CONTROLLER acknowledges the respective intellectual and industrial property rights of their holders. The mere mention or appearance of such rights on the website does not imply the existence of any rights or liability over them, nor any endorsement, sponsorship or recommendation by the DATA CONTROLLER.","p4":"To report any potential infringement of intellectual or industrial property rights, or any concerns about website content, please contact"},"s3":{"title":"3. Liability disclaimer","p1":"The DATA CONTROLLER disclaims any liability arising from information published on its website where that information has been manipulated or introduced by a third party unrelated to the DATA CONTROLLER.","cookies":{"title":"Use of cookies","p1":"This website may use technical cookies (small information files sent by the server to the computer of the person accessing the page) to perform certain functions that are considered essential for the proper operation and display of the site. The cookies used are in all cases temporary, with the sole purpose of making navigation more efficient, and disappear when the user's session ends. In no case do these cookies themselves provide personal data, nor will they be used to collect it.","p2":"Cookies may also allow the server hosting the website to recognise the user's browser in order to simplify navigation — for example, by allowing previously registered users to access restricted areas, services, promotions or competitions without registering on each visit. Cookies may also be used to measure audience size, traffic parameters, track progress and number of entries, etc. In these cases, the cookies are technically non-essential but beneficial to the user. This website will not install non-essential cookies without the user's prior consent.","p3":"Users may configure their browser to receive alerts about cookies and to prevent them from being installed on their device. Please consult your browser's instructions for more information."},"links":{"title":"Link policy","p1":"This website may redirect to content on third-party websites. Since the DATA CONTROLLER cannot always control the content added by third parties on their respective websites, it accepts no liability for such content. In all cases, it will immediately remove any content that could contravene national or international law, public morality or public order, and will immediately remove the redirect to that website, notifying the competent authorities of the relevant content.","p2":"The DATA CONTROLLER accepts no responsibility for information and content stored on, without limitation, forums, chats, blog generators, comments, social networks or any other medium that allows third parties to publish content independently on the DATA CONTROLLER's website. However, in compliance with Articles 11 and 16 of the LSSICE, the DATA CONTROLLER makes itself available to all users, authorities and law enforcement agencies, actively cooperating in the removal or, where applicable, blocking of all content that may affect or contravene national or international law, the rights of third parties, or public morality and order. If a user considers that content on the website could fall within this classification, they are requested to notify the website administrator immediately.","p3":"This website has been reviewed and tested to function correctly. In principle, correct operation can be guaranteed 365 days a year, 24 hours a day. However, the DATA CONTROLLER does not rule out the possibility of certain programming errors, or the occurrence of force majeure events, natural disasters, strikes or similar circumstances that may make the website inaccessible."},"ip":{"title":"IP addresses","p1":"The website's servers may automatically detect the IP address and domain name used by the user. An IP address is a number automatically assigned to a computer when it connects to the Internet. All this information is recorded in a duly registered server activity log that allows subsequent processing of the data solely to obtain statistical measurements — such as the number of page impressions, number of visits to web servers, order of visits, access point, etc."}},"s4":{"title":"4. Governing law and jurisdiction","p1":"All disputes or matters relating to this website or the activities carried out on it shall be governed by Spanish law, to which the parties expressly submit. The courts and tribunals closest to Arrecife shall have jurisdiction over all disputes arising from or related to the use of this website."}},"refund":{"title":"Refund and cancellation policy","p1":"Once a purchase has been made for one of our ContentFlow365 subscription plans or credit packages, cancellation or refund of the amounts paid is not permitted, except as provided in the Right of Withdrawal section below.","p2":"For a monthly subscription, the client may cancel at any time (provided the purchase order does not specify a minimum term). No questions will be asked, the cancellation is immediate, and the next charge will not be processed.","p3":"For plans that expressly include a '100% satisfaction and money-back' clause, the refund will be processed minus the costs incurred through use of the platform (credits consumed, external API calls, storage, etc.).","p4intro":"For reduced-cost trial periods (for example, €1 for 7 days), the client must notify their wish to cancel before the 7-day period (7 days × 24 hours) has elapsed from the start of their purchase. Accepted cancellation channels are email to","p4outro":"or via the support chat available on the platform. Receipt and acknowledgement from us is required to confirm that the trial week has been cancelled. If the client does not cancel before the stipulated period, the charges set out on the sales page and invoice sent at the time of purchase will be automatically processed. Refunds will not be accepted after this point if no prior cancellation was made."},"withdrawal":{"title":"Right of withdrawal","p1":"In accordance with Royal Legislative Decree 1/2007 of 16 November approving the consolidated text of the General Law for the Protection of Consumers and Users and other complementary laws, any CLIENT who qualifies as a consumer or user may exercise their right of withdrawal within a maximum period of fourteen (14) calendar days from the date the service is contracted, except in the cases set out in Article 103, sections (a) and (m) of that law, which establish that the right of withdrawal does not apply to contracts relating to:","exceptions":{"item1":"The provision of services, once the service has been fully performed, where performance began with the consumer's prior express consent and acknowledgement that they would lose their right of withdrawal once the contract had been fully performed by the trader.","item2":"The supply of digital content not delivered on a physical medium, where performance began with the consumer's prior express consent and knowledge that they would consequently lose their right of withdrawal."},"b2c":{"title":"Scope of application (B2C)","p1":"This section applies exclusively where the CLIENT qualifies as a 'consumer or user' within the meaning of Article 3 of Royal Legislative Decree 1/2007 (TRLGDCU). Accordingly, where the contract is entered into by businesses or professionals acting in the course of their trade or professional activity (B2B), the right of withdrawal provided for in the TRLGDCU does not apply, unless expressly agreed otherwise in writing.","p2":"Where the right of withdrawal does apply, the refund of the amount paid will be processed using the same payment method used for the service and, in any event, within a maximum of 14 calendar days from verified receipt of the withdrawal request.","p3":"The CLIENT may exercise their right of withdrawal by sending a clear and unequivocal email to"}},"footer":"2024-2026 ContentFlow365 — FX FOR A LIVING, S.L.N.E. (B76044221). All rights reserved."},"trending":{"nav":{"back":"Modules","login":"Log in","startNow":"Get started"},"hero":{"badge":"Real-Time","heading1":"Your niche trends.","heading2":"Before anyone else.","body":"Spot what's gaining traction on Instagram, X, YouTube and TikTok before it goes mainstream. Personalized per account with hashtags and categories generated automatically for your industry.","tags":{"instagramPersonalizado":"Personalized Instagram","xTwitter":"X/Twitter","youtube":"YouTube","tiktok":"TikTok","hashtagsAuto":"Auto Hashtags","twiceDaily":"2x a day"},"cta":"Get started","allModules":"See all modules","screenshotAlt":"Trending Intelligence — trending overview dashboard","statLabel":"Detected today","statValue":"315 items"},"stats":{"items":{"value":"315 items","label":"Trends detected"},"platforms":{"value":"4 platforms","label":"Instagram, X, YouTube, TikTok"},"personalized":{"value":"Personalized","label":"Per account and industry"},"frequency":{"value":"2x a day","label":"06:00 and 18:00 CET"}},"personalization":{"badge":"Per-account intelligence","title":"Personalized by industry and account","description":"Each account receives trends filtered by its own industry. The system automatically detects your niche (Digital Marketing, AI, Investing, Fitness, etc.) and surfaces only what's relevant — so every piece of content hits harder.","bullet1":"Every client sees their niche trends, not someone else's — fully personalized","bullet2":"Relevant hashtags auto-generated for your industry to maximize your reach","bullet3":"Works with any industry: Digital Marketing, AI, Investing, Fitness, Real Estate, eCommerce and more","bullet4":"Per-account preferences panel to adjust categories, hashtags and active platforms","screenshotAlt":"Trending Intelligence — personalization by account and industry"},"platforms":{"badge":"Multi-platform coverage","title":"4 platforms in real time","description":"Instagram personalized by your industry, X/Twitter with global and niche trends, YouTube with your most relevant videos, and TikTok with today's viral hits — all updated automatically twice a day.","bullet1":"Instagram: trending content filtered automatically by your business niche","bullet2":"X/Twitter: global and niche trends updated in real time","bullet3":"YouTube: the most relevant videos in your niche with engagement and trending metrics","bullet4":"TikTok: viral videos detected automatically, ready to inspire your next piece of content","screenshotAlt":"Trending Intelligence — 4 platforms in real time"},"featureGrid":{"badge":"Your competitive edge","heading":"Always one step ahead","body":"Four monitored platforms, smart hashtags and automatic updates — all in a single screen.","features":{"instagram":{"title":"Personalized Instagram","desc":"Trending posts in your niche filtered automatically by your hashtags. Updated 2x a day."},"twitter":{"title":"X/Twitter","desc":"Global and niche trending topics detected in real time. Never miss a hot topic again."},"youtube":{"title":"YouTube","desc":"The 9 most relevant videos in your niche with views, likes and engagement analysis."},"tiktok":{"title":"TikTok","desc":"Viral videos of the moment detected automatically. Identify formats, sounds and hooks that are working right now."},"hashtags":{"title":"Auto Hashtags","desc":"The AI automatically generates the most relevant hashtags for your industry. Zero manual setup."},"settings":{"title":"Per-Account Settings","desc":"Each account has its own settings panel. Adjust categories, frequency and active platforms."}},"stats":{"automated":{"value":"100%","label":"Automated"},"daily":{"value":"315+","label":"Trends per day"},"update":{"value":"2x day","label":"Continuous updates"},"platformCount":{"value":"4","label":"Platforms covered"}}},"howItWorks":{"badge":"How it works","heading":"From trend to content in minutes","body":"The system runs in the background so you always have fresh inspiration — no manual searching.","steps":{"configure":{"title":"Configure your niche","desc":"Select your niche categories and the system generates the hashtags automatically."},"monitor":{"title":"Automatic monitoring","desc":"Instagram, X, YouTube and TikTok are tracked automatically twice a day."},"analyze":{"title":"Analyze trends","desc":"View hundreds of trends organized by platform, engagement and relevance to your niche."},"create":{"title":"Create viral content","desc":"Use detected trends as direct inspiration to create your own viral content."}}},"cta":{"heading1":"Never run out","heading2":"of content ideas.","body":"315 fresh trends every day, personalized for your niche, ready to become viral content.","primary":"Get started","secondary":"See all modules"},"footer":{"copyright":"2024-2026 ContentFlow365. All rights reserved."}},"youtube":{"nav":{"back":"Back","login":"Sign in","startNow":"Get started"},"hero":{"badge":"YouTube Production","heading1":"Publish on YouTube","heading2":"without recording or editing.","body":"Write your idea or paste a script. The AI generates the images, voice, subtitles, thumbnail, and publishes it to your channel. You just review and approve.","cta":"Get started","allModules":"See all modules","pillAuto":"100% automatic","pillNoEditor":"No video editor","tagImages":"AI Images","tagVoice":"Professional voice","tagSubtitles":"Subtitles","tagThumbnails":"Thumbnails","tagPublish":"Direct publishing","screenshotAlt":"YouTube Montage — Gallery of 386 videos"},"stats":{"editing":"of manual editing","quality":"Professional quality","oneClick":"From idea to video","auto":"Automatic publishing"},"slides":{"badge":"Full control per scene","heading":"Configure every detail. Or let the AI decide.","body":"Every scene in the video has its own slide, supporting video, avatar, background music, and animation. Everything is generated automatically, but you can adjust anything you want from the visual editor.","bullet1":"AI Slides: the image and text for each scene are generated automatically with quality control","bullet2":"B-Roll: supporting video clips synced with the content of each scene","bullet3":"Avatar and voice: your face (or Emili's) with perfect lip-sync in every scene","bullet4":"Background audio and After Effects animations for a professional cinematic finish","screenshotAlt":"Scene editor — configure slides, B-Roll, avatar, audio, and animations per scene"},"pipeline":{"badge":"Fully automated","heading":"From idea to published video","body":"Write your idea or paste a script. The platform handles everything else: generates the visual content, adds the voice, assembles the video, creates the thumbnail, and publishes it to your YouTube channel. You just decide when.","bullet1":"Images, supporting video, avatar, voice, and final assembly — all generated in sequence without you lifting a finger","bullet2":"Published directly to your channel with title, description, and thumbnail already optimized","bullet3":"Clips for Instagram and TikTok are automatically extracted from the long video","bullet4":"Monitor progress in real time from your dashboard — no surprises","screenshotAlt":"YouTube Montage — List of 386 videos with pipeline status"},"components":{"badge":"Everything included","heading":"A complete production team. Without the team.","body":"What used to require an editor, a designer, and a community manager — the AI does it all in minutes.","items":{"images":{"title":"Images per scene","desc":"The AI generates the perfect image for every moment in the video. With quality control so it always looks professional."},"broll":{"title":"Supporting video","desc":"Complementary video clips are automatically added to each scene, synced with the content."},"avatar":{"title":"Your avatar or ours","desc":"Your face or an AI avatar appears in the video. Perfect lip-sync with your voice or the generated voice."},"animations":{"title":"Professional animations","desc":"Motion graphics and visual effects that give every scene a cinematic, professional finish."},"thumbnails":{"title":"Thumbnails that drive clicks","desc":"Optimized thumbnails generated to maximize CTR. The AI evaluates and improves every variation automatically."},"hd":{"title":"Final video in HD","desc":"Everything is assembled into an HD-ready video. One click and it's on your YouTube channel."}}},"flow":{"badge":"How it works","heading":"4 steps. Professional result.","body":"From your idea to a published YouTube video, everything goes through 4 automatic phases you can monitor in real time.","steps":{"content":{"number":"01","name":"Content","desc":"Your message, your style","details":"Write your idea or paste a script. The AI generates the copy adapted to your communication style and adds the voice."},"production":{"number":"02","name":"Production","desc":"Images, avatar, and video","details":"All images, supporting clips, avatar, and animations for each scene are generated in parallel."},"thumbnails":{"number":"03","name":"Thumbnails","desc":"Designed for the click","details":"The AI generates multiple thumbnail options and selects the one with the highest click-through potential."},"delivery":{"number":"04","name":"Delivery","desc":"Published and ready","details":"The final video is rendered in HD and published to your YouTube channel. Social clips are generated automatically."}},"specs":{"images":{"label":"Images","value":"Generative AI"},"quality":{"label":"Quality","value":"Full HD"},"presenter":{"label":"Presenter","value":"AI Avatar"},"thumbnails":{"label":"Thumbnails","value":"Auto-optimized"}}},"thumbnailScoring":{"badge":"Smart thumbnails","heading":"The perfect thumbnail. No designer needed.","body":"The AI generates, evaluates, and improves your thumbnails automatically. Only those that pass quality control make it to your video.","metrics":{"readability":{"label":"Readability","value":"Analyzed","desc":"Thumbnail text is evaluated to ensure it's clear and compelling"},"impact":{"label":"Visual impact","value":"Optimized","desc":"Composition and text density calculated to maximize clicks"},"improvement":{"label":"Continuous improvement","value":"Automatic","desc":"If the thumbnail doesn't meet the standard, it regenerates itself until it reaches the ideal quality"},"variants":{"label":"Multiple options","value":"A/B ready","desc":"Generates several variations so you can pick the best fit or run an A/B test"}}},"cta":{"heading1":"Stop wasting hours","heading2":"editing videos.","body":"Your competition publishes every day. You can do the same — without a production team. Write the idea, the AI does the rest.","primary":"Get started","secondary":"See all modules"},"footer":{"copyright":"2024-2026 ContentFlow365. All rights reserved."}},"zoomIntegration":{"meta":{"title":"ContentFlow365 for Zoom — Integration guide","description":"How to add, use, and remove ContentFlow365 for Zoom, how Zoom data is handled, and how to get support."},"contactSupport":"Contact support","eyebrow":"Integration guide","title":"ContentFlow365 for Zoom","intro":"ContentFlow365 is a marketing platform for live launches, challenges and webinars. With ContentFlow365 for Zoom, an account administrator connects their Zoom account to a ContentFlow account to create the meetings for a live event, register the people who sign up on that account's pages, and import attendance from completed meetings and webinars into the account's live-event dashboard.","prerequisites":{"title":"Prerequisites","items":{"contentflow":"A ContentFlow365 account, and the owner or administrator role in that account.","zoomAdmin":"A Zoom account. The person who authorizes the app must be a Zoom account owner or administrator, because the app is installed for the Zoom account.","plans":"Creating and listing meetings works with any Zoom plan. Importing participant attendance requires a Zoom Pro plan or higher, because Zoom only provides participant reports on paid plans. Importing webinar attendance also requires a Zoom Webinars licence."}},"add":{"title":"Add the app","steps":{"signIn":"Sign in to <app>ContentFlow365</app> and open the account you manage.","open":"Open <strong>Integrations</strong>, select <strong>Zoom</strong>, and click <strong>Connect Zoom</strong>.","allow":"Sign in to Zoom if asked, review the permissions shown by Zoom, and click <strong>Allow</strong>.","back":"Zoom returns you to the same ContentFlow account. The page shows the connected Zoom user, the licence and whether reports are available."},"marketplace":"If you click <strong>Add</strong> on the ContentFlow365 listing in the Zoom App Marketplace, Zoom brings you back to this guide. Sign in to ContentFlow365 and finish with <strong>Connect Zoom</strong> in the account you want to connect, so the connection is linked to the right account. If something goes wrong, see <help>Troubleshooting</help>."},"use":{"title":"Use the app","create":{"title":"Create a meeting for a live event","steps":{"open":"In <strong>Integrations → Zoom</strong>, go to <strong>Create a meeting for a challenge or live event</strong>.","campaign":"Optionally select the campaign that will use the meeting. Its title, description, dates and images are filled in for you, and every field remains editable.","schedule":"Set the date, time zone and duration. For a multi-day challenge, enable <strong>Multi-day challenge using the same Zoom link</strong> and choose the session days: each person registers once and can attend every session.","create":"Click <strong>Create in Zoom</strong>. The meeting is created in the connected Zoom user's account with registration and automatic approval, waiting room off, cloud recording on and participants muted on entry. ContentFlow365 also turns off the entry and exit chime for that Zoom user."}},"upcoming":{"title":"See upcoming meetings","body":"<strong>Upcoming meetings</strong> lists the scheduled meetings of the connected Zoom user, with the attendee link for each one. The host start link is never shown in ContentFlow365."},"registration":{"title":"Register sign-ups in the Zoom meeting","body":"When a meeting is linked to a campaign, the people who sign up on that campaign's registration pages are registered in the Zoom meeting automatically, so each one receives their own Zoom join link. Each person is registered only once, even if they sign up twice."},"import":{"title":"Import attendance","steps":{"open":"After the meeting or webinar ends, open the <strong>Zoom Dashboard</strong> of the live event and click <strong>Import attendees</strong>.","select":"Select the completed meeting and the exact session. Meetings not yet linked to the campaign appear after clicking <strong>Show unassigned meetings</strong>.","import":"Click <strong>Import attendees</strong>. ContentFlow365 reads the participant report, merges reconnections of the same person and shows attendance, minutes connected and repeat attendance. Importing the same session again updates the report instead of duplicating it."}},"isolation":"Every connection, meeting and report belongs to a single ContentFlow account. Other accounts cannot see them. OAuth credentials, host start links and meeting passcodes stay on the server and are never sent to the browser."},"remove":{"title":"Remove the app","marketplace":{"title":"From the Zoom App Marketplace","steps":{"signIn":"Sign in to the <marketplace>Zoom App Marketplace</marketplace>.","manage":"Click <strong>Manage</strong> in the top right corner, then <strong>Added Apps</strong>, or search for ContentFlow365.","find":"Find ContentFlow365 and click <strong>Remove</strong>.","confirm":"Optionally select a reason, and click <strong>Remove</strong> to confirm."}},"app":{"title":"From ContentFlow365","steps":{"open":"Open <strong>Integrations → Zoom</strong> in the account.","disconnect":"Click <strong>Disconnect</strong> and confirm. ContentFlow365 asks Zoom to revoke the authorization and deletes the stored tokens. If the same Zoom account is linked to other ContentFlow accounts, only this account is unlinked."}},"after":{"title":"What happens after removal","items":{"stops":"ContentFlow365 can no longer create meetings, register sign-ups or import attendance for that Zoom account.","meetingsKept":"Meetings already created stay in your Zoom account; removing the app does not delete them.","uninstall":"When you remove the app from the Zoom App Marketplace, Zoom notifies ContentFlow365 and we automatically delete the OAuth tokens and every attendance report imported from Zoom for that connection.","disconnect":"When you only disconnect from ContentFlow365, imported reports remain available in the account until you ask us to delete them. Reports you uploaded yourself as CSV files are not Zoom data and are kept."}}},"troubleshooting":{"title":"Troubleshooting","items":{"adminApproval":{"question":"Zoom says I need administrator approval","answer":"The app is installed for the whole Zoom account. Ask the Zoom account owner or an administrator to connect it, or to pre-approve it in the Zoom App Marketplace."},"expired":{"question":"\"The connection link is invalid or has expired\"","answer":"The authorization link is valid for 15 minutes and only for the ContentFlow user who started it. Go back to Integrations → Zoom and click Connect Zoom again."},"reports":{"question":"Reports show \"Requires admin permissions and a Pro+ plan\"","answer":"Zoom only provides participant reports to administrators of Pro or higher accounts. Upgrade the Zoom plan or reconnect with an administrator, then click Reconnect."},"missingMeeting":{"question":"A completed meeting does not appear in the import list","answer":"Zoom can take a few minutes to publish the report after a meeting ends. Click Refresh list, and use Show unassigned meetings for meetings not created from this campaign."},"chime":{"question":"The meeting was created but the entry chime is still on","answer":"Connections authorized before this permission existed must be reconnected once. Click Reconnect and allow the settings permission."}}},"faq":{"title":"FAQ","items":{"adminScopes":{"question":"Why does the app ask for account-level permissions?","answer":"Zoom only exposes participant reports to account administrators. ContentFlow365 uses them for the meetings and webinars of the connected account, and never shows them to other ContentFlow accounts."},"agencies":{"question":"Can several ContentFlow accounts use the same Zoom account?","answer":"Yes. An agency can link one Zoom account to several client accounts. Each meeting and report is still assigned to a single ContentFlow account."},"advertising":{"question":"Does ContentFlow365 use Zoom data for advertising?","answer":"No. Zoom data is used only to provide these features to the account that connected Zoom. We do not sell it, use it for our own marketing or use it to train AI models. See the <privacy>privacy policy</privacy>."}}},"support":{"title":"Support","items":{"email":"Email: <email>soporte@contentflow365.com</email>. Include the ContentFlow account name and, if relevant, the Zoom meeting ID.","hours":"Support hours: Monday to Friday, 9:00 to 18:00 Central European Time (Madrid), except public holidays in Spain.","response":"First response: within one business day."},"links":{"privacy":"Privacy policy","terms":"Terms of use","deletion":"Data deletion"}}}}}