array( // Contains HTML — must use Messages::raw() + wp_kses_post(), never Messages::get(). 'php_version' => 'AI Content by Parallax requires PHP 8.1 or higher. Your current PHP version is %s. Please upgrade your PHP version to use the plugin.', 'woocommerce' => 'AI Content by Parallax requires WooCommerce to be active.', 'plugin_name' => 'AI Content by Parallax', 'security_failed' => 'Security check failed. Please try again.', 'data_refresh_ok' => 'Data refreshed successfully.', 'data_refresh_fail' => 'Data refresh failed. Check logs for details.', 'restored_originals' => 'Restored originals: %1$d products and %2$d terms.', 'retook_snapshots' => 'Retook product data snapshots for %1$d products and %2$d terms.', ), 'auth' => array( 'get_credentials_title' => 'Get Your Parallax AI API Credentials', 'get_credentials_body' => 'To use Parallax AI features, you need to create API credentials.', 'create_credentials' => 'Create API Credentials', 'set_credentials' => 'Set API Credentials', 'insufficient_credits' => 'Insufficient Credits', 'no_credits_body' => 'You do not have enough credits to use Parallax AI features.', 'credits_label' => 'Credits:', 'buy_more' => 'Buy More Credits', ), 'debug' => array( 'client_info' => 'Client Information:', 'client' => 'Client:', 'description' => 'Description:', 'api_key' => 'API Key:', 'client_id' => 'Client ID:', 'sync_button' => 'Sync Batch Request Data', ), 'settings' => array( 'page_title' => 'Parallax AI Settings', 'menu_title' => 'Parallax', 'section_connection' => 'API Connection Settings', 'section_meta' => 'Product Meta Settings', 'section_exclusions' => 'Skip / Exclusions', 'client_id' => 'Parallax account email', 'client_api_key' => 'Parallax API key', 'client_name' => 'Client Name', 'client_description' => 'Client Description', 'enable_tags' => 'Enable Tag Support', 'disable_yoast_sync' => 'Disable sync term SEO to Yoast', 'disable_yoast_desc' => 'Syncing is enabled by default. Check this to disable mirroring Parallax term meta title/description into Yoast SEO term fields (wpseo_title/wpseo_desc) for supported taxonomies. Requires Yoast SEO.', 'disable_label' => 'Disable', 'enable_debug' => 'Enable Debugging', 'disable_modals' => 'Disable Modal Overlays', 'include_drafts' => 'Include drafts', 'include_drafts_desc' => 'When enabled, draft products appear in Optimize Products and can be included in batch requests.', 'include_drafts_off' => 'Default is off to avoid optimizing unfinished products.', 'max_batch_ids' => 'Max batch item IDs', 'max_batch_ids_desc' => 'Limits the number of IDs allowed per batch request. Default is 1000.', 'skip_product_ids' => 'Skip Product IDs (CSV)', 'skip_category_ids' => 'Skip Category IDs (CSV)', 'skip_product_desc' => 'Paste product IDs separated by commas or new lines.', 'skip_category_desc' => 'Paste category IDs separated by commas or new lines.', 'skip_enforced' => 'Skips are enforced in UI and server-side batch requests.', 'skip_product_explain' => 'These products will not appear in Optimize Products and will never be sent in batch requests.', 'skip_category_explain' => 'These categories will not appear in Optimize Categories and will never be sent in batch requests.', 'skip_example' => 'Example: 123, 456\n789', 'api_key_override' => 'This value is currently overridden by %s in wp-config.php. Saving settings will not change the stored API key until the override is removed.', 'select_tab' => 'Select a tab to manage settings.', ), 'tabs' => array( 'optimize_products' => 'Optimize Products', 'optimize_categories' => 'Optimize Categories', 'optimize_tags' => 'Optimize Product Tags', 'approval_import' => 'Approval/Import', 'connection' => 'Settings', ), 'batch' => array( 'backup_notice' => 'We captured a one-time backup of original product and taxonomy data. You can take an additional snapshot to override the last at any time.', 'retake_confirm' => 'Rebuild every stored product and taxonomy snapshot so future resets use the latest data? This may take a while on large catalogs.', 'retake_button' => 'Retake Product Data Snapshot', 'restore_products_confirm' => 'Restore ONLY products to the captured originals? This will overwrite current product titles/descriptions/SEO fields.', 'restore_products_button' => 'Reset to Originals (Products)', 'restore_categories_confirm' => 'Restore ONLY product categories to the captured originals? This will overwrite current category titles/descriptions/SEO fields.', 'restore_categories_button' => 'Reset to Originals (Categories)', 'restore_all_confirm' => 'Restore ALL products and product terms to the captured originals? This will overwrite current titles/descriptions/SEO fields.', 'restore_all_button' => 'Reset to Originals (All Items)', 'no_requests_found' => 'No Optimization Batch Requests Found', 'product_requests' => 'Product Optimization Batch Requests', 'category_requests' => 'Category Optimization Batch Requests', 'product_details' => 'Product Batch Request Details', 'category_details' => 'Category Batch Request Details', 'no_product_requests' => 'No product batch requests found.', 'no_category_requests' => 'No category batch requests found.', 'no_product_details' => 'No product batch request details found.', 'no_category_details' => 'No category batch request details found.', 'loading' => 'Loading %s...', ), 'ajax' => array( 'missing_table_key' => 'Missing table key.', 'unsupported_table' => 'Unsupported table key.', 'missing_batch_id' => 'Missing batch_request_id.', 'delete_failed' => 'Failed to delete the batch request.', 'invalid_nonce' => 'Invalid or missing nonce.', 'insufficient_perms' => 'Insufficient permissions.', 'all_excluded' => 'All requested items are excluded from optimization.', 'submit_failed' => 'Failed to submit batch request to the API.', 'no_items_import' => 'No items found to import for batch request %d.', 'imported_products' => 'Imported %1$d of %2$d product items for batch request %3$d.', 'imported_categories' => 'Imported %1$d of %2$d category items for batch request %3$d.', 'rejected_item' => 'Rejected item %1$d for batch request %2$d.', 'reverted_item' => 'Reverted item %1$d for batch request %2$d.', 'imported_item' => 'Imported item %1$d for batch request %2$d.', 'show_optimized' => 'Show Optimized', 'hide_optimized' => 'Hide Optimized', 'optimize_all_failed' => 'Failed to submit optimize-all batch.', 'payload_too_large' => 'Batch request payload is too large.', 'malformed_json' => 'Invalid batch request payload: malformed JSON.', 'invalid_payload' => 'Invalid batch request payload.', 'invalid_type' => 'Invalid optimize type.', 'missing_item_ids' => 'Missing item IDs.', 'too_many_items' => 'Too many items included in the batch request.', 'select_field' => 'Select at least one field to optimize.', 'too_many_fields' => 'Too many fields selected for optimization.', ), 'optimize' => array( 'select_fields' => 'Select Fields to Optimize', 'credits_available' => 'Total Credits Available:', 'credits_required' => 'Total Credits Required:', 'start' => 'Start Optimization', 'invalid_class' => 'Invalid list table class: ', ), 'enums' => array( 'status_new' => 'New', 'status_in_progress' => 'In Progress', 'status_complete' => 'Complete', 'status_error' => 'Error', 'status_cancelled' => 'Cancelled', 'status_pending' => 'Pending', 'status_completed' => 'Completed', 'status_ready' => 'Ready', 'status_ready_for_review' => 'Ready for Review', 'null_id' => 'Null ID', 'status_error_label' => 'Status Error', 'status_unrecognized' => 'Status Unrecognized', 'api_response_error' => 'API response error', ), 'columns' => array( 'id' => 'ID', 'batch_request_id' => 'Batch Request ID', 'status' => 'Status', 'type' => 'Type', 'total_expected' => 'Total Expected', 'batches_done' => 'Batches Done', 'created_at' => 'Created At', 'updated_at' => 'Updated At', 'approve' => 'Approve', 'delete' => 'Delete', 'clear_batch' => 'Clear BatchRequest', 'no_batch_id' => 'No Batch Request ID', 'view' => 'View', 'import' => 'Import', 'drop' => 'Drop', 'date' => 'Date', 'batch_status' => 'Batch Status', 'total_items' => 'Total %s Items', 'processed' => 'Processed', 'failed' => 'Failed', 'remaining' => 'Remaining', ), 'details' => array( 'revert' => 'Revert', 'name' => 'Name', 'current_meta_title' => 'Current Meta Title', 'current_meta_desc' => 'Current Meta Description', 'current_desc' => 'Current Description', 'opt_name' => 'Optimized Name', 'opt_meta_title' => 'Optimized Meta Title', 'opt_meta_desc' => 'Optimized Meta Description', 'opt_desc' => 'Optimized Description', 'actions' => 'Actions', 'refresh_status' => 'Refresh Batch Status', 'run_pending' => 'Run Pending Items', 'batch_details' => 'Batch Request Details', 'import_data' => 'Import Data', 'reject' => 'Reject', 'import_all' => 'Import All Items', 'revert_batch' => 'Revert Batch', 'processing_product' => 'Processing Product', 'processing_category' => 'Processing Category', 'optimization_failed' => 'Optimization Failed', 'successfully_imported' => 'Successfully Imported', 'no_products' => 'No products found for this batch request.', 'no_categories' => 'No categories found for this batch request.', // Contains HTML — must use Messages::raw() + wp_kses_post(), never Messages::get(). 'try_recent' => ' Try the most recent batch request with items.', 'batch_request_label' => 'Batch Request:', 'choose_product' => 'Choose product batch request', 'choose_category' => 'Choose category batch request', ), 'seo' => array( 'meta_title' => 'Meta Title', 'meta_title_rec' => 'Recommended ~50 to 60 characters.', 'meta_desc' => 'Meta Description', 'meta_desc_rec' => 'Recommended ~150 to 160 characters.', 'term_title_desc' => 'Optional custom SEO title for this term.', 'term_desc_desc' => 'Optional custom SEO description for this term.', ), 'revisions' => array( 'post_type_name' => 'Parallax Term Revisions', 'post_type_singular' => 'Parallax Term Revision', 'meta_title' => 'Parallax Meta Title', 'meta_desc' => 'Parallax Meta Description', 'heading' => 'Parallax Revisions', 'view_link' => 'View Revisions', 'removed' => 'Removed', 'added' => 'Added', ), 'filtered' => array( 'optimized' => 'Optimized', 'not_optimized' => 'Not Optimized', 'yes' => 'Yes', 'no' => 'No', 'all_optimized' => 'All items have been optimized.', 'no_items' => 'No items found.', ), 'tables' => array( 'refresh_batch' => 'Refresh Batch Requests', 'optimize_all_items' => 'Optimize All %s Items', ), 'cron' => array( 'interval_display' => 'Every %d Minutes (AI Content by Parallax)', ), 'js' => array( 'select_item' => 'Please select at least one product or term to optimize.', 'not_enough_credits' => 'Not enough Parallax credits. You need %1$s credits but only have %2$s available. Visit https://www.eparallax.com to purchase more.', 'preparing_request' => 'Preparing API Batch Request...', 'submitting_request' => 'Submitting API Batch Request...', 'error_submitting' => 'Error submitting API Batch Request:', 'click_to_copy' => 'Click to copy', 'copied' => 'Copied!', 'no_records' => 'No records found.', 'failed_load_table' => 'Failed to load table.', 'refreshing' => 'Refreshing...', 'refreshing_products' => 'Refreshing Product Optimization Batch Requests...', 'refreshing_categories' => 'Refreshing Category Batch Request Details...', 'refreshed' => 'Refreshed', 'error_refreshing' => 'Error refreshing batch requests:', 'confirm_import_all' => 'Are you sure you want to import all items for batch request %s?', 'importing' => 'Importing...', 'import_success' => 'All items imported successfully for batch request %s.', 'imported' => 'Imported!', 'import_halted' => 'Import halted unexpectedly while processing items.', 'import_error' => 'An error occurred while importing all items:', 'missing_security_token' => 'Missing security token for this action.', 'confirm_reject' => 'Are you sure you want to reject this item? This will discard the batch request.', 'confirm_revert' => 'Are you sure you want to revert this item?', 'confirm_import' => 'Are you sure you want to import the item with id %s? You can revert this later if needed.', 'rejecting' => 'Rejecting...', 'reverting' => 'Reverting...', 'action_error' => 'An error occurred while processing the item.', 'insufficient_credits' => 'Insufficient credits:', 'credits_needed' => 'You need %1$s credits but only have %2$s available. Please purchase more credits to proceed or remove items from the batch request.', 'select_field_credits' => 'Select at least one field to calculate credits.', 'credits_estimate' => '%1$s credits (%2$s items)', 'credits_per_item' => '%s credits per item', 'no_fields_selected' => 'No optimization fields selected; credits cannot be calculated.', 'not_enough_credits_url' => 'Not enough Parallax credits. Visit https://www.eparallax.com to purchase more.', 'not_enough_credits_detail' => 'Not enough credits. This requires approximately %1$s credits but you only have %2$s available. Visit https://www.eparallax.com to purchase more.', 'not_enough_single' => 'Not enough credits. Even a single item requires %1$s credits but you only have %2$s available. Visit https://www.eparallax.com to purchase more.', 'confirm_optimize_all' => 'Are you sure you want to optimize all items?', 'optimizing' => 'Optimizing...', 'optimizing_progress' => 'Optimizing... (%1$s/%2$s)', 'optimize_all_completed' => 'Optimize all batches have been queued.', 'nothing_optimized' => 'Nothing was optimized because no eligible items were found.', 'not_enough_credits_btn' => 'Not enough credits to optimize the selected items.', 'confirm_delete_order' => 'Are you sure you want to delete this order? This action cannot be undone.', 'delete_order' => 'Delete Order', 'deleting' => 'Deleting...', 'delete_error' => 'Error deleting order. Please try again.', 'refresh_error' => 'Could not refresh batch request details. Please try again.', 'optimize_all_failed' => 'Optimize All request failed.', 'no_response_data' => 'No response data received from server.', 'max_iterations' => 'Optimize All exceeded maximum iterations.', ), );