// https://developer.wordpress.org/block-editor/how-to-guides/internationalization/

const { __, sprintf } = wp.i18n;

const i18n = {};

i18n.COMMON = {
  GENERAL: __( 'General', 'ai-engine' ),
  MODULES: __( 'Modules', 'ai-engine' ),
  CLIENT_MODULES: __( 'Client Modules', 'ai-engine' ),
  BACKEND_MODULES: __( 'Admin Modules', 'ai-engine' ),
  SERVER_MODULES: __( 'Server Modules', 'ai-engine' ),
  ADVISOR: __( 'Advisor', 'ai-engine' ),
  SETTINGS: __( 'Settings', 'ai-engine' ),
  CHATBOT: __( 'Chatbot', 'ai-engine' ),
  CHATBOTS: __( 'Chatbots', 'ai-engine' ),
  CHATBOT_HELP: __( 'Customizable chatbots your visitors can talk to. Popup, inline, or fullscreen.', 'ai-engine' ),
  INSIGHTS: __( 'Insights', 'ai-engine' ),
  STYLE: __( 'Style', 'ai-engine' ),
  ENABLE: __( 'Enable', 'ai-engine' ),
  NAME: __( 'Name', 'ai-engine' ),
  SUBMIT: __( 'Submit', 'ai-engine' ),
  MODEL: __( 'Model', 'ai-engine' ),
  AI_MODEL: __( 'AI Model', 'ai-engine' ),
  TEMPERATURE: __( 'Temperature', 'ai-engine' ),
  MAX_TOKENS: __( 'Max Tokens', 'ai-engine' ),
  CONTEXT_MAX_LENGTH: __( 'Context Max Length', 'ai-engine' ),
  STOP_SEQUENCE: __( 'Stop Sequence', 'ai-engine' ),
  MODE: __( 'Mode', 'ai-engine' ),
  CONTEXT: __( 'Knowledge & Context', 'ai-engine' ),
  IMAGES_NUMBER: __( 'Number of Images', 'ai-engine' ),
  AVATAR: __( 'Avatar', 'ai-engine' ),
  AI_NAME: __( 'AI Name', 'ai-engine' ),
  GUEST_NAME: __( 'Guest Name', 'ai-engine' ),
  USER_NAME: __( 'User Name', 'ai-engine' ),
  PLACEHOLDER: __( 'Placeholder', 'ai-engine' ),
  START_SENTENCE: __( 'Start Sentence', 'ai-engine' ),
  SEND: __( 'Send', 'ai-engine' ),
  CLEAR: __( 'Clear', 'ai-engine' ),
  CLOSE: __( 'Close', 'ai-engine' ),
  VIEW: __( 'View', 'ai-engine' ),
  EDIT: __( 'Edit', 'ai-engine' ),
  SYSTEM_NAME: __( 'System Name', 'ai-engine' ),
  ID: __( 'ID', 'ai-engine' ),
  SCOPE: __( 'Scope', 'ai-engine' ),
  POPUP: __( 'Popup', 'ai-engine' ),
  POSITION: __( 'Position', 'ai-engine' ),
  CENTER: __( 'Center', 'ai-engine' ),
  OPEN_DELAY: __( 'Open Delay', 'ai-engine' ),
  ENV_MOVES_BELOW_USAGE: __( 'Once everything is set up, this panel moves below Usage automatically.', 'ai-engine' ),
  WINDOW_ANIMATION: __( 'Window Animation', 'ai-engine' ),
  ZOOM: __( 'Zoom', 'ai-engine' ),
  SLIDE: __( 'Slide', 'ai-engine' ),
  FADE: __( 'Fade', 'ai-engine' ),
  VOICE: __( 'Voice', 'ai-engine' ),
  TALK_MODE: __( 'Talk Mode', 'ai-engine' ),
  HANDS_FREE: __( 'Hands-Free', 'ai-engine' ),
  HOLD_TO_TALK: __( 'Hold to Talk', 'ai-engine' ),
  ICON: __( 'Icon', 'ai-engine' ),
  ICON_TEXT: __( 'Icon Text', 'ai-engine' ),
  ICON_TEXT_DELAY: __( 'Icon Text Delay', 'ai-engine' ),
  ICON_SIZE: __( 'Icon Size', 'ai-engine' ),
  FULL_SCREEN: __( 'Full Screen', 'ai-engine' ),
  CASUALLY_FINE_TUNED: __( 'Casually Fine-Tuned', 'ai-engine' ),
  CONTENT_AWARE: __( 'Content Aware', 'ai-engine' ),
  TITLE: __( 'Title', 'ai-engine' ),
  TOPIC: __( 'Topic', 'ai-engine' ),
  TOPICS: __( 'Topics', 'ai-engine' ),
  SPACING: __( 'Spacing', 'ai-engine' ),
  BORDER_RADIUS: __( 'Border Radius', 'ai-engine' ),
  FONT_SIZE: __( 'Font Size', 'ai-engine' ),
  FONT_COLOR: __( 'Font Color', 'ai-engine' ),
  BORDER_COLOR: __( 'Border Color', 'ai-engine' ),
  BACK_PRIMARY_COLOR: __( 'Back Primary Color', 'ai-engine' ),
  BACK_SECONDARY_COLOR: __( 'Back 2nd Color', 'ai-engine' ),
  HEADER_COLOR: __( 'Header Color', 'ai-engine' ),
  HEADER_BACKGROUND_COLOR: __( 'Header Back Color', 'ai-engine' ),
  HEADER_SUBTITLE: __( 'Header Subtitle', 'ai-engine' ),
  BUBBLE_COLOR: __( 'Bubble Color', 'ai-engine' ),
  BACK_USER_COLOR: __( 'Back User Color', 'ai-engine' ),
  BACK_AI_COLOR: __( 'Back AI Color', 'ai-engine' ),
  BACK_AI_SECONDARY_COLOR: __( 'Back AI 2nd Color', 'ai-engine' ),
  AVATAR_MESSAGE_BACKGROUND_COLOR: __( 'Message Back', 'ai-engine' ),
  AVATAR_MESSAGE_FONT_COLOR: __( 'Message Color', 'ai-engine' ),
  ACCENT_COLOR: __( 'Accent Color', 'ai-engine' ),
  POPUP_ICON: __( 'Popup Icon', 'ai-engine' ),
  CUSTOM_ICON: __( 'Custom Icon (URL or Emoticon)', 'ai-engine' ),
  FEATURES: __( 'Features', 'ai-engine' ),
  TIMEFRAME: __( 'Timeframe', 'ai-engine' ),
  ABSOLUTE: __( 'Absolute', 'ai-engine' ),
  NONE: __( 'None', 'ai-engine' ),
  EDITORS_ADMINS: __( 'Editors & Admins', 'ai-engine' ),
  ADMINS_ONLY: __( 'Admins Only', 'ai-engine' ),
  MAINTENANCE: __( 'Maintenance', 'ai-engine' ),
  CREDITS: __( 'Credits', 'ai-engine' ),
  TYPE: __( 'Type', 'ai-engine' ),
  LIMITS: __( 'Limits', 'ai-engine' ),
  USERS: __( 'Users', 'ai-engine' ),
  USER: __( 'User', 'ai-engine' ),
  GUESTS: __( 'Guests', 'ai-engine' ),
  GUEST: __( 'Guest', 'ai-engine' ),
  OPENAI: __( 'Open AI', 'ai-engine' ),
  LICENSE_TAB: __( 'License', 'ai-engine' ),
  // TODO: Remove FINETUNES, ALERT_CASUALLY_BUT_NO_FINETUNE, MODEL_FINETUNE and any HELP.FINETUNES string after 2027-02 (OpenAI ends fine-tune job creation on 2027-01-06).
  FINETUNES: __( 'Finetunes', 'ai-engine' ),
  MODELS: __( 'Models', 'ai-engine' ),
  FILES: __( 'Files', 'ai-engine' ),
  ASSISTANT: __( 'Assistant', 'ai-engine' ),
  EDITOR_ASSISTANT: __( 'AI Assistant', 'ai-engine' ),
  EDITOR_ASSISTANT_HELP: __( 'An AI sidebar in the block editor to draft, rewrite, and rearrange your post. Pro can edit the post directly.', 'ai-engine' ),
  ASSISTANTS: __( 'Assistants', 'ai-engine' ),
  UTILITIES: __( 'Utilities', 'ai-engine' ),
  AI_COPILOT: __( 'AI Copilot', 'ai-engine' ),
  AI_COPILOT_HELP: __( 'Brings AI straight into the post editor: a copilot triggered by pressing space for inline completions, Magic Wand buttons in the toolbar and sidebar to rewrite, translate, correct, or enrich any selection, plus suggested titles and excerpts.', 'ai-engine' ),
  POSTS_SUGGESTIONS: __( 'AI Copilot, AI Suggestions, Magic Wands', 'ai-engine' ),
  POSTS_SUGGESTIONS_HELP: __( 'Tools to brainstorm/write faster and better.', 'ai-engine' ),
  GENERATORS: __( 'Generators', 'ai-engine' ),
  CONTENT_GENERATOR: __( 'Content Generator', 'ai-engine' ),
  CONTENT_GENERATOR_HELP: __( 'Generate long-form content (posts, drafts, product copy) from a prompt.', 'ai-engine' ),
  IMAGES_GENERATOR: __( 'Images Generator', 'ai-engine' ),
  IMAGES_GENERATOR_HELP: __( 'Generate images from text prompts using GPT Image and compatible models.', 'ai-engine' ),
  IMAGES_GENERATOR_INTRO: __( 'Create stunning visuals with AI-powered image generation. Use detailed prompts, customize styles and resolutions, and generate multiple variations. Perfect for creative projects, marketing materials, and visual content.', 'ai-engine' ),
  PLAYGROUND: __( 'Playground', 'ai-engine' ),
  PLAYGROUND_HELP: __( 'Sandbox to test prompts, compare models, and tune parameters.', 'ai-engine' ),
  WORKSPACE: __( 'Workspace', 'ai-engine' ),
  FORMS: __( 'Forms', 'ai-engine' ),
  FORMS_HELP: __( 'Smart forms with conditional logic, AI-generated answers, and text or file inputs.', 'ai-engine' ),
  SEARCH: __( 'Search', 'ai-engine' ),
  SEARCH_HELP: __( 'Replace WordPress search with smarter keyword matching or true semantic search via embeddings.', 'ai-engine' ),
  INSIGHTS_HELP: __( 'Query logs, usage charts by user and role, and per-role limits to keep costs in check.', 'ai-engine' ),
  CLIENT_DEBUG: __( 'Client Debug', 'ai-engine' ),
  CLIENT_DEBUG_HELP: __( 'Debugging information for Chatbots and Forms will be displayed in the Browser Console.', 'ai-engine' ),
  SERVER_DEBUG: __( 'Server Debug', 'ai-engine' ),
  SERVER_DEBUG_HELP: __( 'API calls and server events will be logged and displayed in the Logs Console.', 'ai-engine' ),
  MCP_DEBUG: __( 'MCP Debug', 'ai-engine' ),
  MCP_DEBUG_HELP: __( 'Debugging information from MCP will be written directly to the PHP error logs using error_log().', 'ai-engine' ),
  QUERIES_DEBUG: __( 'Queries Debug', 'ai-engine' ),
  QUERIES_DEBUG_HELP: __( 'Full queries and responses will be written directly to the PHP error logs using error_log().', 'ai-engine' ),
  DEV_MODE: __( 'Dev Mode', 'ai-engine' ),
  DEV_MODE_HELP: __( 'Run tasks frequently for debugging.', 'ai-engine' ),
  CLEAR_LOGS: __( 'Clear Logs', 'ai-engine' ),
  REFRESH_LOGS: __( 'Refresh Logs', 'ai-engine' ),
  API_KEY: __( 'API Key', 'ai-engine' ),
  USAGE_HELP: __( 'Estimates only. Check your AI service for actual costs. Insights module provides better accuracy.', 'ai-engine' ),
  RESET_USAGE_SURE: __( 'Are you sure you want to reset the usage data?', 'ai-engine' ),
  USAGE_PRO_HELP: __( 'If you would like to have better control on the amounts, add conditions or set limits to the usage of the AI, consider %s.', 'ai-engine' ),
  USAGE_PRO_HELP_URL: 'https://meowapps.com/ai-engine/',
  USAGE_PRO_HELP_LINK_TEXT: __( 'AI Engine Pro ↗', 'ai-engine' ),
  LANGUAGE: __( 'Language', 'ai-engine' ),
  HIDE: __( 'Hide', 'ai-engine' ),
  SHOW: __( 'Show', 'ai-engine' ),
  CONTENT: __( 'Content', 'ai-engine' ),
  IMAGES: __( 'Images', 'ai-engine' ),
  IMAGES_AND_FILES: __( 'Images & Files', 'ai-engine' ),
  EXCERPT: __( 'Excerpt', 'ai-engine' ),
  GENERATE: __( 'Generate', 'ai-engine' ),
  MODEL_PARAMS: __( 'Model Params', 'ai-engine' ),
  CONTEXT_PARAMS: __( 'Context Params', 'ai-engine' ),
  PROMPT: __( 'Prompt', 'ai-engine' ),
  PROMPTS: __( 'Prompts', 'ai-engine' ),
  LABEL: __( 'Label', 'ai-engine' ),
  SYSTEM: __( 'System', 'ai-engine' ),
  SHORTCODE: __( 'Shortcode', 'ai-engine' ),
  SHORTCODES: __( 'Shortcodes', 'ai-engine' ),
  RESOLVE: __( 'Resolve', 'ai-engine' ),
  MAX_MESSAGES: __( 'Max Messages', 'ai-engine' ),
  INPUT_MAX_LENGTH: __( 'Input Max Length', 'ai-engine' ),
  COMPLIANCE_TEXT: __( 'Compliance Text', 'ai-engine' ),
  MODERATION: __( 'Moderation', 'ai-engine' ),
  MODERATION_HELP: __( 'Auto-flag offensive or unsafe messages in chatbots using OpenAI\'s moderation endpoint.', 'ai-engine' ),
  FORMATTING: __( 'Formatting', 'ai-engine' ),
  FORMATTING_HELP: __( 'Format the reply from AI into HTML. This is already done automatically if Markdown is detected in the reply.', 'ai-engine' ),
  LOGS: __( 'Logs', 'ai-engine' ),
  QUERY: __( 'Query', 'ai-engine' ),
  REPLY: __( 'Reply', 'ai-engine' ),
  CODE: __( 'Code', 'ai-engine' ),
  EMBEDDINGS: __( 'Embeddings', 'ai-engine' ),
  QUERY_LOGS: __( 'Query Logs', 'ai-engine' ),
  KNOWLEDGE: __( 'Knowledge', 'ai-engine' ),
  KNOWLEDGE_HELP: __( 'Turn posts, pages, and PDFs into embeddings so chatbots can answer from your own content. Pinecone, Qdrant, Chroma, and OpenAI Vector Store supported.', 'ai-engine' ),
  REMOTE_ACCESS: __( 'Remote Access', 'ai-engine' ),
  OTHERS: __( 'Others', 'ai-engine' ),
  PINECONE_APIKEY_HELP: __( 'You can get your API Keys in your %s.', 'ai-engine' ),
  PINECONE_APIKEY_URL: 'https://app.pinecone.io/organizations/keys',
  PINECONE_APIKEY_LINK_TEXT: __( 'Pinecone Account ↗', 'ai-engine' ),
  QDRANT_APIKEY_HELP: __( 'You can get your API Keys in your %s.', 'ai-engine' ),
  QDRANT_APIKEY_URL: 'https://cloud.qdrant.io/accounts/',
  QDRANT_APIKEY_LINK_TEXT: __( 'Qdrant Account ↗', 'ai-engine' ),
  SERVER: __( 'Server', 'ai-engine' ),
  PINECONE_SERVER_HELP: __( 'The URL of your host (check your Indexes).', 'ai-engine' ),
  PINECONE_NAMESPACE_HELP: __( 'The namespace is used to separate the data from other data. This allows you to use the same server/index on more than one website. This is optional.', 'ai-engine' ),
  QDRANT_SERVER_HELP: __( 'The URL of your cluster (known as Cluster URL).', 'ai-engine' ),
  QDRANT_COLLECTION_HELP: __( 'The collection keeps data apart so you can use one cluster for many websites. If there\'s no collection, Qdrant makes one with 1536 dimensions and uses cosine similarity.', 'ai-engine' ),
  COST: __( 'Cost', 'ai-engine' ),
  USAGE: __( 'Usage', 'ai-engine' ),
  USAGE_ESTIMATES_NOTE: __( 'Costs and tokens are estimates. For accurate data and detailed analytics, visit the Insights tab.', 'ai-engine' ),
  ACTIVITY: __( 'Activity', 'ai-engine' ),
  TRANSCRIPTION: __( 'Transcription', 'ai-engine' ),
  TRANSCRIPTION_HELP: __( 'Convert audio to text with Whisper. Adds a dedicated Transcribe tab.', 'ai-engine' ),
  AUDIO_TRANSCRIPTION: __( 'Audio-to-Text', 'ai-engine' ),
  IMAGE_TRANSCRIPTION: __( 'Image-to-Text', 'ai-engine' ),
  AUDIO_TO_TEXT: __( 'Audio ➡ Text', 'ai-engine' ),
  IMAGE_TO_TEXT: __( 'Image ➡ Text', 'ai-engine' ),
  EMBEDDINGS_ENV: __( 'Environment', 'ai-engine' ),
  EMBEDDINGS_INDEX: __( 'Index', 'ai-engine' ),
  NAMESPACE: __( 'Namespace', 'ai-engine' ),
  NAMESPACES: __( 'Namespaces', 'ai-engine' ),
  NAMESPACE_HELP: __( 'The namespace is used to separate the data from other data. This allows you to use the same index on more than one website.', 'ai-engine' ),
  NAMESPACES_HELP: __( 'Enter the namespaces you would like to use on this site, separated by commas.', 'ai-engine' ),
  ERROR: __( 'Error', 'ai-engine' ),
  RETRY: __( 'Retry', 'ai-engine' ),
  AUTO_RETRY: __( 'Auto Retry', 'ai-engine' ),
  SKIP: __( 'Skip', 'ai-engine' ),
  AUTO_SKIP: __( 'Auto Skip', 'ai-engine' ),
  STOP: __( 'Stop', 'ai-engine' ),
  AUTO_RETRY_DESCRIPTION: __( 'Auto Retry retries actions up to 10 times with increasing delay to avoid timeouts.', 'ai-engine' ),
  WIDTH: __( 'Width', 'ai-engine' ),
  MAX_HEIGHT: __( 'Max Height', 'ai-engine' ),
  APPEARANCE: __( 'Appearance', 'ai-engine' ),
  THRESHOLDS: __( 'Thresholds', 'ai-engine' ),
  DASHBOARD: __( 'Dashboard', 'ai-engine' ),
  ADVANCED: __( 'Advanced', 'ai-engine' ),
  DISCUSSIONS: __( 'Discussions', 'ai-engine' ),
  DISCUSSION: __( 'Discussion', 'ai-engine' ),
  BACK: __( 'Back', 'ai-engine' ),
  DISCUSSION_TITLES: __( 'Discussion Titles', 'ai-engine' ),
  SUMMARIZE: __( 'Summarize', 'ai-engine' ),
  ROWS: __( 'Rows', 'ai-engine' ),
  POST_TYPE: __( 'Post Type', 'ai-engine' ),
  GENERATE_CONTENT: __( 'Generate Content', 'ai-engine' ),
  GENERATE_IMAGES: __( 'Generate Images', 'ai-engine' ),
  REST_API: __( 'Public API', 'ai-engine' ),
  ADMIN_BAR: __( 'Admin Bar', 'ai-engine' ),
  REFRESH: __( 'Refresh', 'ai-engine' ),
  DELETE: __( 'Delete', 'ai-engine' ),
  CANCEL: __( 'Cancel', 'ai-engine' ),
  CANNOT_BE_UNDONE: __( 'This cannot be undone.', 'ai-engine' ),
  TYPE_TO_CONFIRM: __( 'To confirm, type:', 'ai-engine' ),
  DELETE_EVERYTHING: __( 'Delete Everything', 'ai-engine' ),
  DELETE_ALL: __( 'Delete All', 'ai-engine' ),
  DELETE_SELECTED: __( 'Delete Selected', 'ai-engine' ),
  OPENAI_ORGANIZATION_ID: __( 'Organization ID', 'ai-engine' ),
  OPENAI_AZURE_API_KEY: __( 'API Key', 'ai-engine' ),
  OPENAI_AZURE_DEPLOYMENT_NAME: __( 'Deployment Name', 'ai-engine' ),
  OPENAI_AZURE_DEPLOYMENTS: __( 'Deployments', 'ai-engine' ),
  ENDPOINT: __( 'Endpoint', 'ai-engine' ),
  HUGGINGFACE_MODELS: __( 'Models', 'ai-engine' ),
  HUGGINGFACE_MODEL_NAME: __( 'Name', 'ai-engine' ),
  HUGGINGFACE_MODEL_URL: __( 'API URL', 'ai-engine' ),
  THEME: __( 'Theme', 'ai-engine' ),
  THEMES: __( 'Themes', 'ai-engine' ),
  BANNED_WORDS: __( 'Banned Words', 'ai-engine' ),
  WORD_BOUNDARIES: __( 'Word Boundaries', 'ai-engine' ),
  IGNORE: __( 'Ignore', 'ai-engine' ),
  BANNED_IPS: __( 'Banned IPs', 'ai-engine' ),
  SECURITY: __( 'Security', 'ai-engine' ),
  POST_TYPES: __( 'Post Types', 'ai-engine' ),
  COPY_BUTTON: __( 'Copy Button', 'ai-engine' ),
  PDF_BUTTON: __( 'PDF Button', 'ai-engine' ),
  PDF_BUTTON_HELP: __( 'Show a print-to-PDF icon on the last AI message, so users can save the whole conversation.', 'ai-engine' ),
  MORE_OPTIONS: __( 'More options...', 'ai-engine' ),
  MORE_APPEARANCE_OPTIONS: __( 'More Appearance Options', 'ai-engine' ),
  DONE: __( 'Done', 'ai-engine' ),
  AI_AVATAR: __( 'AI Avatar', 'ai-engine' ),
  GUEST_AVATAR: __( 'Guest Avatar', 'ai-engine' ),
  SITE_WIDE_CHATBOT: __( 'Site-Wide Chatbot', 'ai-engine' ),
  QUERIES_DATA: __( 'Queries Data', 'ai-engine' ),
  QUERIES_FORMS_DATA: __( 'Queries Form Data', 'ai-engine' ),
  WEBSPEECH_API: __( 'Web Speech API', 'ai-engine' ),
  GDPR_CONSENT: __( 'GDPR Consent', 'ai-engine' ),
  GDPR_TEXT: __( 'GDPR Text', 'ai-engine' ),
  GDPR_BUTTON: __( 'GDPR Button', 'ai-engine' ),
  FIX: __( 'Fix', 'ai-engine' ),
  SPEECH_RECOGNITION: __( 'Speech Recognition', 'ai-engine' ),
  SPEECH_SYNTHESIS: __( 'Speech Synthesis', 'ai-engine' ),
  QUERIES: __( 'Queries', 'ai-engine' ),
  LOCAL_MEMORY: __( 'Local Memory', 'ai-engine' ),
  ACTIONS: __( 'Actions', 'ai-engine' ),
  RESET: __( 'Reset', 'ai-engine' ),
  INCIDENTS_OPENAI: __( 'Incidents (OpenAI)', 'ai-engine' ),
  PREVIEW: __( 'Preview', 'ai-engine' ),
  LEGACY_FORMS: __( 'Legacy Forms', 'ai-engine' ),
  LEGACY_FEATURES: __( 'Legacy Features', 'ai-engine' ),
  DUPLICATE: __( 'Duplicate', 'ai-engine' ),
  CHATBOT_EDITOR: __( 'Chatbot Editor', 'ai-engine' ),
  THEME_EDITOR: __( 'Theme Editor', 'ai-engine' ),
  STREAMING: __( 'Streaming', 'ai-engine' ),
  SYNTAX_HIGHLIGHT: __( 'Syntax Highlight', 'ai-engine' ),
  EVENT_LOGS: __( 'Event Logs', 'ai-engine' ),
  PRIVACY_FIRST: __( 'Privacy First', 'ai-engine' ),
  DATA_NOT_AVAILABLE: __( 'Data not available.', 'ai-engine' ),
  DATA_NOT_AVAILABLE_HINT: __( 'Enable "Queries Data" in Settings > Others > Insights to record the content of queries and replies.', 'ai-engine' ),
  USAGE_EMPTY_SUBTITLE: __( 'Usage will appear here once AI queries start running.', 'ai-engine' ),
  ENVIRONMENTS: __( 'Environments', 'ai-engine' ),
  ENVIRONMENT_EMPTY_TITLE: __( 'No AI environment set up yet', 'ai-engine' ),
  ENVIRONMENT_EMPTY_SUBTITLE: __( 'Add OpenAI, Anthropic, Google, or any other provider to start.', 'ai-engine' ),
  SET_UP_ENVIRONMENT: __( 'Set up an environment', 'ai-engine' ),
  NO_API_KEY: __( 'No API key', 'ai-engine' ),
  TYPE_UNAVAILABLE: __( 'Type unavailable', 'ai-engine' ),
  CONFIGURE: __( 'Configure', 'ai-engine' ),
  EXPORT: __( 'Export', 'ai-engine' ),
  EXPORT_CSV: __( 'Export CSV', 'ai-engine' ),
  EXPORT_JSON: __( 'Export JSON', 'ai-engine' ),
  EXPORT_LOGS_INTRO: __( 'Exports the rows currently matched by your filters and sort order, not just the page on screen. CSV opens directly in a spreadsheet; JSON keeps the raw structure.', 'ai-engine' ),
  EXPORT_NOTHING_TO_EXPORT: __( 'There is nothing to export with the current filters.', 'ai-engine' ),
  EXPORT_FAILED: __( 'An error occurred while exporting. Check your browser console for details.', 'ai-engine' ),
  EXPORT_TRUNCATED: __( 'This export was capped at %s rows. Narrow the filters to export the rest.', 'ai-engine' ),
  MCP_LOGS: __( 'MCP Logs', 'ai-engine' ),
  TOP_TOOLS_7_DAYS: __( 'Top Tools (7 days)', 'ai-engine' ),
  TOOL_CALLS_MIXED: __( '%1$s succeeded, %2$s failed', 'ai-engine' ),
  TOOL_CALLS_ALL_FINE: __( '%s calls, no failures', 'ai-engine' ),
  TOOL_CALLS_FAILED: __( '%s failed', 'ai-engine' ),
  IMPORT: __( 'Import', 'ai-engine' ),
  MODIFY_EMBEDDING: __( 'Modify Embedding', 'ai-engine' ),
  ADD_EMBEDDING: __( 'Add Embedding', 'ai-engine' ),
  DEV_TOOLS: __( 'Dev Tools', 'ai-engine' ),
  SINGLE_GENERATE: __( 'Single Generate', 'ai-engine' ),
  PUBLIC_API: __( 'Public API', 'ai-engine' ),
  USER_INTERFACE: __( 'User Interface', 'ai-engine' ),
  INTRO_MESSAGE: __( 'Intro Message', 'ai-engine' ),
  ADDONS: __( 'Add-ons', 'ai-engine' ),
  AI_ENVIRONMENT_DEFAULTS: __( 'Default Environments for AI', 'ai-engine' ),
  ENVIRONMENTS_FOR_AI: __( 'Environments for AI', 'ai-engine' ),
  ENVIRONMENT_ID: __( 'Environment ID', 'ai-engine' ),
  EMBEDDINGS_ENVIRONMENT_DEFAULT: __( 'Default Embeddings Environment', 'ai-engine' ),
  ENVIRONMENT: __( 'Environment', 'ai-engine' ),
  PLUGIN_DATA: __( 'Plugin Data', 'ai-engine' ),
  PLUGIN_DATA_DESCRIPTION: __( "The database and all the options of the plugin will be removed on uninstall.", 'ai-engine' ),
  RESET_LIMITS: __( 'Reset Limits', 'ai-engine' ),
  VISION: __( 'Vision', 'ai-engine' ),
  FILE_SEARCH: __( 'File Search', 'ai-engine' ),
  PROMPT_TO_JSON: __( 'Prompt ➡ JSON', 'ai-engine' ),
  RESOLUTION: __( 'Resolution', 'ai-engine' ),
  QUALITY: __( 'Quality', 'ai-engine' ),
  DEFAULT: __( 'Default', 'ai-engine' ),
  DEFAULTS: __( 'Defaults', 'ai-engine' ),
  DEFAULT_FAST: __( 'Fast', 'ai-engine' ),
  REFRESH_MODELS: __( 'Refresh Models', 'ai-engine' ),
  AUDIO: __( 'Audio', 'ai-engine' ),
  JSON: __( 'JSON', 'ai-engine' ),
  AI_ENVIRONMENT: __( 'AI Environment', 'ai-engine' ),
  OVERRIDE_DEFAULTS: __( 'Override Defaults', 'ai-engine' ),
  REGION: __( 'Region', 'ai-engine' ),
  PROJECT_ID: __( 'Project ID', 'ai-engine' ),
  BEARER_TOKEN: __( 'Bearer Token', 'ai-engine' ),
  DIMENSIONS: __( 'Dimensions', 'ai-engine' ),
  EMBEDDINGS_MODEL: __( 'Embeddings Model', 'ai-engine' ),
  MIN_SCORE: __( 'Min Score', 'ai-engine' ),
  MAX_SELECT: __( 'Max Results', 'ai-engine' ),
  QDRANT_COLLECTION: __( 'Collection', 'ai-engine' ),
  INSTRUCTIONS: __( 'Instructions', 'ai-engine' ),
  FUNCTIONS: __( 'Functions', 'ai-engine' ),
  TOOLS: __( 'Tools & Capabilities', 'ai-engine' ),
  WEB_SEARCH: __( 'Web Search', 'ai-engine' ),
  IMAGE_GENERATION: __( 'Image Generation', 'ai-engine' ),
  CODE_INTERPRETER: __( 'Code Interpreter', 'ai-engine' ),
  ALLOWED_MIME_TYPES: __( 'Allowed Mime Types', 'ai-engine' ),
  SELECT_MIME_TYPES: __( 'Select', 'ai-engine' ),
  MIME_TYPE_SELECTOR: __( 'MIME Type Selector', 'ai-engine' ),
  AUTO_SELECT: __( 'Auto-Select', 'ai-engine' ),
  CUSTOM_MIME_TYPES: __( 'Custom MIME Types', 'ai-engine' ),
  HISTORY_STRATEGY: __( 'History Strategy', 'ai-engine' ),
  AUTOMATIC: __( 'Automatic', 'ai-engine' ),
  FULL_HISTORY: __( 'Full History', 'ai-engine' ),
  INCREMENTAL: __( 'Incremental', 'ai-engine' ),
  BUBBLE: __( 'Bubble', 'ai-engine' ),
  TABS: __( 'Tabs', 'ai-engine' ),
  DROPDOWN: __( 'Dropdown', 'ai-engine' ),
  CHATBOT_SELECT: __( 'Chatbot Select', 'ai-engine' ),
  CONDITIONS: __( 'Conditions', 'ai-engine' ),
  CONDITION: __( 'Condition', 'ai-engine' ),
  ADD_CONDITION: __( 'Add Condition', 'ai-engine' ),
  REMOVE: __( 'Remove', 'ai-engine' ),
  MCP_NO_OPTIONS: __( 'MCP is enabled but no options are selected. Please enable at least one option.', 'ai-engine' ),
  ORCHESTRATION: __( 'Orchestration', 'ai-engine' ),
  ORCHESTRATION_HELP: __( 'Let chatbots reach out and use tools from external MCP servers. Configure servers in Settings → Orchestration.', 'ai-engine' ),
  MCP_SERVERS: __( 'MCP Servers', 'ai-engine' ),
  MCP_FUNCTIONS: __( 'MCP Functions', 'ai-engine' ),
  URL: __( 'URL', 'ai-engine' ),
  TOKEN: __( 'Token', 'ai-engine' ),
  SERVER_ID: __( 'Server ID', 'ai-engine' ),
  PRICE: __( 'Price', 'ai-engine' ),
  UNITS: __( 'Units', 'ai-engine' ),
  TOKENS: __( 'Tokens', 'ai-engine' ),
  FAMILY: __( 'Family', 'ai-engine' ),
  DAILY: __( 'Daily', 'ai-engine' ),
  MONTHLY: __( 'Monthly', 'ai-engine' ),
  UNKNOWN_MODEL: __( 'Unknown Model', 'ai-engine' ),
  CONTEXTUAL: __( 'Contextual', 'ai-engine' ),
  COMPLETION: __( 'Completion', 'ai-engine' ),
  TOTAL_MAX_TOKENS: __( 'Total Max Tokens', 'ai-engine' ),
  RECOMMENDED: __( 'Recommended', 'ai-engine' ),
  SESSION: __( 'Session', 'ai-engine' ),
  LAST_REQUEST: __( 'Last Request', 'ai-engine' ),
  RESET_USAGE: __( 'Reset Usage', 'ai-engine' ),
  COPIED: __( 'Copied!', 'ai-engine' ),
  CLIPBOARD_ERROR: __( 'Clipboard is not enabled (only works with https).', 'ai-engine' ),
  VIEW_IN_PLATFORM: __( 'View in OpenAI Platform', 'ai-engine' ),
};

