# Copyright (C) 2026 TurtlePlugins # This file is distributed under the GPL-2.0-or-later. msgid "" msgstr "" "Project-Id-Version: TurtleReport - SEO Client Monitoring & Reporting 1.4.1\n" "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/turtlereport/\n" "Last-Translator: Abul Khoyer \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "POT-Creation-Date: 2026-10-18T17:11:00+00:00\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "X-Generator: WP-CLI 2.12.0\n" "X-Domain: turtlereport\n" #. Plugin Name of the plugin #: turtlereport.php msgid "TurtleReport - SEO Client Monitoring & Reporting" msgstr "" #. Plugin URI of the plugin #: turtlereport.php msgid "https://wordpress.org/plugins/turtlereport/" msgstr "" #. Description of the plugin #: turtlereport.php msgid "TurtleReport helps SEO agencies monitor all their clients from one dashboard. It connects Google Search Console and GA4, highlights important performance changes, shows what needs attention, and automates branded client reports." msgstr "" #. Author of the plugin #: turtlereport.php msgid "TurtlePlugins" msgstr "" #. Author URI of the plugin #: turtlereport.php msgid "https://turtleplugins.com" msgstr "" #: src/Admin/Actions/ConnectionActions.php:128 msgid "That doesn't look like a Client ID. It ends with .apps.googleusercontent.com." msgstr "" #: src/Admin/Actions/ConnectionActions.php:131 msgid "Paste the client secret too. Google shows it once, when the client is created; you can add a new secret on the client's page." msgstr "" #: src/Admin/Actions/ConnectionActions.php:154 src/Admin/Actions/ConnectionActions.php:193 src/Admin/Actions/ConnectionActions.php:309 src/Admin/Actions/ConnectionActions.php:343 msgid "Connection not found." msgstr "" #: src/Admin/Actions/ConnectionActions.php:175 src/Admin/Actions/FormActions.php:67 msgid "Sorry, you are not allowed to do that." msgstr "" #: src/Admin/Actions/ConnectionActions.php:187 msgid "That Google sign-in link expired or was already used. Start the connection again." msgstr "" #: src/Admin/Actions/ConnectionActions.php:200 msgid "Google access wasn't granted. If Google said the app is blocked or you're not a test user, add your account under Google Auth Platform → Audience → Test users, or publish the app." msgstr "" #. translators: %s: error from Google. #: src/Admin/Actions/ConnectionActions.php:202 src/Auth/ApiException.php:166 #, php-format msgid "Google sign-in failed: %s" msgstr "" #: src/Admin/Actions/ConnectionActions.php:219 msgid "Google didn't return a long-term token. Remove this app at myaccount.google.com/permissions, then reconnect." msgstr "" #: src/Admin/Actions/ConnectionActions.php:224 msgid "Neither Search Console nor Analytics permission was ticked on Google's consent screen. Reconnect and tick both boxes." msgstr "" #. translators: %s: comma-separated list of Google products. #: src/Admin/Actions/ConnectionActions.php:248 #, php-format msgid "Connected, but without permission for: %s. Reconnect and tick those boxes if you need them." msgstr "" #. translators: %s: Google account email. #: src/Admin/Actions/ConnectionActions.php:251 #, php-format msgid "Connected as %s." msgstr "" #. translators: %s: service-account email address. #: src/Admin/Actions/ConnectionActions.php:295 #, php-format msgid "Key saved. Now add %s as a user in Search Console (Restricted) and GA4 (Viewer) for each website you want to report on." msgstr "" #. translators: %d: number of sites. #: src/Admin/Actions/ConnectionActions.php:317 #, php-format msgid "This connection is used by %d site. Move that site to another connection first." msgid_plural "This connection is used by %d sites. Move those sites to another connection first." msgstr[0] "" msgstr[1] "" #: src/Admin/Actions/ConnectionActions.php:331 msgid "Connection deleted." msgstr "" #. translators: %s: connection name. #: src/Admin/Actions/ConnectionActions.php:355 #, php-format msgid "\"%s\" passed every test. Details are under the connection." msgstr "" #. translators: 1: connection name, 2: number of problems. #: src/Admin/Actions/ConnectionActions.php:358 #, php-format msgid "\"%1$s\" has %2$d problem. See the test results under it for how to fix it." msgid_plural "\"%1$s\" has %2$d problems. See the test results under it for how to fix them." msgstr[0] "" msgstr[1] "" #: src/Admin/Actions/DeliveryActions.php:107 src/Admin/Actions/DeliveryActions.php:327 msgid "That report no longer exists." msgstr "" #: src/Admin/Actions/DeliveryActions.php:130 msgid "Another process is sending this report right now. Reload in a minute." msgstr "" #: src/Admin/Actions/DeliveryActions.php:136 src/Admin/Actions/DeliveryActions.php:270 msgid "Nothing was sent." msgstr "" #. translators: 1: accepted count, 2: total recipients. #: src/Admin/Actions/DeliveryActions.php:143 #, php-format msgid "%1$d of %2$d emails accepted by the mail system." msgstr "" #: src/Admin/Actions/DeliveryActions.php:179 msgid "Prepared again: every part loaded." msgstr "" #: src/Admin/Actions/DeliveryActions.php:179 msgid "Prepared again. See the data checks below." msgstr "" #: src/Admin/Actions/DeliveryActions.php:191 msgid "Report skipped." msgstr "" #: src/Admin/Actions/DeliveryActions.php:191 msgid "This report has already gone out, so it can't be skipped." msgstr "" #: src/Admin/Actions/DeliveryActions.php:203 msgid "This report has already gone out, so its highlights can't change." msgstr "" #: src/Admin/Actions/DeliveryActions.php:219 msgid "Highlights and notes saved." msgstr "" #: src/Admin/Actions/DeliveryActions.php:231 msgid "This report's numbers are no longer stored, so it can't be previewed." msgstr "" #: src/Admin/Actions/DeliveryActions.php:255 msgid "That site no longer exists." msgstr "" #. translators: 1: site name, 2: report period, e.g. "September 2026". #: src/Admin/Actions/DeliveryActions.php:267 #, php-format msgid "%1$s: the %2$s report was held because some data couldn't be loaded. Open it under Email deliveries to see why, then send it anyway or fix it." msgstr "" #. translators: 1: site name, 2: report period, 3: accepted count, 4: total recipients. #: src/Admin/Actions/DeliveryActions.php:276 #, php-format msgid "%1$s: the %2$s report was handed to the mail system. %3$d of %4$d emails accepted. Details are under Email deliveries." msgstr "" #: src/Admin/Actions/DeliveryActions.php:296 msgid "Tick at least one report to delete." msgstr "" #: src/Admin/Actions/DeliveryActions.php:300 msgid "That report is being prepared or sent right now, so it can't be deleted yet. Try again in a few minutes." msgstr "" #: src/Admin/Actions/DeliveryActions.php:303 msgid "Nothing was deleted: the report no longer exists." msgstr "" #. translators: %d: number of reports deleted. #: src/Admin/Actions/DeliveryActions.php:306 #, php-format msgid "%d report deleted from the history." msgid_plural "%d reports deleted from the history." msgstr[0] "" msgstr[1] "" #. translators: %d: number of reports left alone. #: src/Admin/Actions/DeliveryActions.php:309 #, php-format msgid "%d was being sent right now and was kept." msgid_plural "%d were being sent right now and were kept." msgstr[0] "" msgstr[1] "" #: src/Admin/Actions/DeliveryActions.php:331 msgid "Report PDF" msgstr "" #: src/Admin/Actions/SettingsActions.php:216 msgid "Settings saved, but not the Slack webhook: it must look like https://hooks.slack.com/services/T…/B…/…, copied from Slack's \"Incoming Webhooks\" page." msgstr "" #: src/Admin/Actions/SettingsActions.php:227 msgid "Settings saved, but not the API key: it doesn't look like one. Copy it again from your AI provider's API keys page." msgstr "" #: src/Admin/Actions/SettingsActions.php:231 msgid "Settings saved, but the AI Advisor is still off. To switch it on, confirm that client data can be sent to the AI provider." msgstr "" #: src/Admin/Actions/SettingsActions.php:237 src/Admin/Actions/SettingsActions.php:271 msgid "Settings saved." msgstr "" #: src/Admin/Actions/SettingsActions.php:267 msgid "The weekly summary isn't available." msgstr "" #. translators: 1: email addresses, 2: the mail system's error. #: src/Admin/Actions/SettingsActions.php:279 #, php-format msgid "The test summary couldn't be sent to %1$s. %2$s" msgstr "" #: src/Admin/Actions/SettingsActions.php:281 src/Email/ReportMailer.php:289 msgid "WordPress couldn't send the email. Check your site's mail setup (an SMTP plugin is recommended)." msgstr "" #. translators: %s: email addresses. #: src/Admin/Actions/SettingsActions.php:290 #, php-format msgid "Test summary handed to your site's mail system for %s. If it doesn't arrive within a few minutes, check the spam folder. Many hosts only deliver email reliably through an SMTP plugin; the report emails use the same route." msgstr "" #. translators: %s: email addresses. #: src/Admin/Actions/SettingsActions.php:294 #, php-format msgid "It couldn't be sent to: %s." msgstr "" #: src/Admin/Actions/SettingsActions.php:310 msgid "The AI Advisor isn't available." msgstr "" #. translators: %s: model ID. #: src/Admin/Actions/SettingsActions.php:317 #, php-format msgid "Connected: the API key works with %s." msgstr "" #: src/Admin/Actions/SettingsActions.php:339 msgid "Save a Slack webhook first." msgstr "" #: src/Admin/Actions/SettingsActions.php:346 msgid "Slack accepted the test message. Check the channel." msgstr "" #: src/Admin/Actions/SettingsActions.php:361 msgid "Sites are not available." msgstr "" #. translators: %s: comma-separated invalid email addresses. #: src/Admin/Actions/SettingsActions.php:413 #, php-format msgid "These aren't valid email addresses and were left out: %s" msgstr "" #. translators: %s: comma-separated site names. #: src/Admin/Actions/SettingsActions.php:420 #, php-format msgid "Switched on but nobody to send to yet: %s. Tick \"Everyone with access\" or add an address." msgstr "" #. translators: %d: number of sites changed. #: src/Admin/Actions/SettingsActions.php:428 #, php-format msgid "Saved. %d report's email settings changed." msgid_plural "Saved. %d reports' email settings changed." msgstr[0] "" msgstr[1] "" #: src/Admin/Actions/SettingsActions.php:429 msgid "Saved. Nothing changed." msgstr "" #: src/Admin/Actions/SettingsActions.php:441 msgid "Emails are not available." msgstr "" #. translators: %d: number of scheduled reports started. #: src/Admin/Actions/SettingsActions.php:449 #, php-format msgid "%d scheduled report started. See Email deliveries for each recipient's result." msgid_plural "%d scheduled reports started. See Email deliveries for each recipient's result." msgstr[0] "" msgstr[1] "" #: src/Admin/Actions/SettingsActions.php:450 msgid "No scheduled reports were due. Each one goes out at its next send time." msgstr "" #: src/Admin/Actions/SiteActions.php:182 msgid "Set up one Google sign-in connection first, on the Connections screen. After that, new Google accounts can be added from here without pasting anything." msgstr "" #: src/Admin/Actions/SiteActions.php:188 msgid "The client secret for that Google connection could not be read. Open the Connections screen and add it again." msgstr "" #: src/Admin/Actions/SiteActions.php:269 src/Admin/Actions/SiteActions.php:437 src/Admin/Actions/SiteActions.php:483 msgid "Site not found." msgstr "" #. translators: %s: comma-separated GA4 event names. #: src/Admin/Actions/SiteActions.php:353 #, php-format msgid "These GA4 events are in more than one conversion group: %s. Each group counts them, but the total counts each event once." msgstr "" #. translators: %s: site name. #: src/Admin/Actions/SiteActions.php:364 #, php-format msgid "Site \"%s\" added." msgstr "" #. translators: %s: site name. #: src/Admin/Actions/SiteActions.php:366 #, php-format msgid "Site \"%s\" saved." msgstr "" #: src/Admin/Actions/SiteActions.php:400 msgid "Choose a Google connection for this site." msgstr "" #: src/Admin/Actions/SiteActions.php:404 msgid "Business Profile can only be read through a Google sign-in connection. Choose one under \"Google account\" next to Business Profile." msgstr "" #: src/Admin/Actions/SiteActions.php:407 msgid "That Search Console property isn't valid. Choose it from the list." msgstr "" #: src/Admin/Actions/SiteActions.php:410 msgid "Nothing to report yet: switch on at least one section and choose its data source (a Search Console property, GA4 property or Business Profile location)." msgstr "" #: src/Admin/Actions/SiteActions.php:419 msgid "One of the segments has a regular expression Google can't use. Look-arounds and back-references aren't supported." msgstr "" #: src/Admin/Actions/SiteActions.php:422 msgid "Choose who gets the scheduled email: everyone who can view this site, specific people, or other email addresses. Or switch scheduled emails off." msgstr "" #: src/Admin/Actions/SiteActions.php:456 msgid "Nobody is on this site's email list yet. Choose recipients and save first." msgstr "" #. translators: %s: email address. #: src/Admin/Actions/SiteActions.php:468 #, php-format msgid "Test report for %s accepted by the mail system. It's listed under Email deliveries." msgstr "" #. translators: %d: number of recipients. #: src/Admin/Actions/SiteActions.php:470 #, php-format msgid "Test report accepted by the mail system for %d person. It's listed under Email deliveries." msgid_plural "Test report accepted by the mail system for all %d people. It's listed under Email deliveries." msgstr[0] "" msgstr[1] "" #. translators: %s: site name. #: src/Admin/Actions/SiteActions.php:494 #, php-format msgid "Site \"%s\" deleted. Nobody can see its report any more, and its scheduled emails stop." msgstr "" #. translators: %d: number of Google connections. #: src/Admin/ConnectionNotice.php:73 #, php-format msgid "%d Google connection isn't working." msgid_plural "%d Google connections aren't working." msgstr[0] "" msgstr[1] "" #. translators: %d: number of sites. #: src/Admin/ConnectionNotice.php:79 #, php-format msgid "Reports for %d site can't load." msgid_plural "Reports for %d sites can't load." msgstr[0] "" msgstr[1] "" #: src/Admin/ConnectionNotice.php:85 msgid "TurtleReport:" msgstr "" #: src/Admin/ConnectionNotice.php:88 msgid "Reconnect on the Connections screen" msgstr "" #: src/Admin/ConnectionsPage.php:70 src/Plugin.php:483 msgid "Connections" msgstr "" #: src/Admin/ConnectionsPage.php:159 msgid "Required Google APIs enabled" msgstr "" #: src/Admin/ConnectionsPage.php:159 msgid "In your Google Cloud project: Search Console API, Analytics Data API and Analytics Admin API." msgstr "" #: src/Admin/ConnectionsPage.php:160 msgid "Google account connected" msgstr "" #: src/Admin/ConnectionsPage.php:160 msgid "Sign in with Google below, or add a service-account key." msgstr "" #: src/Admin/ConnectionsPage.php:161 msgid "Google account identified" msgstr "" #: src/Admin/ConnectionsPage.php:161 msgid "Each connection shows the account it reads as." msgstr "" #: src/Admin/ConnectionsPage.php:162 msgid "Search Console access" msgstr "" #: src/Admin/ConnectionsPage.php:162 msgid "The account can see at least one property." msgstr "" #: src/Admin/ConnectionsPage.php:163 msgid "GA4 access" msgstr "" #: src/Admin/ConnectionsPage.php:163 msgid "The account can see a property and read its reports." msgstr "" #: src/Admin/ConnectionsPage.php:164 msgid "Business Profile (optional)" msgstr "" #: src/Admin/ConnectionsPage.php:164 msgid "Needs Google's API approval and a Google sign-in connection." msgstr "" #: src/Admin/ConnectionsPage.php:165 msgid "A site added" msgstr "" #: src/Admin/ConnectionsPage.php:165 msgid "Link a website to its properties and choose who sees it." msgstr "" #: src/Admin/DeliveriesPage.php:75 templates/deliveries/list.php:61 msgid "Email deliveries" msgstr "" #: src/Admin/GuidePage.php:33 templates/connections/list.php:32 templates/guide.php:40 msgid "Setup guide" msgstr "" #: src/Admin/GuidePage.php:73 msgid "You are my friendly TurtleReport Setup Assistant." msgstr "" #: src/Admin/GuidePage.php:74 msgid "I use TurtleReport, a WordPress plugin that connects Google Search Console and Google Analytics 4 (GA4) to generate SEO client reports." msgstr "" #: src/Admin/GuidePage.php:75 msgid "Your goal: Help me complete the Google connection successfully, with minimal confusion and wasted time." msgstr "" #: src/Admin/GuidePage.php:77 msgid "How to guide me" msgstr "" #: src/Admin/GuidePage.php:78 msgid "1. One step at a time. Never show the entire setup process at once. Wait for me to say \"Done\" before continuing." msgstr "" #: src/Admin/GuidePage.php:79 msgid "2. Start by asking whether I want Google sign-in (recommended) or a service account (advanced), and whether I've already started setting up Google Cloud." msgstr "" #: src/Admin/GuidePage.php:80 msgid "3. Give visual navigation instructions. Tell me exactly where to click using paths like Google Cloud Console → APIs & Services → Library." msgstr "" #: src/Admin/GuidePage.php:81 msgid "4. For each step, use this format:" msgstr "" #: src/Admin/GuidePage.php:82 msgid " * Where: Exact screen or menu." msgstr "" #: src/Admin/GuidePage.php:83 msgid " * Do this: A short instruction, with no more than 3 actions." msgstr "" #: src/Admin/GuidePage.php:84 msgid " * You should see: What successful completion looks like." msgstr "" #: src/Admin/GuidePage.php:85 msgid " * End with: \"Done? Or share a screenshot if you're stuck.\"" msgstr "" #: src/Admin/GuidePage.php:86 msgid "5. Understand screenshots. If I share one, inspect the visible interface and guide me from my current screen. Don't restart the process." msgstr "" #: src/Admin/GuidePage.php:87 msgid "6. Adapt to my progress. Skip completed steps and explain unfamiliar terms simply." msgstr "" #: src/Admin/GuidePage.php:88 msgid "7. Never guess about changed Google interfaces. Use current official documentation when available, or ask for a screenshot." msgstr "" #: src/Admin/GuidePage.php:89 msgid "8. Keep replies short, clear, and friendly. Avoid unnecessary explanations unless I ask." msgstr "" #: src/Admin/GuidePage.php:90 msgid "9. Protect my credentials. Never ask me to share passwords, client secrets, tokens, or service-account JSON keys in chat. Tell me to enter credentials only into their intended secure interfaces." msgstr "" #: src/Admin/GuidePage.php:91 msgid "10. Respect Google security warnings. Explain warnings and requested permissions. Never assume an unfamiliar or unverified app is safe or tell me to blindly approve access." msgstr "" #: src/Admin/GuidePage.php:93 msgid "TurtleReport setup reference" msgstr "" #: src/Admin/GuidePage.php:94 msgid "Google Cloud: Create or select a project at console.cloud.google.com. Enable:" msgstr "" #: src/Admin/GuidePage.php:95 msgid "* Google Search Console API" msgstr "" #: src/Admin/GuidePage.php:96 msgid "* Google Analytics Data API" msgstr "" #: src/Admin/GuidePage.php:97 msgid "* Google Analytics Admin API" msgstr "" #: src/Admin/GuidePage.php:99 msgid "Method A: Google sign-in (OAuth)" msgstr "" #: src/Admin/GuidePage.php:100 msgid "Google Auth Platform → Branding → Audience → Clients." msgstr "" #: src/Admin/GuidePage.php:101 msgid "Choose an appropriate audience. External is used for personal Google accounts or users outside a Workspace organization. Configure the OAuth client as a Web application." msgstr "" #. translators: %s: OAuth redirect URI. #: src/Admin/GuidePage.php:103 #, php-format msgid "" "Authorised redirect URI:\n" "%s" msgstr "" #: src/Admin/GuidePage.php:104 msgid "In WordPress:" msgstr "" #: src/Admin/GuidePage.php:105 msgid "TurtleReport → Connections → Sign in with Google." msgstr "" #: src/Admin/GuidePage.php:106 msgid "Enter the OAuth Client ID and Client Secret into TurtleReport, then select the Google account and review the required permissions." msgstr "" #: src/Admin/GuidePage.php:107 msgid "Note: External OAuth apps left in Testing can have refresh tokens expire after 7 days. Publishing and verification requirements depend on Google's policies and the app's configuration." msgstr "" #: src/Admin/GuidePage.php:109 msgid "Method B: Service account (advanced)" msgstr "" #: src/Admin/GuidePage.php:110 msgid "Google Cloud → IAM & Admin → Service accounts." msgstr "" #: src/Admin/GuidePage.php:111 msgid "Create a service account, configure appropriate access to the client's Search Console and GA4 properties, and securely upload the JSON key through TurtleReport → Connections → Advanced: service-account key." msgstr "" #: src/Admin/GuidePage.php:112 msgid "Never ask me to upload the key to this chat." msgstr "" #: src/Admin/GuidePage.php:114 msgid "Optional: Google Business Profile requires additional setup and permissions. Only guide me through it if I request it." msgstr "" #: src/Admin/GuidePage.php:116 msgid "Finish: TurtleReport → Connections → Check connection → Sites → Add site → Select Search Console and GA4 properties." msgstr "" #: src/Admin/GuidePage.php:118 msgid "Common problems:" msgstr "" #: src/Admin/GuidePage.php:119 msgid "* redirect_uri_mismatch: Check that the authorised redirect URI matches exactly." msgstr "" #: src/Admin/GuidePage.php:120 msgid "* API not enabled: Check the relevant API is enabled in the correct project." msgstr "" #: src/Admin/GuidePage.php:121 msgid "* Empty property list: Check Google-account access, selected connection, and property permissions." msgstr "" #: src/Admin/GuidePage.php:123 msgid "Important" msgstr "" #: src/Admin/GuidePage.php:124 msgid "Don't overwhelm me with technical details. Don't jump ahead." msgstr "" #: src/Admin/GuidePage.php:125 msgid "Start now by asking which connection method I want and what I've already completed." msgstr "" #: src/Admin/Menu.php:50 src/Admin/Menu.php:51 src/Admin/Menu.php:61 src/Admin/Shell.php:235 templates/shell.php:108 msgid "TurtleReport" msgstr "" #: src/Admin/OverviewPage.php:137 src/Advisor/Context.php:118 src/Advisor/Context.php:193 templates/overview.php:65 templates/settings/monitor.php:15 msgid "Client Monitor" msgstr "" #: src/Admin/OverviewPage.php:275 msgid "Not set up" msgstr "" #: src/Admin/OverviewPage.php:276 msgid "Choose a Search Console or GA4 property in the site's settings." msgstr "" #: src/Admin/OverviewPage.php:290 msgid "Connection missing" msgstr "" #: src/Admin/OverviewPage.php:291 msgid "The Google connection this site used was deleted. Pick another in the site's settings." msgstr "" #: src/Admin/OverviewPage.php:304 msgid "Google connection not working" msgstr "" #: src/Admin/OverviewPage.php:305 msgid "Reconnect it on the Connections screen." msgstr "" #: assets/build/clients.js:1 src/Admin/OverviewPage.php:312 templates/settings/monitor.php:113 templates/sites/edit.php:188 msgid "Connected" msgstr "" #: src/Admin/OverviewPage.php:356 src/Delivery/DeliveryRepository.php:254 src/Delivery/RunRepository.php:398 templates/settings/ai.php:169 templates/settings/schedules.php:114 msgid "Failed" msgstr "" #: src/Admin/OverviewPage.php:398 msgid "Fix it" msgstr "" #: src/Admin/OverviewPage.php:406 msgid "The last report email failed for some or all recipients." msgstr "" #: src/Admin/OverviewPage.php:408 msgid "See why and resend" msgstr "" #: src/Admin/OverviewPage.php:414 msgid "A report email is waiting for your approval." msgstr "" #: src/Admin/OverviewPage.php:414 msgid "A report email was held because some data couldn't be loaded." msgstr "" #: src/Admin/OverviewPage.php:414 msgid "A report email is still being sent or retried." msgstr "" #: src/Admin/OverviewPage.php:416 msgid "Review" msgstr "" #: src/Admin/OverviewPage.php:422 msgid "The report email is on but has nobody to send to." msgstr "" #: src/Admin/OverviewPage.php:424 msgid "Add recipients" msgstr "" #: src/Admin/ReportsPage.php:77 src/Plugin.php:484 templates/reports.php:25 templates/reports.php:46 templates/shell.php:120 msgid "Reports" msgstr "" #: src/Admin/ReportsPage.php:148 msgid "You don't have access to the report in that link, so your own report is shown instead." msgstr "" #: src/Admin/ReportsPage.php:152 msgid "That report link has invalid dates, so the latest period is shown instead." msgstr "" #: assets/build/overview.js:1 assets/build/reports.js:1 src/Admin/SettingsPage.php:110 templates/settings.php:189 msgid "Settings" msgstr "" #. translators: %d: number of scheduled report emails that need attention. #: src/Admin/Shell.php:306 #, php-format msgid "%d report email needs attention" msgid_plural "%d report emails need attention" msgstr[0] "" msgstr[1] "" #. translators: %d: number of connections that stopped working. #: src/Admin/Shell.php:313 #, php-format msgid "%d connection needs attention" msgid_plural "%d connections need attention" msgstr[0] "" msgstr[1] "" #: src/Admin/SitesPage.php:119 templates/sites/list.php:26 msgid "Sites & access" msgstr "" #: src/Advisor/Advisor.php:202 msgid "Save an API key for this provider to list the models it can use." msgstr "" #: src/Advisor/Advisor.php:308 msgid "AI Advisor isn't switched on. An administrator can set it up in Settings → AI Advisor." msgstr "" #: src/Advisor/Advisor.php:313 msgid "Type a question first." msgstr "" #: src/Advisor/Advisor.php:324 msgid "That client doesn't exist or you can't see it." msgstr "" #: src/Advisor/Advisor.php:328 msgid "There are no clients to ask about yet." msgstr "" #: src/Advisor/Advisor.php:339 msgid "Couldn't check the AI Advisor usage limits, so your question wasn't sent. Try again in a moment." msgstr "" #: src/Advisor/Advisor.php:355 msgid "There was more data than fits in one question, so the longest lists were shortened." msgstr "" #: src/Advisor/Advisor.php:366 msgid "Couldn't answer this question: either the client data couldn't be prepared or the AI provider's reply couldn't be read. Try again, or ask about one client." msgstr "" #: src/Advisor/Advisor.php:371 msgid "Your question was answered, but its usage couldn't be recorded against the AI Advisor limits, so the answer isn't shown. Wait a few minutes before asking again." msgstr "" #: assets/build/overview.js:1 assets/build/reports.js:1 src/Advisor/Advisor.php:387 templates/overview.php:204 templates/overview.php:212 msgid "All clients" msgstr "" #: src/Advisor/Advisor.php:418 msgid "Save an API key first." msgstr "" #. translators: %d: number of clients. #: src/Advisor/Context.php:199 #, php-format msgid "Report numbers for %d client didn't load in time; only its Client Monitor issues were used." msgid_plural "Report numbers for %d clients didn't load in time; only their Client Monitor issues were used." msgstr[0] "" msgstr[1] "" #. translators: %d: number of clients. #: src/Advisor/Context.php:203 #, php-format msgid "%d more client wasn't included. Ask about it on its own." msgid_plural "%d more clients weren't included. Ask about them one at a time." msgstr[0] "" msgstr[1] "" #: src/Advisor/Context.php:206 msgid "The Client Monitor is switched off, so there is no list of open issues." msgstr "" #: src/Advisor/Context.php:237 src/Attention/Presenter.php:113 src/Delivery/Readiness.php:309 src/Monitoring/HealthMonitor.php:182 src/Monitoring/HealthMonitor.php:188 src/Monitoring/HealthMonitor.php:199 src/Reports/ReportCards.php:110 templates/connections/list.php:197 templates/sites/list.php:89 msgid "Search Console" msgstr "" #: src/Advisor/Context.php:238 src/Delivery/Readiness.php:310 msgid "GA4 conversions" msgstr "" #: src/Advisor/Context.php:239 msgid "GA4 traffic" msgstr "" #: src/Advisor/Context.php:240 msgid "AI assistant traffic (GA4)" msgstr "" #: assets/build/reports.js:1 src/Advisor/Context.php:241 src/Reports/Comparison.php:109 src/Reports/ReportCards.php:114 templates/email/report.php:418 templates/sites/edit/collect.php:64 msgid "Google Business Profile" msgstr "" #. translators: %s: data source. #: src/Advisor/Context.php:251 #, php-format msgid "%s isn't set up for this client." msgstr "" #. translators: 1: data source, 2: error. #: src/Advisor/Context.php:260 #, php-format msgid "%1$s couldn't be read: %2$s" msgstr "" #. translators: %s: data source. #: src/Advisor/Context.php:265 #, php-format msgid "%s has no data for this client in this period." msgstr "" #: assets/build/reports.js:1 src/Advisor/Context.php:571 src/Attention/SearchWording.php:481 src/Attention/SearchWording.php:550 src/Attention/SearchWording.php:570 src/Attention/SearchWording.php:696 src/Pdf/ReportPdf.php:995 src/Reports/Comparison.php:68 src/Reports/ReportCards.php:50 templates/overview.php:231 templates/overview.php:252 msgid "Google clicks" msgstr "" #: assets/build/reports.js:1 src/Advisor/Context.php:572 src/Attention/SearchWording.php:482 src/Attention/SearchWording.php:551 src/Attention/SearchWording.php:571 src/Attention/SearchWording.php:697 src/Attention/SearchWording.php:728 msgid "Impressions" msgstr "" #: src/Advisor/Context.php:578 msgid "Calls (Business Profile)" msgstr "" #. translators: 1: current dates, 2: earlier dates. #. translators: 1: this period, e.g. "September 2026", 2: the period before. #. translators: 1: this period, e.g. "September 2026", 2: the period before, e.g. "August 2026". #. translators: 1: report period, e.g. Last 3 months, 2: comparison period, e.g. the previous 3 months. #: assets/build/reports.js:1 src/Advisor/Context.php:648 src/Pdf/ReportPdf.php:895 templates/email/report.php:368 #, php-format,js-format msgid "%1$s vs %2$s" msgstr "" #: src/Advisor/HttpProvider.php:208 src/Advisor/OpenAI.php:286 msgid "The answer ran out of room before it was finished. Raise \"Longest answer\" in Settings → AI Advisor, or ask a narrower question." msgstr "" #. translators: %s: AI provider name. #: src/Advisor/HttpProvider.php:218 #, php-format msgid "%s sent back an empty answer. Try again." msgstr "" #. translators: %s: AI provider name. #: src/Advisor/HttpProvider.php:277 #, php-format msgid "%s took too long to answer. Try again, or ask about one client for a smaller question." msgstr "" #. translators: 1: AI provider name, 2: network error. #: src/Advisor/HttpProvider.php:279 #, php-format msgid "Couldn't reach %1$s from this server: %2$s" msgstr "" #. translators: %s: AI provider name. #: src/Advisor/HttpProvider.php:313 #, php-format msgid "%s didn't accept the API key: it's wrong or was revoked. Paste a new key in Settings → AI Advisor." msgstr "" #. translators: 1: AI provider name, 2: the provider's console address. #: src/Advisor/HttpProvider.php:317 #, php-format msgid "Your %1$s account has no credit left or reached its spending limit, so this question wasn't answered. Add credit or raise the limit at %2$s. TurtleReport doesn't retry this automatically." msgstr "" #. translators: 1: AI provider name, 2: number of attempts. #: src/Advisor/HttpProvider.php:322 #, php-format msgid "%1$s's rate limit for this API key was reached (too many requests or tokens per minute). TurtleReport tried %2$d times. Wait a minute and ask again." msgstr "" #. translators: %s: AI provider name. #: src/Advisor/HttpProvider.php:326 #, php-format msgid "This question needs more data than %s accepts in one request for this key. Ask about one client, or choose a shorter date range." msgstr "" #. translators: 1: model ID, 2: AI provider name, 3: a model that works. #: src/Advisor/HttpProvider.php:330 #, php-format msgid "The model “%1$s” isn't available to this %2$s API key: it doesn't exist, or the account can't use it. Pick another model in Settings → AI Advisor, for example %3$s." msgstr "" #. translators: %s: AI provider name. #: src/Advisor/HttpProvider.php:334 #, php-format msgid "%s doesn't accept requests from the country or region this server is in." msgstr "" #. translators: 1: AI provider name, 2: the provider's console address. #: src/Advisor/HttpProvider.php:338 #, php-format msgid "This %1$s API key isn't allowed to do this (its permissions are restricted). Check the key at %2$s." msgstr "" #. translators: 1: AI provider name, 2: HTTP status, 3: number of attempts. #: src/Advisor/HttpProvider.php:342 #, php-format msgid "%1$s is having problems right now (error %2$d, tried %3$d times). Try again in a few minutes." msgstr "" #. translators: 1: AI provider name, 2: the provider's explanation. #: src/Advisor/HttpProvider.php:347 #, php-format msgid "%1$s couldn't answer: %2$s" msgstr "" #. translators: %s: AI provider name. #: src/Advisor/HttpProvider.php:349 #, php-format msgid "%s couldn't answer this request." msgstr "" #. translators: %s: network error. #: src/Advisor/OpenAI.php:101 src/Advisor/OpenAI.php:231 #, php-format msgid "Couldn't reach OpenAI from this server: %s" msgstr "" #: src/Advisor/OpenAI.php:229 msgid "OpenAI took too long to answer. Try again, or ask about one client for a smaller question." msgstr "" #: src/Advisor/OpenAI.php:295 msgid "OpenAI sent back an empty answer. Try again." msgstr "" #: src/Advisor/OpenAI.php:440 msgid "OpenAI didn't accept the API key: it's wrong, was revoked, or belongs to a deleted project. Paste a new key in Settings → AI Advisor." msgstr "" #: src/Advisor/OpenAI.php:443 msgid "Your OpenAI account has no credit left or reached its spending limit, so this question wasn't answered. Add credit or raise the limit at platform.openai.com → Billing. TurtleReport doesn't retry this automatically." msgstr "" #. translators: %d: number of attempts. #: src/Advisor/OpenAI.php:449 #, php-format msgid "OpenAI's rate limit for this API key was reached (too many requests or tokens per minute). TurtleReport tried %d times. Wait a minute and ask again; if it keeps happening, raise your limits at platform.openai.com → Limits." msgstr "" #: src/Advisor/OpenAI.php:450 msgid "OpenAI's rate limit for this API key was reached (too many requests or tokens per minute) and it asked to wait longer than TurtleReport waits. Ask again in a minute." msgstr "" #: src/Advisor/OpenAI.php:453 msgid "This question needs more data than OpenAI accepts in one request for this key. Ask about one client, or choose a shorter date range." msgstr "" #. translators: %s: model ID. #: src/Advisor/OpenAI.php:457 #, php-format msgid "The model “%s” isn't available to this API key: it doesn't exist, or the project can't use it. Pick another model in Settings → AI Advisor, for example gpt-5-mini." msgstr "" #: src/Advisor/OpenAI.php:460 msgid "OpenAI doesn't accept requests from the country or region this server is in." msgstr "" #: src/Advisor/OpenAI.php:463 msgid "This API key isn't allowed to do this (its project or permissions are restricted). Check the key's permissions at platform.openai.com → API keys." msgstr "" #. translators: 1: HTTP status, 2: number of attempts. #: src/Advisor/OpenAI.php:467 #, php-format msgid "OpenAI is having problems right now (error %1$d, tried %2$d times). Try again in a few minutes." msgstr "" #. translators: %s: OpenAI's explanation. #: src/Advisor/OpenAI.php:471 #, php-format msgid "OpenAI couldn't answer: %s" msgstr "" #. translators: %s: OpenAI's explanation. #: src/Advisor/OpenAI.php:471 msgid "OpenAI couldn't answer this request." msgstr "" #: src/Advisor/Usage.php:124 msgid "Your previous question is still being answered." msgstr "" #. translators: %d: number of questions. #: src/Advisor/Usage.php:134 #, php-format msgid "Today's limit of %d AI question has been reached. It resets tomorrow, or an administrator can raise it in Settings → AI Advisor." msgid_plural "Today's limit of %d AI questions has been reached. It resets tomorrow, or an administrator can raise it in Settings → AI Advisor." msgstr[0] "" msgstr[1] "" #. translators: %d: number of questions. #: src/Advisor/Usage.php:138 #, php-format msgid "This month's limit of %d AI question has been reached. An administrator can raise it in Settings → AI Advisor." msgid_plural "This month's limit of %d AI questions has been reached. An administrator can raise it in Settings → AI Advisor." msgstr[0] "" msgstr[1] "" #: src/Advisor/Usage.php:150 msgid "That's a lot of questions in a minute. Wait a moment and ask again." msgstr "" #: src/Attention/Brief.php:384 msgid ", last 28 days vs the 28 days before." msgstr "" #: src/Attention/Brief.php:416 msgid "Some client checks are incomplete. Review the Client Monitor before drawing conclusions." msgstr "" #. translators: %d: number of checked clients. #: assets/build/overview.js:1 src/Attention/Brief.php:419 #, php-format,js-format msgid "No active issues recorded for %d client." msgid_plural "No active issues recorded for %d clients." msgstr[0] "" msgstr[1] "" #. translators: 1: clients that need attention, 2: all clients, 3: client to start with. #: src/Attention/Brief.php:423 #, php-format msgid "%1$d of %2$d clients needs attention. Start with %3$s." msgid_plural "%1$d of %2$d clients need attention. Start with %3$s." msgstr[0] "" msgstr[1] "" #: src/Attention/Brief.php:471 src/Email/ReportMailer.php:222 templates/deliveries/list.php:174 msgid "Test" msgstr "" #. translators: 1: number of clients, 2: client to start with. #: src/Attention/Brief.php:473 #, php-format msgid "Weekly summary: %1$d client needs attention · start with %2$s" msgid_plural "Weekly summary: %1$d clients need attention · start with %2$s" msgstr[0] "" msgstr[1] "" #: src/Attention/Brief.php:475 msgid "Weekly summary: client checks need attention" msgstr "" #. translators: %d: number of clients. #: src/Attention/Brief.php:477 #, php-format msgid "Weekly summary: no active issues for %d client" msgid_plural "Weekly summary: no active issues for %d clients" msgstr[0] "" msgstr[1] "" #: src/Attention/Brief.php:530 templates/email/brief.php:48 msgid "From the latest Client Monitor checks" msgstr "" #. translators: %d: number of open issues. #: src/Attention/Brief.php:535 templates/email/brief.php:115 #, php-format msgid "%d open issue" msgid_plural "%d open issues" msgstr[0] "" msgstr[1] "" #: assets/build/overview.js:1 src/Attention/Brief.php:537 templates/email/brief.php:45 msgid "High" msgstr "" #: assets/build/overview.js:1 src/Attention/Brief.php:537 templates/email/brief.php:46 msgid "Medium" msgstr "" #. translators: %s: recommended next step. #: src/Attention/Brief.php:544 #, php-format msgid "Next step: %s" msgstr "" #. translators: %s: client names. #: src/Attention/Brief.php:552 #, php-format msgid "No active issues: %s" msgstr "" #. translators: %s: names of clients whose checks failed or have not run. #: src/Attention/Brief.php:556 #, php-format msgid "Checks incomplete: %s. Earlier issues may still be listed." msgstr "" #. translators: %s: Client Monitor address. #: src/Attention/Brief.php:560 #, php-format msgid "Open the Client Monitor: %s" msgstr "" #: assets/build/reports.js:1 src/Attention/LeadWording.php:31 msgid "Priority conversions" msgstr "" #. translators: 1: conversion label, 2: percentage, 3: before, 4: now. #: src/Attention/LeadWording.php:43 #, php-format msgid "%1$s from organic search fell %2$s (%3$s → %4$s)." msgstr "" #: src/Attention/LeadWording.php:300 src/Attention/LeadWording.php:312 src/Attention/LeadWording.php:58 src/Attention/LeadWording.php:60 msgid "Organic sessions" msgstr "" #: src/Attention/LeadWording.php:59 src/Attention/LeadWording.php:62 msgid "Conversion rate" msgstr "" #. translators: 1: sessions before, 2: sessions now, 3: rate before, 4: rate now. #: src/Attention/LeadWording.php:71 #, php-format msgid "Organic visits fell by a similar amount (%1$s → %2$s) while the conversion rate held (%3$s → %4$s): fewer people arrived, rather than fewer of them converting. The cause is upstream, in search traffic." msgstr "" #. translators: 1: sessions before, 2: sessions now, 3: rate before, 4: rate now. #: src/Attention/LeadWording.php:81 #, php-format msgid "Organic visits held up (%1$s → %2$s) but the conversion rate fell (%3$s → %4$s): people still arrive but fewer complete the form or call. That points to the site (a form, a button or the tracking) rather than to SEO." msgstr "" #. translators: 1: sessions change, 2: rate before, 3: rate now. #: src/Attention/LeadWording.php:90 #, php-format msgid "Both fell: organic visits changed %1$s and the conversion rate went from %2$s to %3$s, so check traffic and the forms." msgstr "" #. translators: 1: event name, 2: before, 3: now. #: src/Attention/LeadWording.php:102 #, php-format msgid "Most of the drop is in “%1$s” (%2$s → %3$s), so start there." msgstr "" #. translators: 1: page, 2: before, 3: now. #: src/Attention/LeadWording.php:112 #, php-format msgid "%1$s lost the most (%2$s → %3$s)." msgstr "" #: src/Attention/LeadWording.php:127 msgid "the main landing pages" msgstr "" #. translators: %s: page name. #: src/Attention/LeadWording.php:130 #, php-format msgid "Search traffic fell too: start with the pages that lost Google clicks, then test the form on %s." msgstr "" #: src/Attention/LeadWording.php:132 msgid "Start with search traffic: review the pages that lost Google clicks in this client's report." msgstr "" #. translators: %s: page name. #: src/Attention/LeadWording.php:134 #, php-format msgid "Check that %s, which lost the most leads, still ranks, loads and shows its form or call button." msgstr "" #: src/Attention/LeadWording.php:135 msgid "Once traffic is explained, test the forms once yourself." msgstr "" #. translators: 1: event name, 2: page name. #: src/Attention/LeadWording.php:140 #, php-format msgid "Test “%1$s” on %2$s yourself and check that GA4 records it." msgstr "" #. translators: %s: page name. #: src/Attention/LeadWording.php:142 #, php-format msgid "Test the forms on %s yourself and check that GA4 records them." msgstr "" #. translators: 1: event name, 2: page name. #: src/Attention/LeadWording.php:146 #, php-format msgid "Test the form or button that sends “%1$s” on %2$s yourself, then check that GA4 records it in its real-time report." msgstr "" #. translators: %s: page name. #: src/Attention/LeadWording.php:148 #, php-format msgid "Test the forms on %s yourself, then check that GA4 records them in its real-time report." msgstr "" #: src/Attention/LeadWording.php:149 msgid "Check what changed recently: the form plugin, theme, Google Tag Manager, cookie banner or thank-you page. GA4 event names are case-sensitive." msgstr "" #: src/Attention/LeadWording.php:150 msgid "Compare leads by landing page in the report to see whether one page explains the drop." msgstr "" #: src/Attention/LeadWording.php:165 msgid "By event" msgstr "" #: src/Attention/LeadWording.php:166 msgid "Event" msgstr "" #: assets/build/reports.js:1 src/Attention/LeadWording.php:166 src/Attention/LeadWording.php:173 src/Reports/ReportCards.php:195 msgid "Before" msgstr "" #: assets/build/reports.js:1 src/Attention/LeadWording.php:166 src/Attention/LeadWording.php:173 msgid "Now" msgstr "" #: assets/build/overview.js:1 assets/build/reports.js:1 src/Attention/LeadWording.php:166 src/Attention/LeadWording.php:173 src/Attention/SearchWording.php:728 msgid "Change" msgstr "" #: src/Attention/LeadWording.php:172 msgid "Landing pages that lost the most" msgstr "" #: assets/build/reports.js:1 src/Attention/LeadWording.php:173 msgid "Landing page" msgstr "" #. translators: %s: number of leads. #: src/Attention/LeadWording.php:182 #, php-format msgid "Based on only %s leads in the 28 days before. Small numbers swing a lot, so treat this as an early signal." msgstr "" #. translators: %s: number of leads. #: src/Attention/LeadWording.php:184 #, php-format msgid "Based on %s leads from organic search in the 28 days before." msgstr "" #: src/Attention/LeadWording.php:188 msgid "Fewer priority conversions" msgstr "" #: src/Attention/LeadWording.php:188 msgid "Fewer leads" msgstr "" #. translators: 1: conversion label, 2: percentage. #. translators: 1: event name or "Priority conversions", 2: percentage. #: assets/build/reports.js:1 src/Attention/LeadWording.php:190 src/Attention/LeadWording.php:194 #, php-format,js-format msgid "%1$s down %2$s" msgstr "" #: src/Attention/LeadWording.php:192 msgid "Organic search, all pages" msgstr "" #. translators: 1: before, 2: now. #: src/Attention/LeadWording.php:196 #, php-format msgid "%1$s → %2$s from organic search, last 28 days vs the 28 days before." msgstr "" #. translators: 1: event name, 2: date range, 3: count. #: src/Attention/LeadWording.php:221 #, php-format msgid "GA4 recorded no “%1$s” events from organic search in the last 7 days (%2$s), after %3$s in the 28 days before." msgstr "" #. translators: %s: number of sessions. #: src/Attention/LeadWording.php:229 #, php-format msgid "The site still had %s organic visits in those 7 days, so people were arriving. A sudden stop like this, while visits continue, usually means the event isn't being sent any more (a broken form or tag), not that people stopped converting." msgstr "" #: assets/build/reports.js:1 src/Attention/LeadWording.php:233 src/Delivery/ReportBuilder.php:238 msgid "Last 7 days" msgstr "" #: src/Attention/LeadWording.php:235 src/Attention/LeadWording.php:241 msgid "events recorded" msgstr "" #: assets/build/overview.js:1 src/Attention/LeadWording.php:239 msgid "28 days before" msgstr "" #: src/Attention/LeadWording.php:247 msgid "Organic visits, last 7 days" msgstr "" #: src/Attention/LeadWording.php:249 msgid "people still arriving" msgstr "" #: src/Attention/LeadWording.php:254 msgid "Lead tracking stopped" msgstr "" #. translators: %s: event name. #: src/Attention/LeadWording.php:256 src/Attention/LeadWording.php:259 #, php-format msgid "“%s” stopped recording" msgstr "" #: src/Attention/LeadWording.php:257 msgid "GA4 event" msgstr "" #. translators: %s: count. #: src/Attention/LeadWording.php:261 #, php-format msgid "0 in the last 7 days, after %s in the 28 days before." msgstr "" #. translators: %s: event name. #: src/Attention/LeadWording.php:265 #, php-format msgid "Test “%s” yourself and check that GA4 records it." msgstr "" #. translators: %s: event name. #: src/Attention/LeadWording.php:268 #, php-format msgid "Test the form or button that sends “%s” yourself, then check that GA4 records it in its real-time report." msgstr "" #: src/Attention/LeadWording.php:269 msgid "Check what changed on the site in the last week: the form plugin, theme, Google Tag Manager, cookie banner or thank-you page." msgstr "" #: src/Attention/LeadWording.php:270 msgid "Check that the event name in GA4 still matches exactly (names are case-sensitive). If it was renamed on purpose, update this site's conversion events." msgstr "" #. translators: %s: count. #: src/Attention/LeadWording.php:275 #, php-format msgid "Based on %s events in the 28 days before, against none in the last 7 days." msgstr "" #: src/Attention/LeadWording.php:291 msgid "Fewer visits from search" msgstr "" #. translators: %s: percentage. #: src/Attention/LeadWording.php:293 src/Attention/LeadWording.php:297 #, php-format msgid "Organic visits down %s" msgstr "" #: src/Attention/LeadWording.php:295 src/Attention/SearchWording.php:545 src/Attention/SearchWording.php:82 msgid "All pages" msgstr "" #. translators: 1: before, 2: now. #: src/Attention/LeadWording.php:299 #, php-format msgid "%1$s → %2$s GA4 organic sessions, last 28 days vs the 28 days before." msgstr "" #. translators: 1: before, 2: now. #: src/Attention/LeadWording.php:303 #, php-format msgid "GA4 recorded fewer organic visits (%1$s → %2$s)." msgstr "" #: src/Attention/LeadWording.php:304 msgid "Without Search Console on this site, TurtleReport can't see whether rankings, impressions or clicks changed, so the cause can't be narrowed down from here." msgstr "" #: src/Attention/LeadWording.php:306 msgid "Check that the site loads and GA4 still records visits." msgstr "" #: src/Attention/LeadWording.php:308 msgid "Connect Search Console for this site to see which pages and search queries lost visits." msgstr "" #: src/Attention/LeadWording.php:309 msgid "Open the website and check it loads, and that GA4 still records visits in its real-time report." msgstr "" #: src/Attention/LeadWording.php:310 msgid "Compare the same weeks last year in GA4 to rule out a seasonal dip." msgstr "" #: src/Attention/Monitor.php:115 src/Attention/Monitor.php:116 msgid "This client couldn't be checked because of an unexpected error." msgstr "" #: src/Attention/Presenter.php:113 msgid "GA4, organic search" msgstr "" #. translators: 1: data source, 2: date range, 3: earlier date range. #: src/Attention/Presenter.php:119 #, php-format msgid "%1$s · %2$s vs %3$s" msgstr "" #: src/Attention/Presenter.php:138 msgid "Detected today" msgstr "" #. translators: %s: date the issue was first detected. #: assets/build/overview.js:1 src/Attention/Presenter.php:141 #, php-format,js-format msgid "Detected %s" msgstr "" #. translators: %s: date. #: src/Attention/Presenter.php:160 #, php-format msgid "Snoozed until %s. It comes back then if the problem is still there." msgstr "" #. translators: 1: person, 2: date. #: src/Attention/Presenter.php:164 #, php-format msgid "Marked as handled by %1$s on %2$s. It comes back if it gets worse, and clears by itself when the numbers recover." msgstr "" #. translators: %s: date. #: src/Attention/Presenter.php:166 #, php-format msgid "Marked as handled on %s. It comes back if it gets worse, and clears by itself when the numbers recover." msgstr "" #. translators: %s: date. #: src/Attention/Presenter.php:169 #, php-format msgid "Resolved by itself on %s: the numbers recovered." msgstr "" #: src/Attention/Presenter.php:173 msgid "Back after the snooze: the problem is still there." msgstr "" #: src/Attention/Presenter.php:175 msgid "This got worse since it was first flagged." msgstr "" #: src/Attention/Presenter.php:177 msgid "This happened before, recovered, and is back." msgstr "" #: src/Attention/ReportData.php:177 src/Reports/Summary.php:138 msgid "This part of the report isn't available." msgstr "" #. translators: 1: percentage, 2: clicks before, 3: clicks now. #: src/Attention/SearchWording.php:46 #, php-format msgid "The site lost %1$s of its Google clicks (%2$s → %3$s)." msgstr "" #. translators: 1: page name, 2: percentage. #: src/Attention/SearchWording.php:59 #, php-format msgid "%1$s accounts for %2$s of the lost clicks, so that is the place to start." msgstr "" #: src/Attention/SearchWording.php:64 msgid "The loss is spread across several pages rather than one, which points to something site-wide (rankings, demand or indexing) more than to one page." msgstr "" #. translators: %s: page name. #: src/Attention/SearchWording.php:71 #, php-format msgid "Start with %s and review which search queries lost it the most clicks." msgstr "" #: src/Attention/SearchWording.php:75 msgid "Fewer Google visits" msgstr "" #. translators: %s: percentage. #: assets/build/reports.js:1 src/Attention/SearchWording.php:78 src/Attention/SearchWording.php:84 #, php-format,js-format msgid "Google clicks down %s" msgstr "" #. translators: 1: clicks before, 2: clicks now. #: src/Attention/SearchWording.php:86 #, php-format msgid "%1$s → %2$s clicks, last 28 days vs the 28 days before." msgstr "" #. translators: %s: page name. #: src/Attention/SearchWording.php:91 #, php-format msgid "Start with %s and review which search queries lost clicks." msgstr "" #: src/Attention/SearchWording.php:99 msgid "Pages that lost the most clicks" msgstr "" #: assets/build/reports.js:1 src/Attention/SearchWording.php:99 msgid "Page" msgstr "" #: src/Attention/SearchWording.php:100 src/Attention/SearchWording.php:170 msgid "Keywords behind the drop" msgstr "" #: assets/build/reports.js:1 src/Attention/SearchWording.php:100 src/Attention/SearchWording.php:170 src/Attention/SearchWording.php:667 msgid "Keyword" msgstr "" #. translators: 1: percentage, 2: clicks before, 3: clicks now. #: src/Attention/SearchWording.php:132 #, php-format msgid "This page lost %1$s of its Google clicks (%2$s → %3$s)." msgstr "" #. translators: %d: number of leads. #: src/Attention/SearchWording.php:146 #, php-format msgid "The rest of the site held up, so this is specific to this page, which also brought %d lead before." msgid_plural "The rest of the site held up, so this is specific to this page, which also brought %d leads before." msgstr[0] "" msgstr[1] "" #: src/Attention/SearchWording.php:147 msgid "The rest of the site held up, so this is specific to this page." msgstr "" #: src/Attention/SearchWording.php:152 msgid "It also brought leads: check that its form or call button still works." msgstr "" #: src/Attention/SearchWording.php:156 msgid "Fewer Google visits to a page" msgstr "" #. translators: 1: page name, 2: percentage. #: src/Attention/SearchWording.php:161 #, php-format msgid "%1$s: clicks down %2$s" msgstr "" #. translators: 1: page path, 2: clicks before, 3: clicks now. #: src/Attention/SearchWording.php:163 #, php-format msgid "%1$s · %2$s → %3$s clicks, last 28 days vs the 28 days before." msgstr "" #. translators: 1: position before, 2: position now. #: src/Attention/SearchWording.php:218 #, php-format msgid "Its average position dropped from %1$s to %2$s, so it shows lower in Google's results than before." msgstr "" #. translators: 1: position before, 2: position now. #: src/Attention/SearchWording.php:218 #, php-format msgid "The average position dropped from %1$s to %2$s, so the site shows lower in Google's results than before." msgstr "" #. translators: 1: keyword, 2: position before, 3: position now. #: src/Attention/SearchWording.php:226 #, php-format msgid "The clearest example is “%1$s” (position %2$s → %3$s)." msgstr "" #. translators: 1: impressions change, 2: position before, 3: position now. #: src/Attention/SearchWording.php:237 #, php-format msgid "Impressions fell %1$s even though the average position improved (%2$s → %3$s). That combination usually means it stopped appearing for searches where it ranked lower: losing those low positions lifts the average while visibility shrinks. This doesn't look like a simple ranking drop." msgstr "" #. translators: 1: impressions change, 2: position before, 3: position now. #: src/Attention/SearchWording.php:237 #, php-format msgid "Impressions fell %1$s even though the average position improved (%2$s → %3$s). That combination usually means the site stopped appearing for searches where it ranked lower: losing those low positions lifts the average while visibility shrinks. This doesn't look like a simple ranking drop." msgstr "" #. translators: 1: number of searches, 2: impressions. #: src/Attention/SearchWording.php:245 #, php-format msgid "It no longer appears at all for %1$d search it used to show for (%2$s impressions before)." msgid_plural "It no longer appears at all for %1$d searches it used to show for (%2$s impressions before)." msgstr[0] "" msgstr[1] "" #. translators: 1: impressions change, 2: position before, 3: position now. #: src/Attention/SearchWording.php:255 #, php-format msgid "Impressions fell %1$s while its average position held (%2$s → %3$s): it ranks about the same but is shown for fewer searches. Either fewer people searched for its topics (often seasonal), or it dropped out of some searches." msgstr "" #. translators: 1: impressions change, 2: position before, 3: position now. #: src/Attention/SearchWording.php:255 #, php-format msgid "Impressions fell %1$s while the average position held (%2$s → %3$s): the site ranks about the same but is shown for fewer searches. Either fewer people searched for its topics (often seasonal), or it dropped out of some searches." msgstr "" #. translators: %s: impressions change. #: src/Attention/SearchWording.php:263 #, php-format msgid "Impressions fell %s: Google showed it for fewer searches. There are too few impressions to judge its position reliably." msgstr "" #. translators: 1: impressions change, 2: CTR before, 3: CTR now. #: src/Attention/SearchWording.php:272 #, php-format msgid "Impressions held up (%1$s) but the click-through rate fell from %2$s to %3$s: people see it as often but click less. That points to the search result itself: a less appealing title or description, or new features such as AI Overviews, ads or maps above it." msgstr "" #. translators: %s: keyword. #: src/Attention/SearchWording.php:278 #, php-format msgid "The biggest example is “%s”." msgstr "" #: src/Attention/SearchWording.php:282 msgid "Clicks, impressions and position each moved a little; no single change explains the drop. The keyword details show where the clicks went." msgstr "" #: src/Attention/SearchWording.php:293 msgid "The loss is spread across many searches rather than one or two." msgstr "" #. translators: 1: keyword, 2: impressions before, 3: impressions now, 4: share of lost impressions. #: src/Attention/SearchWording.php:298 #, php-format msgid "The biggest loss is “%1$s” (%2$s → %3$s impressions, %4$s of the impressions lost)." msgstr "" #. translators: 1: CTR before, 2: CTR now. #: src/Attention/SearchWording.php:325 #, php-format msgid "The click-through rate also fell (%1$s → %2$s), so even where it still appears, fewer people click." msgstr "" #: src/Attention/SearchWording.php:340 msgid "the pages that lost clicks" msgstr "" #: src/Attention/SearchWording.php:341 src/Attention/SearchWording.php:425 msgid "the site" msgstr "" #. translators: 1: keyword, 2: page name. #: src/Attention/SearchWording.php:349 #, php-format msgid "Search “%1$s” in a private browser window and see which pages now rank above %2$s." msgstr "" #. translators: %s: page name. #: src/Attention/SearchWording.php:351 #, php-format msgid "Search the main queries in a private browser window and see which pages now rank above %s." msgstr "" #. translators: %s: page name. #: src/Attention/SearchWording.php:353 #, php-format msgid "Review recent changes to %s (title, headings, content, links, redirects) and compare it with the pages now ranking above it." msgstr "" #. translators: %s: page name. #: src/Attention/SearchWording.php:356 #, php-format msgid "Check that Google still indexes %s and treats it as the main version of the page." msgstr "" #: src/Attention/SearchWording.php:357 msgid "Check Search Console for new manual actions, security issues or page errors." msgstr "" #. translators: 1: "filter by this page", 2: keyword. #: src/Attention/SearchWording.php:364 #, php-format msgid "Compare the search performance of %1$s with the previous period to see which search queries it lost. The biggest is “%2$s”." msgstr "" #. translators: %s: page name. #: src/Attention/SearchWording.php:366 #, php-format msgid "Compare the search performance of %s with the previous period to see which search queries it lost." msgstr "" #. translators: %s: keyword. #: src/Attention/SearchWording.php:369 #, php-format msgid "Search “%s” and check whether another page on the same site now shows instead. Two pages aiming at one search can push each other out." msgstr "" #: src/Attention/SearchWording.php:370 msgid "Check whether another page on the same site now shows for those searches. Two pages aiming at one search can push each other out." msgstr "" #. translators: %s: page name. #: src/Attention/SearchWording.php:373 #, php-format msgid "Check that %s still covers those searches in its title, headings and content, and review how it looks in Google, since fewer people click it too." msgstr "" #. translators: %s: page name. #: src/Attention/SearchWording.php:375 #, php-format msgid "Check that Google still indexes %s and that it still covers those searches in its title, headings and content. Look for anything removed or merged." msgstr "" #. translators: %s: keyword. #: src/Attention/SearchWording.php:382 #, php-format msgid "Compare the same weeks last year to see whether searches for “%s” always dip at this time." msgstr "" #: src/Attention/SearchWording.php:383 msgid "Compare the same weeks last year to see whether searches always dip at this time." msgstr "" #. translators: %s: keyword. #: src/Attention/SearchWording.php:386 #, php-format msgid "Check Google Trends for “%s” to see whether interest fell everywhere, not just for this site." msgstr "" #: src/Attention/SearchWording.php:387 msgid "Check Google Trends for the main queries to see whether interest fell everywhere, not just for this site." msgstr "" #. translators: %s: page name. #: src/Attention/SearchWording.php:389 #, php-format msgid "If demand didn't fall, check which search queries %s stopped appearing for." msgstr "" #. translators: %s: keyword. #: src/Attention/SearchWording.php:396 #, php-format msgid "Search “%s” and note what now sits above the result: AI Overviews, ads, a map, videos or richer competitor results." msgstr "" #: src/Attention/SearchWording.php:397 msgid "Search the main queries and note what now sits above the result: AI Overviews, ads, a map, videos or richer competitor results." msgstr "" #. translators: %s: page name. #: src/Attention/SearchWording.php:399 #, php-format msgid "Review the title and description Google shows for %s. Does it match the search and give a reason to click (price, location, offer)?" msgstr "" #: src/Attention/SearchWording.php:400 msgid "Check whether Google rewrote the title or shows an old date or price, and update the page title and description if so." msgstr "" #. translators: %s: keyword. #: src/Attention/SearchWording.php:406 #, php-format msgid "Start with “%s”, the search query that lost the most clicks." msgstr "" #: src/Attention/SearchWording.php:407 msgid "Start with the search queries that lost the most clicks." msgstr "" #. translators: %s: page name. #: src/Attention/SearchWording.php:410 #, php-format msgid "Check that Google still indexes %s and can show it." msgstr "" #: src/Attention/SearchWording.php:411 msgid "Check in Search Console whether fewer of the site's pages are indexed." msgstr "" #: src/Attention/SearchWording.php:412 msgid "Compare the same weeks last year to rule out a seasonal dip." msgstr "" #. translators: 1: keyword, 2: page name. #: src/Attention/SearchWording.php:431 #, php-format msgid "Search “%1$s” and see which pages now rank above %2$s." msgstr "" #. translators: %s: page name. #: src/Attention/SearchWording.php:433 #, php-format msgid "See which pages now rank above %s for its main keywords." msgstr "" #. translators: %s: page name. #: src/Attention/SearchWording.php:436 #, php-format msgid "In Search Console, list the searches %s stopped appearing for." msgstr "" #. translators: %s: keyword. #: src/Attention/SearchWording.php:440 #, php-format msgid "Check whether searches for “%s” fell everywhere (Google Trends, same weeks last year)." msgstr "" #: src/Attention/SearchWording.php:441 msgid "Check whether searches fell everywhere (Google Trends, same weeks last year)." msgstr "" #. translators: 1: keyword, 2: page name. #: src/Attention/SearchWording.php:445 #, php-format msgid "Search “%1$s” and check what now sits above %2$s in the results." msgstr "" #. translators: %s: page name. #: src/Attention/SearchWording.php:447 #, php-format msgid "Check what now sits above %s in the search results." msgstr "" #. translators: %s: keyword. #: src/Attention/SearchWording.php:451 #, php-format msgid "Start with “%s”, the keyword that lost the most clicks." msgstr "" #: src/Attention/SearchWording.php:452 msgid "Start with the keywords that lost the most clicks." msgstr "" #: src/Attention/SearchWording.php:466 msgid "Too few impressions to judge" msgstr "" #: src/Attention/SearchWording.php:469 msgid "About the same" msgstr "" #. translators: %s: number of places. #: src/Attention/SearchWording.php:473 #, php-format msgid "Improved %s" msgstr "" #. translators: %s: number of places. #: src/Attention/SearchWording.php:477 #, php-format msgid "Dropped %s" msgstr "" #: assets/build/reports.js:1 src/Attention/SearchWording.php:484 msgid "CTR" msgstr "" #: src/Attention/SearchWording.php:490 templates/overview.php:233 templates/overview.php:268 msgid "Avg. position" msgstr "" #. translators: 1: clicks, 2: impressions. #: src/Attention/SearchWording.php:515 #, php-format msgid "Based on %1$s clicks and %2$s impressions in the 28 days before: enough data to rely on." msgstr "" #. translators: 1: clicks, 2: impressions. #: src/Attention/SearchWording.php:519 #, php-format msgid "Based on %1$s clicks and %2$s impressions in the 28 days before: a clear change, but confirm it in the details." msgstr "" #. translators: %s: clicks. #: src/Attention/SearchWording.php:523 #, php-format msgid "Based on only %s clicks in the 28 days before. Small numbers swing a lot, so treat this as an early signal." msgstr "" #: src/Attention/SearchWording.php:542 msgid "No Google visits" msgstr "" #: src/Attention/SearchWording.php:543 src/Attention/SearchWording.php:546 msgid "No Google clicks in the last 28 days" msgstr "" #. translators: %s: number of clicks. #: src/Attention/SearchWording.php:548 #, php-format msgid "Down from %s clicks in the 28 days before." msgstr "" #. translators: %s: clicks. #: src/Attention/SearchWording.php:555 #, php-format msgid "Search Console recorded no clicks at all, after %s in the 28 days before." msgstr "" #. translators: %s: impressions. #: src/Attention/SearchWording.php:558 #, php-format msgid "Google still showed the site %s times but nobody clicked, which is unusual: check how the result looks in Google." msgstr "" #: src/Attention/SearchWording.php:559 msgid "There were no impressions either: Google didn't show the site at all, which points to the site being blocked, removed from the index or offline rather than to rankings." msgstr "" #: src/Attention/SearchWording.php:562 msgid "Search for the site in Google and check how its result looks now." msgstr "" #: src/Attention/SearchWording.php:563 msgid "Check the site loads and isn't blocked from Google (noindex or robots.txt)." msgstr "" #: src/Attention/SearchWording.php:565 msgid "Open the website and check it loads for visitors: no maintenance page, error or login wall." msgstr "" #: src/Attention/SearchWording.php:566 msgid "Check that the site isn't blocked from Google (robots.txt or a \"noindex\" setting), especially after an update, move or new plugin." msgstr "" #: src/Attention/SearchWording.php:567 msgid "Check Search Console for manual actions or security issues. If the site moved domain or to https, check the connected property is the new one." msgstr "" #. translators: 1: number of keywords, 2: clicks. #: src/Attention/SearchWording.php:599 #, php-format msgid "%1$d keyword that brought clicks moved down 3 or more places, costing about %2$s clicks." msgid_plural "%1$d keywords that brought clicks moved down 3 or more places, costing about %2$s clicks." msgstr[0] "" msgstr[1] "" #: src/Attention/SearchWording.php:603 msgid "The site's total clicks haven't dropped enough to show it yet, so this is an early warning: rankings usually move before traffic does." msgstr "" #. translators: 1: keyword, 2: position before, 3: position now. #: src/Attention/SearchWording.php:608 #, php-format msgid "The biggest is “%1$s” (position %2$s → %3$s)." msgstr "" #: src/Attention/SearchWording.php:615 msgid "Lower Google rankings" msgstr "" #. translators: %d: number of keywords. #: src/Attention/SearchWording.php:617 src/Attention/SearchWording.php:621 #, php-format msgid "%d search query lost visibility" msgid_plural "%d search queries lost visibility" msgstr[0] "" msgstr[1] "" #: src/Attention/SearchWording.php:619 msgid "Several pages" msgstr "" #. translators: %s: number of clicks. #: src/Attention/SearchWording.php:624 #, php-format msgid "About %s clicks lost so far; the site's total clicks have held up." msgstr "" #: src/Attention/SearchWording.php:625 msgid "Positions fell, though clicks haven't dropped much yet." msgstr "" #: src/Attention/SearchWording.php:628 msgid "Keywords slipped" msgstr "" #: src/Attention/SearchWording.php:630 msgid "3+ places each" msgstr "" #: src/Attention/SearchWording.php:634 msgid "Clicks lost" msgstr "" #: src/Attention/SearchWording.php:636 msgid "on these keywords" msgstr "" #: src/Attention/SearchWording.php:640 msgid "Average drop" msgstr "" #. translators: %s: number of places. #: src/Attention/SearchWording.php:642 #, php-format msgid "%s places" msgstr "" #. translators: %s: keyword. #: src/Attention/SearchWording.php:650 #, php-format msgid "Search “%s” and see which pages now rank above the site." msgstr "" #: src/Attention/SearchWording.php:651 msgid "Search the keywords that slipped and see which pages now rank above the site." msgstr "" #. translators: %s: keyword. #: src/Attention/SearchWording.php:655 #, php-format msgid "Search “%s” in a private browser window and see which pages now rank above the site, and what they offer." msgstr "" #: src/Attention/SearchWording.php:656 msgid "Search these queries in a private browser window and see which pages now rank above the site." msgstr "" #: src/Attention/SearchWording.php:657 msgid "Find the page that ranks for each query and review what changed on it recently." msgstr "" #: src/Attention/SearchWording.php:658 msgid "If several of these queries lead to the same page, improve that page first: it has the most to gain." msgstr "" #: src/Attention/SearchWording.php:662 msgid "Positions come from Search Console and only count keywords that brought clicks or many impressions before." msgstr "" #: src/Attention/SearchWording.php:666 msgid "Keywords that moved down" msgstr "" #: src/Attention/SearchWording.php:667 msgid "Position before" msgstr "" #: src/Attention/SearchWording.php:667 msgid "Position now" msgstr "" #: src/Attention/SearchWording.php:667 msgid "Clicks before" msgstr "" #: src/Attention/SearchWording.php:667 msgid "Clicks now" msgstr "" #: assets/build/reports.js:1 src/Attention/SearchWording.php:698 src/Reports/Comparison.php:70 src/Reports/ReportCards.php:78 msgid "Click-through rate" msgstr "" #: assets/build/reports.js:1 src/Attention/SearchWording.php:699 src/Reports/Comparison.php:72 src/Reports/ReportCards.php:67 msgid "Average position" msgstr "" #: src/Attention/SearchWording.php:723 msgid "no longer shown" msgstr "" #: assets/build/reports.js:1 src/Attention/SearchWording.php:723 src/Policy/Format.php:80 msgid "new" msgstr "" #: assets/build/reports.js:1 src/Attention/SearchWording.php:728 msgid "Clicks" msgstr "" #: assets/build/reports.js:1 src/Attention/SearchWording.php:728 msgid "Position" msgstr "" #: assets/build/reports.js:1 src/Attention/SearchWording.php:750 msgid "Home page" msgstr "" #. translators: %s: page name made from its address, e.g. "Pricing". #: src/Attention/SearchWording.php:758 #, php-format msgctxt "page title derived from a URL" msgid "%s page" msgstr "" #. translators: %s: person's name. #: src/Attention/Slack.php:117 #, php-format msgid "TurtleReport is connected to this channel. %s sent this test from the Client Monitor settings." msgstr "" #: src/Attention/Slack.php:118 msgid "TurtleReport is connected to this channel." msgstr "" #: src/Attention/Slack.php:160 src/Attention/Slack.php:256 msgid "High priority" msgstr "" #: src/Attention/Slack.php:160 src/Attention/Slack.php:256 msgid "Worth a look" msgstr "" #: src/Attention/Slack.php:166 templates/deliveries/run.php:169 msgid "Note" msgstr "" #: assets/build/overview.js:1 src/Attention/Slack.php:193 src/Attention/Slack.php:269 msgid "What the data suggests" msgstr "" #: assets/build/overview.js:1 src/Attention/Slack.php:206 src/Attention/Slack.php:274 msgid "Recommended next checks" msgstr "" #: src/Attention/Slack.php:217 msgid "Open the report" msgstr "" #. translators: %s: person's name. #: src/Attention/Slack.php:228 #, php-format msgid "Shared by %s from TurtleReport" msgstr "" #: src/Attention/Slack.php:311 msgid "Add a Slack webhook in Settings → Client Monitor first." msgstr "" #. translators: %s: network error. #: src/Attention/Slack.php:324 #, php-format msgid "Couldn't reach Slack: %s" msgstr "" #: src/Attention/Slack.php:335 msgid "Slack doesn't recognise this webhook any more. It may have been removed: create a new one and save it in Settings → Client Monitor." msgstr "" #: src/Attention/Slack.php:338 msgid "The Slack channel for this webhook is archived. Create a webhook for another channel." msgstr "" #: src/Attention/Slack.php:341 msgid "A Slack admin has blocked posting to this channel." msgstr "" #: src/Attention/Slack.php:345 msgid "Slack refused the message format. Please report this to the plugin author." msgstr "" #. translators: 1: HTTP status, 2: Slack's answer. #: src/Attention/Slack.php:349 #, php-format msgid "Slack answered %1$d: %2$s" msgstr "" #: assets/build/reports.js:1 src/Attention/Wording.php:125 msgid "The home page" msgstr "" #. translators: %s: page name made from its address, e.g. "Pricing". #: src/Attention/Wording.php:134 #, php-format msgid "The %s page" msgstr "" #. translators: %s: change in percentage points, e.g. "+0.4". #. translators: %s: change in percentage points. #: assets/build/reports.js:1 src/Attention/Wording.php:194 src/Policy/Format.php:72 #, php-format,js-format msgid "%s pts" msgstr "" #. translators: %d: HTTP status code. #: src/Auth/ApiException.php:111 #, php-format msgid "Google returned an error (%d)." msgstr "" #. translators: %s: Google API name. #: src/Auth/ApiException.php:127 #, php-format msgid "The %s is not enabled in this connection's Google Cloud project. Enable it in APIs & Services, wait a minute, then try again." msgstr "" #: src/Auth/ApiException.php:135 msgid "Google's API quota was reached. For Business Profile this usually means Google hasn't approved API access for the Cloud project yet." msgstr "" #: src/Auth/ApiException.php:138 msgid "A Google permission is missing. Reconnect this connection and tick every permission." msgstr "" #: src/Auth/ApiException.php:141 msgid "This Google account or service account can't read this property. Add that account as a user in Search Console, GA4 or Business Profile, then try again." msgstr "" #: src/Auth/ApiException.php:157 msgid "Google sign-in for this connection expired or was revoked. Reconnect it. If this keeps happening every 7 days, publish your OAuth app (Google Auth Platform → Audience → Publish app)." msgstr "" #: src/Auth/ApiException.php:160 msgid "Google rejected the Client ID or secret. Check both values in Google Auth Platform → Clients." msgstr "" #: src/Auth/ApiException.php:162 msgid "The redirect URI is not registered on this OAuth client. Copy it from the Connections screen into Authorized redirect URIs." msgstr "" #: src/Auth/CredentialsFactory.php:45 msgid "This Google connection hasn't finished setting up. An administrator needs to complete it on the Connections screen." msgstr "" #: src/Auth/CredentialsFactory.php:71 msgid "This connection's saved credentials can't be read, usually because the site's security keys (salts) changed. Reconnect it on the Connections screen." msgstr "" #. translators: %s: network error message. #: src/Auth/OAuthClient.php:139 src/Google/HttpClient.php:134 #, php-format msgid "Couldn't reach Google: %s" msgstr "" #: src/Auth/OAuthClient.php:148 src/Auth/OAuthClient.php:152 src/Auth/OAuthClient.php:156 msgid "Google returned an unreadable sign-in response. Try connecting again." msgstr "" #: src/Auth/ServiceAccountCredentials.php:57 msgid "That isn't valid JSON. Upload the .json key file exactly as Google downloaded it." msgstr "" #: src/Auth/ServiceAccountCredentials.php:60 msgid "That is an OAuth client file, not a service-account key. Use \"Sign in with Google\" for OAuth clients, or create a key under IAM & Admin → Service accounts → Keys." msgstr "" #: src/Auth/ServiceAccountCredentials.php:63 msgid "That file is not a service-account key. Its \"type\" must be \"service_account\"." msgstr "" #: src/Auth/ServiceAccountCredentials.php:67 msgid "The key file fields must contain text, not nested data or numbers. Upload the .json key file exactly as Google downloaded it." msgstr "" #: src/Auth/ServiceAccountCredentials.php:73 msgid "The key file is missing its client_email or private_key. Create a new JSON key in Google Cloud (IAM & Admin → Service accounts → Keys) and upload it unchanged." msgstr "" #: src/Auth/ServiceAccountCredentials.php:76 msgid "The private key in this file can't be read. Make sure the OpenSSL PHP extension is enabled and the file wasn't edited." msgstr "" #: src/Auth/ServiceAccountCredentials.php:140 msgid "The service-account key couldn't sign a request. Upload a fresh key." msgstr "" #: src/Auth/ServiceAccountCredentials.php:155 msgid "Google rejected this service-account key. It may have been deleted or disabled in Google Cloud, or this server's clock is wrong. Upload a new key." msgstr "" #: src/Connections/Connection.php:157 msgid "Unnamed connection" msgstr "" #: src/Connections/Connection.php:167 templates/guide.php:100 msgid "Service-account key" msgstr "" #: src/Connections/Connection.php:168 templates/guide.php:100 msgid "Google sign-in (OAuth)" msgstr "" #: src/Delivery/DeliveryRepository.php:137 msgid "The mail result could not be recorded. Check delivery history before resending." msgstr "" #: src/Delivery/DeliveryRepository.php:200 msgid "The sending job stopped before it finished, so it isn't known whether this email went out. Resend it if the recipient didn't get it." msgstr "" #: src/Delivery/DeliveryRepository.php:250 msgid "Waiting" msgstr "" #: src/Delivery/DeliveryRepository.php:251 src/Delivery/RunRepository.php:394 msgid "Sending" msgstr "" #: src/Delivery/DeliveryRepository.php:252 src/Delivery/RunRepository.php:395 templates/settings/schedules.php:117 msgid "Accepted by mail system" msgstr "" #: src/Delivery/DeliveryRepository.php:253 src/Delivery/RunRepository.php:397 msgid "Retrying" msgstr "" #. translators: 1: WordPress site name, 2: report site name, 3: period. #: src/Delivery/Notifier.php:55 #, php-format msgid "[%1$s] Report ready for review: %2$s · %3$s" msgstr "" #. translators: 1: report site name, 2: period. #: src/Delivery/Notifier.php:57 #, php-format msgid "The %2$s report for %1$s is ready. It won't be sent until someone approves it." msgstr "" #: src/Delivery/Notifier.php:58 msgid "Preview it, edit the highlights and notes, then approve and send:" msgstr "" #. translators: 1: WordPress site name, 2: report site name, 3: period. #: src/Delivery/Notifier.php:61 #, php-format msgid "[%1$s] Report held, data incomplete: %2$s · %3$s" msgstr "" #. translators: 1: report site name, 2: period. #: src/Delivery/Notifier.php:63 #, php-format msgid "The %2$s report for %1$s wasn't sent because some of its data couldn't be loaded." msgstr "" #: src/Delivery/Notifier.php:64 msgid "Fix the problem and prepare it again, or send it anyway with a warning, here:" msgstr "" #: src/Delivery/Notifier.php:67 msgid "What was found:" msgstr "" #: src/Delivery/Notifier.php:77 msgid "You get this because you receive TurtleReport alerts (TurtleReport → Settings)." msgstr "" #. translators: %s: report section name. #: src/Delivery/Readiness.php:76 #, php-format msgid "%s is switched on but no GA4 metrics are chosen, so it is left out." msgstr "" #. translators: %s: report section name. #: src/Delivery/Readiness.php:78 #, php-format msgid "%s is switched on but has no data source chosen, so it is left out." msgstr "" #: src/Delivery/Readiness.php:101 msgid "Nothing to report: no section is switched on with a data source." msgstr "" #: src/Delivery/Readiness.php:146 msgid "The reporting period is invalid." msgstr "" #: src/Delivery/Readiness.php:151 msgid "The reporting period or its comparison is invalid (the dates overlap or run backwards)." msgstr "" #. translators: 1: period end date, 2: last date with settled data. #: src/Delivery/Readiness.php:161 #, php-format msgid "The period ends on %1$s, but Google data is only settled up to %2$s. Send it later." msgstr "" #. translators: %s: report section name. #: src/Delivery/Readiness.php:180 #, php-format msgid "%s returned no data at all for this period or the one before. The property may be new, the wrong one, or not collecting data yet." msgstr "" #. translators: %s: report section name. #: src/Delivery/Readiness.php:185 #, php-format msgid "%s is working; this period's numbers are genuinely zero." msgstr "" #: src/Delivery/Readiness.php:190 msgid "No GA4 events are chosen as conversions, so conversions show as none." msgstr "" #. translators: 1: comma-separated GA4 event names, 2: number of days. #: src/Delivery/Readiness.php:200 #, php-format msgid "This conversion event wasn't recorded by GA4 in the last %2$d days: %1$s. Check the event name (it is case-sensitive) and that tracking still works." msgid_plural "These conversion events weren't recorded by GA4 in the last %2$d days: %1$s. Check the event names (they are case-sensitive) and that tracking still works." msgstr[0] "" msgstr[1] "" #. translators: %s: comma-separated GA4 event names. #: src/Delivery/Readiness.php:213 #, php-format msgid "Some events are in more than one conversion group (%s). Each group counts them, but the total counts each event once." msgstr "" #. translators: 1: report section name, 2: first missing date, 3: period end date. #: src/Delivery/Readiness.php:227 #, php-format msgid "%1$s has no data yet for %2$s to %3$s, so the last days of the period may be missing." msgstr "" #. translators: 1: report section name, 2: what expired and how to reconnect. #: src/Delivery/Readiness.php:273 #, php-format msgid "%1$s couldn't load. %2$s" msgstr "" #. translators: 1: report section name, 2: details (empty). #: src/Delivery/Readiness.php:277 #, php-format msgid "%1$s couldn't load: the Google sign-in expired or was revoked. Reconnect it on the Connections screen.%2$s" msgstr "" #. translators: 1: report section name, 2: details. #: src/Delivery/Readiness.php:281 #, php-format msgid "%1$s couldn't load: Google denied access to this property. (%2$s)" msgstr "" #. translators: 1: report section name, 2: details. #: src/Delivery/Readiness.php:285 #, php-format msgid "%1$s couldn't load: an API is switched off in the Google Cloud project. (%2$s)" msgstr "" #. translators: 1: report section name, 2: details. #: src/Delivery/Readiness.php:289 #, php-format msgid "%1$s couldn't load: Google hasn't approved Business Profile API access for this Cloud project yet. (%2$s)" msgstr "" #. translators: 1: report section name, 2: details. #: src/Delivery/Readiness.php:293 #, php-format msgid "%1$s couldn't load: Google was temporarily unavailable. (%2$s)" msgstr "" #. translators: 1: report section name, 2: details. #: src/Delivery/Readiness.php:297 #, php-format msgid "%1$s couldn't load: it isn't set up correctly. (%2$s)" msgstr "" #: assets/build/reports.js:1 src/Delivery/Readiness.php:311 templates/email/report.php:417 templates/sites/edit/collect.php:41 msgid "AI assistant traffic" msgstr "" #: src/Delivery/Readiness.php:312 msgid "GA4 website traffic" msgstr "" #: src/Delivery/Readiness.php:313 src/Monitoring/HealthMonitor.php:250 src/Monitoring/HealthMonitor.php:252 src/Monitoring/HealthMonitor.php:258 src/Monitoring/HealthMonitor.php:267 templates/connections/list.php:199 templates/guide.php:104 templates/guide.php:191 templates/guide.php:71 msgid "Business Profile" msgstr "" #: src/Delivery/Readiness.php:326 msgid "Ready" msgstr "" #: src/Delivery/Readiness.php:328 templates/deliveries/run.php:169 msgid "Warning" msgstr "" #: src/Delivery/Readiness.php:330 templates/deliveries/run.php:169 msgid "Blocked" msgstr "" #: src/Delivery/ReportBuilder.php:164 msgid "The numbers behind this PDF were cleared after 120 days, so it can't be shown again. The recipients still have their copy." msgstr "" #: src/Delivery/ReportBuilder.php:166 msgid "This report was built without the detail a PDF needs. Prepare it again." msgstr "" #. translators: %s: error message. #: assets/build/reports.js:1 src/Delivery/ReportBuilder.php:178 #, php-format,js-format msgid "The PDF couldn't be created: %s" msgstr "" #. translators: 1: quarter number (1-4), 2: year. #: src/Delivery/ReportBuilder.php:211 src/Email/ReportMailer.php:480 #, php-format msgid "Q%1$d %2$s" msgstr "" #. translators: %s: period name, e.g. "September 2026" or a date range. #: src/Delivery/ReportBuilder.php:225 #, php-format msgid "%s report" msgstr "" #: src/Delivery/ReportBuilder.php:240 msgid "Last 14 days" msgstr "" #: src/Delivery/ReportBuilder.php:242 msgid "Full quarter" msgstr "" #: src/Delivery/ReportBuilder.php:244 msgid "Full month" msgstr "" #: assets/build/reports.js:1 src/Delivery/ReportBuilder.php:247 msgid "Custom range" msgstr "" #: src/Delivery/ReportBuilder.php:247 msgid "Full period" msgstr "" #: src/Delivery/RunRepository.php:131 msgid "Unknown report fields cannot be saved." msgstr "" #: src/Delivery/RunRepository.php:135 msgid "Invalid report fields cannot be saved." msgstr "" #: src/Delivery/RunRepository.php:146 msgid "The report status could not be saved. Try again." msgstr "" #: src/Delivery/RunRepository.php:391 msgid "Preparing" msgstr "" #: src/Delivery/RunRepository.php:392 templates/deliveries/list.php:85 msgid "Waiting for review" msgstr "" #: src/Delivery/RunRepository.php:393 msgid "Held: data incomplete" msgstr "" #: src/Delivery/RunRepository.php:396 msgid "Partly accepted" msgstr "" #: src/Delivery/RunRepository.php:399 msgid "Skipped" msgstr "" #: src/Delivery/ShareLinks.php:151 src/Delivery/ShareLinks.php:194 msgid "This report link isn't valid. Ask the sender for a new one." msgstr "" #: src/Delivery/ShareLinks.php:170 msgid "This report link has expired. Ask the sender for a new one." msgstr "" #: src/Delivery/ShareLinks.php:194 src/Delivery/ShareLinks.php:206 src/Delivery/ShareLinks.php:212 src/Delivery/ShareLinks.php:218 templates/deliveries/list.php:147 templates/settings/schedules.php:30 msgid "Report" msgstr "" #: src/Delivery/ShareLinks.php:212 msgid "This link was opened too many times in the last hour. Try again later." msgstr "" #: src/Delivery/ShareLinks.php:218 msgid "The report couldn't be created right now. Try again later." msgstr "" #. translators: %s: error message. #: src/Email/Dispatcher.php:404 #, php-format msgid "The report couldn't be sent: %s" msgstr "" #: src/Email/Dispatcher.php:517 msgid "The test wasn't sent: no valid email address was chosen." msgstr "" #: src/Email/Dispatcher.php:583 msgid "Nobody to send to: choose \"Everyone with access\" or add an address first." msgstr "" #: src/Email/Dispatcher.php:586 msgid "The delivery history tables are missing, so the report can't be sent from here. Deactivate and reactivate TurtleReport." msgstr "" #: src/Email/Dispatcher.php:589 msgid "This report is being sent right now. Check Email deliveries in a minute." msgstr "" #: src/Email/Dispatcher.php:620 msgid "The report couldn't be started. Try again." msgstr "" #. translators: 1: number of failed recipients, 2: total recipients, 3: error. #. translators: 1: failed count, 2: total, 3: error. #: src/Email/RecipientSender.php:153 src/Email/RecipientSender.php:221 #, php-format msgid "%1$d of %2$d recipients failed: %3$s" msgstr "" #: src/Email/RecipientSender.php:184 msgid "Not sent: this report needs review, but the delivery history tables could not be set up. Fix the database setup shown on the Email deliveries screen." msgstr "" #: src/Email/RecipientSender.php:188 msgid "Held: the report was incomplete, and the delivery history tables needed to review it could not be set up." msgstr "" #: src/Email/RecipientSender.php:195 src/Email/RunProcessor.php:204 src/Email/RunProcessor.php:210 msgid "Nobody to send to: no one can view this site yet and no other people or addresses are chosen." msgstr "" #: src/Email/ReportMailer.php:88 msgid "No valid recipients." msgstr "" #. translators: 1: failed count, 2: total, 3: error message. #: src/Email/ReportMailer.php:127 #, php-format msgid "%1$d of %2$d emails failed: %3$s" msgstr "" #: src/Email/ReportMailer.php:190 msgid "The PDF was too large to attach." msgstr "" #: src/Email/ReportMailer.php:197 msgid "The PDF couldn't be saved for attaching (the server's temporary folder isn't writable)." msgstr "" #: src/Email/ReportMailer.php:259 msgid "This isn't a valid email address." msgstr "" #: src/Email/ReportMailer.php:301 msgid "The mail system refused the message." msgstr "" #. translators: 1: overall change, e.g. "−12%", 2: comparison period, 3: improved count, 4: declined count. #: src/Email/ReportMailer.php:423 #, php-format msgid "Overall change: %1$s vs %2$s (%3$d improved, %4$d declined)" msgstr "" #. translators: 1: measure, 2: value now, 3: comparison period, 4: value then, 5: change. #: src/Email/ReportMailer.php:432 #, php-format msgid "%1$s: %2$s (%3$s: %4$s, %5$s)" msgstr "" #. translators: %s: URL of the PDF. #: src/Email/ReportMailer.php:454 #, php-format msgid "Download the PDF: %s" msgstr "" #: src/Email/ReportMailer.php:457 templates/email/report.php:484 msgid "The full report is attached as a two-page PDF." msgstr "" #: src/Email/ReportMailer.php:475 msgid "Weekly report" msgstr "" #: src/Email/ReportMailer.php:477 msgid "Last 2 weeks" msgstr "" #: src/Email/RunProcessor.php:192 msgid "Held: the report was incomplete. Review it on the Email deliveries screen." msgstr "" #. translators: %s: error message. #: src/Email/RunProcessor.php:229 #, php-format msgid "The report couldn't be prepared: %s" msgstr "" #: src/Email/SendLocks.php:98 msgid "Another background job took over sending this report. Sending continues from each recipient's recorded status." msgstr "" #: src/Google/Analytics.php:165 msgid "The GA4 property for this site is invalid. Choose it again on the site's settings." msgstr "" #: src/Google/BusinessProfile.php:102 msgid "The Business Profile location for this site is invalid. Choose it again in the site's settings." msgstr "" #: src/Google/HttpClient.php:151 msgid "Google returned an unreadable response. Try the report again later." msgstr "" #: src/Google/HttpClient.php:172 src/Google/HttpClient.php:176 msgid "Google returned an unreadable report collection. Try the report again later." msgstr "" #: src/Google/HttpClient.php:181 src/Google/HttpClient.php:189 msgid "Google returned an unreadable report value. Try the report again later." msgstr "" #: src/Google/HttpClient.php:185 msgid "Google returned unreadable report dimensions. Try the report again later." msgstr "" #: src/Google/Services.php:62 msgid "This connection doesn't have Search Console permission. Reconnect it and tick the Search Console box." msgstr "" #: src/Google/Services.php:73 msgid "This connection doesn't have Google Analytics permission. Reconnect it and tick the Analytics box." msgstr "" #: src/Google/Services.php:85 msgid "This connection can't read Business Profile. Use a Google sign-in connection with Business Profile access turned on." msgstr "" #: src/Google/ServicesFactory.php:102 msgid "Search Console has no Google connection for this site, or its connection was deleted. An administrator needs to choose one in the site's settings." msgstr "" #: src/Google/ServicesFactory.php:104 msgid "Google Analytics has no Google connection for this site, or its connection was deleted. An administrator needs to choose one in the site's settings." msgstr "" #: src/Google/ServicesFactory.php:106 msgid "Business Profile has no Google connection for this site, or its connection was deleted. An administrator needs to choose one in the site's settings." msgstr "" #: src/Google/ServicesFactory.php:108 msgid "This site has no Google connection. An administrator needs to choose one in the site's settings." msgstr "" #: src/Google/SourceLists.php:61 msgid "This connection isn't finished. Complete it on the Connections screen." msgstr "" #: assets/build/clients.js:1 src/Google/SourceLists.php:67 msgid "Service-account connections can't read Business Profile. Use a Google sign-in connection for this site to add it." msgstr "" #: assets/build/clients.js:1 src/Google/SourceLists.php:70 msgid "This connection wasn't given Business Profile access. Reconnect it on the Connections screen with \"Also read Business Profile\" ticked." msgstr "" #: src/Google/SourceLists.php:126 msgid "Unknown data source." msgstr "" #: assets/build/clients.js:1 src/Google/SourceLists.php:168 msgid "Google hasn't approved Business Profile API access for this Cloud project yet. See \"Business Profile\" in the setup guide." msgstr "" #. translators: %s: domain name. #: src/Google/SourceLists.php:182 #, php-format msgid "%s (domain)" msgstr "" #: src/Monitoring/HealthMonitor.php:156 src/Monitoring/HealthMonitor.php:173 src/Monitoring/HealthMonitor.php:175 msgid "Sign-in" msgstr "" #: src/Monitoring/HealthMonitor.php:156 msgid "Setup wasn't finished." msgstr "" #: src/Monitoring/HealthMonitor.php:156 msgid "Use \"Sign in with Google again\" below, or add the connection again." msgstr "" #: src/Monitoring/HealthMonitor.php:161 templates/sites/edit.php:164 msgid "Google account" msgstr "" #. translators: %s: email address. #: src/Monitoring/HealthMonitor.php:165 #, php-format msgid "Service account %s" msgstr "" #. translators: %s: email address. #: src/Monitoring/HealthMonitor.php:165 #, php-format msgid "Signed in as %s" msgstr "" #: src/Monitoring/HealthMonitor.php:166 msgid "Google didn't say which account signed in." msgstr "" #: src/Monitoring/HealthMonitor.php:167 msgid "This address must be added as a user in each Search Console and GA4 property." msgstr "" #: src/Monitoring/HealthMonitor.php:167 msgid "Reports can only use properties this Google account can open." msgstr "" #: src/Monitoring/HealthMonitor.php:167 msgid "Reconnect to see the account name." msgstr "" #: src/Monitoring/HealthMonitor.php:173 msgid "Google accepted the credentials." msgstr "" #: src/Monitoring/HealthMonitor.php:175 msgid "Upload a new key for this service account." msgstr "" #: src/Monitoring/HealthMonitor.php:175 msgid "Use \"Sign in with Google again\" below, with the same Google account." msgstr "" #: src/Monitoring/HealthMonitor.php:182 src/Monitoring/HealthMonitor.php:205 msgid "Permission not given." msgstr "" #: src/Monitoring/HealthMonitor.php:182 msgid "Sign in with Google again and tick the Search Console box on Google's consent screen." msgstr "" #. translators: %d: number of properties. #: src/Monitoring/HealthMonitor.php:191 src/Monitoring/HealthMonitor.php:214 #, php-format msgid "Can see %d property." msgid_plural "Can see %d properties." msgstr[0] "" msgstr[1] "" #. translators: %d: number of properties. #: src/Monitoring/HealthMonitor.php:191 msgid "Works, but can't see any property yet." msgstr "" #. translators: %s: email address. #: src/Monitoring/HealthMonitor.php:194 #, php-format msgid "In Search Console, open the property → Settings → Users and permissions → Add user, and add %s (Restricted is enough). New users can take a few minutes to appear." msgstr "" #: src/Monitoring/HealthMonitor.php:195 src/Monitoring/HealthMonitor.php:218 msgid "this account" msgstr "" #: src/Monitoring/HealthMonitor.php:205 src/Monitoring/HealthMonitor.php:211 src/Monitoring/HealthMonitor.php:244 msgid "Google Analytics 4" msgstr "" #: src/Monitoring/HealthMonitor.php:205 msgid "Sign in with Google again and tick the Analytics box on Google's consent screen." msgstr "" #. translators: %d: number of properties. #: src/Monitoring/HealthMonitor.php:214 msgid "Works, but can't see any GA4 property yet." msgstr "" #. translators: %s: email address. #: src/Monitoring/HealthMonitor.php:217 #, php-format msgid "In GA4, open Admin → Property access management → Add users, and add %s with the Viewer role." msgstr "" #: src/Monitoring/HealthMonitor.php:238 src/Monitoring/HealthMonitor.php:240 msgid "GA4 reports" msgstr "" #: src/Monitoring/HealthMonitor.php:238 msgid "Report data can be read." msgstr "" #: src/Monitoring/HealthMonitor.php:250 msgid "Not available with a service account." msgstr "" #: src/Monitoring/HealthMonitor.php:250 msgid "Google only allows Business Profile through a Google sign-in connection. Add one and choose it for Business Profile under \"Read with\" in the site's settings." msgstr "" #: src/Monitoring/HealthMonitor.php:252 msgid "Not requested (optional)." msgstr "" #: src/Monitoring/HealthMonitor.php:252 msgid "To report on Business Profile, sign in again with \"Also read Business Profile\" ticked, after Google approves your Cloud project." msgstr "" #. translators: %d: number of locations. #: src/Monitoring/HealthMonitor.php:261 #, php-format msgid "Can see %d location." msgid_plural "Can see %d locations." msgstr[0] "" msgstr[1] "" #. translators: %d: number of locations. #: src/Monitoring/HealthMonitor.php:261 msgid "Works, but can't see any location." msgstr "" #: src/Monitoring/HealthMonitor.php:262 msgid "Sign in with a Google account that manages the Business Profile, or add this account as a manager of the profile." msgstr "" #: src/Monitoring/HealthMonitor.php:269 msgid "Google hasn't approved Business Profile API access for this Cloud project yet." msgstr "" #: src/Monitoring/HealthMonitor.php:270 msgid "Apply with Google's Business Profile API contact form (\"Application for Basic API Access\"). Approval usually takes a few days; see step 5 of the setup guide." msgstr "" #. translators: %s: Google API name. #: src/Monitoring/HealthMonitor.php:292 #, php-format msgid "In Google Cloud, open APIs & Services → Library, search for \"%s\", click Enable, wait a minute and test again." msgstr "" #: src/Monitoring/HealthMonitor.php:294 msgid "Add this Google account (or service account email) as a user of the property in Google, then test again." msgstr "" #: src/Monitoring/HealthMonitor.php:296 msgid "Sign in with Google again and tick every box on the consent screen." msgstr "" #: src/Monitoring/HealthMonitor.php:298 msgid "Sign in with Google again, or upload a new key." msgstr "" #: src/Monitoring/HealthMonitor.php:301 msgid "Probably temporary. Test again in a few minutes." msgstr "" #. translators: 1: WordPress site name, 2: connection name. #: src/Monitoring/HealthMonitor.php:469 #, php-format msgid "[%1$s] Google connection \"%2$s\" stopped working" msgstr "" #. translators: %s: connection name. #: src/Monitoring/HealthMonitor.php:475 #, php-format msgid "TurtleReport can no longer read Google data through the connection \"%s\"." msgstr "" #. translators: %s: error message from Google. #: src/Monitoring/HealthMonitor.php:477 #, php-format msgid "Google said: %s" msgstr "" #: src/Monitoring/HealthMonitor.php:478 msgid "Sites affected:" msgstr "" #. translators: %s: URL of the Connections screen. #: src/Monitoring/HealthMonitor.php:480 #, php-format msgid "Reconnect it here: %s" msgstr "" #: src/Monitoring/HealthMonitor.php:481 msgid "You get one email when a connection breaks. You can change who receives these under TurtleReport → Settings." msgstr "" #. translators: %s: date the report was prepared. #. translators: %s: date. #: assets/build/reports.js:1 src/Pdf/ReportPdf.php:367 #, php-format,js-format msgid "Prepared %s" msgstr "" #. translators: 1: period type, 2: start, 3: end, 4: comparison start, 5: comparison end. #: src/Pdf/ReportPdf.php:376 #, php-format msgid "%1$s · %2$s – %3$s · compared with %4$s – %5$s" msgstr "" #. translators: 1: page number, 2: total pages. #: assets/build/reports.js:1 src/Pdf/ReportPdf.php:416 #, php-format,js-format msgid "Page %1$d of %2$d" msgstr "" #. translators: 1: page number, 2: total pages. #: assets/build/reports.js:1 src/Pdf/ReportPdf.php:416 msgid "Made with TurtleReport" msgstr "" #. translators: 1: number of clicks, 2: change. #: src/Pdf/ReportPdf.php:433 #, php-format msgid "%1$s Google click (%2$s)" msgid_plural "%1$s Google clicks (%2$s)" msgstr[0] "" msgstr[1] "" #. translators: 1: number, 2: what the site calls conversions, 3: change. #: src/Pdf/ReportPdf.php:441 #, php-format msgid "%1$s %2$s from organic search (%3$s)" msgstr "" #. translators: 1: number of calls, 2: change. #: src/Pdf/ReportPdf.php:450 #, php-format msgid "%1$s profile call (%2$s)" msgid_plural "%1$s profile calls (%2$s)" msgstr[0] "" msgstr[1] "" #. translators: 1: number of visits, 2: change. #: src/Pdf/ReportPdf.php:458 #, php-format msgid "%1$s visit from AI assistants (%2$s)" msgid_plural "%1$s visits from AI assistants (%2$s)" msgstr[0] "" msgstr[1] "" #. translators: 1: pages that gained clicks, 2: pages that lost clicks, 3: comparison period. #: assets/build/reports.js:1 src/Pdf/ReportPdf.php:470 #, php-format,js-format msgid "%1$s gained clicks and %2$s lost clicks compared with %3$s." msgstr "" #. translators: %s: number of pages. #. translators: %s: number of rows. #: assets/build/reports.js:1 src/Pdf/ReportPdf.php:472 #, php-format,js-format msgid "%s page" msgid_plural "%s pages" msgstr[0] "" msgstr[1] "" #. translators: %s: comparison period. #: assets/build/reports.js:1 src/Pdf/ReportPdf.php:478 #, php-format,js-format msgid "compared with %s." msgstr "" #. translators: %d: number of further warnings. #: src/Pdf/ReportPdf.php:507 #, php-format msgid "And %d more, smaller note." msgid_plural "And %d more, smaller notes." msgstr[0] "" msgstr[1] "" #: src/Pdf/ReportPdf.php:511 templates/email/report.php:245 msgid "Some parts of this report may be incomplete" msgstr "" #: src/Pdf/ReportPdf.php:580 templates/email/report.php:347 msgid "Highlights" msgstr "" #: src/Pdf/ReportPdf.php:580 templates/email/report.php:347 msgid "What changed this period, then suggested next steps" msgstr "" #. translators: 1: earlier period, e.g. "Aug 2026", 2: its value. #: src/Pdf/ReportPdf.php:731 src/Pdf/ReportPdf.php:736 #, php-format msgid "%1$s: %2$s" msgstr "" #. translators: %s: comparison period. #: src/Pdf/ReportPdf.php:790 templates/email/report.php:310 msgid "Headline numbers" msgstr "" #. translators: %s: comparison period. #: src/Pdf/ReportPdf.php:790 templates/email/report.php:310 #, php-format msgid "Change vs %s" msgstr "" #: src/Pdf/ReportPdf.php:837 templates/email/report.php:275 msgid "Overall change" msgstr "" #. translators: 1: comparison period, e.g. "August 2026", 2: number of measures. #: src/Pdf/ReportPdf.php:843 templates/email/report.php:283 #, php-format msgid "Average change vs %1$s across %2$d measure" msgid_plural "Average change vs %1$s across %2$d measures" msgstr[0] "" msgstr[1] "" #. translators: %d: number of measures. #: src/Pdf/ReportPdf.php:846 templates/email/report.php:292 #, php-format msgid "%d improved" msgid_plural "%d improved" msgstr[0] "" msgstr[1] "" #. translators: %d: number of measures. #: src/Pdf/ReportPdf.php:848 templates/email/report.php:294 #, php-format msgid "%d declined" msgid_plural "%d declined" msgstr[0] "" msgstr[1] "" #. translators: %d: number of measures. #: src/Pdf/ReportPdf.php:851 templates/email/report.php:297 #, php-format msgid "%d unchanged" msgid_plural "%d unchanged" msgstr[0] "" msgstr[1] "" #. translators: 1: this period, e.g. "September 2026", 2: the period before. #. translators: 1: this period, e.g. "September 2026", 2: the period before, e.g. "August 2026". #: src/Pdf/ReportPdf.php:895 templates/email/report.php:368 msgid "Green is better, red is worse" msgstr "" #. translators: 1: month label, 2: day of month. #: assets/build/reports.js:1 src/Pdf/ReportPdf.php:979 #, php-format,js-format msgid "%1$s (to %2$d)" msgstr "" #: assets/build/reports.js:1 src/Pdf/ReportPdf.php:1009 src/Reports/ReportCards.php:60 msgid "Profile calls" msgstr "" #: assets/build/reports.js:1 src/Pdf/ReportPdf.php:1015 templates/reports.php:168 msgid "Last 6 months" msgstr "" #: src/Pdf/ReportPdf.php:1015 msgid "Clicks on the left axis, the rest on the right" msgstr "" #: src/Pdf/ReportPdf.php:1189 templates/email/report.php:432 msgid "Pages that gained clicks" msgstr "" #: src/Pdf/ReportPdf.php:1189 msgid "No page gained clicks." msgstr "" #: src/Pdf/ReportPdf.php:1190 templates/email/report.php:433 msgid "Pages that lost clicks" msgstr "" #: src/Pdf/ReportPdf.php:1190 msgid "No page lost clicks." msgstr "" #: src/Pdf/ReportPdf.php:1193 msgid "Change in clicks" msgstr "" #: src/Pdf/ReportPdf.php:1263 templates/deliveries/run.php:261 msgid "Notes" msgstr "" #: src/Pdf/ReportPdf.php:1279 msgid "Google Search Console runs about two days behind. Conversions are GA4 event counts from organic search; each event is counted once." msgstr "" #: src/Pdf/ReportPdf.php:1281 msgid "Characters this PDF can't show appear as \"?\"." msgstr "" #: src/Plugin.php:503 msgid "TurtleReport does not add tracking to your public website or collect data from your visitors. Logged-in administrators connect it to Google Search Console, Google Analytics and Google Business Profile, and it shows aggregated reports from those services inside the WordPress admin to the users they allow. Google credentials are stored encrypted in this site's database. Report data is fetched from Google's APIs and cached temporarily. When scheduled email reports are used, a delivery history (recipient email addresses, send times and results) and the report figures are kept for up to 400 days so failed emails can be resent; secure PDF links, if switched on, let anyone with the link download that one report until it expires. If a Slack webhook is saved for the Client Monitor, an administrator can send one issue at a time to that Slack channel: the client's name, the issue's figures, the pages or keywords involved, an optional note and the sender's name. If the optional AI Advisor is switched on with the site owner's own API key for OpenAI, Anthropic (Claude), Google (Gemini) or xAI (Grok), a question asked by an administrator is sent to that provider with the report figures it needs (client name and website, Search Console, Google Analytics and Business Profile figures, and open issues); WordPress account names, report recipient email addresses and Google credentials are not added to that context. Questions and report fields such as search queries or page URLs may themselves contain personal information. Setup tests and model discovery also contact the selected provider when requested by an administrator, even while the AI Advisor is switched off." msgstr "" #: src/Policy/Format.php:88 src/Reports/Comparison.php:154 msgid "No change" msgstr "" #: src/Policy/Schedule.php:132 msgid "Every week (covers the last 7 days)" msgstr "" #: src/Policy/Schedule.php:133 msgid "Every 2 weeks (covers the last 14 days)" msgstr "" #: src/Policy/Schedule.php:134 msgid "Every month (covers last month)" msgstr "" #: src/Policy/Schedule.php:135 msgid "Every 3 months (covers the last full quarter)" msgstr "" #: src/Policy/Schedule.php:147 msgid "Weekly" msgstr "" #: src/Policy/Schedule.php:148 msgid "Every 2 weeks" msgstr "" #: src/Policy/Schedule.php:149 msgid "Monthly" msgstr "" #: src/Policy/Schedule.php:150 msgid "Quarterly" msgstr "" #: src/Policy/Segments.php:119 msgid "Brand searches" msgstr "" #: src/Policy/Segments.php:120 msgid "Brand" msgstr "" #: src/Policy/Segments.php:124 msgid "Enter your brand and product names, separated by commas." msgstr "" #: src/Policy/Segments.php:127 msgid "Commercial intent" msgstr "" #: src/Policy/Segments.php:128 msgid "Commercial" msgstr "" #: src/Policy/Segments.php:135 src/Policy/Segments.php:136 msgid "Informational" msgstr "" #: src/Policy/Segments.php:143 msgid "Blog pages" msgstr "" #: src/Policy/Segments.php:144 msgid "Blog" msgstr "" #: src/Policy/Segments.php:148 msgid "Change /blog/ if your articles live elsewhere, e.g. /resources/ or /news/." msgstr "" #: src/Policy/Segments.php:151 msgid "Product or service pages" msgstr "" #: src/Policy/Segments.php:152 msgid "Product & service pages" msgstr "" #: assets/build/reports.js:1 src/Policy/TrafficMetrics.php:27 msgid "Sessions" msgstr "" #: src/Policy/TrafficMetrics.php:28 templates/sites/edit/access.php:34 msgid "Users" msgstr "" #: src/Policy/TrafficMetrics.php:29 msgid "New users" msgstr "" #: src/Policy/TrafficMetrics.php:30 msgid "Engaged sessions" msgstr "" #: assets/build/reports.js:1 src/Policy/TrafficMetrics.php:31 msgid "Engagement rate" msgstr "" #: src/Policy/TrafficMetrics.php:32 msgid "Bounce rate" msgstr "" #: src/Policy/TrafficMetrics.php:33 msgid "Avg. session duration" msgstr "" #: src/Policy/TrafficMetrics.php:34 msgid "Views" msgstr "" #: src/Policy/TrafficMetrics.php:35 msgid "Key events" msgstr "" #: src/Policy/TrafficMetrics.php:36 src/Profiles/ConversionPresets.php:134 src/Profiles/ConversionPresets.php:94 msgid "Purchases" msgstr "" #: src/Policy/TrafficMetrics.php:37 msgid "Purchase revenue" msgstr "" #: src/Profiles/ConversionPresets.php:28 msgid "Lead generation" msgstr "" #: assets/build/overview.js:1 src/Profiles/ConversionPresets.php:101 src/Profiles/ConversionPresets.php:29 src/Profiles/Profile.php:495 templates/overview.php:232 templates/overview.php:260 templates/sites/edit/conversions.php:23 msgid "Leads" msgstr "" #: src/Profiles/ConversionPresets.php:175 src/Profiles/ConversionPresets.php:32 msgid "Form submissions" msgstr "" #: src/Profiles/ConversionPresets.php:36 src/Profiles/ConversionPresets.php:43 src/Profiles/ConversionPresets.php:86 msgid "Sign-ups" msgstr "" #: src/Profiles/ConversionPresets.php:42 msgid "SaaS" msgstr "" #: src/Profiles/ConversionPresets.php:46 msgid "Free sign-ups" msgstr "" #: src/Profiles/ConversionPresets.php:50 msgid "Trials started" msgstr "" #: src/Profiles/ConversionPresets.php:54 msgid "Demo requests" msgstr "" #: src/Profiles/ConversionPresets.php:58 msgid "Paid upgrades" msgstr "" #: src/Profiles/ConversionPresets.php:64 msgid "B2B service or agency" msgstr "" #: src/Profiles/ConversionPresets.php:65 msgid "Enquiries" msgstr "" #: src/Profiles/ConversionPresets.php:108 src/Profiles/ConversionPresets.php:68 msgid "Contact forms" msgstr "" #: src/Profiles/ConversionPresets.php:72 msgid "Meetings booked" msgstr "" #: src/Profiles/ConversionPresets.php:76 msgid "Brochure or case-study downloads" msgstr "" #: src/Profiles/ConversionPresets.php:82 msgid "App or product" msgstr "" #: src/Profiles/ConversionPresets.php:83 msgid "Activations" msgstr "" #: src/Profiles/ConversionPresets.php:90 msgid "App downloads" msgstr "" #: src/Profiles/ConversionPresets.php:100 msgid "Local business" msgstr "" #: src/Profiles/ConversionPresets.php:104 msgid "Quote requests" msgstr "" #: src/Profiles/ConversionPresets.php:112 msgid "Phone-link clicks" msgstr "" #: src/Profiles/ConversionPresets.php:116 msgid "Email-link clicks" msgstr "" #: src/Profiles/ConversionPresets.php:122 msgid "Online shop" msgstr "" #: src/Profiles/ConversionPresets.php:123 msgid "Sales actions" msgstr "" #: src/Profiles/ConversionPresets.php:126 msgid "Add to cart" msgstr "" #: src/Profiles/ConversionPresets.php:130 msgid "Checkouts started" msgstr "" #: src/Profiles/ConversionPresets.php:140 msgid "Blog or publisher" msgstr "" #: src/Profiles/ConversionPresets.php:141 msgid "Engagements" msgstr "" #: src/Profiles/ConversionPresets.php:144 msgid "Newsletter sign-ups" msgstr "" #: src/Profiles/ConversionPresets.php:148 msgid "File downloads" msgstr "" #: src/Profiles/ConversionPresets.php:152 msgid "Shares" msgstr "" #: src/Profiles/Priorities.php:49 msgid "Get more enquiries / quote requests" msgstr "" #: src/Profiles/Priorities.php:50 msgid "Get more calls" msgstr "" #: src/Profiles/Priorities.php:51 msgid "Get more bookings" msgstr "" #: src/Profiles/Priorities.php:52 msgid "Increase online sales" msgstr "" #: src/Profiles/Priorities.php:53 msgid "Brand awareness" msgstr "" #: src/Profiles/Priorities.php:54 templates/sites/edit.php:298 msgid "Custom goal" msgstr "" #: assets/build/clients.js:1 src/Profiles/Priorities.php:143 msgid "Homepage" msgstr "" #: assets/build/clients.js:1 src/Profiles/Priorities.php:146 msgid "Contact" msgstr "" #: assets/build/clients.js:1 src/Profiles/Priorities.php:149 msgid "Quote" msgstr "" #: assets/build/clients.js:1 src/Profiles/Priorities.php:152 msgid "Booking" msgstr "" #: src/Profiles/Priorities.php:176 msgid "Goal: more enquiries" msgstr "" #: src/Profiles/Priorities.php:178 msgid "Goal: more calls" msgstr "" #: src/Profiles/Priorities.php:180 msgid "Goal: more bookings" msgstr "" #: src/Profiles/Priorities.php:182 msgid "Goal: more sales" msgstr "" #: src/Profiles/Priorities.php:184 msgid "Goal: brand awareness" msgstr "" #. translators: %s: the agency's own goal for the client. #: src/Profiles/Priorities.php:187 #, php-format msgid "Goal: %s" msgstr "" #: assets/build/reports.js:1 src/Profiles/Priorities.php:245 msgid "Important page" msgstr "" #: src/Profiles/Priorities.php:252 msgid "Affects an important page" msgstr "" #: assets/build/reports.js:1 src/Profiles/Priorities.php:258 src/Profiles/Priorities.php:266 src/Profiles/Priorities.php:270 msgid "Priority event" msgstr "" #: src/Profiles/Profile.php:507 msgid "Phone clicks" msgstr "" #: src/Profiles/Profile.php:507 msgid "Contact clicks" msgstr "" #: src/Profiles/Profile.php:509 msgid "Leads + phone clicks" msgstr "" #: src/Profiles/Profile.php:509 msgid "Leads + clicks" msgstr "" #: src/Profiles/Profile.php:554 msgid "Untitled site" msgstr "" #: src/Reports/Comparison.php:67 src/Reports/ReportCards.php:110 msgid "Google search" msgstr "" #: src/Reports/Comparison.php:69 src/Reports/ReportCards.php:51 msgid "Times seen in Google" msgstr "" #. translators: %s: what the site calls its conversions, e.g. Leads. #. translators: %s: what the site calls conversions. #: assets/build/reports.js:1 src/Reports/Comparison.php:79 src/Reports/ReportCards.php:108 templates/email/report.php:415 #, php-format,js-format msgid "%s from organic search" msgstr "" #: assets/build/reports.js:1 src/Reports/Comparison.php:90 src/Reports/ReportCards.php:112 templates/email/report.php:416 templates/sites/edit/collect.php:47 msgid "Website traffic" msgstr "" #: src/Reports/Comparison.php:98 src/Reports/ReportCards.php:113 msgid "AI assistants" msgstr "" #: src/Reports/Comparison.php:99 src/Reports/ReportCards.php:89 msgid "Visits from AI assistants" msgstr "" #. translators: %s: what the site calls its conversions. #: assets/build/reports.js:1 src/Reports/Comparison.php:102 #, php-format,js-format msgid "%s from AI" msgstr "" #: assets/build/reports.js:1 src/Reports/Comparison.php:111 msgid "Calls" msgstr "" #: assets/build/reports.js:1 src/Reports/Comparison.php:112 msgid "Website clicks" msgstr "" #: assets/build/reports.js:1 src/Reports/Comparison.php:113 src/Reports/Insights.php:271 msgid "Direction requests" msgstr "" #: assets/build/reports.js:1 src/Reports/Comparison.php:114 msgid "Profile views" msgstr "" #: assets/build/reports.js:1 src/Reports/Comparison.php:190 templates/reports.php:155 msgid "This period" msgstr "" #. translators: 1: percent change, 2: new value, 3: old value, 4: comparison period. #: src/Reports/Insights.php:82 #, php-format msgid "Organic clicks from Google rose %1$s to %2$s (from %3$s in %4$s)." msgstr "" #. translators: 1: percent change, 2: new value, 3: old value, 4: comparison period. #: src/Reports/Insights.php:84 #, php-format msgid "Organic clicks from Google fell %1$s to %2$s (from %3$s in %4$s)." msgstr "" #. translators: 1: percent change, 2: new value. #: src/Reports/Insights.php:99 #, php-format msgid "The site appeared in Google results more often: impressions rose %1$s to %2$s." msgstr "" #. translators: 1: percent change, 2: new value. #: src/Reports/Insights.php:101 #, php-format msgid "The site appeared in Google results less often: impressions fell %1$s to %2$s." msgstr "" #. translators: 1: old position, 2: new position. #: src/Reports/Insights.php:112 #, php-format msgid "Average position in Google improved from %1$s to %2$s (lower is better)." msgstr "" #. translators: 1: old position, 2: new position. #: src/Reports/Insights.php:114 #, php-format msgid "Average position in Google worsened from %1$s to %2$s (lower is better)." msgstr "" #. translators: %s: list of pages with their click change. #: src/Reports/Insights.php:149 #, php-format msgid "This page gained the most clicks: %s." msgid_plural "These pages gained the most clicks: %s." msgstr[0] "" msgstr[1] "" #. translators: %s: list of pages with their click change. #: src/Reports/Insights.php:160 #, php-format msgid "This page lost the most clicks: %s." msgid_plural "These pages lost the most clicks: %s." msgstr[0] "" msgstr[1] "" #. translators: 1: page path, 2: comparison period, e.g. the previous 28 days. #: src/Reports/Insights.php:170 #, php-format msgid "Review the pages that lost clicks, starting with %1$s: compare its Google position and search terms with %2$s, and check whether its title, content or links changed." msgstr "" #. translators: 1: page path, 2: impressions, 3: page CTR, 4: site CTR. #: src/Reports/Insights.php:183 #, php-format msgid "Improve the Google title and description of %1$s: it was shown %2$s times on page 1 of Google, but only %3$s of searchers clicked (the site average is %4$s)." msgstr "" #. translators: 1: what the site calls conversions, 2: old value, 3: new value. #: src/Reports/Insights.php:204 #, php-format msgid "%1$s from organic search rose from %2$s to %3$s." msgstr "" #. translators: 1: what the site calls conversions, 2: old value, 3: new value. #: src/Reports/Insights.php:206 #, php-format msgid "%1$s from organic search fell from %2$s to %3$s." msgstr "" #. translators: %s: what the site calls conversions. #: src/Reports/Insights.php:219 #, php-format msgid "Organic %s fell while Google clicks held steady. Check that forms, phone links and GA4 conversion tracking still work, and which landing pages lost them." msgstr "" #. translators: 1: page path, 2: clicks, 3: what the site calls conversions. #: src/Reports/Insights.php:234 #, php-format msgid "Review %1$s: it got %2$s organic clicks but no %3$s. A clearer next step on the page (a form, button or phone number) may help." msgstr "" #. translators: %s: comma-separated GA4 event names. #: src/Reports/Insights.php:250 #, php-format msgid "Check GA4 tracking for %s: no such event was recorded in the last 90 days." msgstr "" #: src/Reports/Insights.php:269 msgid "Calls from the Business Profile" msgstr "" #: src/Reports/Insights.php:270 msgid "Website clicks from the Business Profile" msgstr "" #. translators: 1: metric name, 2: old value, 3: new value. #: src/Reports/Insights.php:281 src/Reports/Insights.php:335 #, php-format msgid "%1$s rose from %2$s to %3$s." msgstr "" #. translators: 1: metric name, 2: old value, 3: new value. #: src/Reports/Insights.php:283 src/Reports/Insights.php:337 #, php-format msgid "%1$s fell from %2$s to %3$s." msgstr "" #: src/Reports/Insights.php:290 msgid "Calls from the Business Profile fell: check that the listing's phone number, opening hours and categories are up to date." msgstr "" #. translators: 1: old value, 2: new value. #: src/Reports/Insights.php:306 #, php-format msgid "Visits from AI assistants such as ChatGPT rose from %1$s to %2$s." msgstr "" #. translators: 1: old value, 2: new value. #: src/Reports/Insights.php:308 #, php-format msgid "Visits from AI assistants such as ChatGPT fell from %1$s to %2$s." msgstr "" #: src/Reports/Insights.php:514 msgid "the same period last year" msgstr "" #. translators: %d: number of days. #: assets/build/reports.js:1 src/Reports/Insights.php:518 #, php-format,js-format msgid "the previous %d day" msgid_plural "the previous %d days" msgstr[0] "" msgstr[1] "" #: src/Reports/Insights.php:584 msgid "What improved" msgstr "" #: src/Reports/Insights.php:585 msgid "What declined" msgstr "" #: src/Reports/Insights.php:586 msgid "Suggested next steps" msgstr "" #: src/Reports/ReportCards.php:111 msgid "GA4 · each event counted once" msgstr "" #: assets/build/reports.js:1 src/Reports/ReportCards.php:112 msgid "GA4 · all channels" msgstr "" #: assets/build/reports.js:1 src/Reports/ReportCards.php:112 msgid "GA4 · organic search" msgstr "" #: src/Reports/ReportCards.php:113 msgid "ChatGPT, Gemini, Perplexity, Copilot, Claude" msgstr "" #: src/Reports/SegmentFilter.php:43 msgid "That segment doesn't apply to this part of the report." msgstr "" #: src/Reports/SegmentFilter.php:51 msgid "That segment no longer exists. Reload the page." msgstr "" #: src/Reports/Summary.php:120 msgid "An unexpected error stopped this section from loading." msgstr "" #: src/Rest/AdvisorController.php:156 msgid "The AI Advisor isn't switched on. An administrator can set it up in Settings → AI Advisor." msgstr "" #: src/Rest/MonitorController.php:246 msgid "That issue or site no longer exists. Reload the page." msgstr "" #: src/Rest/ReportController.php:154 msgid "This site no longer exists. Reload the page." msgstr "" #: src/Rest/ReportController.php:185 msgid "This part of the report is switched off for this site." msgstr "" #: src/Rest/ReportController.php:215 msgid "This report was refreshed less than a minute ago." msgstr "" #: src/Rest/ReportController.php:235 msgid "That date range isn't valid. Choose a start and an end date, with the start on or before the end." msgstr "" #. translators: %d: maximum number of days in a date range. #: src/Rest/ReportController.php:242 #, php-format msgid "That date range is too long. Choose %d days or fewer." msgstr "" #: src/Rest/SetupController.php:124 src/Rest/SetupController.php:151 msgid "This connection no longer exists. Reload the page and choose another connection." msgstr "" #: src/Support/ErrorText.php:28 msgid "An unexpected internal error occurred. Turn on WordPress debugging to see details." msgstr "" #: src/Support/OptionUpdate.php:34 msgid "Another request is saving these settings. Try again." msgstr "" #: src/Support/OptionUpdate.php:43 msgid "The settings could not be saved." msgstr "" #: src/Support/OptionUpdate.php:46 msgid "The settings could not be saved. Try again." msgstr "" #: templates/connections/list.php:29 msgid "Google connections" msgstr "" #: templates/connections/list.php:30 msgid "How TurtleReport reads Google data. Add as many as you need, such as one per Google account your clients use. Credentials are stored encrypted and never shown to report viewers." msgstr "" #: templates/connections/list.php:38 msgid "Connection setup status" msgstr "" #: templates/connections/list.php:39 msgid "Based on each connection's last check. Use \"Check connection\" to update it." msgstr "" #: assets/build/clients.js:1 assets/build/overview.js:1 templates/connections/list.php:43 templates/connections/list.php:65 templates/deliveries/list.php:84 templates/sites/edit.php:188 msgid "Needs attention" msgstr "" #: templates/connections/list.php:44 msgid "Still to do" msgstr "" #: templates/connections/list.php:45 templates/connections/list.php:65 msgid "Done" msgstr "" #: templates/connections/list.php:46 templates/guide.php:191 templates/guide.php:203 templates/guide.php:70 templates/settings/ai.php:15 templates/sites/edit.php:286 msgid "Optional" msgstr "" #: templates/connections/list.php:117 templates/connections/list.php:65 msgid "Not checked yet" msgstr "" #: templates/connections/list.php:76 msgid "How to do this" msgstr "" #: templates/connections/list.php:89 msgid "Connection" msgstr "" #: templates/connections/list.php:194 templates/connections/list.php:90 msgid "Type" msgstr "" #: templates/connections/list.php:195 templates/connections/list.php:91 msgid "Permissions" msgstr "" #: templates/connections/list.php:202 templates/connections/list.php:92 msgid "Used by" msgstr "" #: templates/connections/list.php:108 msgid "Sign-in not finished" msgstr "" #. translators: %s: error message. #: templates/connections/list.php:113 #, php-format msgid "Not working: %s" msgstr "" #. translators: %s: time since the last check, e.g. "3 hours". #: templates/connections/list.php:115 #, php-format msgid "Connected · checked %s ago" msgstr "" #: templates/connections/list.php:122 msgid "Check connection" msgstr "" #: templates/connections/list.php:126 msgid "To fix it, open \"Reconnect or change permissions\" below and sign in with the same Google account. Sites using this connection keep their settings." msgstr "" #: templates/connections/list.php:128 msgid "To fix it, open \"Replace key\" below and upload a new key for this service account. Sites using it keep their settings." msgstr "" #. translators: %s: time since the test, e.g. "3 hours". #: templates/connections/list.php:144 #, php-format msgid "Test results (%s ago)" msgstr "" #: templates/connections/list.php:165 msgid "Reconnect or change permissions" msgstr "" #: templates/connections/list.php:165 msgid "Replace key" msgstr "" #: templates/connections/list.php:170 msgid "Also read Business Profile" msgstr "" #: templates/connections/list.php:171 msgid "New client secret (optional)" msgstr "" #: templates/connections/list.php:172 msgid "Sign in with Google again" msgstr "" #: templates/connections/list.php:178 msgid "Service-account key file (JSON)" msgstr "" #: templates/connections/list.php:179 msgid "Upload new key" msgstr "" #: templates/connections/list.php:185 msgid "Delete this connection? Its saved credentials are removed and, for Google sign-ins, access is revoked." msgstr "" #: templates/connections/list.php:188 templates/deliveries/list.php:182 templates/sites/list.php:81 msgid "Delete" msgstr "" #: templates/connections/list.php:192 templates/deliveries/list.php:185 templates/deliveries/run.php:284 templates/sites/list.php:85 msgid "Show more details" msgstr "" #: templates/connections/list.php:198 msgid "Google Analytics" msgstr "" #: templates/connections/list.php:199 msgid "Business Profile (needs Google sign-in)" msgstr "" #: templates/connections/list.php:210 templates/overview.php:87 templates/sites/list.php:43 msgid "No sites yet" msgstr "" #: templates/connections/list.php:219 msgid "Add a connection" msgstr "" #: templates/connections/list.php:222 msgid "Sign in with Google" msgstr "" #: templates/connections/list.php:222 templates/guide.php:112 msgid "Recommended" msgstr "" #: templates/connections/list.php:223 msgid "Reads everything the Google account can see, including Business Profile. You need a Client ID and client secret (together called an OAuth client) from your own Google Cloud project; the setup guide shows how to create them." msgstr "" #: templates/connections/list.php:225 msgid "Google only accepts HTTPS redirect addresses (except localhost). Switch this site to HTTPS before using Google sign-in." msgstr "" #: templates/connections/list.php:227 msgid "In Google Cloud, paste this address under \"Authorized redirect URIs\" on your OAuth client:" msgstr "" #: assets/build/overview.js:1 assets/build/reports.js:1 templates/connections/list.php:230 templates/guide.php:131 templates/settings/schedules.php:229 msgid "Copy" msgstr "" #: templates/connections/list.php:234 templates/connections/list.php:247 msgid "Name (optional)" msgstr "" #: templates/connections/list.php:234 msgid "e.g. Agency Google account" msgstr "" #: templates/connections/list.php:235 msgid "Client ID" msgstr "" #: templates/connections/list.php:236 msgid "Client secret" msgstr "" #: templates/connections/list.php:237 msgid "Also read Google Business Profile (your Cloud project needs Google's API approval first)" msgstr "" #: templates/connections/list.php:238 msgid "Save and sign in with Google" msgstr "" #: templates/connections/list.php:243 msgid "Advanced: service-account key" msgstr "" #: templates/connections/list.php:243 msgid "For developers. No sign-in, but no Business Profile." msgstr "" #: templates/connections/list.php:244 msgid "No Google sign-in to keep active. You add the service account's email as a user in each Search Console and GA4 property. Business Profile is not supported." msgstr "" #: templates/connections/list.php:247 msgid "e.g. Reporting service account" msgstr "" #: templates/connections/list.php:248 msgid "Service-account JSON file" msgstr "" #: templates/connections/list.php:250 msgid "Or paste the key instead" msgstr "" #: templates/connections/list.php:253 msgid "Save key" msgstr "" #: templates/deliveries/list.php:62 msgid "Every report email, who it went to and what happened. Open a report to review it, resend failed emails, preview it or download its PDF." msgstr "" #: templates/deliveries/list.php:64 msgid "Email schedules" msgstr "" #: templates/deliveries/list.php:69 msgid "The delivery history tables couldn't be created in the database, so history isn't recorded. Scheduled emails still go out. Ask your host whether the database user may create tables, then deactivate and reactivate TurtleReport." msgstr "" #: templates/deliveries/list.php:77 msgid "Background jobs haven't run for over two hours, so scheduled report emails may be late." msgstr "" #: templates/deliveries/list.php:77 msgid "See how to set up a server cron job" msgstr "" #: templates/deliveries/list.php:83 msgid "All" msgstr "" #: templates/deliveries/list.php:86 msgid "Held" msgstr "" #: templates/deliveries/list.php:87 msgid "Failed or partial" msgstr "" #: templates/deliveries/list.php:88 msgid "Accepted" msgstr "" #: templates/deliveries/list.php:108 templates/reports.php:61 templates/sites/list.php:51 msgid "Site" msgstr "" #: templates/deliveries/list.php:110 templates/sites/edit.php:110 msgid "All sites" msgstr "" #: templates/deliveries/list.php:115 msgid "Email type" msgstr "" #: templates/deliveries/list.php:117 msgid "All email types" msgstr "" #: templates/deliveries/list.php:118 msgid "Scheduled only" msgstr "" #: templates/deliveries/list.php:119 templates/deliveries/run.php:104 msgid "Sent now, outside the schedule" msgstr "" #: templates/deliveries/list.php:120 msgid "Test emails only" msgstr "" #: templates/deliveries/list.php:122 msgid "Apply filters" msgstr "" #: templates/deliveries/list.php:128 msgid "No report emails match these filters" msgstr "" #: templates/deliveries/list.php:129 msgid "Try another status, site or email type." msgstr "" #: templates/deliveries/list.php:129 msgid "Show all report emails" msgstr "" #: templates/deliveries/list.php:131 msgid "No report emails yet" msgstr "" #: templates/deliveries/list.php:132 msgid "Scheduled report emails, emails sent with “Send now” and test emails are listed here once they are prepared or sent. To start, switch on the scheduled email report in a site's settings on the Sites screen, or use “Send test” at the bottom of a site's settings." msgstr "" #: templates/deliveries/list.php:136 msgid "Delete the ticked reports from the history? Their email records are removed too. This can't be undone, and it doesn't change any schedule." msgstr "" #: templates/deliveries/list.php:139 msgid "Delete selected" msgstr "" #: templates/deliveries/list.php:140 msgid "Deleting removes a report from this history only. It doesn't recall emails already sent or change any schedule." msgstr "" #: templates/deliveries/list.php:146 msgid "Select all" msgstr "" #: templates/deliveries/list.php:148 templates/deliveries/list.php:187 templates/deliveries/run.php:90 templates/overview.php:234 templates/overview.php:275 templates/sites/edit/email.php:153 msgid "Status" msgstr "" #: templates/deliveries/list.php:149 templates/deliveries/list.php:188 templates/deliveries/run.php:268 templates/settings/schedules.php:33 msgid "Recipients" msgstr "" #: templates/deliveries/list.php:150 templates/deliveries/list.php:220 msgid "Data check" msgstr "" #: templates/deliveries/list.php:151 templates/deliveries/list.php:227 msgid "PDF sent" msgstr "" #: templates/deliveries/list.php:152 templates/deliveries/list.php:237 templates/settings/ai.php:140 msgid "When" msgstr "" #: templates/deliveries/list.php:165 msgid "Select this report" msgstr "" #: templates/deliveries/list.php:170 msgid "Deleted site" msgstr "" #: templates/deliveries/list.php:176 msgid "Sent now" msgstr "" #: assets/build/overview.js:1 templates/deliveries/list.php:180 msgid "Open" msgstr "" #: templates/deliveries/list.php:182 templates/deliveries/run.php:156 msgid "Delete this report from the history? Its email records are removed too. This can't be undone, and it doesn't change the schedule." msgstr "" #. translators: 1: accepted count, 2: total recipients. #: templates/deliveries/list.php:194 #, php-format msgid "%1$d of %2$d accepted" msgstr "" #. translators: %d: number of failed recipients. #: templates/deliveries/list.php:204 #, php-format msgid "%d failed" msgid_plural "%d failed" msgstr[0] "" msgstr[1] "" #. translators: %d: number of recipients waiting for a retry. #: templates/deliveries/list.php:212 #, php-format msgid "%d will be retried" msgid_plural "%d will be retried" msgstr[0] "" msgstr[1] "" #: templates/deliveries/list.php:230 templates/deliveries/run.php:82 msgid "View PDF" msgstr "" #: templates/deliveries/list.php:232 msgid "Not attached" msgstr "" #: templates/deliveries/list.php:234 msgid "No PDF" msgstr "" #: templates/deliveries/list.php:262 msgid "\"Accepted by mail system\" means WordPress handed the email to your mail server. It doesn't confirm the email reached the inbox; an SMTP or email log plugin can show that." msgstr "" #: templates/deliveries/run.php:37 templates/overview.php:196 msgid "All email deliveries" msgstr "" #: templates/deliveries/run.php:39 msgid "Report not found" msgstr "" #: templates/deliveries/run.php:39 msgid "It may have been deleted with its site, or removed from the history after 400 days." msgstr "" #. translators: 1: report dates, 2: comparison dates. #. translators: 1: report date range, 2: comparison date range. #. translators: 1: date range, 2: earlier date range. #: assets/build/reports.js:1 templates/deliveries/run.php:70 templates/email/report.php:218 #, php-format,js-format msgid "%1$s, compared with %2$s" msgstr "" #: templates/deliveries/run.php:79 msgid "Open the report for these dates" msgstr "" #: templates/deliveries/run.php:80 msgid "Preview email" msgstr "" #: templates/deliveries/run.php:82 msgid "View the PDF for this email" msgstr "" #: assets/build/reports.js:1 templates/deliveries/run.php:83 templates/reports.php:54 msgid "Download PDF" msgstr "" #. translators: %s: Ready, Warning or Blocked. #: templates/deliveries/run.php:97 #, php-format msgid "Data: %s" msgstr "" #: templates/deliveries/run.php:102 msgid "Test send" msgstr "" #: templates/deliveries/run.php:108 msgid "This site is in review mode: nothing goes to clients until you approve. Check the numbers and highlights below, then approve." msgstr "" #. translators: %s: date and time. #: templates/deliveries/run.php:115 #, php-format msgid "Held because some data couldn't be loaded. It will be checked again automatically at %s." msgstr "" #: templates/deliveries/run.php:116 msgid "Held because some data couldn't be loaded. Fix the problem below and prepare it again, or send it anyway: the email and PDF then say clearly which parts are missing." msgstr "" #. translators: %s: error message. #: templates/deliveries/run.php:128 #, php-format msgid "PDF not attached: %s" msgstr "" #. translators: 1: user name, 2: date and time. #: templates/deliveries/run.php:137 #, php-format msgid "Approved by %1$s on %2$s." msgstr "" #. translators: 1: user name, 2: date and time. #: templates/deliveries/run.php:137 msgid "a deleted user" msgstr "" #: templates/deliveries/run.php:144 msgid "Approve and send" msgstr "" #: templates/deliveries/run.php:144 msgid "Send this report to its recipients now?" msgstr "" #: templates/deliveries/run.php:146 msgid "Send anyway, with a warning" msgstr "" #: templates/deliveries/run.php:146 msgid "Send this report even though some data is missing? The email and PDF will say which parts are missing." msgstr "" #: templates/deliveries/run.php:149 msgid "Prepare again from Google" msgstr "" #: templates/deliveries/run.php:150 msgid "Skip this report" msgstr "" #: templates/deliveries/run.php:150 msgid "Skip this report? It won't be sent. The next scheduled report isn't affected." msgstr "" #: templates/deliveries/run.php:153 msgid "Resend to failed recipients now" msgstr "" #: templates/deliveries/run.php:153 msgid "Send the email again to the recipients it failed for? Recipients whose email the mail system already accepted won't get it again." msgstr "" #: templates/deliveries/run.php:156 msgid "Delete from history" msgstr "" #: templates/deliveries/run.php:163 msgid "Data checks" msgstr "" #: templates/deliveries/run.php:165 msgid "Every part of the report loaded for the right period." msgstr "" #. translators: %s: link to the site's settings. #: templates/deliveries/run.php:176 #, php-format msgid "Connection and property problems are fixed on the Connections screen or in %s." msgstr "" #: templates/deliveries/run.php:184 msgid "the site's settings" msgstr "" #: templates/deliveries/run.php:196 msgid "Highlights and notes" msgstr "" #: templates/deliveries/run.php:198 msgid "Highlights are switched off for this site, so the email and PDF don't include them. Switch them on in the site's settings under \"Scheduled email report\"." msgstr "" #: templates/deliveries/run.php:204 msgid "Worked out from this report's numbers. Edit the wording, untick lines to leave them out, or add your own. Facts and suggestions are shown under separate headings. The email and PDF show up to three lines per heading, your own lines first." msgstr "" #: templates/deliveries/run.php:231 msgid "Include" msgstr "" #: templates/deliveries/run.php:232 msgid "Heading" msgstr "" #: templates/deliveries/run.php:237 msgid "Add your own line, e.g. \"Next month we will refresh the pricing page.\"" msgstr "" #: templates/deliveries/run.php:237 msgid "Text" msgstr "" #: templates/deliveries/run.php:241 msgid "Notes for this report" msgstr "" #: templates/deliveries/run.php:242 msgid "Optional. Shown in this email and PDF only, e.g. what you worked on this month." msgstr "" #: templates/deliveries/run.php:243 msgid "Save highlights and notes" msgstr "" #: templates/deliveries/run.php:248 msgid "No highlights or notes were included." msgstr "" #: templates/deliveries/run.php:270 msgid "Not sent yet. Recipients are worked out from the site's email settings when it is sent." msgstr "" #: templates/deliveries/run.php:275 msgid "Recipient" msgstr "" #: templates/deliveries/run.php:276 templates/deliveries/run.php:285 templates/settings/ai.php:141 msgid "Result" msgstr "" #: templates/deliveries/run.php:277 templates/deliveries/run.php:286 msgid "Attempts" msgstr "" #: templates/deliveries/run.php:278 templates/deliveries/run.php:287 msgid "Last attempt" msgstr "" #: templates/deliveries/run.php:279 templates/deliveries/run.php:288 templates/reports.php:122 msgid "Details" msgstr "" #. translators: %s: date and time. #: templates/deliveries/run.php:296 #, php-format msgid "Next try: %s" msgstr "" #: templates/deliveries/run.php:301 msgid "Resend" msgstr "" #: templates/deliveries/run.php:309 msgid "\"Accepted by mail system\" means WordPress handed the email to your mail server. It doesn't confirm the email reached the inbox. If the mail system doesn't accept a scheduled or \"Send now\" email, it is tried again automatically up to two more times (after 1 hour, then 3 hours). Test emails and permanent errors aren't retried. Use Resend for any recipient marked Failed." msgstr "" #: templates/email/brief.php:57 templates/email/brief.php:81 msgid "Weekly summary" msgstr "" #: templates/email/brief.php:66 msgid "This is a test send of the weekly summary." msgstr "" #: templates/email/brief.php:93 templates/overview.php:94 msgid "Clients" msgstr "" #: templates/email/brief.php:94 templates/overview.php:213 msgid "Need attention" msgstr "" #: templates/email/brief.php:95 msgid "Open issues" msgstr "" #: templates/email/brief.php:118 msgid "Open report →" msgstr "" #: assets/build/overview.js:1 templates/email/brief.php:138 msgid "Next step:" msgstr "" #. translators: %d: number of other open issues. #: templates/email/brief.php:147 #, php-format msgid "+ %d more in the Client Monitor" msgid_plural "+ %d more in the Client Monitor" msgstr[0] "" msgstr[1] "" #: templates/email/brief.php:158 msgid "No active issues:" msgstr "" #. translators: %d: number of other clients. #: templates/email/brief.php:159 #, php-format msgid "and %d more" msgstr "" #: templates/email/brief.php:164 msgid "Some client checks are incomplete" msgstr "" #: templates/email/brief.php:166 msgid "Review the Client Monitor. Earlier issues may still be listed." msgstr "" #: templates/email/brief.php:171 msgid "Open the Client Monitor" msgstr "" #: templates/email/brief.php:178 msgid "From the Client Monitor's daily check of Search Console and GA4, with each client's goals and priorities first. Change who gets it in TurtleReport → Settings → Client Monitor." msgstr "" #: templates/email/brief.php:180 templates/email/report.php:499 msgid "Made with TurtleReport." msgstr "" #: templates/email/report.php:195 msgid "This is a test send. Scheduled emails go to the recipients set on the site." msgstr "" #: templates/email/report.php:413 templates/sites/edit/collect.php:22 msgid "Search performance" msgstr "" #: templates/email/report.php:445 msgid "Change in Google clicks" msgstr "" #: templates/email/report.php:470 msgid "Download the PDF report" msgstr "" #. translators: %s: date the link stops working. #: templates/email/report.php:476 #, php-format msgid "This link works until %s. Please don't forward it." msgstr "" #: templates/email/report.php:486 msgid "The PDF couldn't be attached this time." msgstr "" #: templates/email/report.php:497 msgid "Search Console data runs about two days behind. Conversions are GA4 event counts from organic search, not unique people; the total counts each event once even if it is in several groups." msgstr "" #: templates/guide.php:41 msgid "Three steps, done once. TurtleReport uses your own Google Cloud project, so Google data comes straight to this site, not through a TurtleReport server. After that, adding a client takes a minute." msgstr "" #: templates/guide.php:52 msgid "Need help connecting Google?" msgstr "" #: templates/guide.php:53 msgid "Open a chat in ChatGPT or Claude that already has these setup steps. It walks you through one step at a time, and you can share a screenshot if you get stuck." msgstr "" #: templates/guide.php:55 msgid "Guide with ChatGPT" msgstr "" #: templates/guide.php:56 msgid "Guide with Claude" msgstr "" #: templates/guide.php:58 msgid "Your setup guide opens in the selected assistant. Keep passwords and private keys out of the chat." msgstr "" #: templates/guide.php:58 msgid "Copy the prompt" msgstr "" #: templates/guide.php:63 msgid "Setup steps" msgstr "" #: templates/guide.php:65 templates/guide.php:80 msgid "Create a Google Cloud project" msgstr "" #: templates/guide.php:65 msgid "Turn on three free Google APIs. About 5 minutes." msgstr "" #: templates/guide.php:66 templates/guide.php:95 msgid "Connect your Google account" msgstr "" #: templates/guide.php:66 msgid "Sign in with Google, or use a service-account key." msgstr "" #: templates/guide.php:170 templates/guide.php:67 msgid "Add a client website" msgstr "" #: templates/guide.php:67 msgid "Pick its properties and who can see its report." msgstr "" #: templates/guide.php:203 templates/guide.php:73 msgid "Segments, scheduled reports, branding and alerts" msgstr "" #: templates/guide.php:243 templates/guide.php:75 msgid "Troubleshooting" msgstr "" #: templates/guide.php:170 templates/guide.php:80 templates/guide.php:95 msgid "Required" msgstr "" #. translators: %s: link. #: templates/guide.php:82 #, php-format msgid "Open %s, sign in, and create a project (any name, e.g. \"TurtleReport\"). Make sure it's selected in the project picker at the top." msgstr "" #. translators: %s: link. #: templates/guide.php:83 #, php-format msgid "Go to %s and enable each of these (search, open, click Enable):" msgstr "" #: templates/guide.php:91 msgid "These APIs are free for normal reporting use. Business Profile APIs come later, only if you want them." msgstr "" #: templates/guide.php:96 msgid "Choose one method. Most agencies use Google sign-in. You can add more connections later and mix both methods; each site picks one." msgstr "" #: templates/guide.php:98 msgid "Compare the two methods" msgstr "" #: templates/guide.php:102 msgid "Best for" msgstr "" #: templates/guide.php:102 msgid "You already have access to the properties with your Google account" msgstr "" #: templates/guide.php:102 msgid "Agencies and long-running setups that shouldn't depend on a person's account" msgstr "" #: templates/guide.php:103 msgid "Search Console & GA4" msgstr "" #: templates/guide.php:103 templates/guide.php:105 msgid "Yes" msgstr "" #: templates/guide.php:103 msgid "Yes, after adding the service account as a user" msgstr "" #: templates/guide.php:104 msgid "Yes, once Google approves API access" msgstr "" #: templates/guide.php:104 msgid "No. Google doesn't allow it" msgstr "" #: templates/guide.php:105 msgid "Needs HTTPS" msgstr "" #: templates/guide.php:105 msgid "No" msgstr "" #: templates/guide.php:106 msgid "Can stop working if…" msgstr "" #: templates/guide.php:106 msgid "The app stays in \"Testing\" (7-day limit), the account loses access, or the app's access is removed from the Google account" msgstr "" #: templates/guide.php:106 msgid "The key is deleted in Google Cloud" msgstr "" #: templates/guide.php:112 msgid "Method A: Sign in with Google (OAuth)" msgstr "" #: templates/guide.php:112 msgid "Needs HTTPS. The only method that supports Business Profile." msgstr "" #: templates/guide.php:113 msgid "Set up the consent screen" msgstr "" #. translators: %s: link. #: templates/guide.php:115 #, php-format msgid "Open %s and click Get started. Enter an app name (e.g. \"TurtleReport for [your company]\") and your support email." msgstr "" #. translators: %s: link. #: templates/guide.php:116 msgid "Under Audience, choose External. Choose Internal only if you use Google Workspace and everyone who connects is in your organisation (Internal apps have no 7-day limit and no warning screen)." msgstr "" #: templates/guide.php:117 msgid "Add a contact email, accept the policy, and click Create." msgstr "" #. translators: %s: link. #: templates/guide.php:118 #, php-format msgid "Open %1$s and click Publish app so the status reads In production. Important: apps left in Testing lose their sign-in after 7 days." msgstr "" #: templates/guide.php:121 msgid "\"Google hasn't verified this app\" at sign-in? That's expected for your own app: click Advanced → Go to [app name] (unsafe). Unverified apps allow up to 100 Google accounts, plenty when only admins connect. You don't need Google verification for your own use." msgstr "" #: templates/guide.php:124 msgid "Create the OAuth client" msgstr "" #. translators: %s: link. #: templates/guide.php:126 #, php-format msgid "Open %s and click Create client." msgstr "" #. translators: %s: link. #: templates/guide.php:127 msgid "Application type: Web application. Name: anything." msgstr "" #: templates/guide.php:128 msgid "Leave Authorized JavaScript origins empty. Under Authorized redirect URIs, click Add URI and paste this exact address:" msgstr "" #: templates/guide.php:133 msgid "It must match exactly, including https and the query string. If your admin is reached through more than one address, add each one." msgstr "" #: templates/guide.php:135 msgid "Click Create. Copy the Client ID and Client secret now. Google shows the full secret only once. If you lose it, open the client and use Add secret." msgstr "" #: templates/guide.php:138 msgid "Connect in WordPress" msgstr "" #. translators: %s: link to Connections. #: templates/guide.php:140 #, php-format msgid "Go to %s → Sign in with Google, paste the Client ID and secret, and click Save and sign in with Google." msgstr "" #. translators: %s: link to Connections. #: templates/guide.php:140 templates/guide.php:163 templates/guide.php:185 msgid "TurtleReport → Connections" msgstr "" #. translators: %s: link to Connections. #: templates/guide.php:141 msgid "Choose the Google account that has access to your Search Console and GA4 properties." msgstr "" #: templates/guide.php:142 msgid "On the permissions screen, tick every box. Unticked boxes mean missing data." msgstr "" #: templates/guide.php:147 msgid "Method B: Service-account key" msgstr "" #: templates/guide.php:147 msgid "Advanced" msgstr "" #: templates/guide.php:147 msgid "No sign-in to keep active, but no Business Profile." msgstr "" #: templates/guide.php:148 msgid "Create the service account and key" msgstr "" #. translators: %s: link. #: templates/guide.php:150 #, php-format msgid "Open %s and click Create service account. Give it a name (e.g. \"turtlereport-reports\") and click Create and continue." msgstr "" #. translators: %s: link. #: templates/guide.php:151 msgid "Skip the optional Permissions and Principals with access steps. It needs no Cloud roles. Click Done." msgstr "" #: templates/guide.php:152 msgid "Click the new service account, open the Keys tab, then Add key → Create new key → JSON → Create. A .json file downloads. Treat it like a password." msgstr "" #: templates/guide.php:153 msgid "Copy the service account's email. It looks like name@your-project.iam.gserviceaccount.com." msgstr "" #: templates/guide.php:156 msgid "\"Service account key creation is disabled\"? Many Google Cloud organisations enforce the iam.disableServiceAccountKeyCreation policy by default. Someone with the Organization Policy Administrator role can turn it off for this project under IAM & Admin → Organization policies → Disable service account key creation → Manage policy → Override parent's policy → Not enforced. If that's not possible, use Method A instead." msgstr "" #: templates/guide.php:159 msgid "Give the service account access to each website" msgstr "" #. translators: %s: link. #: templates/guide.php:161 #, php-format msgid "Search Console: in %s, open the property → Settings → Users and permissions → Add user. Paste the service account email, choose Restricted, click Add. You must be an owner of the property." msgstr "" #. translators: %s: link. #: templates/guide.php:162 #, php-format msgid "GA4: in %s, click Admin (gear icon) → under Property, Property access management → + → Add users. Paste the email, untick \"Notify new users by email\", choose the Viewer role, click Add. Use Account access management instead to cover every property in the account." msgstr "" #. translators: %s: link to Connections. #: templates/guide.php:163 #, php-format msgid "Go to %s → Advanced: service-account key and upload the JSON file. TurtleReport checks the key works before saving it." msgstr "" #: templates/guide.php:165 msgid "New access can take a few minutes to show up. If a property is missing from the lists, wait, then click \"Reload lists from Google\" on the site screen." msgstr "" #. translators: %s: link to Sites. #: templates/guide.php:172 #, php-format msgid "Open %s → Add site. Pick the connection, then the Search Console property, GA4 property and (optionally) Business Profile location." msgstr "" #. translators: %s: link to Sites. #: templates/guide.php:172 msgid "TurtleReport → Sites & access" msgstr "" #. translators: %s: link to Sites. #: templates/guide.php:173 msgid "Under \"What this report collects\", switch on only what this site needs (search, conversions, AI assistant traffic, website traffic, Business Profile). Parts that are off are never fetched from Google." msgstr "" #: templates/guide.php:174 msgid "Name your conversions (Leads, Bookings, Sales…) and pick the GA4 events that count, or start from a preset. The screen lists the events recorded from organic search in the last 28 days; click one to add it." msgstr "" #: templates/guide.php:175 msgid "Under Who can see this report, tick roles or add users. Administrators see everything; everyone else sees only the sites they were given. Access is checked on the server for every request." msgstr "" #. translators: %s: link to Add New User. #: templates/guide.php:176 #, php-format msgid "For clients, %s with the Report viewer role and give them their site. They log straight in to their report and don't see the rest of wp-admin." msgstr "" #. translators: %s: link to Add New User. #: templates/guide.php:176 msgid "create a user" msgstr "" #: templates/guide.php:179 msgid "A property is missing, or sources live in different Google accounts" msgstr "" #: templates/guide.php:181 msgid "Different Google accounts per source? If, say, Search Console is in one Google account and GA4 in another, add a connection for each. In the site, pick the main connection, then choose another under Google account next to the source that lives elsewhere." msgstr "" #: templates/guide.php:182 msgid "A property isn't in the list? The list shows only what that connection's Google account can open. On the Connections screen, click Check connection: it shows the account email and what it can see, and says exactly whom to add where. After adding a user in Google, wait a few minutes and click Reload lists from Google." msgstr "" #. translators: %s: link to Connections. #: templates/guide.php:185 #, php-format msgid "Done. Click Check connection on %s any time to see what a connection can read." msgstr "" #: templates/guide.php:188 msgid "Optional and help" msgstr "" #: templates/guide.php:191 msgid "Calls and clicks from Google Maps and Search. Needs Google's approval and Method A." msgstr "" #: templates/guide.php:192 msgid "Google keeps the Business Profile APIs closed until it approves your Cloud project. Until then their quota is 0 and every request fails." msgstr "" #: templates/guide.php:194 msgid "Requirements: a verified Business Profile that has been active for at least 60 days, a website listed on it, and an application sent from an email that owns or manages the profile." msgstr "" #. translators: %s: link. #: templates/guide.php:195 #, php-format msgid "Fill in %s and choose Application for Basic API Access. You'll need your Cloud project number (shown on the console's Welcome/Dashboard page)." msgstr "" #. translators: %s: link. #: templates/guide.php:196 #, php-format msgid "Wait for the approval email (usually a few days). To check, open %s, search \"My Business Account Management API\": a Requests per minute limit of 0 means not approved yet." msgstr "" #. translators: %s: link. #: templates/guide.php:197 msgid "After approval, enable My Business Account Management API, My Business Business Information API and Business Profile Performance API in the API Library." msgstr "" #: templates/guide.php:198 msgid "On the Connections screen, open your Google sign-in connection → Reconnect or change permissions, tick Also read Business Profile, and sign in again. Use the Google account that manages the profile." msgstr "" #: templates/guide.php:203 msgid "Set these up when you need them." msgstr "" #: assets/build/reports.js:1 templates/guide.php:204 templates/sites/edit/segments.php:25 msgid "Segments" msgstr "" #: templates/guide.php:206 msgid "In a site's settings, open \"Segments (filters)\" and add presets such as Brand searches, Commercial intent, Informational or Blog pages, or build your own." msgstr "" #: templates/guide.php:207 msgid "For Brand, type your brand and product names (and common misspellings), separated by commas." msgstr "" #: templates/guide.php:208 msgid "On the report, choose a segment or its opposite (\"Not Brand\" = non-brand searches) from the Segment menu. A Segments card compares them side by side." msgstr "" #: templates/guide.php:210 msgid "Query segments filter Search Console only (GA4 has no search queries). Page segments also filter GA4 conversions and traffic by landing page. Google hides rare queries, so a query segment plus its opposite adds up to slightly less than the total." msgstr "" #: templates/guide.php:212 msgid "Scheduled email reports" msgstr "" #: templates/guide.php:214 msgid "In a site's settings, open \"Scheduled email report\", switch it on, and choose how often (every week, every 2 weeks, every month or every 3 months) and the day and time. Each email compares its period with the one just before it. Settings → \"Report recipients and schedules\" lists every site's next send, and Settings → \"Email sender\" sets the default schedule for new sites." msgstr "" #: templates/guide.php:215 msgid "Under \"Send to\", choose who gets it: everyone who can view the site (follows its access list automatically), specific WordPress users, and other email addresses." msgstr "" #: templates/guide.php:216 msgid "Save, then use \"Send a test report to\" at the bottom of the page: yourself, one person on the list, or everyone." msgstr "" #: templates/guide.php:217 msgid "Install an SMTP plugin (or use your host's mail service) so emails don't land in spam." msgstr "" #: templates/guide.php:218 msgid "Scheduling uses WP-Cron, which only runs when the site has visits. For on-time delivery on quiet sites, add a server cron job that calls wp-cron.php every 15 minutes and set DISABLE_WP_CRON to true." msgstr "" #: templates/guide.php:220 msgid "Emails contain headline numbers and a link that opens the report for exactly the period the email covers (login needed). Anyone you email sees those numbers even without a login, so only add people who should see that site." msgstr "" #: templates/guide.php:221 msgid "PDF attachment, secure links, highlights and review" msgstr "" #: templates/guide.php:223 msgid "PDF attachment: a two-page, branded PDF made on your server (no browser needed). Page 1 has the headline numbers and highlights; page 2 the six-month trend and key sections. Keyword lists stay in the online report." msgstr "" #: templates/guide.php:224 msgid "Secure link: an optional link that opens that report's PDF without logging in. It is signed, opens only that one PDF, and expires after the number of days you choose (up to 90). \"Revoke every link\" in the site settings stops all links sent so far." msgstr "" #: templates/guide.php:225 msgid "Highlights: short lines on what improved, what declined and suggested next steps, worked out from the report's own numbers. They say what changed, not why." msgstr "" #: templates/guide.php:226 msgid "Review mode: the report is prepared on schedule, you get an email, and nothing goes out until you approve it under Email deliveries. There you can preview the email, download the PDF, edit the highlights and add notes for that period." msgstr "" #: templates/guide.php:227 msgid "Data checks: before sending, every source is checked. If something couldn't load (expired sign-in, denied access, Google outage) the report is held and you're told, or, if you prefer, sent with a clear warning. Missing data is never shown as zero." msgstr "" #: templates/guide.php:228 msgid "Email deliveries lists every email per recipient. \"Accepted by mail system\" means your mail server took it; it can't confirm the inbox. Failed emails are retried twice automatically, and you can resend them; people who already got it aren't emailed again." msgstr "" #: templates/guide.php:231 msgid "Branding and comparisons" msgstr "" #: templates/guide.php:233 msgid "TurtleReport → Settings: set your brand name, logo, colour and footer text, and optionally hide the TurtleReport credit. These apply to the report screen, PDFs and emails." msgstr "" #: templates/guide.php:234 msgid "Each site can add a client logo, shown next to yours on its PDF cover and emails." msgstr "" #: templates/guide.php:235 msgid "On the report, pick the last 7 days, 28 days, 3 months or 6 months. Each is compared with the period of the same length just before it, as in Search Console. \"Custom range…\" picks any dates up to a year long." msgstr "" #: templates/guide.php:238 templates/settings/alerts.php:15 msgid "Connection failure alerts" msgstr "" #: templates/guide.php:239 msgid "Every connection is checked daily. If one breaks (for example access was removed or the Google sign-in was revoked), alert recipients get one email and administrators see a notice until it's fixed. \"Check connection\" on the Connections screen checks a connection on demand and lists what it can see." msgstr "" #: templates/guide.php:243 msgid "Common error messages and what to do about each." msgstr "" #: templates/guide.php:245 msgid "What you see" msgstr "" #: templates/guide.php:245 msgid "What to do" msgstr "" #: templates/guide.php:247 msgid "Add site: the Search Console or GA4 list only shows \"None\"" msgstr "" #: templates/guide.php:247 msgid "Read the message under the list. \"Can't see any yet\" means the Google account on the connection (its email is shown on the Connections screen) has no access to any property: sign in with the account that owns them, or add that account in Search Console or GA4. A \"permission\" or \"reconnect\" message means a box was left unticked on Google's consent screen: use \"Sign in with Google again\" and tick every box. An \"API is not enabled\" message names the API to switch on. Then click \"Reload lists from Google\"." msgstr "" #: templates/guide.php:248 msgid "\"The site editor script stopped with an error\"" msgstr "" #: templates/guide.php:248 msgid "Another plugin changed the admin scripts. Exclude TurtleReport (or the WordPress admin) from script combining, minifying or delaying in your optimisation plugin, then reload the page." msgstr "" #: templates/guide.php:249 msgid "The redirect URI on the OAuth client doesn't exactly match the one shown above. Copy it again; check http vs https and www vs no www." msgstr "" #: templates/guide.php:250 msgid "\"Access blocked\" or \"has not completed the Google verification process\"" msgstr "" #: templates/guide.php:250 msgid "The app is in Testing and your account isn't a test user. Publish the app (Audience → Publish app), or add the account under Audience → Test users." msgstr "" #: templates/guide.php:251 msgid "Sign-in stops working after about a week" msgstr "" #: templates/guide.php:251 msgid "The app is still in Testing. Publish it, then use \"Sign in with Google again\" on the connection." msgstr "" #: templates/guide.php:252 msgid "\"… API is not enabled\"" msgstr "" #: templates/guide.php:252 msgid "Enable the named API in the same Cloud project that owns the OAuth client or service account, wait a minute, and reload." msgstr "" #: templates/guide.php:253 msgid "\"can't read this property\" or a property is missing" msgstr "" #: templates/guide.php:253 msgid "The Google account or service account hasn't been added to that Search Console or GA4 property, or the access is still propagating." msgstr "" #: templates/guide.php:254 msgid "Business Profile: \"quota\" or \"waiting for approval\"" msgstr "" #: templates/guide.php:254 msgid "Google hasn't approved Basic API Access for this Cloud project yet. See Business Profile above." msgstr "" #: templates/guide.php:255 msgid "\"didn't return a long-term token\"" msgstr "" #: templates/guide.php:255 msgid "Remove the app at myaccount.google.com/permissions and connect again." msgstr "" #: templates/guide.php:256 msgid "\"saved credentials can't be read\"" msgstr "" #: templates/guide.php:256 msgid "The site's security keys in wp-config.php changed, so stored secrets can't be decrypted. Reconnect each connection. To avoid this, define TURTLEREPORT_ENCRYPTION_KEY in wp-config.php." msgstr "" #: templates/guide.php:257 msgid "Scheduled emails arrive late or not at all" msgstr "" #: templates/guide.php:257 msgid "WP-Cron needs site visits; set up a server cron job. If emails never arrive, install an SMTP plugin and check the site's email status under the site's settings." msgstr "" #: templates/guide.php:258 msgid "A segment shows no data" msgstr "" #: templates/guide.php:258 msgid "Check the words match how people search (Search Console lowercases queries) and, for page segments, that the path appears in the address, e.g. /blog/." msgstr "" #: templates/guide.php:259 msgid "Numbers differ slightly from Google's own screens" msgstr "" #: templates/guide.php:259 msgid "Search Console runs about two days behind and hides rare queries. GA4 lead counts follow the channel setting chosen for each site. Reports are saved for up to three hours when they include recent days, and up to a day for older periods; use \"Refresh data\" on the report for fresh numbers." msgstr "" #. translators: 1: start date, 2: end date, 3: comparison start, 4: comparison end. #: templates/overview.php:71 #, php-format msgid "Last 28 days (%1$s – %2$s), compared with %3$s – %4$s." msgstr "" #: templates/overview.php:81 templates/shell.php:153 templates/shell.php:155 templates/sites/edit.php:113 templates/sites/edit.php:359 templates/sites/list.php:30 msgid "Add site" msgstr "" #: templates/overview.php:88 msgid "Add a site for each client website. This page then shows how every client is doing, side by side, and which ones need attention." msgstr "" #: templates/overview.php:89 templates/reports.php:37 templates/sites/list.php:45 msgid "Add your first site" msgstr "" #. translators: %d: number of clients. #: assets/build/overview.js:1 templates/overview.php:101 #, php-format,js-format msgid "%d client needs attention" msgid_plural "%d clients need attention" msgstr[0] "" msgstr[1] "" #: templates/overview.php:102 msgid "Checking…" msgstr "" #: templates/overview.php:108 msgid "Google Search clicks, all clients" msgstr "" #: templates/overview.php:110 msgid "Last 28 days vs the 28 days before" msgstr "" #: templates/overview.php:113 msgid "Leads, all clients" msgstr "" #: templates/overview.php:115 msgid "From organic search, last 28 days vs the 28 days before" msgstr "" #: assets/build/overview.js:1 templates/overview.php:122 msgid "Client issues" msgstr "" #: assets/build/overview.js:1 templates/overview.php:125 msgid "Important performance changes across your clients, checked daily." msgstr "" #: templates/overview.php:128 msgid "Loading issues…" msgstr "" #: templates/overview.php:134 msgid "Positive signals" msgstr "" #: templates/overview.php:136 msgid "Rises in Google clicks and leads, last 28 days. A client can have positive signals and open issues at the same time." msgstr "" #: templates/overview.php:140 msgid "Connections and emails" msgstr "" #: templates/overview.php:140 msgid "Action needed" msgstr "" #: assets/build/overview.js:1 templates/overview.php:142 msgid "Checking each client…" msgstr "" #: templates/overview.php:147 msgid "Scheduled report emails" msgstr "" #. translators: %s: site name. #: templates/overview.php:149 templates/overview.php:290 templates/settings/schedules.php:54 msgid "Not scheduled" msgstr "" #: templates/overview.php:149 msgid "No site sends a report email automatically yet." msgstr "" #: templates/overview.php:150 msgid "Schedule report emails" msgstr "" #. translators: 1: sites with an automatic report email, 2: all sites. #: templates/overview.php:158 #, php-format msgid "%1$d of %2$d site" msgid_plural "%1$d of %2$d sites" msgstr[0] "" msgstr[1] "" #: templates/overview.php:165 msgid "have a report email schedule." msgstr "" #: templates/overview.php:167 msgid "Latest report email per site" msgstr "" #: templates/overview.php:169 msgid "Handed to the site's mail system. It doesn't confirm the email reached the inbox." msgstr "" #: templates/overview.php:169 msgid "accepted by mail system" msgstr "" #: templates/overview.php:170 msgid "failed" msgstr "" #: templates/overview.php:171 msgid "waiting" msgstr "" #: templates/overview.php:172 msgid "not sent yet" msgstr "" #. translators: 1: date, 2: number of report emails. #: templates/overview.php:179 #, php-format msgid "Next: %1$s (%2$d report email)" msgid_plural "Next: %1$s (%2$d report emails)" msgstr[0] "" msgstr[1] "" #. translators: %d: sites without an automatic report email. #: templates/overview.php:190 #, php-format msgid "Schedule the other %d site" msgid_plural "Schedule the other %d sites" msgstr[0] "" msgstr[1] "" #: templates/overview.php:194 templates/settings/schedules.php:18 msgid "Report recipients and schedules" msgstr "" #: templates/overview.php:206 msgid "Search clients" msgstr "" #: templates/overview.php:207 msgid "Search clients…" msgstr "" #: templates/overview.php:211 msgid "Show" msgstr "" #: templates/overview.php:214 msgid "Doing well" msgstr "" #: templates/overview.php:216 msgid "Sort by" msgstr "" #: templates/overview.php:218 msgid "Name" msgstr "" #: templates/overview.php:219 msgid "Needs attention first" msgstr "" #: templates/overview.php:220 msgid "Most clicks" msgstr "" #: templates/overview.php:221 msgid "Biggest drop in clicks" msgstr "" #: templates/overview.php:229 msgid "Client" msgstr "" #: templates/overview.php:230 templates/overview.php:251 msgid "Top issue" msgstr "" #: templates/overview.php:235 templates/overview.php:283 msgid "Report emails" msgstr "" #: templates/overview.php:257 msgid "Search Console off" msgstr "" #: templates/overview.php:265 msgid "Not tracked" msgstr "" #: templates/overview.php:292 msgid "No recipients" msgstr "" #: templates/overview.php:294 msgid "Not sent yet" msgstr "" #. translators: %s: date of the next report email. #: templates/overview.php:301 #, php-format msgid "Next %s" msgstr "" #: templates/overview.php:306 templates/settings/schedules.php:126 msgid "Send now" msgstr "" #: templates/overview.php:315 msgid "No clients match this search or filter." msgstr "" #: templates/overview.php:316 msgid "Leads count each GA4 event once. Average position: lower is better; ▲ means it moved up. “Send now” emails the latest complete report to the saved recipients without changing the schedule." msgstr "" #. translators: %s: site name. #: templates/overview.php:326 #, php-format msgid "Send the latest %s report now to its saved recipients? The schedule doesn't change." msgstr "" #: templates/reports.php:30 msgid "Connect Google to get started" msgstr "" #: templates/reports.php:31 msgid "TurtleReport reads Search Console, GA4 and Business Profile with your own Google Cloud credentials. Setup takes about 15 minutes the first time." msgstr "" #: templates/reports.php:33 msgid "Add a Google connection" msgstr "" #: templates/reports.php:34 msgid "Read the setup guide" msgstr "" #: templates/reports.php:38 msgid "A site links one Search Console property to its GA4 property and Business Profile, and decides who can see the report." msgstr "" #: templates/reports.php:39 msgid "Add a site" msgstr "" #: templates/reports.php:47 msgid "Search, conversions and visibility for each website" msgstr "" #: assets/build/reports.js:1 templates/reports.php:50 msgid "Edit site" msgstr "" #: templates/reports.php:51 msgid "Refresh data" msgstr "" #: templates/reports.php:63 msgid "Period" msgstr "" #: templates/reports.php:68 msgid "Compare" msgstr "" #: templates/reports.php:70 msgid "With the previous period" msgstr "" #: assets/build/reports.js:1 templates/reports.php:74 msgid "Segment" msgstr "" #: templates/reports.php:76 msgid "From" msgstr "" #: templates/reports.php:77 msgid "To" msgstr "" #: templates/reports.php:78 msgid "Apply" msgstr "" #: templates/reports.php:92 msgid "At a glance" msgstr "" #: templates/reports.php:95 msgid "How is it performing?" msgstr "" #: assets/build/reports.js:1 templates/reports.php:100 msgid "What needs attention?" msgstr "" #: templates/reports.php:101 msgid "What to do next" msgstr "" #: assets/build/reports.js:1 templates/reports.php:113 msgid "Daily performance" msgstr "" #: templates/reports.php:113 msgid "Select the tiles above to choose what's plotted" msgstr "" #: templates/reports.php:114 msgid "Daily performance chart" msgstr "" #: templates/reports.php:123 msgid "Open a section for its charts and tables." msgstr "" #: assets/build/reports.js:1 templates/reports.php:124 msgid "Expand all" msgstr "" #: assets/build/clients.js:1 assets/build/reports.js:1 templates/reports.php:132 templates/sites/edit/segments.php:34 msgid "Pages" msgstr "" #: templates/reports.php:132 msgid "Ranked by change in Google clicks" msgstr "" #: assets/build/reports.js:1 templates/reports.php:132 templates/reports.php:148 templates/reports.php:168 templates/reports.php:175 msgid "View details" msgstr "" #: assets/build/reports.js:1 templates/reports.php:136 msgid "Pages gaining clicks" msgstr "" #: assets/build/reports.js:1 templates/reports.php:140 msgid "Pages losing clicks" msgstr "" #: assets/build/reports.js:1 templates/reports.php:148 msgid "Keywords" msgstr "" #: templates/reports.php:148 msgid "Average position in Google Search" msgstr "" #: templates/reports.php:152 msgid "Rankings" msgstr "" #: assets/build/reports.js:1 templates/reports.php:155 msgid "Previous period" msgstr "" #: templates/reports.php:158 msgid "Biggest movers" msgstr "" #: templates/reports.php:159 msgid "Movers" msgstr "" #: templates/reports.php:170 msgid "Monthly results" msgstr "" #: templates/reports.php:175 msgid "All data" msgstr "" #: templates/reports.php:175 msgid "Every keyword, page, landing page, country and device, with filters and CSV export" msgstr "" #: assets/build/reports.js:1 templates/reports.php:179 msgid "Search keywords…" msgstr "" #: templates/reports.php:181 msgid "Download CSV" msgstr "" #: templates/reports.php:186 msgid "Show more" msgstr "" #: assets/build/reports.js:1 templates/reports.php:191 msgid "About this data" msgstr "" #: templates/settings.php:29 msgid "A background task could not finish. It will retry on the next hourly check. You can also run the queue below." msgstr "" #: templates/settings.php:34 msgid "The weekly summary needs attention. Review its last scheduled attempt and your mail setup before sending a test." msgstr "" #: templates/settings.php:177 templates/settings.php:67 templates/sites/edit.php:345 msgid "Monday" msgstr "" #: templates/settings.php:178 templates/settings.php:68 templates/sites/edit.php:346 msgid "Tuesday" msgstr "" #: templates/settings.php:179 templates/settings.php:69 templates/sites/edit.php:347 msgid "Wednesday" msgstr "" #: templates/settings.php:180 templates/settings.php:70 templates/sites/edit.php:348 msgid "Thursday" msgstr "" #: templates/settings.php:181 templates/settings.php:71 templates/sites/edit.php:349 msgid "Friday" msgstr "" #: templates/settings.php:182 templates/settings.php:72 templates/sites/edit.php:350 msgid "Saturday" msgstr "" #: templates/settings.php:183 templates/settings.php:73 templates/sites/edit.php:351 msgid "Sunday" msgstr "" #: templates/settings.php:75 msgid "Daily check on, drops of 30%+" msgstr "" #: templates/settings.php:75 msgid "Daily check on, drops of 20%+" msgstr "" #: templates/settings.php:77 msgid "Slack connected" msgstr "" #. translators: 1: weekday, 2: time. #: templates/settings.php:81 #, php-format msgid "weekly summary on %1$s at %2$s" msgstr "" #: templates/settings.php:83 msgid "weekly summary off" msgstr "" #. translators: 1: sender name, 2: reply-to address. #: templates/settings.php:88 #, php-format msgid "From “%1$s” · replies go to %2$s" msgstr "" #. translators: %s: sender name. #: templates/settings.php:90 #, php-format msgid "From “%s” · no reply-to address" msgstr "" #: templates/settings.php:95 msgid "logo set" msgstr "" #: templates/settings.php:95 msgid "no logo" msgstr "" #. translators: %s: colour, e.g. #0f6b50. #: templates/settings.php:97 #, php-format msgid "colour %s" msgstr "" #: templates/settings.php:98 msgid "TurtleReport credit hidden" msgstr "" #: templates/settings.php:98 msgid "TurtleReport credit shown" msgstr "" #. translators: %d: number of recipients. #: templates/settings.php:104 #, php-format msgid "On · emails %d person when a connection breaks" msgid_plural "On · emails %d people when a connection breaks" msgstr[0] "" msgstr[1] "" #: templates/settings.php:105 msgid "On · emails the site admin when a connection breaks" msgstr "" #: templates/settings.php:106 templates/settings.php:116 templates/sites/edit.php:98 msgid "Off" msgstr "" #: templates/settings.php:107 msgid "Daily check off" msgstr "" #. translators: 1: AI provider, 2: model, 3: key state. #: templates/settings.php:111 #, php-format msgid "On · %1$s · %2$s · %3$s" msgstr "" #: templates/settings.php:114 msgid "key saved" msgstr "" #: templates/settings.php:114 msgid "no key yet" msgstr "" #: templates/settings.php:117 msgid "Daily preloading on: each site's default report is fetched once a day" msgstr "" #: templates/settings.php:117 msgid "Daily preloading off" msgstr "" #: templates/settings.php:145 templates/settings/monitor.php:37 templates/sites/edit/email.php:81 msgid "Day of the week" msgstr "" #: templates/settings.php:151 templates/sites/edit/email.php:86 msgid "Day of the month" msgstr "" #: templates/settings.php:152 msgid "Day 3 or later, so Google has the whole month" msgstr "" #. translators: %d: day of the month. #: templates/settings.php:155 #, php-format msgid "Day %d" msgstr "" #: templates/settings.php:158 templates/settings/ai.php:145 templates/settings/monitor.php:43 templates/sites/edit/email.php:91 msgid "Time" msgstr "" #: templates/settings.php:168 msgid "Mon" msgstr "" #: templates/settings.php:169 msgid "Tue" msgstr "" #: templates/settings.php:170 msgid "Wed" msgstr "" #: templates/settings.php:171 msgid "Thu" msgstr "" #: templates/settings.php:172 msgid "Fri" msgstr "" #: templates/settings.php:173 msgid "Sat" msgstr "" #: templates/settings.php:174 msgid "Sun" msgstr "" #: templates/settings.php:190 msgid "Email schedules, branding and alerts for every site on this install." msgstr "" #: templates/settings.php:215 msgid "Save settings" msgstr "" #: assets/build/overview.js:1 assets/build/reports.js:1 templates/settings/ai.php:15 msgid "AI Advisor" msgstr "" #: templates/settings/ai.php:16 msgid "Ask about your clients (\"Which clients need attention?\") and get answers from their Search Console, GA4, Business Profile and Client Monitor data. Uses your own AI account, only runs when asked, and can't change anything." msgstr "" #: assets/build/overview.js:1 assets/build/reports.js:1 templates/settings/ai.php:19 msgid "Ask AI" msgstr "" #: templates/settings/ai.php:20 msgid "Show \"Ask AI\" on the Client Monitor and on client reports" msgstr "" #: templates/settings/ai.php:21 msgid "Only people who manage TurtleReport see it. Clients with a Report viewer login never do." msgstr "" #: templates/settings/ai.php:30 msgid "AI provider" msgstr "" #: templates/settings/ai.php:47 msgid "Use the AI account you already have. Each provider keeps its own API key, so you can switch back and forth." msgstr "" #: templates/settings/ai.php:51 msgid "API key" msgstr "" #: templates/settings/ai.php:54 templates/settings/ai.php:71 msgid "Paste a new key to replace it" msgstr "" #: templates/settings/ai.php:57 msgid "Saved" msgstr "" #. translators: %s: last characters of the API key. #: templates/settings/ai.php:60 #, php-format msgid "Key ending %s" msgstr "" #: templates/settings/ai.php:63 msgid "Test the connection" msgstr "" #: templates/settings/ai.php:65 msgid "Save to switch to this provider, then test it." msgstr "" #: templates/settings/ai.php:72 msgid "Remove this provider's key" msgstr "" #. translators: 1: where to create the key, 2: AI provider name. #: templates/settings/ai.php:80 #, php-format msgid "Create a key at %1$s. It's stored encrypted, used only from this server, and never shown in the browser again. Questions are billed to your %2$s account." msgstr "" #: templates/settings/ai.php:92 msgid "Model" msgstr "" #. translators: %s: model ID. #: assets/build/settings.js:1 templates/settings/ai.php:97 #, php-format,js-format msgid "%s (recommended)" msgstr "" #: assets/build/settings.js:1 templates/settings/ai.php:99 msgid "Other model…" msgstr "" #: templates/settings/ai.php:101 msgid "Model ID" msgstr "" #: templates/settings/ai.php:102 msgid "Load my models" msgstr "" #: templates/settings/ai.php:104 msgid "The recommended model is fast and inexpensive. \"Load my models\" lists every model your key can use; \"Test the connection\" checks the one you pick." msgstr "" #: templates/settings/ai.php:108 msgid "Usage limits" msgstr "" #: templates/settings/ai.php:111 msgid "Questions per day" msgstr "" #: templates/settings/ai.php:112 msgid "Questions per month" msgstr "" #: templates/settings/ai.php:113 msgid "Longest answer (tokens)" msgstr "" #. translators: 1: questions today, 2: questions this month, 3: tokens sent, 4: tokens received. #: templates/settings/ai.php:120 #, php-format msgid "Used today: %1$s questions. This month: %2$s questions, %3$s tokens sent and %4$s received. 0 means no limit. Each question sends about 2,000–8,000 tokens of client data." msgstr "" #: templates/settings/ai.php:133 msgid "Recent requests" msgstr "" #: templates/settings/ai.php:136 msgid "Show the last requests to the AI provider" msgstr "" #: templates/settings/ai.php:142 msgid "HTTP" msgstr "" #: templates/settings/ai.php:143 msgid "Provider code" msgstr "" #: templates/settings/ai.php:144 msgid "Tries" msgstr "" #: templates/settings/ai.php:146 msgid "Tokens in / out" msgstr "" #: templates/settings/ai.php:147 msgid "Request ID" msgstr "" #: templates/settings/ai.php:156 msgid "No credit" msgstr "" #: templates/settings/ai.php:157 msgid "Rate limited" msgstr "" #: templates/settings/ai.php:158 msgid "Invalid key" msgstr "" #: templates/settings/ai.php:159 msgid "Model unavailable" msgstr "" #: templates/settings/ai.php:160 msgid "Too much data" msgstr "" #: templates/settings/ai.php:161 msgid "Provider error" msgstr "" #: templates/settings/ai.php:162 msgid "Timed out" msgstr "" #: templates/settings/ai.php:163 msgid "Not reachable" msgstr "" #: templates/settings/ai.php:164 msgid "Not allowed" msgstr "" #: templates/settings/ai.php:165 msgid "Region blocked" msgstr "" #: templates/settings/ai.php:166 msgid "Rejected" msgstr "" #: templates/settings/ai.php:169 msgid "Answered" msgstr "" #: templates/settings/ai.php:183 msgid "The last 20 requests, to help explain a problem. Only codes, counts and times: never the API key, questions, answers or client data. Give the provider the request ID if you contact their support." msgstr "" #: templates/settings/ai.php:189 msgid "What is sent" msgstr "" #: templates/settings/ai.php:190 msgid "Only when someone asks a question: that question, and for the clients it's about, their name and website, Search Console, GA4 and Business Profile totals for the dates asked, the pages and keywords that changed most, and their Client Monitor issues. Never email addresses, user names, Google account details or keys. It goes only to the provider chosen above (with OpenAI, requests are made with \"store\" switched off)." msgstr "" #: templates/settings/ai.php:198 msgid "Confirmation" msgstr "" #. translators: 1: AI provider name, 2: user's display name, 3: date. #: templates/settings/ai.php:206 #, php-format msgid "Sending client data to %1$s was confirmed by %2$s on %3$s." msgstr "" #: templates/settings/ai.php:208 msgid "a former user" msgstr "" #. translators: %s: AI provider name. #: templates/settings/ai.php:221 #, php-format msgid "I understand that when someone asks a question, the client data described above is sent to %s, and that provider's terms apply to it." msgstr "" #: templates/settings/ai.php:228 msgid "Needed to switch the AI Advisor on, and again after changing provider. Leave it off if your agreement with a client doesn't allow sharing their data." msgstr "" #: templates/settings/alerts.php:18 msgid "Check connections daily" msgstr "" #: templates/settings/alerts.php:19 msgid "Email when a Google connection stops working" msgstr "" #: templates/settings/alerts.php:20 msgid "Every connection is tested daily. You get one email when it breaks, and administrators see a notice until it's fixed." msgstr "" #: templates/settings/alerts.php:23 msgid "Send alerts to" msgstr "" #: templates/settings/alerts.php:26 msgid "People who manage TurtleReport" msgstr "" #: templates/settings/alerts.php:34 templates/sites/edit/email.php:66 msgid "Other email addresses" msgstr "" #. translators: %s: site admin email address. #: templates/settings/alerts.php:41 #, php-format msgid "Pick who should fix broken connections, for example your developer. If nobody is chosen, alerts go to the site admin email (%s)." msgstr "" #: templates/settings/branding.php:15 msgid "Branding (white label)" msgstr "" #: templates/settings/branding.php:16 msgid "Used on the report screen, PDF reports and emailed reports. Each site can also have its own client logo." msgstr "" #: templates/settings/branding.php:19 msgid "Brand name" msgstr "" #: templates/settings/branding.php:21 msgid "Your agency or company name. Defaults to the site title." msgstr "" #: templates/settings/branding.php:24 msgid "Logo" msgstr "" #: templates/settings/branding.php:29 templates/sites/edit.php:262 msgid "Choose logo" msgstr "" #: assets/build/clients.js:1 templates/settings/branding.php:30 templates/sites/edit.php:263 templates/sites/edit/access.php:42 templates/sites/edit/conversions.php:39 templates/sites/edit/email.php:55 templates/sites/edit/segments.php:41 msgid "Remove" msgstr "" #: templates/settings/branding.php:32 msgid "A PNG or JPG with a transparent or white background works best. Shown on a white chip over your brand colour." msgstr "" #: templates/settings/branding.php:36 msgid "Brand colour" msgstr "" #: templates/settings/branding.php:38 msgid "PDF cover, email header and buttons. Pick a dark colour so white text stays readable." msgstr "" #: templates/settings/branding.php:41 msgid "Footer text" msgstr "" #: templates/settings/branding.php:42 msgid "e.g. Prepared by Acme Digital · hello@acme.com · acme.com" msgstr "" #: templates/settings/branding.php:45 msgid "Credit" msgstr "" #: templates/settings/branding.php:46 msgid "Show \"Made with TurtleReport\" on PDFs and emails, including shared reports" msgstr "" #: templates/settings/monitor.php:18 msgid "Daily performance check" msgstr "" #: templates/settings/monitor.php:19 msgid "Check every client once a day for drops in clicks, rankings and leads" msgstr "" #: templates/settings/monitor.php:20 msgid "Issues appear under \"Clients need attention\" on the Client Monitor. The check runs in the first background run of each day and reuses the report data, plus a few extra Google requests for sites with a problem." msgstr "" #: templates/settings/monitor.php:23 msgid "Issue sensitivity" msgstr "" #: templates/settings/monitor.php:26 msgid "Standard: drops of 20% or more" msgstr "" #: templates/settings/monitor.php:27 msgid "Only big drops: 30% or more" msgstr "" #: templates/settings/monitor.php:29 msgid "Small numbers never count: a site needs enough data behind it, such as 100+ Google clicks or 10+ leads in the 28 days before. Issues clear by themselves when the numbers recover." msgstr "" #: templates/settings/monitor.php:33 msgid "Weekly founder summary" msgstr "" #: templates/settings/monitor.php:35 msgid "Email a short weekly summary: how many clients need attention, the top 3 priorities and what to do about each" msgstr "" #. translators: %s: date and time of the next brief. #: templates/settings/monitor.php:54 #, php-format msgid "Next: %s" msgstr "" #: templates/settings/monitor.php:59 templates/sites/edit/email.php:23 msgid "Send to" msgstr "" #. translators: %s: site admin email address. #: templates/settings/monitor.php:66 #, php-format msgid "Built from the Client Monitor's daily check, priorities first. With no address, it goes to the site admin email (%s)." msgstr "" #: templates/settings/monitor.php:76 msgid "An attempt started, but its delivery outcome has not been recorded." msgstr "" #: templates/settings/monitor.php:77 msgid "The delivery outcome is unknown. Check your mail service before sending a test." msgstr "" #: templates/settings/monitor.php:78 msgid "WordPress accepted all messages. Inbox delivery is not confirmed." msgstr "" #: templates/settings/monitor.php:79 msgid "WordPress rejected all messages. Check your mail setup." msgstr "" #. translators: 1: messages accepted by WordPress, 2: messages rejected. #: templates/settings/monitor.php:82 #, php-format msgid "WordPress accepted %1$d messages and rejected %2$d. Inbox delivery is not confirmed." msgstr "" #. translators: %s: date and time of the last scheduled attempt. #: templates/settings/monitor.php:93 #, php-format msgid "Last scheduled attempt: %s." msgstr "" #: templates/settings/monitor.php:99 msgid "Scheduled attempts are not retried automatically, to avoid duplicate mail." msgstr "" #: templates/settings/monitor.php:104 msgid "Save and send test email" msgstr "" #: templates/settings/monitor.php:105 msgid "Saves this page, then sends the summary now to the addresses above (or the site admin email), marked as a test." msgstr "" #: templates/settings/monitor.php:109 msgid "Slack" msgstr "" #. translators: %s: last characters of the webhook URL. #: templates/settings/monitor.php:116 #, php-format msgid "Webhook ending %s" msgstr "" #: templates/settings/monitor.php:118 msgid "Send a test message" msgstr "" #: templates/settings/monitor.php:120 msgid "Paste a new webhook URL to replace it" msgstr "" #: templates/settings/monitor.php:121 msgid "Disconnect Slack" msgstr "" #: templates/settings/monitor.php:125 msgid "Lets you send a Client Monitor issue, with its numbers and checks, to your team's Slack channel. In Slack, add an \"Incoming Webhook\" for the channel and paste its URL here. Stored encrypted, and only used when someone selects \"Send to Slack\" on an issue." msgstr "" #: templates/settings/performance.php:15 msgid "Performance" msgstr "" #: templates/settings/performance.php:18 msgid "Daily preloading" msgstr "" #: templates/settings/performance.php:19 msgid "Fetch each site's default report once a day, so it usually opens without waiting for Google" msgstr "" #: templates/settings/performance.php:20 msgid "Runs in the first background run of each day, so its timing depends on WP-Cron (see the status under \"Report recipients and schedules\"). Other date ranges still load from Google when opened. Uses a few Google API requests per site per day." msgstr "" #: templates/settings/schedules.php:22 msgid "Choose whether each site's report is emailed, when and to whom. Once saved, it goes out every period without you doing anything. Each person only gets the reports they are listed on. To change the note at the top of the email or choose specific WordPress users, edit the site." msgstr "" #: templates/settings/schedules.php:31 msgid "Send automatically" msgstr "" #: templates/settings/schedules.php:32 templates/sites/edit/email.php:19 msgid "Schedule" msgstr "" #: templates/settings/schedules.php:34 msgid "Next scheduled send" msgstr "" #: templates/settings/schedules.php:35 msgid "When the last report email was handed to the site's mail system. It doesn't confirm the email reached the inbox." msgstr "" #: templates/settings/schedules.php:35 msgid "Last email" msgstr "" #: templates/settings/schedules.php:49 msgid "Review first" msgstr "" #. translators: %s: site name. #: templates/settings/schedules.php:53 #, php-format msgid "Send the report for %s automatically" msgstr "" #. translators: %s: site name. #: templates/settings/schedules.php:53 msgid "Enable" msgstr "" #: templates/settings/schedules.php:58 templates/sites/edit/email.php:74 msgid "How often" msgstr "" #. translators: %d: number of people who can view this report. #: templates/settings/schedules.php:75 #, php-format msgid "Everyone with access to this report (%d person)" msgid_plural "Everyone with access to this report (%d people)" msgstr[0] "" msgstr[1] "" #: templates/settings/schedules.php:76 msgid "Everyone with access to this report (nobody yet)" msgstr "" #: templates/settings/schedules.php:80 msgid "Email addresses" msgstr "" #: templates/settings/schedules.php:81 msgid "client@example.com, manager@example.com" msgstr "" #. translators: %d: number of WordPress users chosen in the site's settings. #: templates/settings/schedules.php:86 #, php-format msgid "+ %d WordPress user chosen in the site's settings" msgid_plural "+ %d WordPress users chosen in the site's settings" msgstr[0] "" msgstr[1] "" #: templates/settings/schedules.php:91 msgid "Nobody to send to" msgstr "" #. translators: %d: number of people who get this report. #: templates/settings/schedules.php:96 #, php-format msgid "Goes to %d person" msgid_plural "Goes to %d people" msgstr[0] "" msgstr[1] "" #: templates/settings/schedules.php:109 msgid "Overdue" msgstr "" #: templates/settings/schedules.php:119 msgid "Never" msgstr "" #: templates/settings/schedules.php:123 msgid "History" msgstr "" #: templates/settings/schedules.php:136 msgid "Save report schedules" msgstr "" #: templates/settings/schedules.php:137 msgid "Separate addresses with commas. Each person gets their own email, so nobody sees the other addresses." msgstr "" #. translators: 1: site name, 2: number of people. #: templates/settings/schedules.php:149 #, php-format msgid "Send the latest %1$s report now to %2$d person? It uses the saved recipients and doesn't change the schedule." msgid_plural "Send the latest %1$s report now to %2$d people? It uses the saved recipients and doesn't change the schedule." msgstr[0] "" msgstr[1] "" #. translators: %d: number of people. #: templates/settings/schedules.php:161 #, php-format msgid "Check by person (%d person gets reports)" msgid_plural "Check by person (%d people get reports)" msgstr[0] "" msgstr[1] "" #: templates/settings/schedules.php:165 msgid "Person" msgstr "" #: templates/settings/schedules.php:165 msgid "Reports they get" msgstr "" #. translators: 1: number of reports, 2: site names. #: templates/settings/schedules.php:184 #, php-format msgid "Overdue now: %2$s (%1$d report)." msgid_plural "Overdue now: %2$s (%1$d reports)." msgstr[0] "" msgstr[1] "" #: templates/settings/schedules.php:185 msgid "Nothing is overdue right now. The button only retries emails waiting for another attempt." msgstr "" #. translators: %s: site names. #: templates/settings/schedules.php:187 #, php-format msgid "Send the overdue reports now to their saved recipients: %s?" msgstr "" #. translators: %s: site names. #: templates/settings/schedules.php:187 msgid "Nothing is overdue. Retry emails waiting for another attempt now?" msgstr "" #. translators: %d: number of reports. #: templates/settings/schedules.php:189 #, php-format msgid "Send %d overdue report" msgid_plural "Send %d overdue reports" msgstr[0] "" msgstr[1] "" #. translators: %d: number of reports. #: templates/settings/schedules.php:189 msgid "Send overdue reports" msgstr "" #. translators: %d: number of reports. #: templates/settings/schedules.php:190 msgid "For one report, use its \"Send now\" button." msgstr "" #: templates/settings/schedules.php:193 msgid "No sites yet. Add a site, then switch on its scheduled email report." msgstr "" #: templates/settings/schedules.php:199 msgid "WP-Cron: server cron" msgstr "" #: templates/settings/schedules.php:200 msgid "WordPress's built-in cron is switched off (DISABLE_WP_CRON). Make sure a server cron job calls wp-cron.php at least every 15 minutes, or emails and health checks won't run." msgstr "" #: templates/settings/schedules.php:202 msgid "WP-Cron: behind" msgstr "" #: templates/settings/schedules.php:203 msgid "Background jobs are running late, usually because the site gets few visits or loopback requests are blocked. Add a server cron job that calls wp-cron.php every 15 minutes." msgstr "" #: templates/settings/schedules.php:205 msgid "WP-Cron: on" msgstr "" #. translators: %s: relative time, e.g. "12 mins". #: templates/settings/schedules.php:206 #, php-format msgid "Each site's email has its own cron event at its send time, and a check runs every hour in case one is missed. Next check in %s." msgstr "" #: templates/settings/schedules.php:208 msgid "WP-Cron: not scheduled" msgstr "" #: templates/settings/schedules.php:209 msgid "The hourly job isn't scheduled. Deactivate and reactivate TurtleReport to restore it." msgstr "" #. translators: %s: relative time, e.g. "12 mins". #: templates/settings/schedules.php:217 #, php-format msgid "Last background run: %s ago." msgstr "" #: templates/settings/schedules.php:220 msgid "That is longer than expected: scheduled reports may be late." msgstr "" #: templates/settings/schedules.php:225 msgid "How to make scheduled reports go out on time" msgstr "" #: templates/settings/schedules.php:226 msgid "WordPress only runs its scheduled jobs when someone visits the site. On a quiet site a report can go out hours late. A server cron job fixes that by calling WordPress every 15 minutes:" msgstr "" #: templates/settings/schedules.php:228 msgid "In your hosting control panel (cPanel, Plesk…), open Cron jobs and add one that runs every 15 minutes:" msgstr "" #: templates/settings/schedules.php:230 msgid "With WP-CLI, \"wp cron event run --due-now\" in your WordPress folder does the same." msgstr "" #: templates/settings/schedules.php:232 msgid "Then add define( 'DISABLE_WP_CRON', true ); to wp-config.php, so visitors no longer trigger it." msgstr "" #: templates/settings/schedules.php:234 msgid "Even then, a report goes out within a few minutes of its time, not to the second. Missed reports are sent at the next run; if cron was off for longer than a whole interval, only the latest period is sent." msgstr "" #: templates/settings/sender.php:17 msgid "Email sender" msgstr "" #: templates/settings/sender.php:18 msgid "How report emails show who they are from, for every site." msgstr "" #: templates/settings/sender.php:22 msgid "Sender name" msgstr "" #: templates/settings/sender.php:23 msgid "Defaults to the brand name" msgstr "" #: templates/settings/sender.php:24 msgid "Leave empty to use the brand name below. Only the name changes: the sender address stays your WordPress default (or the one your SMTP plugin sets). An SMTP plugin makes delivery more reliable." msgstr "" #: templates/settings/sender.php:27 msgid "Reply-to address" msgstr "" #: templates/settings/sender.php:29 msgid "Optional. When a recipient replies to a report email, the reply goes to this address." msgstr "" #: templates/settings/sender.php:32 msgid "Default schedule for new sites" msgstr "" #: templates/settings/sender.php:42 msgid "Only used when you add a site. Existing sites keep their own schedule in \"Report recipients and schedules\" above." msgstr "" #: templates/shell.php:48 msgid "Light" msgstr "" #: templates/shell.php:49 msgid "Dark" msgstr "" #: templates/shell.php:50 msgid "System" msgstr "" #: templates/shell.php:70 msgid "Colour theme" msgstr "" #: templates/shell.php:76 msgid "Theme" msgstr "" #. translators: %s: current colour theme (Light, Dark or System). #: templates/shell.php:77 #, php-format msgid "Colour theme: %s" msgstr "" #: templates/shell.php:102 msgid "Open TurtleReport menu" msgstr "" #: templates/shell.php:113 msgid "Close menu" msgstr "" #: templates/shell.php:117 msgid "TurtleReport navigation" msgstr "" #: templates/shell.php:128 templates/shell.php:129 msgid "Find a report" msgstr "" #: templates/shell.php:148 msgid "No report matches." msgstr "" #: templates/shell.php:150 msgid "No reports yet." msgstr "" #: templates/shell.php:162 msgid "Manage" msgstr "" #: templates/shell.php:194 templates/shell.php:196 msgid "Collapse sidebar" msgstr "" #: templates/shell.php:194 templates/shell.php:196 msgid "Expand sidebar" msgstr "" #: templates/sites/edit.php:45 msgid "Web" msgstr "" #: templates/sites/edit.php:46 msgid "Image" msgstr "" #: templates/sites/edit.php:47 msgid "Video" msgstr "" #: templates/sites/edit.php:48 msgid "News tab" msgstr "" #: templates/sites/edit.php:55 msgid "Search Console property" msgstr "" #: templates/sites/edit.php:64 msgid "GA4 property" msgstr "" #: templates/sites/edit.php:73 msgid "Business Profile location" msgstr "" #. translators: 1: parts switched on, 2: all parts. #: templates/sites/edit.php:86 #, php-format msgid "%1$d of %2$d parts switched on: search, conversions, AI traffic, website traffic and Business Profile" msgstr "" #. translators: 1: number of GA4 events, 2: what they're called. #: templates/sites/edit.php:89 #, php-format msgid "%1$d GA4 event, counted as %2$s" msgid_plural "%1$d GA4 events, counted as %2$s" msgstr[0] "" msgstr[1] "" #: templates/sites/edit.php:90 msgid "No GA4 events chosen yet" msgstr "" #. translators: %d: number of segments. #: templates/sites/edit.php:93 #, php-format msgid "%d segment" msgid_plural "%d segments" msgstr[0] "" msgstr[1] "" #: templates/sites/edit.php:94 msgid "None yet: brand vs non-brand, blog vs service pages and more" msgstr "" #. translators: %s: how often, e.g. "Monthly". #: templates/sites/edit.php:97 #, php-format msgid "On · %s" msgstr "" #. translators: 1: number of roles, 2: number of people. #: templates/sites/edit.php:101 #, php-format msgid "%1$s · %2$s, plus administrators" msgstr "" #. translators: %d: number of roles. #: templates/sites/edit.php:103 #, php-format msgid "%d role" msgid_plural "%d roles" msgstr[0] "" msgstr[1] "" #. translators: %d: number of people. #: templates/sites/edit.php:105 templates/sites/edit/email.php:31 #, php-format msgid "%d person" msgid_plural "%d people" msgstr[0] "" msgstr[1] "" #. translators: %s: site name. #: templates/sites/edit.php:113 #, php-format msgid "Edit %s" msgstr "" #. translators: %s: site name. #: templates/sites/edit.php:114 msgid "Choose the data sources, what to collect, and who sees this report." msgstr "" #: templates/sites/edit.php:117 templates/sites/list.php:75 msgid "View report" msgstr "" #: templates/sites/edit.php:123 msgid "Connect a Google account before adding a site. TurtleReport reads each site's data through that connection." msgstr "" #: templates/sites/edit.php:123 templates/sites/list.php:39 msgid "Connect Google account" msgstr "" #: templates/sites/edit.php:130 templates/sites/list.php:52 templates/sites/list.php:87 msgid "Data sources" msgstr "" #: templates/sites/edit.php:131 msgid "Choose where this site's data comes from. A \"property\" is how Search Console and GA4 name one website; a Business Profile location is the client's listing on Google Maps and Search. Each source is optional, but a site needs at least one." msgstr "" #: templates/sites/edit.php:134 msgid "Google connection" msgstr "" #: templates/sites/edit.php:137 msgid "Choose a connection…" msgstr "" #: templates/sites/edit.php:140 templates/sites/edit.php:168 msgid "not finished" msgstr "" #: templates/sites/edit.php:144 msgid "TurtleReport reads every source below through this connection, unless you choose a different Google account for that source. To add another account, use \"Connect Google account\" next to the source." msgstr "" #: templates/sites/edit.php:166 msgid "Same as the main connection" msgstr "" #: templates/sites/edit.php:172 msgid "+ Connect Google account" msgstr "" #: assets/build/clients.js:1 templates/sites/edit.php:181 msgid "This account hasn't finished signing in." msgstr "" #: assets/build/clients.js:1 templates/sites/edit.php:183 msgid "This account didn't grant Business Profile access." msgstr "" #: assets/build/clients.js:1 templates/sites/edit.php:185 msgid "This account didn't grant the permission this source needs." msgstr "" #: assets/build/clients.js:1 templates/sites/edit.php:194 msgid "Reconnect this account" msgstr "" #: assets/build/clients.js:1 templates/sites/edit.php:199 msgid "None" msgstr "" #. translators: %s: saved value that the connection can no longer see. #: assets/build/clients.js:1 templates/sites/edit.php:225 #, php-format,js-format msgid "%s (not visible to this connection)" msgstr "" #: assets/build/clients.js:1 templates/sites/edit.php:233 msgid "Choose a connection first." msgstr "" #. translators: %s: Google account email address. #: assets/build/clients.js:1 templates/sites/edit.php:238 #, php-format,js-format msgid "The Google account %s can't see any yet. Sign in with the account that owns them, or add this one as a user in Google, then select \"Reload lists from Google\"." msgstr "" #: assets/build/clients.js:1 templates/sites/edit.php:240 msgid "This connection can't see any yet. Add it as a user in Google, wait a few minutes, then select \"Reload lists from Google\"." msgstr "" #: templates/sites/edit.php:250 msgid "Display name" msgstr "" #: templates/sites/edit.php:252 msgid "Defaults to the Search Console address" msgstr "" #: templates/sites/edit.php:253 msgid "Shown to viewers and on the PDF cover. Leave empty to use the Search Console address." msgstr "" #: templates/sites/edit.php:257 msgid "Client logo" msgstr "" #: templates/sites/edit.php:265 msgid "Optional. Appears next to your own logo on this site's PDF cover and emails." msgstr "" #: templates/sites/edit.php:269 msgid "Reload lists from Google" msgstr "" #: templates/sites/edit.php:286 msgid "Goals & priorities" msgstr "" #: templates/sites/edit.php:287 msgid "What matters most for this client. The Client Monitor and the report's At a glance show issues that affect these first." msgstr "" #: templates/sites/edit.php:292 msgid "Business goal" msgstr "" #: templates/sites/edit.php:293 msgid "The main goal for this client." msgstr "" #: templates/sites/edit.php:294 msgid "Not set" msgstr "" #: templates/sites/edit.php:298 msgid "e.g. More job applications" msgstr "" #: templates/sites/edit.php:302 msgid "Important pages" msgstr "" #: templates/sites/edit.php:303 msgid "Pages that matter most for the business." msgstr "" #. translators: %s: page path. #: assets/build/clients.js:1 templates/sites/edit.php:313 #, php-format,js-format msgid "Remove %s" msgstr "" #: templates/sites/edit.php:318 msgid "Search pages or paste a URL" msgstr "" #: templates/sites/edit.php:318 msgid "Add an important page" msgstr "" #: templates/sites/edit.php:320 msgid "Add page" msgstr "" #: templates/sites/edit.php:326 msgid "Priority GA4 events" msgstr "" #: templates/sites/edit.php:327 msgid "The conversions that matter most, from \"What counts as a conversion\"." msgstr "" #: templates/sites/edit.php:328 templates/sites/edit.php:333 msgid "Add GA4 events under \"What counts as a conversion\" first." msgstr "" #: templates/sites/edit.php:359 msgid "Save site" msgstr "" #: assets/build/overview.js:1 templates/sites/edit.php:360 msgid "Cancel" msgstr "" #: templates/sites/edit.php:368 msgid "Send a test report to" msgstr "" #. translators: %s: current user's email address. #: templates/sites/edit.php:370 #, php-format msgid "Me (%s)" msgstr "" #. translators: %d: number of recipients. #: templates/sites/edit.php:372 #, php-format msgid "Everyone on the list (%d person)" msgid_plural "Everyone on the list (%d people)" msgstr[0] "" msgstr[1] "" #. translators: %d: number of recipients. #: templates/sites/edit.php:373 msgid "One person on the list" msgstr "" #: templates/sites/edit.php:380 msgid "Send test email" msgstr "" #: templates/sites/edit.php:381 msgid "Uses the saved settings and recipients. Save first if you changed anything." msgstr "" #: templates/sites/edit/access.php:15 msgid "Who can see this report" msgstr "" #: templates/sites/edit/access.php:16 msgid "Administrators always see every site. Grant access to roles, to individual users, or both. People only ever see the sites granted to them." msgstr "" #: templates/sites/edit/access.php:19 templates/sites/edit/access.php:22 msgid "Roles" msgstr "" #: templates/sites/edit/access.php:30 msgid "Granting a role gives every user with that role access to this site. For clients, prefer individual users." msgstr "" #: templates/sites/edit/access.php:46 templates/sites/edit/email.php:59 msgid "Search users by name or email" msgstr "" #. translators: 1: link to Add New User screen, 2: role name. #: templates/sites/edit/access.php:53 #, php-format msgid "Giving a client access? %1$s with the %2$s role. They'll land straight on their report and won't see the rest of wp-admin." msgstr "" #: templates/sites/edit/access.php:54 msgid "Create a user" msgstr "" #: templates/sites/edit/access.php:55 msgid "Report viewer" msgstr "" #: templates/sites/edit/collect.php:17 msgid "What this report collects" msgstr "" #: templates/sites/edit/collect.php:18 msgid "Only the parts you switch on are fetched from Google and shown to viewers. Switched-off parts are refused by the server too, not just hidden." msgstr "" #: templates/sites/edit/collect.php:23 msgid "Clicks, impressions, CTR, position, winning and losing pages, keyword rankings. Needs Search Console." msgstr "" #: templates/sites/edit/collect.php:24 msgid "Search type" msgstr "" #: templates/sites/edit/collect.php:31 msgid "Choose a Search Console property above to use this." msgstr "" #: templates/sites/edit/collect.php:35 msgid "Conversions from organic search" msgstr "" #: templates/sites/edit/collect.php:36 msgid "Counts the GA4 events you choose below (leads, bookings, sales…), with top landing pages. Needs GA4." msgstr "" #: templates/sites/edit/collect.php:37 templates/sites/edit/collect.php:43 templates/sites/edit/collect.php:60 msgid "Choose a GA4 property above to use this." msgstr "" #: templates/sites/edit/collect.php:42 msgid "Visits and conversions from ChatGPT, Gemini, Perplexity, Copilot and Claude. Needs GA4." msgstr "" #: templates/sites/edit/collect.php:48 msgid "The GA4 metrics you tick, compared with the previous period. Needs GA4." msgstr "" #: templates/sites/edit/collect.php:54 msgid "Count traffic from" msgstr "" #: templates/sites/edit/collect.php:56 msgid "Organic search only" msgstr "" #: templates/sites/edit/collect.php:57 msgid "All channels" msgstr "" #: templates/sites/edit/collect.php:65 msgid "Calls, website clicks, direction requests and profile views. Needs a Business Profile location." msgstr "" #: templates/sites/edit/collect.php:66 msgid "Choose a Business Profile location above to use this." msgstr "" #: templates/sites/edit/conversions.php:17 msgid "What counts as a conversion" msgstr "" #: templates/sites/edit/conversions.php:18 msgid "Group GA4 events however makes sense for this business. Event names are case-sensitive; separate several with commas." msgstr "" #: templates/sites/edit/conversions.php:21 msgid "Call them" msgstr "" #: templates/sites/edit/conversions.php:24 msgid "How the report names them, e.g. Leads, Bookings, Enquiries or Sales." msgstr "" #: templates/sites/edit/conversions.php:28 msgid "Start from a preset" msgstr "" #: templates/sites/edit/conversions.php:32 msgid "Groups" msgstr "" #: assets/build/clients.js:1 templates/sites/edit/conversions.php:37 msgid "Group name" msgstr "" #: assets/build/clients.js:1 templates/sites/edit/conversions.php:38 msgid "GA4 event names" msgstr "" #. translators: %s: comma-separated GA4 event names. #: assets/build/clients.js:1 templates/sites/edit/conversions.php:50 #, php-format,js-format msgid "In more than one group: %s. Each group counts these events, but the total counts each event once, so the groups add up to more than the total." msgstr "" #: templates/sites/edit/conversions.php:58 msgid "The total counts every chosen event once. Counts are GA4 events, not unique people: one visitor who sends two forms counts twice." msgstr "" #: templates/sites/edit/conversions.php:59 msgid "Add group" msgstr "" #: templates/sites/edit/conversions.php:63 msgid "Count as organic when" msgstr "" #: templates/sites/edit/conversions.php:66 msgid "The user first arrived from organic search (GA4 User acquisition report)" msgstr "" #: templates/sites/edit/conversions.php:67 msgid "The visit came from organic search (GA4 Traffic acquisition report)" msgstr "" #: templates/sites/edit/email.php:15 msgid "Scheduled email report" msgstr "" #: templates/sites/edit/email.php:16 msgid "A branded summary of this report, sent automatically with a link that opens the report for exactly the period it covers. Every send is recorded under Email deliveries." msgstr "" #: templates/sites/edit/email.php:20 msgid "Email this report on a schedule" msgstr "" #. translators: %d: maximum recipients per report. #: templates/sites/edit/email.php:29 #, php-format msgid "Viewers of this site (up to %d recipients per report)" msgstr "" #: templates/sites/edit/email.php:34 msgid "The users and roles granted this site in \"Who can see this report\". Follows access changes automatically. Administrators are only included if granted." msgstr "" #. translators: %d: number of people not listed. #. translators: %d: number of other conversion groups. #: assets/build/reports.js:1 templates/sites/edit/email.php:41 #, php-format,js-format msgid "+%d more" msgstr "" #: templates/sites/edit/email.php:48 msgid "Specific people" msgstr "" #: templates/sites/edit/email.php:54 msgid "No report access" msgstr "" #: templates/sites/edit/email.php:62 msgid "WordPress users such as an account manager. They get the email even if they can't open this report in wp-admin." msgstr "" #: templates/sites/edit/email.php:68 msgid "Up to 20 addresses, for people without a login. Each person gets their own email; emailed numbers reach them even without a login, so only add people who should see this site's data." msgstr "" #. translators: %d: day of the month. #: templates/sites/edit/email.php:88 #, php-format msgid "on day %d" msgstr "" #. translators: %s: time zone name. #: templates/sites/edit/email.php:96 #, php-format msgid "Times are in the site's time zone (%s). Monthly and quarterly emails go out on day 3 or later, once Search Console has the whole period; quarterly ones go out in January, April, July and October. Each site's email has its own WordPress cron event at that time." msgstr "" #: templates/sites/edit/email.php:100 msgid "Compared with" msgstr "" #: templates/sites/edit/email.php:101 msgid "The period just before it: last month vs the month before, the last 7 days vs the 7 days before." msgstr "" #: templates/sites/edit/email.php:104 msgid "Note at the top" msgstr "" #: templates/sites/edit/email.php:105 msgid "Optional. e.g. \"Clicks grew after the new service pages went live on the 3rd.\"" msgstr "" #: templates/sites/edit/email.php:109 templates/sites/edit/email.php:112 msgid "In the email" msgstr "" #: templates/sites/edit/email.php:113 msgid "Attach a two-page PDF of the report" msgstr "" #: templates/sites/edit/email.php:114 msgid "Made on the server with your branding: headline numbers, highlights, the six-month trend and key sections. No keyword lists." msgstr "" #: templates/sites/edit/email.php:115 msgid "Add highlights: what improved, what declined and suggested next steps" msgstr "" #: templates/sites/edit/email.php:116 msgid "Worked out from the report's own numbers, in plain English. They state what changed, not why. In review mode you can edit them before sending." msgstr "" #: templates/sites/edit/email.php:117 msgid "Add a secure link to download the PDF without logging in" msgstr "" #: templates/sites/edit/email.php:119 msgid "The link stops working after" msgstr "" #: templates/sites/edit/email.php:121 msgid "days. It opens only that report's PDF, nothing else. Anyone the email is forwarded to can open it until then." msgstr "" #: templates/sites/edit/email.php:124 msgid "Revoke every link sent so far for this site" msgstr "" #: templates/sites/edit/email.php:130 templates/sites/edit/email.php:133 msgid "Before sending" msgstr "" #: templates/sites/edit/email.php:134 msgid "Send automatically on the schedule" msgstr "" #: templates/sites/edit/email.php:135 msgid "Prepare it on the schedule, then wait for me to review and approve it" msgstr "" #: templates/sites/edit/email.php:136 msgid "In review mode, the connection alert recipients in Settings get an email when a report is ready. Approve it under Email deliveries; nothing goes to clients before that." msgstr "" #: templates/sites/edit/email.php:141 templates/sites/edit/email.php:144 msgid "If data is missing" msgstr "" #: templates/sites/edit/email.php:145 msgid "Hold the report and alert me (recommended)" msgstr "" #: templates/sites/edit/email.php:146 msgid "Send it anyway, with a clear warning about the missing parts" msgstr "" #: templates/sites/edit/email.php:147 msgid "Before every send, each data source is checked: an expired Google sign-in, denied access or an outage blocks the report. When Google is only temporarily unavailable, a held report is checked again up to three times, an hour apart. Missing data is never shown as zero." msgstr "" #. translators: %s: date and time. #: templates/sites/edit/email.php:156 #, php-format msgid "Next email: %s" msgstr "" #. translators: 1: date and time, 2: number of recipients. #: templates/sites/edit/email.php:159 #, php-format msgid "Last sent %1$s: %2$d email accepted by the mail system." msgid_plural "Last sent %1$s: %2$d emails accepted by the mail system." msgstr[0] "" msgstr[1] "" #. translators: %s: error message. #: templates/sites/edit/email.php:162 #, php-format msgid "Last attempt failed: %s" msgstr "" #: templates/sites/edit/email.php:165 msgid "Not scheduled." msgstr "" #: templates/sites/edit/email.php:167 msgid "Delivery history for this site" msgstr "" #: templates/sites/edit/segments.php:17 msgid "Segments (filters)" msgstr "" #: templates/sites/edit/segments.php:18 msgid "Split the report into the views people care about: brand vs non-brand searches, commercial vs informational intent, blog vs product pages. Viewers pick a segment (or its opposite) from the report, and a comparison card shows them side by side." msgstr "" #: templates/sites/edit/segments.php:21 msgid "Add a preset" msgstr "" #: assets/build/clients.js:1 templates/sites/edit/segments.php:31 msgid "Name, e.g. Brand" msgstr "" #: assets/build/clients.js:1 templates/sites/edit/segments.php:31 msgid "Segment name" msgstr "" #: assets/build/clients.js:1 templates/sites/edit/segments.php:32 msgid "Applies to" msgstr "" #: assets/build/clients.js:1 templates/sites/edit/segments.php:33 msgid "Search queries" msgstr "" #: assets/build/clients.js:1 templates/sites/edit/segments.php:36 msgid "Match" msgstr "" #: assets/build/clients.js:1 templates/sites/edit/segments.php:37 msgid "contains any of" msgstr "" #: assets/build/clients.js:1 templates/sites/edit/segments.php:38 msgid "matches regex" msgstr "" #: assets/build/clients.js:1 templates/sites/edit/segments.php:40 msgid "Words separated by commas" msgstr "" #: assets/build/clients.js:1 templates/sites/edit/segments.php:40 msgid "Words or pattern" msgstr "" #: templates/sites/edit/segments.php:45 msgid "Add segment" msgstr "" #: templates/sites/edit/segments.php:46 msgid "Search-query segments filter Search Console data. Page segments also filter GA4 conversions and traffic by landing page. Matching ignores upper/lower case. Note: Google hides rare queries, so query segments and their opposites add up to slightly less than the total." msgstr "" #: templates/sites/list.php:27 msgid "Each site is one website's report. Administrators see every site; everyone else sees only the sites granted to them or to their role." msgstr "" #: templates/sites/list.php:37 msgid "Connect a Google account first" msgstr "" #: templates/sites/list.php:38 msgid "Sites read their data through a connection: a Google sign-in or a service-account key." msgstr "" #: templates/sites/list.php:44 msgid "Add a site for each client website: choose its Search Console, GA4 or Business Profile data and who can see its report." msgstr "" #: templates/sites/list.php:53 templates/sites/list.php:94 msgid "Connected Google account" msgstr "" #: templates/sites/list.php:104 templates/sites/list.php:54 msgid "Report access" msgstr "" #: templates/sites/list.php:76 msgid "Edit" msgstr "" #. translators: %s: site name. #: templates/sites/list.php:78 #, php-format msgid "Delete \"%s\"? Everyone loses access to its report. Google data is not affected." msgstr "" #: templates/sites/list.php:89 msgid "Search Console not set" msgstr "" #: templates/sites/list.php:90 msgid "GA4 not set" msgstr "" #: templates/sites/list.php:91 msgid "Business Profile not set" msgstr "" #: templates/sites/list.php:98 msgid "Not finished" msgstr "" #: templates/sites/list.php:101 msgid "None chosen. Edit the site to choose one." msgstr "" #: templates/sites/list.php:106 msgid "Administrators" msgstr "" #. translators: %d: number of users. #: templates/sites/list.php:112 #, php-format msgid "%d user" msgid_plural "%d users" msgstr[0] "" msgstr[1] "" #. translators: %s: email interval, e.g. "Monthly" or "Every 2 weeks". #: templates/sites/list.php:120 #, php-format msgid "Emailed: %s" msgstr "" #: templates/sites/list.php:122 msgid "last send failed" msgstr "" #: assets/build/overview.js:1 assets/build/reports.js:1 msgid "Explain this issue and what my team should check first" msgstr "" #: assets/build/overview.js:1 assets/build/reports.js:1 msgid "What else in the data relates to this?" msgstr "" #: assets/build/overview.js:1 assets/build/reports.js:1 msgid "Draft a Slack message for my team" msgstr "" #: assets/build/overview.js:1 assets/build/reports.js:1 msgid "Which clients need attention this week?" msgstr "" #: assets/build/overview.js:1 assets/build/reports.js:1 msgid "Which open issues should my team look at first?" msgstr "" #: assets/build/overview.js:1 assets/build/reports.js:1 msgid "Which clients grew the most, and where did the growth come from?" msgstr "" #: assets/build/overview.js:1 assets/build/reports.js:1 msgid "Are any clients losing leads from organic search?" msgstr "" #: assets/build/overview.js:1 assets/build/reports.js:1 msgid "Summarise this client’s performance" msgstr "" #: assets/build/overview.js:1 assets/build/reports.js:1 msgid "What does the data show about the change in Google clicks?" msgstr "" #: assets/build/overview.js:1 assets/build/reports.js:1 msgid "Which pages and keywords have the most room to grow?" msgstr "" #: assets/build/overview.js:1 assets/build/reports.js:1 msgid "How have leads from organic search changed, and on which pages?" msgstr "" #: assets/build/overview.js:1 assets/build/reports.js:1 msgid "Suggestions from your client data. Check them before acting." msgstr "" #: assets/build/overview.js:1 assets/build/reports.js:1 msgid "Clear this chat and start again" msgstr "" #: assets/build/overview.js:1 assets/build/reports.js:1 msgid "New chat" msgstr "" #: assets/build/overview.js:1 assets/build/reports.js:1 msgid "Close. Your chat stays until you leave this page." msgstr "" #: assets/build/overview.js:1 assets/build/reports.js:1 msgid "Close AI Advisor (your chat is kept)" msgstr "" #: assets/build/overview.js:1 assets/build/reports.js:1 msgid "Ask about" msgstr "" #. translators: %d: number of clients. #: assets/build/overview.js:1 assets/build/reports.js:1 #, js-format msgid "All clients (%d)" msgid_plural "All clients (%d)" msgstr[0] "" msgstr[1] "" #: assets/build/overview.js:1 assets/build/reports.js:1 msgid "About this issue" msgstr "" #: assets/build/overview.js:1 assets/build/reports.js:1 msgid "Ask about the client instead" msgstr "" #: assets/build/overview.js:1 assets/build/reports.js:1 msgid "Ask about this issue" msgstr "" #: assets/build/overview.js:1 assets/build/reports.js:1 msgid "Ask about all your clients" msgstr "" #. translators: %s: client name. #: assets/build/overview.js:1 assets/build/reports.js:1 #, js-format msgid "Ask about %s" msgstr "" #: assets/build/overview.js:1 assets/build/reports.js:1 msgid "What the data shows, what to check, or a message for your team." msgstr "" #: assets/build/overview.js:1 assets/build/reports.js:1 msgid "Compare all your clients at once, for example who needs attention or what to look at first." msgstr "" #: assets/build/overview.js:1 assets/build/reports.js:1 msgid "Answers use this client’s Search Console, GA4 and Business Profile numbers." msgstr "" #: assets/build/overview.js:1 assets/build/reports.js:1 msgid "AI Advisor answers are suggestions and can be wrong or incomplete. Check the numbers in the report before acting." msgstr "" #: assets/build/overview.js:1 assets/build/reports.js:1 msgid "Reading the data and writing an answer…" msgstr "" #: assets/build/overview.js:1 assets/build/reports.js:1 msgid "Your question" msgstr "" #: assets/build/overview.js:1 assets/build/reports.js:1 msgid "Ask about this issue…" msgstr "" #. translators: %s: client name. #: assets/build/overview.js:1 assets/build/reports.js:1 #, js-format msgid "Ask about %s…" msgstr "" #: assets/build/overview.js:1 assets/build/reports.js:1 msgid "all your clients" msgstr "" #: assets/build/overview.js:1 assets/build/reports.js:1 msgid "Enter to send, Shift+Enter for a new line" msgstr "" #: assets/build/overview.js:1 assets/build/reports.js:1 msgid "Asking…" msgstr "" #: assets/build/overview.js:1 assets/build/reports.js:1 msgid "Ask" msgstr "" #. translators: %s: AI service provider name. #: assets/build/overview.js:1 assets/build/reports.js:1 #, js-format msgid "Sent to %s only when you ask" msgstr "" #. translators: %d: remaining questions in the daily allowance. #: assets/build/overview.js:1 assets/build/reports.js:1 #, js-format msgid "%d question left today" msgid_plural "%d questions left today" msgstr[0] "" msgstr[1] "" #: assets/build/overview.js:1 assets/build/reports.js:1 msgid "Not saved after you leave this page" msgstr "" #. translators: %d: number of clients. #: assets/build/overview.js:1 assets/build/reports.js:1 #, js-format msgid "%d client" msgid_plural "%d clients" msgstr[0] "" msgstr[1] "" #: assets/build/overview.js:1 assets/build/reports.js:1 msgid "About" msgstr "" #: assets/build/overview.js:1 assets/build/reports.js:1 msgid "Slack message draft" msgstr "" #: assets/build/overview.js:1 assets/build/reports.js:1 msgid "Based on" msgstr "" #: assets/build/overview.js:1 assets/build/reports.js:1 msgid "Missing or uncertain data" msgstr "" #: assets/build/overview.js:1 assets/build/reports.js:1 msgid "Review and send to Slack" msgstr "" #: assets/build/overview.js:1 assets/build/reports.js:1 msgid "Copied." msgstr "" #: assets/build/overview.js:1 assets/build/reports.js:1 msgid "Your browser blocked copying." msgstr "" #: assets/build/overview.js:1 assets/build/reports.js:1 msgid "The AI provider returned an invalid answer. Try again." msgstr "" #: assets/build/overview.js:1 msgid "just now" msgstr "" #: assets/build/overview.js:1 msgid "Snoozed" msgstr "" #: assets/build/overview.js:1 msgid "Handled" msgstr "" #: assets/build/overview.js:1 msgid "Resolved" msgstr "" #: assets/build/overview.js:1 msgid "No clients have been checked yet." msgstr "" #: assets/build/overview.js:1 msgid "No active issues are listed, but some client checks are incomplete. Review the errors below or check again." msgstr "" #: assets/build/overview.js:1 msgid "Nothing is snoozed." msgstr "" #: assets/build/overview.js:1 msgid "Nothing is marked as handled." msgstr "" #: assets/build/overview.js:1 msgid "Nothing resolved in the last 30 days." msgstr "" #. translators: %s: issue title. #: assets/build/overview.js:1 #, js-format msgid "Marked as handled: %s. It’s under Handled, and comes back only if it gets worse." msgstr "" #. translators: %s: issue title. #: assets/build/overview.js:1 #, js-format msgid "Snoozed for 7 days: %s. It comes back after that if the problem is still there." msgstr "" #. translators: %s: issue title. #: assets/build/overview.js:1 #, js-format msgid "Back on the list: %s." msgstr "" #. translators: 1: checks completed, 2: total clients to check. #: assets/build/overview.js:1 #, js-format msgid "Checking clients… %1$d of %2$d" msgstr "" #. translators: %s: relative time of the last check, e.g. “2 hours ago”. #: assets/build/overview.js:1 #, js-format msgid "Last checked %s" msgstr "" #: assets/build/overview.js:1 msgid "Check again" msgstr "" #: assets/build/overview.js:1 msgid "Undo" msgstr "" #. translators: %d: number of issues. #: assets/build/overview.js:1 #, js-format msgid "%d issue" msgid_plural "%d issues" msgstr[0] "" msgstr[1] "" #: assets/build/overview.js:1 msgid "Sent to Slack." msgstr "" #: assets/build/overview.js:1 msgid "Show fewer issues" msgstr "" #. translators: %d: additional issues to show. #: assets/build/overview.js:1 #, js-format msgid "Show %d more issue" msgid_plural "Show %d more issues" msgstr[0] "" msgstr[1] "" #: assets/build/overview.js:1 msgid "Some data couldn’t be read, so these clients were only partly checked. Their earlier issues are kept as they were." msgstr "" #: assets/build/overview.js:1 msgid "Supporting data and keyword details" msgstr "" #: assets/build/overview.js:1 msgid "Supporting data" msgstr "" #: assets/build/overview.js:1 msgid "Metric" msgstr "" #: assets/build/overview.js:1 assets/build/reports.js:1 msgid "Last 28 days" msgstr "" #: assets/build/overview.js:1 msgid "Got worse" msgstr "" #: assets/build/overview.js:1 msgid "Back after snooze" msgstr "" #: assets/build/overview.js:1 msgid "Happening again" msgstr "" #. translators: %s: issue title. #: assets/build/overview.js:1 #, js-format msgid "Hide details: %s" msgstr "" #. translators: %s: issue title. #: assets/build/overview.js:1 #, js-format msgid "Review issue: %s" msgstr "" #: assets/build/overview.js:1 assets/build/reports.js:1 msgid "Hide details" msgstr "" #: assets/build/overview.js:1 msgid "Review issue" msgstr "" #. translators: %s: localized date and time the message was accepted. #: assets/build/overview.js:1 #, js-format msgid "Sent to Slack · %s" msgstr "" #: assets/build/overview.js:1 msgid "Send to Slack" msgstr "" #: assets/build/overview.js:1 msgid "Copied. Paste it into Slack, an email or a ticket." msgstr "" #: assets/build/overview.js:1 msgid "Your browser blocked copying. Use “Send to Slack”, or open the report." msgstr "" #: assets/build/overview.js:1 msgid "Your browser blocked copying. Open the report and share its link instead." msgstr "" #: assets/build/overview.js:1 msgid "Copy for Slack" msgstr "" #: assets/build/overview.js:1 msgid "Mark as handled" msgstr "" #: assets/build/overview.js:1 msgid "Snooze 7 days" msgstr "" #: assets/build/overview.js:1 msgid "Put back on the list" msgstr "" #: assets/build/overview.js:1 msgid "Open report" msgstr "" #: assets/build/overview.js:1 msgid "Set up Slack to send issues directly" msgstr "" #: assets/build/overview.js:1 msgid "Note for your team (optional)" msgstr "" #: assets/build/overview.js:1 msgid "e.g. Sam, can you check the pricing page today?" msgstr "" #: assets/build/overview.js:1 msgid "Slack gets the issue, the affected page, its numbers, what the data suggests, the next checks and a link to the report." msgstr "" #: assets/build/overview.js:1 msgid "Sending…" msgstr "" #: assets/build/overview.js:1 msgid "Send" msgstr "" #: assets/build/overview.js:1 msgid "Invalid monitor response." msgstr "" #: assets/build/overview.js:1 msgid "Invalid monitor response. Reload the page and try again." msgstr "" #: assets/build/clients.js:1 msgid "The site editor script stopped with an error, so some helpers (event suggestions, reloading lists) may not work. The lists were still loaded by the server. If an optimisation plugin combines or delays admin scripts, exclude TurtleReport from it." msgstr "" #: assets/build/clients.js:1 msgid "Loading from Google…" msgstr "" #: assets/build/clients.js:1 msgid "Could not load the list." msgstr "" #: assets/build/clients.js:1 msgid "Suggested from the Search Console address. Check it's right." msgstr "" #: assets/build/clients.js:1 msgid "Choose a GA4 property to see the events it records." msgstr "" #: assets/build/clients.js:1 msgid "Loading events…" msgstr "" #. translators: %s: error message. #: assets/build/clients.js:1 #, js-format msgid "Could not load events: %s" msgstr "" #: assets/build/clients.js:1 msgid "This property recorded no events from organic search in the last 28 days, and GA4 marks none as key events. It may be the wrong property." msgstr "" #: assets/build/clients.js:1 msgid "Click a group field above, then tick the events that belong in it. Nothing is counted until you tick it and save." msgstr "" #: assets/build/clients.js:1 msgid "GA4 key events" msgstr "" #: assets/build/clients.js:1 msgid "Marked as key events in GA4, so these are usually the ones to count." msgstr "" #: assets/build/clients.js:1 msgid "Other events" msgstr "" #: assets/build/clients.js:1 msgid "Recorded from organic search in the last 28 days, but not marked as key events." msgstr "" #: assets/build/clients.js:1 msgid "none in 28 days" msgstr "" #: assets/build/clients.js:1 msgid "Likely conversion" msgstr "" #. translators: 1: group name, 2: number of events in it. #: assets/build/clients.js:1 #, js-format msgid "\"%1$s\" counts %2$d events but is named after one of them, so the report shows them on a single line called \"%1$s\". Rename the group, or give each event its own group for a line each." msgstr "" #. translators: %s: comma-separated "typed → actual" event names. #: assets/build/clients.js:1 #, js-format msgid "Check the capitals: %s. GA4 event names are case-sensitive." msgstr "" #. translators: %s: comma-separated GA4 event names. #: assets/build/clients.js:1 #, js-format msgid "Not found in this property's events: %s. Check the name. This only looks at organic-search events from the last 28 days plus key events, so a rare event can still be real." msgstr "" #. translators: %s: comma-separated GA4 event names. #: assets/build/clients.js:1 #, js-format msgid "Found, but with no activity in the last 28 days: %s. They count as soon as they happen." msgstr "" #: assets/build/clients.js:1 msgid "The event was found in this property." msgstr "" #. translators: %d: number of events. #: assets/build/clients.js:1 #, js-format msgid "All %d events were found in this property." msgstr "" #. translators: %s: conversion-group preset name. #: assets/build/clients.js:1 #, js-format msgid "Replace the current groups with the \"%s\" preset?" msgstr "" #: assets/build/clients.js:1 msgid "No matching users." msgstr "" #: assets/build/clients.js:1 msgid "Enter a full address (https://…) or a path that starts with /." msgstr "" #: assets/build/clients.js:1 msgid "That page is already on the list." msgstr "" #. translators: %d: most important pages allowed. #: assets/build/clients.js:1 #, js-format msgid "Up to %d important pages." msgstr "" #. translators: %s: Google clicks in the last 28 days. #: assets/build/clients.js:1 #, js-format msgid "%s clicks" msgstr "" #. translators: %s: change, e.g. "+12%". #: assets/build/overview.js:1 #, js-format msgid "%s vs the previous 28 days" msgstr "" #: assets/build/overview.js:1 msgid "Couldn’t load the numbers." msgstr "" #. translators: %s: error message from Google or WordPress. #: assets/build/overview.js:1 #, js-format msgid "Some numbers couldn’t load: %s" msgstr "" #. translators: 1: percentage, 2: clicks now, 3: clicks before. #: assets/build/overview.js:1 #, js-format msgid "Google clicks up %1$s (%2$s vs %3$s)." msgstr "" #. translators: %s: clicks in the previous 28 days. #: assets/build/overview.js:1 #, js-format msgid "No Google clicks in the last 28 days (%s the 28 days before). Check the site is indexed and online." msgstr "" #. translators: 1: percentage decrease, 2: current clicks, 3: previous clicks. #: assets/build/overview.js:1 #, js-format msgid "Google clicks down %1$s (%2$s vs %3$s). Open the report to see which pages lost clicks." msgstr "" #. translators: 1: conversion label, 2: percentage, 3: now, 4: before. #: assets/build/overview.js:1 #, js-format msgid "%1$s up %2$s (%3$s vs %4$s)." msgstr "" #. translators: 1: conversion label, 2: percentage decrease, 3: current count, 4: previous count. #: assets/build/overview.js:1 #, js-format msgid "%1$s down %2$s (%3$s vs %4$s). Check the forms and the pages that brought them." msgstr "" #. translators: 1: change in average position, 2: current average position. #: assets/build/overview.js:1 #, js-format msgid "Average Google position dropped %1$s places (now %2$s)." msgstr "" #. translators: 1: places, 2: average position now. #: assets/build/overview.js:1 #, js-format msgid "Average Google position up %1$s places (now %2$s)." msgstr "" #: assets/build/overview.js:1 msgid "Show in table" msgstr "" #: assets/build/overview.js:1 msgid "All Google connections are working, and no report email failed." msgstr "" #: assets/build/overview.js:1 msgid "Nothing needs your attention. Every client’s Google connection is working, no report email failed and nothing dropped sharply in the last 28 days." msgstr "" #: assets/build/overview.js:1 msgid "Still loading some clients…" msgstr "" #: assets/build/overview.js:1 msgid "No client needs attention" msgstr "" #. translators: %d: additional issues not displayed. #: assets/build/overview.js:1 #, js-format msgid "+%d more issue" msgid_plural "+%d more issues" msgstr[0] "" msgstr[1] "" #: assets/build/overview.js:1 msgid "No issues detected" msgstr "" #: assets/build/reports.js:1 msgid "Couldn't load this section. Reload the page and try again." msgstr "" #: assets/build/reports.js:1 msgid "Show or hide on the daily chart" msgstr "" #. translators: %s: what the site calls its conversions, e.g. Leads. #: assets/build/reports.js:1 #, js-format msgid "%s by landing page" msgstr "" #: assets/build/reports.js:1 msgid "Opportunities" msgstr "" #: assets/build/reports.js:1 msgid "Countries" msgstr "" #: assets/build/reports.js:1 msgid "Devices" msgstr "" #: assets/build/reports.js:1 msgid "Loading report…" msgstr "" #: assets/build/reports.js:1 msgid "Couldn't load the report. Reload the page and try again." msgstr "" #: assets/build/reports.js:1 msgid "Charts didn't load, so the PDF can't be made. Reload the page and try again." msgstr "" #: assets/build/reports.js:1 msgid "Preparing PDF…" msgstr "" #. translators: %s: last date with data. #: assets/build/reports.js:1 #, js-format msgid "Choose a start date before the end date, ending no later than %s." msgstr "" #: assets/build/reports.js:1 msgid "Custom ranges can be up to a year long." msgstr "" #: assets/build/reports.js:1 msgid "Google Search clicks by segment" msgstr "" #: assets/build/reports.js:1 msgid "Share of clicks" msgstr "" #: assets/build/reports.js:1 msgid "The PDF tools could not load. Reload the page and try again." msgstr "" #. translators: %s: metrics on the right axis, e.g. "Leads, Profile calls". #: assets/build/reports.js:1 #, js-format msgid "Google clicks on the left axis; %s on the right" msgstr "" #: assets/build/reports.js:1 msgid "Google clicks per day" msgstr "" #: assets/build/reports.js:1 msgid "Top landing pages" msgstr "" #: assets/build/reports.js:1 msgid "Nothing recorded in this period." msgstr "" #: assets/build/reports.js:1 msgid "GA4 · organic search, by visit channel" msgstr "" #: assets/build/reports.js:1 msgid "GA4 · organic search, by first-visit channel" msgstr "" #: assets/build/reports.js:1 msgid "AI sessions" msgstr "" #: assets/build/reports.js:1 msgid "Share of all sessions" msgstr "" #. translators: %s: total sessions. #: assets/build/reports.js:1 #, js-format msgid "of %s sessions" msgstr "" #: assets/build/reports.js:1 msgid "No visits from AI assistants (ChatGPT, Gemini, Perplexity, Copilot, Claude) in this period." msgstr "" #: assets/build/reports.js:1 msgid "Where it comes from" msgstr "" #: assets/build/reports.js:1 msgid "No source breakdown for this period." msgstr "" #. translators: 1: conversion label, 2: counts by conversion group. #: assets/build/reports.js:1 #, js-format msgid "%1$s from AI · %2$s" msgstr "" #: assets/build/reports.js:1 msgid "Top pages getting AI traffic" msgstr "" #: assets/build/reports.js:1 msgid "Calls, website clicks and directions from your profile" msgstr "" #: assets/build/reports.js:1 msgid "Move" msgstr "" #: assets/build/reports.js:1 msgid "Dropped out" msgstr "" #: assets/build/reports.js:1 msgid "New" msgstr "" #: assets/build/reports.js:1 msgid "Keyword rankings" msgstr "" #: assets/build/reports.js:1 msgid "How many keywords rank in each Google position band" msgstr "" #: assets/build/reports.js:1 msgid "keyword on page 1" msgid_plural "keywords on page 1" msgstr[0] "" msgstr[1] "" #: assets/build/reports.js:1 msgid "No pages gained clicks in this period." msgstr "" #: assets/build/reports.js:1 msgid "No pages lost clicks in this period." msgstr "" #: assets/build/reports.js:1 msgid "No pages recorded in this period." msgstr "" #. translators: 1: current PDF page, 2: total PDF pages. #: assets/build/reports.js:1 #, js-format msgid "Page %1$d of %2$d…" msgstr "" #. translators: %s: short name of the comparison period. #: assets/build/reports.js:1 #, js-format msgid "vs %s" msgstr "" #. translators: 1: conversion label, 2: its change, 3: change in Google clicks. #: assets/build/reports.js:1 #, js-format msgid "%1$s fell (%2$s) while Google clicks rose (%3$s). Check landing-page performance and conversion-event tracking." msgstr "" #. translators: 1: conversion label, 2: its change. #: assets/build/reports.js:1 #, js-format msgid "%1$s fell (%2$s) while Google clicks held steady. Check landing-page performance and conversion-event tracking." msgstr "" #. translators: 1: conversion label, 2: its change, 3: change in Google clicks. #: assets/build/reports.js:1 #, js-format msgid "%1$s fell more than Google clicks (%2$s vs %3$s), a bigger drop than traffic alone suggests. Check landing-page performance and conversion-event tracking." msgstr "" #: assets/build/reports.js:1 msgid "Clicks, impressions, click-through rate (CTR) and position come from Google Search Console. Impressions are how often the site was shown in Google results; CTR is the share of impressions that became clicks. Position is the average ranking across those impressions, not a live rank. Search Console runs about two days behind and hides rare queries, so table rows add up to less than the totals." msgstr "" #: assets/build/reports.js:1 msgid "Conversions are GA4 event counts for the events chosen for this site, from visitors whose channel was Organic Search. They count events, not unique people, and a phone or email-link click is not a completed call or sent email." msgstr "" #. translators: %s: comma-separated GA4 event names. #: assets/build/reports.js:1 #, js-format msgid "Some events are in more than one group (%s). Each group counts them, but the total counts each event once, so the groups add up to more than the total." msgstr "" #: assets/build/reports.js:1 msgid "AI assistant traffic is GA4 sessions in the AI Assistant channel (visits from ChatGPT, Gemini, Perplexity, Copilot, Claude and similar), with conversions counted by session channel." msgstr "" #: assets/build/reports.js:1 msgid "Website traffic covers visits from every channel in GA4." msgstr "" #: assets/build/reports.js:1 msgid "Website traffic covers visits from organic search in GA4 (session channel)." msgstr "" #: assets/build/reports.js:1 msgid "Profile calls are taps on the Call button in the Google Business Profile, not answered calls. Business Profile data can run a few days behind." msgstr "" #: assets/build/reports.js:1 msgid "Client Monitor · last 7 days vs the 28 days before" msgstr "" #: assets/build/reports.js:1 msgid "Client Monitor · last 28 days vs the 28 days before" msgstr "" #: assets/build/reports.js:1 msgid "Open the issue in the Client Monitor for the evidence and the checks." msgstr "" #: assets/build/reports.js:1 msgid "Open in Client Monitor" msgstr "" #. translators: %s: comparison period, e.g. the previous 3 months. #: assets/build/reports.js:1 #, js-format msgid "None in %s" msgstr "" #. translators: %s: the number in the previous period. #: assets/build/reports.js:1 #, js-format msgid "Previous: %s" msgstr "" #. translators: %s: conversion label. #: assets/build/reports.js:1 #, js-format msgid "Open %s by landing page and compare the pages: a page that lost most of its conversions while others held points to a problem on that page." msgstr "" #. translators: %s: conversion label. #: assets/build/reports.js:1 #, js-format msgid "Open %s by landing page" msgstr "" #: assets/build/reports.js:1 msgid "Open the pages" msgstr "" #. translators: 1: before, 2: now, 3: conversion label, 4: comparison period. #: assets/build/reports.js:1 #, js-format msgid "%1$s → %2$s %3$s from organic search, compared with %4$s." msgstr "" #. translators: 1: conversion group label, 2: decrease in its count. #: assets/build/reports.js:1 #, js-format msgid "Most of the drop is in %1$s (%2$s)." msgstr "" #. translators: 1: landing pages. #: assets/build/reports.js:1 #, js-format msgid "Test the forms and call buttons on %1$s yourself, then check that GA4 records each one in its real-time report." msgstr "" #: assets/build/reports.js:1 msgid "Test the forms and call buttons on the main landing pages yourself, then check that GA4 records each one in its real-time report." msgstr "" #. translators: 1: conversion group. #: assets/build/reports.js:1 #, js-format msgid "Visits held up, so test that “%1$s” is still recorded, then compare conversions by landing page." msgstr "" #: assets/build/reports.js:1 msgid "Visits held up, so test that the forms and GA4 events still work, then compare conversions by landing page." msgstr "" #. translators: 1: click change, 2: conversion label, 3: conversion decrease. #: assets/build/reports.js:1 #, js-format msgid "In this report, Google clicks held up (%1$s) while %2$s fell %3$s, so visitors still arrive but fewer conversions are recorded." msgstr "" #: assets/build/reports.js:1 msgid "Check what changed on the site in this period: the form plugin, theme, Google Tag Manager, cookie banner or thank-you page." msgstr "" #. translators: 1: conversion label, 2: its change, 3: change in Google clicks. #: assets/build/reports.js:1 #, js-format msgid "%1$s fell more than Google clicks (%2$s vs %3$s). Check the landing pages that lost the most, then test the conversion events." msgstr "" #. translators: 1: click decrease, 2: conversion label, 3: conversion decrease. #: assets/build/reports.js:1 #, js-format msgid "Google clicks fell %1$s while %2$s fell %3$s. Search Console counts clicks and GA4 counts conversions, so the two don't give an exact conversion rate, but a gap this size is worth checking." msgstr "" #: assets/build/reports.js:1 msgid "Open the pages that lost the most clicks to see how much of the drop the lost traffic explains." msgstr "" #. translators: 1: page, 2: clicks lost. #: assets/build/reports.js:1 #, js-format msgid "Google clicks fell too. Start with %1$s, the page that lost the most clicks (%2$s)." msgstr "" #. translators: 1: click decrease, 2: conversion label, 3: conversion decrease. #: assets/build/reports.js:1 #, js-format msgid "In this report, Google clicks fell %1$s and %2$s fell %3$s, so fewer visitors reached the site." msgstr "" #: assets/build/reports.js:1 msgid "Open the pages and start with the ones that lost the most clicks. In Search Console, compare their keywords for the two periods." msgstr "" #: assets/build/reports.js:1 msgid "Test that the forms, call buttons and GA4 events on the main landing pages still work." msgstr "" #. translators: 1: before, 2: now, 3: comparison period. #: assets/build/reports.js:1 #, js-format msgid "%1$s → %2$s from organic search, compared with %3$s." msgstr "" #. translators: %s: event name(s). #: assets/build/reports.js:1 #, js-format msgid "Visits held up, so test that %s is still recorded, then compare it by landing page." msgstr "" #. translators: 1: event name(s), 2: its change, 3: change in Google clicks. #: assets/build/reports.js:1 #, js-format msgid "%1$s fell more than Google clicks (%2$s vs %3$s). Check the landing pages that lost the most, then test the event." msgstr "" #. translators: 1: page, 2: clicks lost, 3: event name(s). #: assets/build/reports.js:1 #, js-format msgid "Google clicks fell too. Start with %1$s, the page that lost the most clicks (%2$s), then test %3$s." msgstr "" #: assets/build/reports.js:1 msgid "Google clicks fell too. Start with the pages that lost the most clicks, then test the forms." msgstr "" #. translators: %s: conversion event name. #: assets/build/reports.js:1 #, js-format msgid "Test the form or button that sends %s yourself, then check that GA4 records it in its real-time report." msgstr "" #: assets/build/reports.js:1 msgid "Open the pages and start with the ones that lost the most clicks." msgstr "" #. translators: %s: percentage. #: assets/build/reports.js:1 #, js-format msgid "Profile calls down %s" msgstr "" #. translators: 1: calls before, 2: calls now, 3: change in profile views. #: assets/build/reports.js:1 #, js-format msgid "%1$s → %2$s calls from the Business Profile. Profile views %3$s." msgstr "" #: assets/build/reports.js:1 msgid "Fewer people saw the profile. Check that the listing’s categories, service areas and photos are complete and current." msgstr "" #: assets/build/reports.js:1 msgid "People still find the profile but call less. Check the phone number, opening hours and recent reviews." msgstr "" #. translators: %s: change in profile views. #: assets/build/reports.js:1 #, js-format msgid "Profile views fell %s along with the calls." msgstr "" #: assets/build/reports.js:1 msgid "In the Business Profile, check that the primary and extra categories still match the main services, and that the service areas are complete." msgstr "" #: assets/build/reports.js:1 msgid "In the profile’s Performance view, compare the searches that found it for the two periods." msgstr "" #: assets/build/reports.js:1 msgid "Check that the photos and the opening hours are current." msgstr "" #. translators: %s: percentage change in profile views. #: assets/build/reports.js:1 #, js-format msgid "Profile views held (%s), so people still find the listing." msgstr "" #: assets/build/reports.js:1 msgid "Call the number on the listing to check that it rings through." msgstr "" #: assets/build/reports.js:1 msgid "Check the opening hours, including holiday hours." msgstr "" #: assets/build/reports.js:1 msgid "Read the newest reviews and reply to any that are unanswered." msgstr "" #: assets/build/reports.js:1 msgid "Open Business Profile" msgstr "" #: assets/build/reports.js:1 msgid "The site ranks lower. Review the search queries that dropped most in Biggest movers." msgstr "" #. translators: 1: previous average position, 2: current average position. #: assets/build/reports.js:1 #, js-format msgid "The average position slipped from %1$s to %2$s." msgstr "" #: assets/build/reports.js:1 msgid "In Biggest movers, review the search queries that lost the most clicks." msgstr "" #: assets/build/reports.js:1 msgid "Open the keywords" msgstr "" #: assets/build/reports.js:1 msgid "For each one, find the page that ranks for it and review what changed on that page." msgstr "" #: assets/build/reports.js:1 msgid "Check in Search Console that those pages are still indexed." msgstr "" #: assets/build/reports.js:1 msgid "Rankings held but the site was shown in fewer searches. Check whether the drop is seasonal." msgstr "" #. translators: 1: impression decrease, 2: previous position, 3: current position. #: assets/build/reports.js:1 #, js-format msgid "Impressions fell %1$s while the average position held (%2$s → %3$s)." msgstr "" #: assets/build/reports.js:1 msgid "Switch this report to compare with the same period last year, or compare the same weeks in Search Console, to see whether the searches are seasonal." msgstr "" #: assets/build/reports.js:1 msgid "Then open the pages and start with the ones that lost the most clicks." msgstr "" #: assets/build/reports.js:1 msgid "Impressions held but fewer searchers clicked. Review the titles and descriptions of the pages with the most impressions." msgstr "" #. translators: 1: previous click-through rate, 2: current click-through rate. #: assets/build/reports.js:1 #, js-format msgid "Click-through rate went from %1$s to %2$s." msgstr "" #: assets/build/reports.js:1 msgid "Open the pages, sort by impressions, and review how each top page looks in Google." msgstr "" #: assets/build/reports.js:1 msgid "Search the main queries yourself to see what now shows above the site (ads, maps, other results)." msgstr "" #. translators: 1: clicks before, 2: clicks now, 3: change in impressions, 4: position before, 5: position now. #: assets/build/reports.js:1 #, js-format msgid "%1$s → %2$s clicks. Impressions %3$s; average position %4$s → %5$s." msgstr "" #. translators: %s: affected page path. #: assets/build/reports.js:1 #, js-format msgid "In Search Console, open Performance, filter by the page %s, set Compare to these two periods and look at Queries." msgstr "" #. translators: 1: previous average position, 2: current average position. #: assets/build/reports.js:1 #, js-format msgid "It ranks lower than before (position %1$s → %2$s), so start with the keywords that lost positions." msgstr "" #. translators: %s: percentage decrease in impressions. #: assets/build/reports.js:1 #, js-format msgid "Its position held but its impressions fell %s, so it was shown in fewer searches." msgstr "" #: assets/build/reports.js:1 msgid "Check what changed on the page: its title, content, links to it, or a redirect." msgstr "" #: assets/build/reports.js:1 msgid "Use URL Inspection in Search Console to check that the page is still indexed." msgstr "" #. translators: 1: page, 2: clicks lost. #: assets/build/reports.js:1 #, js-format msgid "%1$s lost %2$s clicks" msgstr "" #. translators: 1: clicks before, 2: clicks now. #: assets/build/reports.js:1 #, js-format msgid "%1$s → %2$s clicks, the biggest drop of any page." msgstr "" #. translators: 1: clicks before, 2: clicks now, 3: percentage. #: assets/build/reports.js:1 #, js-format msgid "%1$s → %2$s clicks (−%3$s)." msgstr "" #. translators: 1: position before, 2: position now. #: assets/build/reports.js:1 #, js-format msgid "Position %1$s → %2$s." msgstr "" #. translators: %s: page. #: assets/build/reports.js:1 #, js-format msgid "Compare the keywords of %s for the two periods in Search Console." msgstr "" #. translators: %s: number of keywords. #: assets/build/reports.js:1 #, js-format msgid "%s fewer keyword on page 1" msgid_plural "%s fewer keywords on page 1" msgstr[0] "" msgstr[1] "" #. translators: 1: before, 2: now. #: assets/build/reports.js:1 #, js-format msgid "%1$s → %2$s keywords in the top 10." msgstr "" #: assets/build/reports.js:1 msgid "Review the search queries that lost visibility in Biggest movers." msgstr "" #: assets/build/reports.js:1 msgid "In Biggest movers, start with the falling search queries that are seen most often." msgstr "" #: assets/build/reports.js:1 msgid "For each one, find the page that ranks for it and check that its title and content still match the search." msgstr "" #. translators: %s: change in percentage points. #: assets/build/reports.js:1 #, js-format msgid "Click-through rate down %s pts" msgstr "" #. translators: 1: CTR before, 2: CTR now, 3: change in impressions. #: assets/build/reports.js:1 #, js-format msgid "Click-through rate %1$s → %2$s while impressions rose %3$s." msgstr "" #: assets/build/reports.js:1 msgid "Review the titles and descriptions of the pages with the most impressions." msgstr "" #: assets/build/reports.js:1 msgid "Open the pages, sort by impressions, and check how each top page’s title and description look in Google." msgstr "" #: assets/build/reports.js:1 msgid "Search the main keywords yourself to see what now shows above the site (ads, maps, other results)." msgstr "" #. translators: %s: percentage. #: assets/build/reports.js:1 #, js-format msgid "AI assistant visits down %s" msgstr "" #. translators: 1: before, 2: now. #: assets/build/reports.js:1 #, js-format msgid "%1$s → %2$s visits from AI assistants." msgstr "" #: assets/build/reports.js:1 msgid "See which sources and pages lost AI assistant visits." msgstr "" #: assets/build/reports.js:1 msgid "Open AI assistant traffic and compare the sources and pages for the two periods." msgstr "" #: assets/build/reports.js:1 msgid "Open AI assistant traffic" msgstr "" #: assets/build/reports.js:1 msgid "Check that the pages that lost visits are still live and unchanged." msgstr "" #: assets/build/reports.js:1 msgid "the event" msgstr "" #. translators: 1: organic visits, 2: missing conversion event name. #: assets/build/reports.js:1 #, js-format msgid "Compare organic traffic: the site had %1$s organic visits in the same 7 days, so people still arrive while %2$s is missing." msgstr "" #: assets/build/reports.js:1 msgid "Compare organic traffic for the last 7 days: if Google clicks held up, people still arrive and the problem is the tracking." msgstr "" #. translators: 1: conversion label, 2: event name. #: assets/build/reports.js:1 #, js-format msgid "Compare conversions: look at %1$s by landing page for the last 7 days. The pages that brought %2$s before are the ones to test." msgstr "" #: assets/build/reports.js:1 msgid "Show the last 7 days by landing page" msgstr "" #. translators: %s: GA4 event name. #: assets/build/reports.js:1 #, js-format msgid "Test “%s” yourself and check that GA4 records it. Then compare organic landing pages." msgstr "" #: assets/build/reports.js:1 msgid "Test the conversion events yourself and check that GA4 records them. Then compare organic landing pages." msgstr "" #. translators: %s: keyword. #: assets/build/reports.js:1 #, js-format msgid "Opportunity: “%s”" msgstr "" #. translators: 1: position, 2: impressions, 3: click-through rate. #: assets/build/reports.js:1 #, js-format msgid "Position %1$s with %2$s impressions and a %3$s click-through rate." msgstr "" #: assets/build/reports.js:1 msgid "The most impressions of any keyword in positions 4–20." msgstr "" #. translators: 1: keyword, 2: position, 3: impressions. #: assets/build/reports.js:1 #, js-format msgid "“%1$s” is on page 1 (position %2$s). Improve its page title and description so more of its %3$s impressions turn into clicks." msgstr "" #. translators: 1: keyword, 2: position. #: assets/build/reports.js:1 #, js-format msgid "“%1$s” is at position %2$s, just off page 1. Strengthen the page that ranks for it: content, headings and internal links." msgstr "" #. translators: %s: keyword. #: assets/build/reports.js:1 #, js-format msgid "Find the page that ranks for “%s”." msgstr "" #: assets/build/reports.js:1 msgid "Make sure the page title and main heading use the words people search for." msgstr "" #: assets/build/reports.js:1 msgid "Answer the search near the top of the page, then link to the page from related pages on the site." msgstr "" #: assets/build/reports.js:1 msgid "Open opportunities" msgstr "" #: assets/build/reports.js:1 msgid "Until the event records again, this client's conversions are undercounted." msgstr "" #. translators: %s: what the site calls its conversions, e.g. Leads. #: assets/build/reports.js:1 #, js-format msgid "%s are the closest measure of new business from search." msgstr "" #: assets/build/reports.js:1 msgid "Profile calls are direct enquiries from Google." msgstr "" #: assets/build/reports.js:1 msgid "The website is getting no clicks from Google Search." msgstr "" #: assets/build/reports.js:1 msgid "Fewer visits from search means fewer chances to win new business." msgstr "" #: assets/build/reports.js:1 msgid "Rankings usually move before clicks do, so this is an early warning." msgstr "" #: assets/build/reports.js:1 msgid "It is already seen often, so a small move up can add clicks." msgstr "" #: assets/build/reports.js:1 msgid "Custom range…" msgstr "" #. translators: Short name of the comparison period, shown after "vs" on metric tiles: "vs previous". #: assets/build/reports.js:1 msgid "previous" msgstr "" #. translators: %s: period name or date range. #. translators: %s: period name. #: assets/build/reports.js:1 #, js-format msgid "SEO report · %s" msgstr "" #. translators: %s: segment name. #: assets/build/reports.js:1 #, js-format msgid "Not %s" msgstr "" #: assets/build/reports.js:1 msgid "GA4 · visits from AI sources (ChatGPT, Gemini, Perplexity, Copilot, Claude)" msgstr "" #: assets/build/reports.js:1 msgid "GA4 · visits in the AI Assistant channel" msgstr "" #. translators: 1: number of pages, 2: total click change. #: assets/build/reports.js:1 #, js-format msgid "Top %1$d · %2$s clicks" msgstr "" #: assets/build/reports.js:1 msgid "Top 3" msgstr "" #: assets/build/reports.js:1 msgid "Total" msgstr "" #: assets/build/reports.js:1 msgid "Country" msgstr "" #: assets/build/reports.js:1 msgid "Device" msgstr "" #: assets/build/reports.js:1 msgid "Change in clicks vs the comparison period" msgstr "" #: assets/build/reports.js:1 msgid "How often it was shown in Google results" msgstr "" #: assets/build/reports.js:1 msgid "Click-through rate: the share of impressions that became clicks" msgstr "" #: assets/build/reports.js:1 msgid "Average position in Google results: lower is better" msgstr "" #: assets/build/reports.js:1 msgid "Change in average position: ▲ moved up, ▼ moved down" msgstr "" #: assets/build/reports.js:1 msgid "Where it sits" msgstr "" #: assets/build/reports.js:1 msgid "Bottom of page 1" msgstr "" #: assets/build/reports.js:1 msgid "Page 2" msgstr "" #. translators: %s: comparison period, e.g. the previous 28 days. #: assets/build/reports.js:1 #, js-format msgid "Change = clicks vs %s · Move = change in position (▲ up) · – = no data to compare" msgstr "" #. translators: %s: minimum impressions. #: assets/build/reports.js:1 #, js-format msgid "Keywords in positions 4–20 with %s+ impressions: the closest to more clicks." msgstr "" #. translators: 1: conversion label, 2: comparison period. #: assets/build/reports.js:1 #, js-format msgid "%1$s from organic search, by the page where the visit started · Change = the total vs %2$s" msgstr "" #: assets/build/reports.js:1 msgid "the home page" msgstr "" #. translators: %s: number of Google clicks. #: assets/build/reports.js:1 #, js-format msgid "%s Google click" msgid_plural "%s Google clicks" msgstr[0] "" msgstr[1] "" #. translators: 1: conversion count, 2: conversion label. #: assets/build/reports.js:1 #, js-format msgid "%1$s %2$s" msgstr "" #: assets/build/reports.js:1 msgid "from organic search" msgstr "" #. translators: %s: number of profile call-button clicks. #: assets/build/reports.js:1 #, js-format msgid "%s profile call" msgid_plural "%s profile calls" msgstr[0] "" msgstr[1] "" #. translators: %s: number of visits from AI assistants. #: assets/build/reports.js:1 #, js-format msgid "%s visit from AI assistants" msgid_plural "%s visits from AI assistants" msgstr[0] "" msgstr[1] "" #: assets/build/reports.js:1 msgid "No GA4 property for this site." msgstr "" #: assets/build/reports.js:1 msgid "Choose one to count conversions from organic search." msgstr "" #: assets/build/reports.js:1 msgid "None of this site's conversion events were found." msgstr "" #: assets/build/reports.js:1 msgid "Check which GA4 events it counts as conversions." msgstr "" #: assets/build/reports.js:1 msgid "Edit conversion events" msgstr "" #: assets/build/reports.js:1 msgid "Waiting for Google's approval." msgstr "" #: assets/build/reports.js:1 msgid "This Cloud project can't use the Business Profile API until Google approves it. Apply with the form and choose \"Application for Basic API Access\". Approval usually takes a few days." msgstr "" #: assets/build/reports.js:1 msgid "Apply for API access" msgstr "" #: assets/build/reports.js:1 msgid "Business Profile needs Google sign-in." msgstr "" #: assets/build/reports.js:1 msgid "This site uses a service-account connection, which Google doesn't allow for Business Profile. Switch the site to a Google sign-in connection to add it." msgstr "" #: assets/build/reports.js:1 msgid "Go to Connections" msgstr "" #: assets/build/reports.js:1 msgid "Business Profile isn't allowed on this connection." msgstr "" #: assets/build/reports.js:1 msgid "Reconnect it with \"Also read Business Profile\" ticked." msgstr "" #: assets/build/reports.js:1 msgid "No location chosen." msgstr "" #: assets/build/reports.js:1 msgid "Pick this site's Business Profile location." msgstr "" #: assets/build/reports.js:1 msgid "Daily Business Profile calls and website clicks" msgstr "" #: assets/build/reports.js:1 msgid "Date" msgstr "" #: assets/build/reports.js:1 msgid "Choose one to see visits from ChatGPT, Gemini, Perplexity, Copilot and Claude." msgstr "" #: assets/build/reports.js:1 msgid "No visits from AI assistants this period." msgstr "" #: assets/build/reports.js:1 msgid "When AI answers start linking to the site, the visits show up here." msgstr "" #: assets/build/reports.js:1 msgid "No traffic metrics chosen." msgstr "" #: assets/build/reports.js:1 msgid "Pick the GA4 metrics this report should show." msgstr "" #: assets/build/reports.js:1 msgid "Choose one to see website traffic." msgstr "" #: assets/build/reports.js:1 msgid "Search Console · select a segment to filter the whole report" msgstr "" #. translators: %s: segment name. #: assets/build/reports.js:1 #, js-format msgid "Filter the report to %s" msgstr "" #: assets/build/reports.js:1 msgid "Google hides rare search queries for privacy, so query segments and their opposites add up to a little less than the total." msgstr "" #: assets/build/reports.js:1 msgid "Month" msgstr "" #: assets/build/reports.js:1 msgid "profile calls" msgstr "" #. translators: %s: list of metrics. #: assets/build/reports.js:1 #, js-format msgid "%s per month" msgstr "" #. translators: %s: month label, e.g. "Oct 2026 (to 14)". #: assets/build/reports.js:1 #, js-format msgid "%s is not complete yet" msgstr "" #: assets/build/reports.js:1 msgid "Collapse all" msgstr "" #. translators: 1: pages that gained clicks, 2: pages that lost clicks. #: assets/build/reports.js:1 #, js-format msgid "%1$s gained · %2$s lost" msgstr "" #. translators: %s: number of keywords. #: assets/build/reports.js:1 #, js-format msgid "%s on page 1" msgstr "" #. translators: %s: change, e.g. +12%. #: assets/build/reports.js:1 #, js-format msgid "Impressions %s" msgstr "" #. translators: %s: GA4 event names. #: assets/build/reports.js:1 #, js-format msgid "Counts these GA4 events: %s" msgstr "" #. translators: %s: change, e.g. +12%. #: assets/build/reports.js:1 #, js-format msgid "Website clicks %s" msgstr "" #. translators: 1: share, 2: source, e.g. chatgpt.com. #: assets/build/reports.js:1 #, js-format msgid "%1$s from %2$s" msgstr "" #: assets/build/reports.js:1 msgid "AI assistant visits" msgstr "" #: assets/build/reports.js:1 msgid "View recommended steps" msgstr "" #: assets/build/reports.js:1 msgid "No clear drops · Biggest opportunity" msgstr "" #: assets/build/reports.js:1 msgid "Why it matters:" msgstr "" #: assets/build/reports.js:1 msgid "No clear drops found" msgstr "" #. translators: %s: comparison period, e.g. the previous 28 days. #: assets/build/reports.js:1 #, js-format msgid "No clear drops in clicks, conversions, calls or rankings compared with %s." msgstr "" #: assets/build/reports.js:1 msgid "Open the details below to see which pages and keywords grew." msgstr "" #. translators: %d: number of other issues and opportunities. #: assets/build/reports.js:1 #, js-format msgid "%d more issue or opportunity" msgid_plural "%d more issues and opportunities" msgstr[0] "" msgstr[1] "" #: assets/build/reports.js:1 msgid "All traffic" msgstr "" #. translators: %s: segment name. #: assets/build/reports.js:1 #, js-format msgid "Showing search data for “%s”. This segment is based on search queries, so the GA4 and Business Profile sections aren't filtered." msgstr "" #. translators: %s: segment name. #: assets/build/reports.js:1 #, js-format msgid "Showing “%s”: Search Console pages and GA4 landing pages are filtered. Business Profile isn't affected." msgstr "" #: assets/build/reports.js:1 msgid "a Search Console property" msgstr "" #: assets/build/reports.js:1 msgid "a GA4 property" msgstr "" #: assets/build/reports.js:1 msgid "a Business Profile location" msgstr "" #. translators: %s: list of missing data sources. #: assets/build/reports.js:1 #, js-format msgid "This site has no %s yet. " msgstr "" #: assets/build/reports.js:1 msgid " or " msgstr "" #. translators: 1: start date, 2: end date, 3: comparison start, 4: comparison end. #: assets/build/reports.js:1 #, js-format msgid "%1$s – %2$s, compared with %3$s – %4$s" msgstr "" #: assets/build/reports.js:1 msgid "7 days" msgstr "" #: assets/build/reports.js:1 msgid "the previous 7 days" msgstr "" #: assets/build/reports.js:1 msgid "28 days" msgstr "" #: assets/build/reports.js:1 msgid "the previous 28 days" msgstr "" #: assets/build/reports.js:1 msgid "3 months" msgstr "" #: assets/build/reports.js:1 msgid "Last 3 months" msgstr "" #: assets/build/reports.js:1 msgid "the previous 3 months" msgstr "" #: assets/build/reports.js:1 msgid "6 months" msgstr "" #: assets/build/reports.js:1 msgid "the previous 6 months" msgstr "" #: assets/build/reports.js:1 msgid "Custom" msgstr "" #: assets/build/reports.js:1 msgid "Show the chart data as a table" msgstr "" #: assets/build/reports.js:1 msgid "No pages in this group for this period." msgstr "" #. translators: %d: number of keywords. #: assets/build/reports.js:1 #, js-format msgid "Climbing (%d)" msgstr "" #. translators: %d: number of keywords. #: assets/build/reports.js:1 #, js-format msgid "Falling (%d)" msgstr "" #. translators: %d: minimum impressions. #: assets/build/reports.js:1 #, js-format msgid "Keywords in the top 20 with %d+ impressions" msgstr "" #: assets/build/reports.js:1 msgid "No keywords moved enough to show." msgstr "" #: assets/build/reports.js:1 msgid "Loading…" msgstr "" #. translators: 1: number of visible rows, 2: total rows. #: assets/build/reports.js:1 #, js-format msgid "Showing %1$s of %2$s" msgstr "" #: assets/build/reports.js:1 msgid "Search pages…" msgstr "" #: assets/build/reports.js:1 msgid "Search landing pages…" msgstr "" #: assets/build/reports.js:1 msgid "Search countries…" msgstr "" #: assets/build/reports.js:1 msgid "Search devices…" msgstr "" #: assets/build/reports.js:1 msgid "Search…" msgstr "" #. translators: %s: number of extra rows the button reveals. #: assets/build/reports.js:1 #, js-format msgid "Show %s more" msgstr "" #: assets/build/reports.js:1 msgid "No rows for this period." msgstr "" #: assets/build/reports.js:1 msgid "No conversions from organic search in this period." msgstr "" #: assets/build/reports.js:1 msgid "This needs a GA4 property." msgstr "" #: assets/build/reports.js:1 msgid "No keywords in positions 4–20 with enough impressions in this period." msgstr "" #: assets/build/reports.js:1 msgid "No rows match that filter." msgstr "" #. translators: %s: number of rows. #: assets/build/reports.js:1 #, js-format msgid "%s keyword" msgid_plural "%s keywords" msgstr[0] "" msgstr[1] "" #. translators: %s: number of rows. #: assets/build/reports.js:1 #, js-format msgid "%s landing page" msgid_plural "%s landing pages" msgstr[0] "" msgstr[1] "" #. translators: %s: number of rows. #: assets/build/reports.js:1 #, js-format msgid "%s opportunity" msgid_plural "%s opportunities" msgstr[0] "" msgstr[1] "" #. translators: %s: number of rows. #: assets/build/reports.js:1 #, js-format msgid "%s country" msgid_plural "%s countries" msgstr[0] "" msgstr[1] "" #. translators: %s: number of rows. #: assets/build/reports.js:1 #, js-format msgid "%s device" msgid_plural "%s devices" msgstr[0] "" msgstr[1] "" #: assets/build/reports.js:1 msgid "GA4 didn't load" msgstr "" #: assets/build/reports.js:1 msgid "No GA4 property" msgstr "" #: assets/build/reports.js:1 msgid "Waiting for Google's API approval" msgstr "" #: assets/build/reports.js:1 msgid "Business Profile didn't load" msgstr "" #: assets/build/reports.js:1 msgid "Business Profile not set up" msgstr "" #: assets/build/settings.js:1 msgid "Asking the provider which models this key can use…" msgstr "" #. translators: %d: number of models. #: assets/build/settings.js:1 #, js-format msgid "%d models your key can use. Pick one, then save and test the connection." msgstr "" #: assets/build/settings.js:1 msgid "The provider didn't list any models. The suggested ones are shown." msgstr "" #: assets/build/settings.js:1 msgid "Couldn't load the models. The suggested ones are shown." msgstr "" #: assets/build/overview.js:1 assets/build/reports.js:1 msgid "Something went wrong. Reload the page and try again." msgstr "" #: assets/build/overview.js:1 assets/build/reports.js:1 msgid "This section could not load. Reload the page and try again." msgstr "" #: assets/build/admin.js:1 msgid "Copied" msgstr "" #: assets/build/admin.js:1 msgid "Choose a logo" msgstr "" #: assets/build/admin.js:1 msgid "Use this logo" msgstr ""