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.',
),
);