i18n.FORMS = {
  PROMPT_INFO: __( 'The template of your prompt. To re-use the data entered by the user, use the name of that field between curly braces. Example: Recommend me {MUSIC_TYPE} artists. You can also use an ID as an input, like this: ${#myfield}. Finally, if you wish the output to be formatted, add: \'Use Markdown.\'."', 'ai-engine' ),
  OUTPUT: __( 'Output', 'ai-engine' ),
  OUTPUT_ELEMENT: __( 'Output Element', 'ai-engine' ),
  OUTPUT_ELEMENT_INFO: __( 'The result will be written to this element. If you wish to simply display the result in an Output Block, use its ID. For instance, if its ID is mwai-666, use \'#mwai-666\'.', 'ai-engine' ),
};

i18n.HELP = {
  TEMPERATURE: __( 'Between 0 and 1. Higher values means the model will take more risks.', 'ai-engine' ),
  MAX_TOKENS: __( 'The maximum number of tokens to generate. The model will stop generating once it hits this limit.', 'ai-engine' ),
  STOP_SEQUENCE: __( 'The sequence of tokens that will cause the model to stop generating text. You absolutely need this with fine-tuned models.', 'ai-engine' ),
  COST: __( 'Keeps track of the current costs.', 'ai-engine' ),
  RESOLVE_SHORTCODE: __( 'Will resolve the shortcode in your content when needed (Content-Aware will use this, for instance).', 'ai-engine' ),
  FINETUNES: __( 'Train your own AI models.', 'ai-engine' ),
  DISCUSSIONS: __( 'Keep the conversations and enable browsing them via the Conversations tab.', 'ai-engine' ),
  DISCUSSION_TITLES: __( 'Generate titles for the discussions automatically with AI.', 'ai-engine' ),
  DISCUSSION_SUMMARY: __( 'Automatically generate a brief summary of the discussion using the default (fast) model. It will be used as the discussion title.', 'ai-engine' ),
  AZURE_DEPLOYMENTS: __( 'Add your deployments below and define what kind of model they are. GPT-5 models will automatically use the Responses API, while other models will use the Chat Completions API.', 'ai-engine' ),
  BANNED_WORDS: __( 'Reject queries containing these words; separate with commas.', 'ai-engine' ),
  WORD_BOUNDARIES: __( 'Ignore standard word separation (space) and match banned words anywhere in the text.', 'ai-engine' ),
  BANNED_IPS: __( 'Block access from specified IP addresses or ranges using CIDR notation; separate with commas.', 'ai-engine' ),
  GDPR_CONSENT: __( 'If enabled, the user will have to accept the conditions before using the chatbot.', 'ai-engine' ),
  POST_TYPES: __( 'Enable for these post types; separate with commas.', 'ai-engine' ),
  POST_STATUS: __( 'Enable for these post statuses (publish, draft, future, private, etc); separate with commas.', 'ai-engine' ),
  POST_CATEGORIES: __( 'Enable for these categories (slugs); separate with commas. If none, it will be enabled for all.', 'ai-engine' ),
  POST_LANGUAGES: __( 'Enable only for these languages (Polylang slugs like en, fr); separate with commas. If none, all languages are synced.', 'ai-engine' ),
  CONTEXT_MAX_LENGTH: __( 'Truncate the context (Content-Aware, Embeddings, etc) to make sure it is below this number of characters.', 'ai-engine' ),
  INSTRUCTIONS: __( 'Placeholders: {DATE_TIME}, {DISPLAY_NAME}, {FIRST_NAME}, {LAST_NAME}, {USER_LOGIN}. With Content-Aware: {CONTENT}, {EXCERPT}, {TITLE}, {URL}.', 'ai-engine' ),
  MAX_MESSAGES: __( 'Maximum number of historical messages that is sent to the AI model.', 'ai-engine' ),
  INPUT_MAX_LENGTH: __( 'Maximum number of characters that can be input by the user.', 'ai-engine' ),
  STATISTICS: __( ' In the Insights tab, you can browse through all your users\' activity. Contextual data is excluded unless you activate the options below. Make sure your users are aware of this.', 'ai-engine' ),
  QUERIES_DATA: __( 'Record the queries and their replies.', 'ai-engine' ),
  QUERIES_FORMS_DATA: __( 'Capture form data neatly for simple reuse.', 'ai-engine' ),
  SPEECH_RECOGNITION: __( 'Enable speech-to-text. Depends on the browser and OS used by the user.', 'ai-engine' ),
  SPEECH_SYNTHESIS: __( 'Enable text-to-speech.', 'ai-engine' ),
  CUSTOM_SHORTCODE: __( 'Prefer the above version. If you need many chatbots, you can custom shortcodes, like the one below. Custom shortcodes are based on the default chatbot, and their attributes override the default ones.', 'ai-engine' ),
  USER_FILTER: __( 'Type an User ID, or an IP.', 'ai-engine' ),
  STREAMING: __( 'The AI\'s response will appear as it\'s being created. Be cautious: this feature\'s ability to manage statistics, limits, and filters is still in its beta phase.', 'ai-engine' ),
  SYNTAX_HIGHLIGHT: __( 'Enable syntax highlighting for the code blocks.', 'ai-engine' ),
  EVENT_LOGS: __( 'Display streaming events and function calls in the chatbot interface for debugging. Requires Streaming to be enabled. Currently only visible in chatbots.', 'ai-engine' ),
  PRIVACY_FIRST: __( 'Only essential data is stored. IPs, conversations, and other private details are minimized and kept as anonymous as possible.', 'ai-engine' ),
  DEV_TOOLS: __( 'Enable a new tab with debugging tools. For developers only.', 'ai-engine' ),
  DEV_MODE: __( 'Run tasks very frequently for debugging.', 'ai-engine' ),
  PUBLIC_API: __( 'Expose AI Engine over REST endpoints so external tools like n8n, Make, Zapier, or your own scripts can call your chatbots, generate text and images, transcribe audio, and run vision queries. Bearer-token authenticated.', 'ai-engine' ),
  INTRO_MESSAGE: __( 'Enable introduction messages on some modules.', 'ai-engine' ),
  ADDONS: __( 'Enable the AI Addons section under the Meow Apps menu.', 'ai-engine' ),
  OPENAI_API_KEY: __( 'You can get your API Keys in your %s.', 'ai-engine' ),
  OPENAI_API_KEY_URL: 'https://platform.openai.com/api-keys',
  OPENAI_API_KEY_LINK_TEXT: __( 'OpenAI Account ↗', 'ai-engine' ),
  OPENAI_ORGANIZATION_ID: __( 'You can link this environment to an %s. This is optional.', 'ai-engine' ),
  OPENAI_ORGANIZATION_URL: 'https://platform.openai.com/account/organization',
  OPENAI_ORGANIZATION_LINK_TEXT: __( 'Organization ↗', 'ai-engine' ),
  AZURE_API_KEY: __( 'You can get your API Keys in your %s.', 'ai-engine' ),
  AZURE_API_KEY_URL: 'https://oai.azure.com/portal',
  AZURE_API_KEY_LINK_TEXT: __( 'Azure Account ↗', 'ai-engine' ),
  AZURE_ENDPOINT: __( 'Enter just your Azure resource domain (e.g., <code>myresource.openai.azure.com</code>). AI Engine will automatically construct the appropriate API endpoint based on the model type.', 'ai-engine' ),
  AZURE_REGION: __( 'Optional: Specify your Azure deployment region (e.g., <code>swedencentral</code>, <code>eastus2</code>, <code>westus</code>). This is required for Realtime API connections. If not specified, AI Engine will attempt to auto-detect the region from your endpoint or use <code>eastus2</code> as default.', 'ai-engine' ),
  ANTHROPIC_API_KEY: __( 'You can get your API Keys in your %s.', 'ai-engine' ),
  ANTHROPIC_API_KEY_URL: 'https://console.anthropic.com/settings/keys',
  ANTHROPIC_API_KEY_LINK_TEXT: __( 'Anthropic Account ↗', 'ai-engine' ),
  GOOGLE_API_KEY: __( 'You can get your API Keys in your %s.', 'ai-engine' ),
  GOOGLE_API_KEY_URL: 'https://aistudio.google.com/apikey',
  GOOGLE_API_KEY_LINK_TEXT: __( 'Google AI Studio ↗', 'ai-engine' ),
  OPENROUTER_API_KEY: __( 'You can get your API Keys in your %s.', 'ai-engine' ),
  OPENROUTER_API_KEY_URL: 'https://openrouter.ai/keys',
  OPENROUTER_API_KEY_LINK_TEXT: __( 'OpenRouter Account ↗', 'ai-engine' ),
  QDRANT: __( 'Use the code <b>#AIENGINE5</b> when you %s. You will get 5% off.', 'ai-engine' ),
  QDRANT_URL: 'https://qdrant.to/cloud',
  QDRANT_LINK_TEXT: __( 'Create a Qdrant Account ↗', 'ai-engine' ),
  ASSISTANTS: __( 'OpenAI Assistants API integration. Largely superseded by MCP for new projects.', 'ai-engine' ),
  ASSISTANTS_INTRO: __( 'The Assistants API is designed to help developers build powerful AI assistants capable of performing a variety of tasks. To create them, head to the %s dashboard, then <b>Refresh Assistants</b> here. You can use an assistant in your chatbots by switching the <b>Mode</b> to <b>Assistant</b>.', 'ai-engine' ),
  ASSISTANTS_INTRO_URL: 'https://beta.openai.com/assistants',
  ASSISTANTS_INTRO_LINK_TEXT: __( 'OpenAI Assistants ↗', 'ai-engine' ),
  ASSISTANTS_WARNINGS: __( 'Assistants are also %1$s, both for OpenAI and AI Engine. OpenAI did not add streaming support for them yet. Pricing is still quite unclear and %2$s. AI Engine can only perform an estimation. If you want to discuss assistants with other users, visit the %3$s.', 'ai-engine' ),
  ASSISTANTS_BETA_URL: 'https://platform.openai.com/docs/api-reference/assistants',
  ASSISTANTS_BETA_TEXT: __( 'in beta ↗', 'ai-engine' ),
  ASSISTANTS_PRICING_URL: 'https://openai.com/pricing',
  ASSISTANTS_PRICING_TEXT: __( 'tricky ↗', 'ai-engine' ),
  ASSISTANTS_DISCORD_URL: 'https://discord.gg/bHDGh38',
  ASSISTANTS_DISCORD_TEXT: __( 'Meow Apps Discord Server ↗', 'ai-engine' ),
  BEARER_TOKEN: __( 'The Public API will be usable by using this Bearer Token. If not set, you will need to %s by using the <i>mwai_allow_public_api</i> filter.', 'ai-engine' ),
  BEARER_TOKEN_URL: 'https://meowapps.com/ai-engine/api/#public-rest-api',
  BEARER_TOKEN_LINK_TEXT: __( 'build your own authentication ↗', 'ai-engine' ),
  REST_API_INTRO: __( 'The Public API enables integration with automation platforms and external applications. Use it with %s, n8n, Zapier, or any platform that supports HTTP requests to automate AI workflows and connect your WordPress site with other services.', 'ai-engine' ),
  REST_API_MAKE_URL: 'https://www.make.com/en/integrations/ai-engine',
  REST_API_MAKE_TEXT: __( 'Make.com ↗', 'ai-engine' ),
  MCP_BEARER_TOKEN: __( 'A secret token used to authenticate AI assistants. Required for secure access to your WordPress site.', 'ai-engine' ),
  MCP_INTRO: __( 'ChatGPT works perfectly with the No-Auth URL. %s for step-by-step setup. For Claude, which cannot handle SSE directly, %s is needed.', 'ai-engine' ),
  MCP_TUTORIAL_URL: 'https://ai.thehiddendocs.com/mcp/',
  MCP_TUTORIAL_TEXT: __( 'Check this tutorial ↗', 'ai-engine' ),
  MCP_CLAUDE_TUTORIAL_URL: 'https://ai.thehiddendocs.com/mcp/mcp-server-claude/',
  MCP_CLAUDE_TUTORIAL_TEXT: __( 'a relay ↗', 'ai-engine' ),
  MCP_SERVER_URL: __( 'The URL of the MCP server. Must start with https://', 'ai-engine' ),
  MCP_SERVER_TOKEN: __( 'Bearer token for authenticating with the MCP server.', 'ai-engine' ),
  REST_API_DOCS_URL: 'https://ai.thehiddendocs.com/public-rest-api/',
  REST_API_DOCS_TEXT: __( 'documentation ↗', 'ai-engine' ),
  PHP_API_FUNCTIONS_URL: 'https://ai.thehiddendocs.com/php-functions/',
  PHP_API_FUNCTIONS_TEXT: __( 'PHP Functions ↗', 'ai-engine' ),
  PHP_API_CLASSES_URL: 'https://ai.thehiddendocs.com/php-classes/',
  PHP_API_CLASSES_TEXT: __( 'PHP Classes ↗', 'ai-engine' ),
  PHP_API_FILTERS_URL: 'https://ai.thehiddendocs.com/php-filters/',
  PHP_API_FILTERS_TEXT: __( 'WordPress Filters ↗', 'ai-engine' ),
  NO_EMBEDDINGS_RESULTS: __( 'No results for this search. Make sure the Minimum Score is not too high.', 'ai-engine' ),
  SEARCH_EMBEDDINGS_PROMPT: __( 'Type a question above and hit AI Search to find the matching embeddings.', 'ai-engine' ),
  NO_EMBEDDINGS_ROWS: __( 'No embeddings yet in this environment.', 'ai-engine' ),
  MIN_SCORE: __( 'The minimum score the embeddings need to have to be returned. Between 0 and 100 and defaults to 35.', 'ai-engine' ),
  MAX_SELECT: __( 'The maximum number of embeddings to return and to use as context. Between 1 and 100 and defaults to 10.', 'ai-engine' ),
  FUNCTIONS: __( 'Select the functions to make available for the AI model\'s choice. It will use them to enhance responses and perform specific actions. This feature is known as %s.', 'ai-engine' ),
  FUNCTIONS_LINK_URL: 'https://ai.thehiddendocs.com/use-function-calling/',
  FUNCTIONS_LINK_TEXT: __( 'Function Calling ↗', 'ai-engine' ),
  FUNCTIONS_UNAVAILABLE: __( 'Function calling requires %s. With Pro, define callables via %s (no-code) or register them programmatically via the <code>mwai_functions_list</code> filter.', 'ai-engine' ),
  FUNCTIONS_UNAVAILABLE_PRO: __( 'No functions registered yet. You can create them with %s, or register them from your own code via the <code>mwai_functions_list</code> filter.', 'ai-engine' ),
  FUNCTIONS_PRO_URL: 'https://meowapps.com/ai-engine/',
  FUNCTIONS_PRO_TEXT: __( 'AI Engine Pro ↗', 'ai-engine' ),
  FUNCTIONS_CODE_ENGINE_URL: 'https://wordpress.org/plugins/code-engine/',
  FUNCTIONS_CODE_ENGINE_TEXT: __( 'Code Engine ↗', 'ai-engine' ),
  MCP_SERVERS: __( 'Select the MCP servers to make available for the AI model. These servers provide external tools and capabilities that the AI can use to enhance responses and perform specialized actions.', 'ai-engine' ),
  MCP_SERVERS_UNAVAILABLE: __( 'No MCP servers are available. Configure them in Settings → Orchestration.', 'ai-engine' ),
  TOOLS: __( 'Enable AI tools to enhance your chatbot capabilities. Availability depends on the model, so please test to confirm they work with your chosen model.', 'ai-engine' ),
  WEB_SEARCH: __( 'Allow the AI to search the web for current information', 'ai-engine' ),
  IMAGE_GENERATION: __( 'Allow the AI to generate images based on text descriptions', 'ai-engine' ),
  CODE_INTERPRETER: __( 'Allow the AI to write and run Python code to solve complex problems, process data, and generate visualizations', 'ai-engine' ),
  ALLOWED_MIME_TYPES: __( 'Restrict file uploads to specific mime types. Leave empty to use defaults. Comma-separated list (e.g., image/png, image/jpeg, application/pdf).', 'ai-engine' ),
  HISTORY_STRATEGY: __( 'Control how conversation history is sent to the Responses API. Incremental uses previous_response_id for efficiency, Full History sends all messages.', 'ai-engine' ),
  ADVISOR: __( 'In your Dashboard will be displayed daily recommendations tailored to your WordPress setup. Admins only.', 'ai-engine' ),
  BUBBLE: __( 'The popup will be displayed as a bubble.', 'ai-engine' ),
  ICON_TEXT: __( 'If set, this text will appear next to the icon/bubble.', 'ai-engine' ),
  ICON_TEXT_DELAY: __( 'Delay before text appears.', 'ai-engine' ),
  WIDTH: __( 'Width of the chatbot when open.', 'ai-engine' ),
  OPEN_DELAY: __( 'Auto-open after X seconds. Skipped on mobile so it does not hijack the screen.', 'ai-engine' ),
  CHATBOT_SELECT: __( 'Choose how you want to select the chatbot. By default, tabs are used, but you can also use a filterable dropdown if you have many chatbots.', 'ai-engine' ),
};

i18n.SETTINGS = {
  RESET_TITLE: __( 'Reset All Settings', 'ai-engine' ),
  RESET_SCOPE: __( 'Every AI Engine setting on this site is about to be deleted and recreated from the defaults.', 'ai-engine' ),
  RESET_SCOPE_KEYS: __( 'Your API keys, your AI environments and your module configuration all go. Every AI feature on the site stops working until you enter them again.', 'ai-engine' ),
  RESET_SCOPE_CHATBOTS: __( 'Your chatbots and your custom themes are deleted as well, and only the default ones come back. Your discussions, knowledge bases and logs are kept.', 'ai-engine' ),
  RESET_BACKUP: __( 'Cancel and use Export Settings first if you do not already have a backup.', 'ai-engine' ),
  RESET_CONFIRM: __( 'Reset Settings', 'ai-engine' ),
  AI_ENV_SETUP: __( 'Add your API key in <b>Settings → AI → Environments</b>. %s covers most cases, so it\'s a no-brainer. Let\'s try? 🐱', 'ai-engine' ),
  AI_FRESH_INSTALL: __( 'Hello! 🐱 We have prepared an <b>OpenAI</b> environment for you, just paste your key in <b>Settings → Environments for AI</b>. Prefer Claude, Gemini, or another provider? Switch the environment type any time.', 'ai-engine' ),
  AI_DEFAULT_NO_KEY: __( 'Your default environment is %s, but it has no API key. Set one, or pick a different default in <b>Settings → AI → Environments</b>.', 'ai-engine' ),
  AI_DEFAULT_TYPE_UNAVAILABLE: __( 'Your default environment is %s, but its engine type is no longer available. Pick a different default or re-install the matching add-on.', 'ai-engine' ),
  AI_DEFAULT_MISSING: __( 'The <b>Default</b> environment or model isn\'t set. Pick one in <b>Settings → AI → AI Environment Defaults</b>.', 'ai-engine' ),
  AI_DEFAULT_DEPRECATED: __( 'The <b>Default</b> model is marked as deprecated and may stop working soon. Pick a current model in <b>Settings → AI → AI Environment Defaults</b>.', 'ai-engine' ),
  AI_FAST_MISSING: __( 'The <b>Fast</b> environment or model isn\'t set. Pick one in <b>Settings → AI → AI Environment Defaults</b>.', 'ai-engine' ),
  AI_FAST_DEPRECATED: __( 'The <b>Fast</b> model is marked as deprecated and may stop working soon. Pick a current model in <b>Settings → AI → AI Environment Defaults</b>.', 'ai-engine' ),
  AI_ENV_SETUP_URL: 'https://platform.openai.com/api-keys',
  AI_ENV_SETUP_LINK_TEXT: __( 'OpenAI ↗', 'ai-engine' ),
  PINECONE_SETUP: __( 'You choose to use Embeddings. To use them, you need to a Pinecone account. Visit the %s website to create an account, then insert your Pinecone API Key in the <b>Settings</b> tab.', 'ai-engine' ),
  PINECONE_SETUP_URL: 'https://app.pinecone.io',
  PINECONE_SETUP_LINK_TEXT: __( 'Pinecone ↗', 'ai-engine' ),
  INTRO: __( 'Boost your WordPress with AI, now! Please start with our %1$s. Then move to our %2$s. Have a look at our %3$s. And make sure you read the %4$s. Have fun! 🎵', 'ai-engine' ),
  INTRO_TUTORIAL_URL: 'https://meowapps.com/ai-engine/tutorial/',
  INTRO_TUTORIAL_TEXT: __( 'tutorial', 'ai-engine' ),
  INTRO_DOCS_URL: 'https://ai.thehiddendocs.com/',
  INTRO_DOCS_TEXT: __( 'documentation', 'ai-engine' ),
  INTRO_ADDONS_URL: 'https://meowapps.com/products/category/ai-add-ons/',
  INTRO_ADDONS_TEXT: __( 'add-ons', 'ai-engine' ),
  INTRO_DISCLAIMER_URL: 'https://meowapps.com/ai-engine/disclaimer/',
  INTRO_DISCLAIMER_TEXT: __( 'disclaimer', 'ai-engine' ),
  MODULES_INTRO: __( 'To avoid cluttering the UI and your WP, only enable the features you need.', 'ai-engine' ),
  ALERT_INJECT_BUT_NO_POPUP: __( 'You choose to inject the chatbot in your website. You probably also want to use the chatbot in a Popup.', 'ai-engine' ),
  ALERT_CASUALLY_BUT_NO_FINETUNE: __( 'Normally, you should not check the Casually Fine Tuned option with a non-finetuned model. Make sure that\'s what you want.', 'ai-engine' ),
  ALERT_CONTENTAWARE_BUT_NO_CONTENT: __( 'Content Aware requires your Instructions to use at least one placeholder. More info %s.', 'ai-engine' ),
  ALERT_CONTENTAWARE_URL: 'https://meowapps.com/ai-engine/tutorial/#contextualization',
  ALERT_CONTENTAWARE_LINK_TEXT: __( 'here ↗', 'ai-engine' ),
  SET_AS_DEFAULT_PARAMETERS: __( 'Set as Default Parameters', 'ai-engine' ),
  SET_AS_DEFAULT_PARAMETERS_HELP: __( 'Set the parameters above as the default parameters for the chatbot. You can then use the shortcode [mwai_chat] anywhere on your website.', 'ai-engine' ),
  INJECT_DEFAULT_CHATBOT: __( 'Inject Default Chatbot in Entire Website', 'ai-engine' ),
  INJECT_DEFAULT_CHATBOT_HELP: __( 'Inject the chatbot [mwai_chat] in the entire website.', 'ai-engine' ),
  CHATGPT_STYLE_INTRO: __( 'Keep in mind that you can also style the chatbot (or a specific chatbot, if you use many) by injecting CSS. Have a look %1$s. More information in the %2$s.', 'ai-engine' ),
  CHATGPT_STYLE_CSS_URL: 'https://meowapps.com/ai-engine/tutorial/#apply-custom-style-to-the-chatbot',
  CHATGPT_STYLE_CSS_TEXT: __( 'here ↗', 'ai-engine' ),
  CHATGPT_STYLE_FAQ_URL: 'https://meowapps.com/ai-engine/faq',
  CHATGPT_STYLE_FAQ_TEXT: __( 'FAQ ↗', 'ai-engine' ),
  TYPEWRITER_EFFECT: __( 'Typewriter Effect', 'ai-engine' ),
  TYPEWRITER_EFFECT_HELP: __( 'The reply from AI will be typewrited. This delays the final output! Absolutely not recommended. Please use <b>Streaming</b> instead.', 'ai-engine' ),
  CHATBOT_MODERATION_HELP: __( 'If the conversation seems offensive, the chatbot will reject it.', 'ai-engine' ),
  CUSTOM_URL: __( 'Custom URL', 'ai-engine' ),
  ASSISTANT_NO_FILE_SEARCH: __( 'This assistant does not support File Search. You can activate it on the %s dashboard. Then, use the Refresh button in the Assistants tab.', 'ai-engine' ),
  ASSISTANT_NO_FILE_SEARCH_URL: 'https://platform.openai.com/assistants',
  ASSISTANT_NO_FILE_SEARCH_LINK_TEXT: __( 'OpenAI Assistants ↗', 'ai-engine' ),
  ASSISTANT_FILE_SEARCH: __( 'File Search will be used when the users upload documents. If the user uploads images, those will be handled by AI Vision if the model supports it and if it is enabled.', 'ai-engine' ),
  MCP_SERVERS_INFO: __( 'MCP (Model Context Protocol) servers enable AI models to interact with external tools and systems. The URL must be a secure HTTPS endpoint that implements the MCP protocol. You can configure multiple servers to provide different capabilities to your AI models.', 'ai-engine' ),
  REMOTE_ACCESS_INFO: __( 'AI Engine provides two ways to integrate with external systems: REST API and Model Context Protocol (MCP).<h2>REST API</h2><p>Ideal for automation platforms like Make.com, Zapier, or n8n. Use this when you want to trigger AI operations from external services or integrate AI Engine into your existing workflows.</p><h2>MCP</h2><p><u>How to Use</u></p><ul><li>- <b>Claude Desktop App:</b> Use the <code>mcp.js</code> relay. Check <code>/labs/mcp.md</code> for setup instructions.</li><li>- <b>OpenAI/ChatGPT:</b> Limited to Deep Research mode with only <code>search</code> and <code>fetch</code> tools (requires Tuned Core enabled).</li><li>- <b>Claude.ai:</b> Currently not supported.</li></ul><p><u>Available Tools</u></p><ul><li>- <b>Full access (Claude Desktop):</b> WordPress management, plugin/theme development, SEO Engine, Code Engine snippets</li><li>- <b>Limited access (OpenAI):</b> Only search and fetch WordPress posts/pages</li></ul><p><u>For Developers</u></p><p>Extend functionality using <code>mwai_mcp_tools</code> and <code>mwai_mcp_callback</code> filters. See <code>dev-notes.md</code> for details.</p><p><b>Note:</b> This makes WordPress an MCP server. For connecting TO external MCP servers, use the Orchestration module.</p>', 'ai-engine' ),
  KNOWLEDGE_INFO: __( 'Embeddings are textual data converted into vectors for similarity search. You can manage embeddings in the Knowledge tab, where you can switch from EDIT to AI SEARCH mode to query your knowledge base.<br/><br/>Embeddings are synchronized with vector databases like %1$s or Qdrant. You can create, edit, and search embeddings, then use Sync to process your posts and create/update embeddings as needed.<br/><br/>Both chatbots and AI Forms can use embeddings to enrich their answers with relevant context from your knowledge base.<br/><br/><b>If you want to discuss embeddings with other users, visit the %2$s.</b>', 'ai-engine' ),
  KNOWLEDGE_PINECONE_URL: 'https://www.pinecone.io/',
  KNOWLEDGE_PINECONE_TEXT: __( 'Pinecone ↗', 'ai-engine' ),
  KNOWLEDGE_DISCORD_URL: 'https://discord.gg/bHDGh38',
  KNOWLEDGE_DISCORD_TEXT: __( 'Meow Apps Discord Server ↗', 'ai-engine' ),
  ORCHESTRATION_INFO: __( 'MCP servers extend AI capabilities by providing tools and functions that AI models can call during conversations. Configure external MCP servers here to give your chatbots access to specialized tools like web browsing, file system access, database queries, or custom business logic.<br/><br/>Each server requires a secure HTTPS URL implementing the MCP protocol and may require authentication via bearer token. Once configured, the tools from these servers become available to AI models through function calling.<br/><br/><b>Note:</b> This is for connecting TO external MCP servers. To make your WordPress accessible AS an MCP server for AI agents like Claude, use the MCP option under Remote Access.', 'ai-engine' ),
};

i18n.CHATBOT = {
  CHATBOT_BUILDER: __( 'Chatbot Builder', 'ai-engine' ),
  RESET_PARAMS: __( 'Reset Parameters', 'ai-engine' ),
};

i18n.STATISTICS = {
  ABSOLUTE_HELP: __( 'Using Absolute, Day represents <i>today</i>. Otherwise, the <i>past 24 hours</i>. Same logic applies to the other timeframes.', 'ai-engine' ),
  NO_CREDITS_MESSAGE: __( 'Message for No Credits', 'ai-engine' ),
  FULL_ACCESS_USERS: __( 'Full-Access Users', 'ai-engine' ),
  ENABLE_LIMITS: __( 'Enable Limits', 'ai-engine' ),
};

i18n.CONTENT_GENERATOR = {
  INTRO: __( 'Generate high-quality articles with AI assistance. Create comprehensive content with customizable templates, writing styles, and automatic SEO optimization. Perfect for blogs, documentation, and marketing materials.', 'ai-engine' ),
  TITLE_MISSING: __( 'Title is missing!', 'ai-engine' ),
  SECTIONS_MISSING: __( 'Sections are missing!', 'ai-engine' ),
  SINGLE_GENERATE: __( 'Single Generate', 'ai-engine' ),
  BULK_GENERATE: __( 'Bulk Generate', 'ai-engine' ),
  CONTENT_PARAMS: __( 'Content Params', 'ai-engine' ),
  POST_PARAMS: __( 'Post Params', 'ai-engine' ),
  CONTENT_PARAMS_INTRO: __( 'Input fields are displayed for certain placeholders used in prompts, such as {LANGUAGE} or {WRITING_TONE}', 'ai-engine' ),
  CUSTOM_LANGUAGE: __( 'Custom Language', 'ai-engine' ),
  WRITING_STYLE: __( 'Writing Style', 'ai-engine' ),
  WRITING_TONE: __( 'Writing Tone', 'ai-engine' ),
  CUSTOM_LANGUAGE_HELP: __( 'AI supports all languages with varying quality. %s.', 'ai-engine' ),
  CUSTOM_LANGUAGE_URL: 'https://meowapps.com/ai-engine/faq/#languages',
  CUSTOM_LANGUAGE_LINK_TEXT: __( 'Learn more ↗', 'ai-engine' ),
  MODEL_HELP: __( 'It is recommended to use Turbo or GPT-4 to write texts.', 'ai-engine' ),
  PROMPTS_INTRO: __( 'Prompts represent the exact request sent to the AI. The variables between curly braces will be replaced by the content of the corresponding field. Prompts are saved in your templates.', 'ai-engine' ),
  PROMPT_TITLE: __( 'Prompt for <b>Title</b>', 'ai-engine' ),
  PROMPT_SECTIONS: __( 'Prompt for <b>Sections</b>', 'ai-engine' ),
  PROMPT_CONTENT: __( 'Prompt for <b>Content</b>', 'ai-engine' ),
  PROMPT_EXCERPT: __( 'Prompt for <b>Excerpt</b>', 'ai-engine' ),
  POST_CREATED: __( 'Post Created', 'ai-engine' ),
  POST_CREATED_AS_DRAFT: __( 'The post was created as a draft.', 'ai-engine' ),
  CONTENT_HELP: __( 'You can modify the content before using "Create Post". Markdown is supported, and will be converted to HTML when the post is created.', 'ai-engine' ),
  SECTIONS_HELP: __( 'Add, rewrite, remove, or reorganize those sections as you wish before (re)clicking on "Generate Content". Markdown format is recommended.', 'ai-engine' ),
  GENERATE_EXCERPT: __( 'Generate Excerpt', 'ai-engine' ),
  GENERATE_CONTENT: __( 'Generate Content', 'ai-engine' ),
  GENERATE_SECTIONS: __( 'Generate Sections', 'ai-engine' ),
  PARAGRAPHS_PER_SECTION: __( '# of Paragraphs per Section', 'ai-engine' ),
  NUMBER_OF_SECTIONS: __( '# of Sections', 'ai-engine' ),
  ADVICE: __( 'Advice', 'ai-engine' ),
  SECTIONS: __( 'Sections', 'ai-engine' ),
  USE_MAX_TOKENS: __( 'Use Max Tokens', 'ai-engine' ),
  TOPICS_HELP: __( 'Write or paste your topics below. Each line will be used as a topic. The <b>Context</b> on the left will be applied to all topics. The same <b>Params</b> and <b>Prompts</b> will be used as with the <b>Single Generate</b>, so make sure you get satisfying results with it first. This <b>takes time</b>, so relax and enjoy some coffee ☕️ and tea 🍵 :)', 'ai-engine' ),
  GENERATED_POSTS: __( 'Generated Posts', 'ai-engine' ),
  USE_TOPICS_AS_TITLES: __( 'Use Topics as Titles', 'ai-engine' ),
  NOTHING_YET: __( 'Nothing yet.', 'ai-engine' ),
  BULK_ERROR_CONFIRM: __( 'An error was caught ({MESSAGE}). Should we continue?', 'ai-engine' ),
  GENERATE_ALL: __( 'Generate All', 'ai-engine' ),
  EDIT_POST: __( 'Edit Post', 'ai-engine' ),
  CREATE_POST: __( 'Create Post', 'ai-engine' ),
  TITLE_TOO_SHORT: __( 'The title is too short. It should be at least 3 words.', 'ai-engine' ),
  TITLE_TOO_SHORT_2: __( 'The title is too short.  It should be at least 40 characters.', 'ai-engine' ),
  TITLE_TOO_LONG: __( 'The title is too long. It should be less than 8 words.', 'ai-engine' ),
  TITLE_TOO_LONG_2: __( 'The title is too long. It should be less than 70 characters.', 'ai-engine' ),
};

i18n.TEMPLATES = {
  TEMPLATE: __( 'Template', 'ai-engine' ),
  TEMPLATES: __( 'Templates', 'ai-engine' ),
  DELETE_CONFIRM: __( 'Are you sure you want to delete this template?', 'ai-engine' ),
  DELETE_ALL_CONFIRM: __( 'Are you sure you want to delete all the templates?', 'ai-engine' ),
  DELETE_TITLE: __( 'Delete Template', 'ai-engine' ),
  DELETE_SCOPE: __( 'This template will be permanently deleted for everyone who uses this site.', 'ai-engine' ),
  DELETE_NAME: __( 'Template: %s', 'ai-engine' ),
  RESET_ALL_TITLE: __( 'Reset All Templates', 'ai-engine' ),
  RESET_ALL_SCOPE: __( 'Every template you created in this section will be permanently deleted and the built-in ones restored, for everyone who uses this site.', 'ai-engine' ),
  RESET_ALL_CONFIRM: __( 'Reset Templates', 'ai-engine' ),
  NEW_TEMPLATE_NAME: __( 'New Template', 'ai-engine' ),
  EDIT: __( 'EDIT', 'ai-engine' )
};

i18n.PLAYGROUND = {
  INTRO: __( 'Welcome to the AI Playground! Here, you can play with different AI models and ask the UI to perform various tasks for you. You can ask it to write, rewrite, or translate an article, categorize words or elements into groups, write an email, etc. <b>Let me know if there are any new features you would like to see!</b> Have fun 🥳', 'ai-engine' ),
  PROMPT: __( 'Query / Prompt', 'ai-engine' ),
  REPLY: __( 'Reply', 'ai-engine' ),
};

i18n.ALERTS = {
  FINETUNING_STARTED: __( 'Fine-tuning started! Check its progress in the Models section. Depending on your dataset size, it may take a while (from a few minutes to days).', 'ai-engine' ),
  RESET_BUILDER: __( 'This will delete all the rows in the builder. Are you sure?', 'ai-engine' ),
  DELETE_FINETUNE: __( 'You are going to delete this fine-tune. Are you sure?\n\nPlease note that it will take a while before it is actually deleted. This might be a temporary issue of OpenAI.', 'ai-engine' ),
  FINETUNE_ALREADY_DELETED: __( 'This fine-tune was already deleted. It will be removed from the list.', 'ai-engine' ),
  CHECK_CONSOLE: __( 'Error! Check your console for more details.', 'ai-engine' ),
  DATASET_UPLOADED: __( 'Uploaded successfully! You can now train a model based on this dataset.', 'ai-engine' ),
  ONLY_SUPPORTS_FILES: __( 'This only supports JSON, JSONL, and CSV files. Check the Instructions section below.', 'ai-engine' ),
  EMPTY_LINES_DATASET: __( 'Some lines were empty. Make sure the CSV has a header row and that the columns are named \'prompt\' and \'completion\'. For debugging, an empty line was logged to the console.', 'ai-engine' ),
  EMPTY_LINES_EMBEDDINGS: __( 'Some lines were empty. Make sure the CSV has a header row and that the columns are named \'title\' and \'content\'. For debugging, an empty line was logged to the console.', 'ai-engine' ),
  ARE_YOU_SURE: __( 'Are you sure?', 'ai-engine' ),
};

i18n.FINETUNING = {
  MODELS_INTRO: __( 'The AI models you have fine-tuned. To create more, visit <b>Files</b>.', 'ai-engine' ),
  LEGACY_MODELS_INTRO: __( 'The AI models you have fine-tuned. <b>Do not use legacy fine-tuning anymore (based on models prior to GPT 3.5). Their deprecation has been %s for January 4th, 2024.</b><br />', 'ai-engine' ),
  LEGACY_MODELS_DEPRECATION_URL: 'https://platform.openai.com/docs/guides/legacy-fine-tuning',
  LEGACY_MODELS_DEPRECATION_TEXT: __( 'announced by OpenAI ↗', 'ai-engine' ),
  FILES_INTRO: __( 'The files you have uploaded to OpenAI. To create a new dataset file, switch from <b>Model & Files</b> to <b>Dataset Editor</b>. To train a new model, click on the <i>magic wand</i>.', 'ai-engine' ),
  MODEL_FINETUNE: __( 'Model Finetune', 'ai-engine' ),
  MODELS_FILES: __( 'Models & Files', 'ai-engine' ),
  DATASET_EDITOR: __( 'Dataset Editor', 'ai-engine' ),
  EDITOR: __( 'Editor', 'ai-engine' ),
  GENERATOR: __( 'Generator', 'ai-engine' ),
  HUGE_DATASET_WARNING: __( 'Caution: The data is too large to be saved in your browser\'s local storage.', 'ai-engine' ),
  NO_FINETUNES_YET: __( 'No fine-tunes found. Refresh the list, or create a new one (via a dataset).', 'ai-engine' ),
  CLEAN_MODELS_LIST: __( 'Clean Models List', 'ai-engine' ),
  DELETED_FINETUNE_ISSUE: __( 'For some reason, OpenAI still return the models even after you deleted them. Don\'t worry, AI Engine will do the cleanup for you! You can force the cleanup by using this button. It takes a bit of time depending on the total of models you have.', 'ai-engine' ),
};

i18n.DISCUSSIONS = {
  NEW_CHAT: __( 'New Chat', 'ai-engine' ),
  NO_MESSAGES_YET: __( 'No messages yet', 'ai-engine' ),
  RENAME: __( 'Rename', 'ai-engine' ),
  DELETE: __( 'Delete', 'ai-engine' ),
  UNTITLED: __( 'Untitled', 'ai-engine' ),
  TITLE_GENERATION_PROMPT: __( 'Based on the following conversation, generate a concise and specific title for the discussion, strictly less than 64 characters. Focus on the main topic, avoiding unnecessary words such as articles, pronouns, or adjectives. Do not include any punctuation at the end. Do not include anything else than the title itself, only one sentence, no line breaks, just the title.', 'ai-engine' ),
  DELETE_ALL_TITLE: __( 'Delete All Discussions', 'ai-engine' ),
  DELETE_SELECTED_TITLE: __( 'Delete Selected Discussions', 'ai-engine' ),
  DELETE_ALL_SCOPE: __( 'Every discussion stored on this site will be permanently deleted, for every user and every chatbot. Not only the ones visible in this list.', 'ai-engine' ),
  DELETE_ALL_HISTORY: __( 'Your visitors and your logged-in users will lose their conversation history. Any chatbot that displays past discussions, including the Workspace, will start empty for everyone.', 'ai-engine' ),
  DELETE_ALL_FILTERS: __( 'Filters and pagination are ignored: the discussions on the other pages are deleted too.', 'ai-engine' ),
  DELETE_ALL_BACKUP: __( 'If you want to keep a copy, cancel and use Export first.', 'ai-engine' ),
  DELETE_SELECTED_SCOPE: __( 'The selected discussions will be permanently deleted.', 'ai-engine' ),
  DELETE_SELECTED_HISTORY: __( 'The users who own them will lose that conversation history in their chatbots and in the Workspace.', 'ai-engine' ),
  DELETE_COUNT: __( 'Discussions to be deleted: %s', 'ai-engine' ),
  DELETE_COUNT_UNKNOWN: __( 'Discussions to be deleted: all of them', 'ai-engine' ),
};

i18n.QUERIES = {
  DELETE_ALL_TITLE: __( 'Delete All Logs', 'ai-engine' ),
  DELETE_SELECTED_TITLE: __( 'Delete Selected Logs', 'ai-engine' ),
  DELETE_ALL_SCOPE: __( 'Every logged query on this site will be permanently deleted, together with all of its metadata.', 'ai-engine' ),
  DELETE_ALL_VIEWS: __( 'Query Logs and MCP Logs are stored together, so both are cleared, whichever of the two you are looking at.', 'ai-engine' ),
  DELETE_ALL_FILTERS: __( 'Filters and pagination are ignored: the logs on the other pages are deleted too.', 'ai-engine' ),
  DELETE_SELECTED_SCOPE: __( 'The selected logs will be permanently deleted, together with their metadata.', 'ai-engine' ),
  DELETE_COUNT: __( 'Logs to be deleted: %s', 'ai-engine' ),
  DELETE_COUNT_UNKNOWN: __( 'Logs to be deleted: all of them', 'ai-engine' ),
};

i18n.LIMITS = {
  RESET_TITLE: __( 'Reset Limits', 'ai-engine' ),
  RESET_SCOPE: __( 'Every limit in this section will be restored to its default value.', 'ai-engine' ),
  RESET_CONFIRM: __( 'Reset Limits', 'ai-engine' ),
};

i18n.WRITING_STYLES = {
  INFORMATIVE: __( 'Informative', 'ai-engine' ),
  DESCRIPTIVE: __( 'Descriptive', 'ai-engine' ),
  CREATIVE: __( 'Creative', 'ai-engine' ),
  NARRATIVE: __( 'Narrative', 'ai-engine' ),
  PERSUASIVE: __( 'Persuasive', 'ai-engine' ),
  REFLECTIVE: __( 'Reflective', 'ai-engine' ),
  ARGUMENTATIVE: __( 'Argumentative', 'ai-engine' ),
  ANALYTICAL: __( 'Analytical', 'ai-engine' ),
  EVALUATIVE: __( 'Evaluative', 'ai-engine' ),
  JOURNALISTIC: __( 'Journalistic', 'ai-engine' ),
  TECHNICAL: __( 'Technical', 'ai-engine' ),
};

i18n.WRITING_TONES = {
  NEUTRAL: __( 'Neutral', 'ai-engine' ),
  FORMAL: __( 'Formal', 'ai-engine' ),
  ASSERTIVE: __( 'Assertive', 'ai-engine' ),
  CHEERFUL: __( 'Cheerful', 'ai-engine' ),
  HUMOROUS: __( 'Humorous', 'ai-engine' ),
  INFORMAL: __( 'Informal', 'ai-engine' ),
  INSPIRATIONAL: __( 'Inspirational', 'ai-engine' ),
  PROFESSIONAL: __( 'Professional', 'ai-engine' ),
  CONFLUENT: __( 'Confluent', 'ai-engine' ),
  EMOTIONAL: __( 'Emotional', 'ai-engine' ),
  PERSUASIVE: __( 'Persuasive', 'ai-engine' ),
  SUPPORTIVE: __( 'Supportive', 'ai-engine' ),
  SARCASTIC: __( 'Sarcastic', 'ai-engine' ),
  CONDESCENDING: __( 'Condescending', 'ai-engine' ),
  SKEPTICAL: __( 'Skeptical', 'ai-engine' ),
  NARRATIVE: __( 'Narrative', 'ai-engine' ),
  JOURNALISTIC: __( 'Journalistic', 'ai-engine' ),
};

i18n.EMBEDDINGS = {
  EDIT: __( 'EDIT', 'ai-engine' ),
  AI_SEARCH: __( 'AI SEARCH', 'ai-engine' ),
  SYNC_POSTS: __( 'Sync Posts', 'ai-engine' ),
  AUTO_SYNC_POSTS: __( 'Auto-Sync Posts', 'ai-engine' ),
  AUTO_SYNC_POSTS_DESCRIPTION: __( 'Embeddings will be created, updated or removed based on the activity related to your posts. These settings are shared by all environments, and they also decide what Push All sends.', 'ai-engine' ),
  MAINTENANCE: __( 'Maintenance', 'ai-engine' ),
  MAINTENANCE_DESCRIPTION: __( 'Embeddings that are stale or outdated are automatically re-created in the background, for all environments.', 'ai-engine' ),
  REWRITE_CONTENT: __( 'Rewrite Content', 'ai-engine' ),
  REWRITE_CONTENT_DESCRIPTION: __( 'Shorten and improve the content for your embedding using the default model.', 'ai-engine' ),
  FORCE_RECREATE: __( 'Force Recreate', 'ai-engine' ),
  FORCE_RECREATE_DESCRIPTION: __( 'Force recreation of existing embeddings even when content, model, and dimensions haven\'t changed. Note: New posts without embeddings will always be synced regardless of this setting.', 'ai-engine' ),
  DELETE_ALL_EMBEDDINGS: __( 'Delete All Embeddings', 'ai-engine' ),
  DELETE_ALL_EMBEDDINGS_CONFIRM: __( 'Are you sure you want to delete all the embeddings in this environment?', 'ai-engine' ),
  DELETE_ALL_TITLE: __( 'Delete All Embeddings', 'ai-engine' ),
  DELETE_SELECTED_TITLE: __( 'Delete Selected Embeddings', 'ai-engine' ),
  DELETE_ALL_SCOPE: __( 'Every embedding in this environment will be permanently deleted, both on this site and in the vector database itself.', 'ai-engine' ),
  DELETE_SELECTED_SCOPE: __( 'The selected embeddings will be permanently deleted, both on this site and in the vector database itself.', 'ai-engine' ),
  DELETE_REBUILD: __( 'Any chatbot using this environment will stop finding context until you rebuild it, and re-embedding the same content will cost tokens again.', 'ai-engine' ),
  DELETE_ENVIRONMENT: __( 'Environment: %s', 'ai-engine' ),
  DELETE_COUNT: __( 'Embeddings to be deleted: %s', 'ai-engine' ),
  REWRITE_PROMPT_DESCRIPTION: __( 'Prompt for the rewrite. Supports {CONTENT}, {TITLE}, {URL}, {EXCERPT}, {LANGUAGE}, {ID}.', 'ai-engine' ),
  SYNC_ALL: __( 'Sync All', 'ai-engine' ),
  SYNC_ONE: __( 'Sync One', 'ai-engine' ),
  ADD_INDEX: __( 'Add Index', 'ai-engine' ),
  ADD_INDEX_DESCRIPTION: __( 'An index is like a database, and contains embeddings. You can have many indexes and switch between them. The indexes are hosted on Pinecone.', 'ai-engine' ),
  NO_NAMESPACE_SUPPORT: __( 'Note: This server does not support namespaces.', 'ai-engine' ),
  // Remote URL Settings
  REWRITE_REMOTE_CONTENT: __( 'Rewrite Remote Content', 'ai-engine' ),
  REWRITE_REMOTE_CONTENT_DESCRIPTION: __( 'Clean and optimize content fetched from remote URLs using the default model.', 'ai-engine' ),
  FORCE_REMOTE_RECREATE: __( 'Force Remote Recreate', 'ai-engine' ),
  FORCE_REMOTE_RECREATE_DESCRIPTION: __( 'Force recreation of remote URL embeddings even when content hasn\'t changed.', 'ai-engine' ),
  REWRITE_REMOTE_PROMPT_DESCRIPTION: __( 'Prompt for the remote URL rewrite. Supports {CONTENT}, {URL}.', 'ai-engine' ),
  DEFAULT_REMOTE_REWRITE_PROMPT: __( 'Extract and clean the main content from this web page. Remove all website elements that are not part of the actual content: navigation menus, headers, footers, sidebars, breadcrumbs, ads, cookie notices, social sharing buttons, and related links sections.\n\nKeep only the primary content of the page. Use minimal formatting:\n- Use line breaks to separate distinct sections\n- Use simple lists (with dashes) only when the original has clear list items\n- For products or items: keep name, price, and key details on separate lines\n- Do not add markdown headers, bold, or other rich formatting\n\nThe result should be clean, readable text that preserves the essential information and structure. Keep it concise (under 1000 words). Output only the cleaned content, nothing else.\n\n{CONTENT}', 'ai-engine' ),
  SYNC_REMOTE_URLS_INTERVAL: __( 'Sync Interval', 'ai-engine' ),
  SYNC_REMOTE_URLS_INTERVAL_DESCRIPTION: __( 'How often to check remote URLs for content updates.', 'ai-engine' ),
  INTERVAL_1H: __( 'Every hour', 'ai-engine' ),
  INTERVAL_6H: __( 'Every 6 hours', 'ai-engine' ),
  INTERVAL_12H: __( 'Every 12 hours', 'ai-engine' ),
  INTERVAL_24H: __( 'Every 24 hours', 'ai-engine' ),
  INTERVAL_48H: __( 'Every 48 hours', 'ai-engine' ),
  INTERVAL_72H: __( 'Every 72 hours', 'ai-engine' ),
  INTERVAL_1W: __( 'Every week', 'ai-engine' ),
  INTERVAL_1M: __( 'Every month', 'ai-engine' ),
  // Section Labels
  LOCAL_CONTENT: __( 'Local Content', 'ai-engine' ),
  REMOTE_URLS: __( 'Remote URLs', 'ai-engine' ),
  SYNC_SETTINGS: __( 'Sync Settings', 'ai-engine' ),
  SYNC_SETTINGS_DESCRIPTION: __( 'Settings for synchronizing embeddings with your content.', 'ai-engine' ),
  SEARCH_SETTINGS: __( 'Search Settings', 'ai-engine' ),
  SEARCH_SETTINGS_DESCRIPTION: __( 'Settings for how embeddings are retrieved during conversations.', 'ai-engine' ),
};

i18n.ERROR = {
  UPDATING_OPTIONS: __( 'An error occurred while updating the options.' ),
  GETTING_OPTIONS: __( 'An error occurred while getting the options.' ),
  CHECK_YOUR_CONSOLE: __( 'For more information, check <a target="_blank" href="https://meowapps.com/tutorial-network-activity-dev-tools/">your console ↗</a>. You might also want to check your <a target="_blank" href="https://meowapps.com/tutorial-php-error-logs/">PHP Error Logs ↗</a>.', 'ai-engine' ),
  SESSION_EXPIRED: __( 'Your session has expired. Please refresh the page to continue using AI Engine.', 'ai-engine' ),
  COULD_NOT_PARSE_ERROR_STREAM: __( 'Could not parse the \'error\' stream.', 'ai-engine' ),
  COULD_NOT_PARSE_END_STREAM: __( 'Could not parse the \'end\' stream.', 'ai-engine' ),
  SERVER_ERROR_STATUS: __( 'Your server replied with an HTTP %d error instead of an AI reply. The request probably timed out or PHP crashed. Check your PHP error logs.', 'ai-engine' ),
  SERVER_NOT_JSON: __( 'Your server replied with something that is not a valid AI reply. A plugin, a theme or a security layer is probably interfering with the REST API. Check your PHP error logs.', 'ai-engine' ),
  // Chatbot specific errors
  INVALID_API_KEY: __( 'Invalid API key: Please check your OpenAI API key in settings.', 'ai-engine' ),
  RATE_LIMIT_EXCEEDED: __( 'Rate limit exceeded: Too many requests. Please try again later.', 'ai-engine' ),
  NETWORK_ERROR: __( 'Network error: Failed to establish connection to the AI service.', 'ai-engine' ),
  AUTHENTICATION_FAILED: __( 'Authentication failed: Your session has expired. Please refresh the page.', 'ai-engine' ),
  INTERNAL_SERVER_ERROR: __( 'Internal server error: An unexpected error occurred. Please try again.', 'ai-engine' ),
  PROCESSING_ERROR: __( 'An error occurred while processing your request. Please try again.', 'ai-engine' ),
  // Realtime errors
  MEDIADEVICES_NOT_AVAILABLE: __( 'MediaDevices API not available. Please ensure you are using HTTPS and a modern browser.', 'ai-engine' ),
  MICROPHONE_ACCESS_FAILED: __( 'Failed to access microphone. Please ensure microphone permissions are granted and try again.', 'ai-engine' ),
  CONNECTION_FAILED: __( 'Failed to establish connection with OpenAI servers. Please try again.', 'ai-engine' ),
};

// SEO block in the Modules tab
i18n.SEO_BLOCK = {
  TITLE: __( 'SEO', 'ai-engine' ),
  INTRO: __( 'How your site looks to search engines, and to AI.', 'ai-engine' ),
  DISCOURAGED: __( 'Search engines are discouraged in Settings → Reading, so every crawler is blocked.', 'ai-engine' ),
  SHOW_ALL: __( 'Show all', 'ai-engine' ),
  SHOW_LESS: __( 'Show less', 'ai-engine' ),
  VIEW: __( 'View ↗', 'ai-engine' ),
  EDIT: __( 'Edit', 'ai-engine' ),
  TILE_BOT_VISITS: __( 'AI bot visits', 'ai-engine' ),
  TILE_AI_VISIBILITY: __( 'AI visibility', 'ai-engine' ),
  TILE_TOP_BOTS: __( 'Top AI bots', 'ai-engine' ),
  REASON_NOT_INSTALLED: __( 'SEO Engine tracks this', 'ai-engine' ),
  REASON_NO_DATA: __( 'No data yet', 'ai-engine' ),
  REASON_PRO_REQUIRED: __( 'SEO Engine Pro', 'ai-engine' ),
  REASON_GENERIC: __( 'Not measured yet', 'ai-engine' ),
  FOOTER_ABSENT_PREFIX: __( 'Not measured yet. SEO Engine tracks these, and it\'s', 'ai-engine' ),
  FOOTER_ABSENT_LINK: __( 'free on WordPress.org', 'ai-engine' ),
  FOOTER_PRESENT: __( 'Tracked by SEO Engine.', 'ai-engine' ),
  OPEN_SEO_ENGINE: __( 'Open SEO Engine →', 'ai-engine' ),
  SEO_ENGINE_URL: 'https://wordpress.org/plugins/seo-engine/?utm_source=ai-engine&utm_medium=modules&utm_campaign=seo-block',
};

// Console/debug messages
i18n.DEBUG = {
  CRASH_IN_MARKDOWN: __( 'Crash in markdown-to-jsx! Reverting to plain text.', 'ai-engine' ),
  AI_ENGINE_COULD_NOT_FIND_BLOCK: __( 'AI Engine: Could not find block element for', 'ai-engine' ),
  AI_WAND_TABLE_REQUIRES_DATA: __( 'AI Wand: Table requires structured data for proper update', 'ai-engine' ),
  AI_WAND_COULD_NOT_FIND_SELECTION: __( 'AI Wand: Could not find selection, replacing entire block content', 'ai-engine' ),
  NEW_TOKEN_RECEIVED: __( '[MWAI] 🔐 New token received', 'ai-engine' ),
  NONCE_ERROR_DETECTED: __( '[MWAI] Nonce error detected, attempting to refresh...', 'ai-engine' ),
};

export default i18n;
