Plugin automatic-ai-posts (v2.0.0) - Pipeline completo: coleta de feeds RSS/Atom, filtro por IA, reescrita, categoria, imagem de capa e agendamento - Página de configuração com teste real do provedor de IA - Editor: botão para refazer imagem de capa e metadados, textos em PT-BR - Ajuda com botão Pix (copia-e-cola + QR) e sem nota de avaliação - Cache-busting por mtime nos assets do admin Tema gustavoo-portfolio - Marca do cabeçalho reduzida a "Gustavo" - Suporte a título próprio da marca Setup (docker/wp-init.sh, compose.yaml) - Plugins de terceiros (Post Views Counter, Rank Math, Site Kit) instalados do WordPress.org em vez de versionados - Falha explícita ao final se algum plugin obrigatório não instalar - WPCLI_UID/WPCLI_GID configuráveis Seeder do tema - Links permanentes "Dia e nome" e avatar "Iniciais" aplicados apenas em instalação nova, com regravação do .htaccess
202 lines
13 KiB
PHP
202 lines
13 KiB
PHP
<?php
|
|
defined('ABSPATH') || exit;
|
|
|
|
/**
|
|
* English
|
|
*/
|
|
return [
|
|
'nav_label' => 'Plugin navigation',
|
|
'tab_execucoes' => 'Runs',
|
|
'tab_configuracoes' => 'Settings',
|
|
'tab_log' => 'Live log',
|
|
'tab_ajuda' => 'Help',
|
|
'config_subtitle' => 'Configure every plugin option, organized by category.',
|
|
'config_categories' => 'Settings categories',
|
|
'section_general' => 'General',
|
|
'section_general_desc' => 'Main plugin settings.',
|
|
'section_prompts' => 'Prompts and Filter',
|
|
'section_prompts_desc' => 'Editorial profile, exclusions and rewrite instructions.',
|
|
'section_feeds' => 'RSS Feeds',
|
|
'section_feeds_desc' => 'News sources via RSS.',
|
|
'section_gnews' => 'GNews.io',
|
|
'section_gnews_desc' => 'API key and categories for news search.',
|
|
'section_ai' => 'Artificial Intelligence',
|
|
'section_ai_desc' => 'AI provider, model and parameters.',
|
|
'section_other' => 'Other Settings',
|
|
'section_other_desc' => 'Version and support.',
|
|
'field_pub_mode' => 'Publish mode',
|
|
'pub_mode_draft_label' => 'Save as draft',
|
|
'pub_mode_pub_label' => 'Publish automatically',
|
|
'pub_mode_desc' => 'Applies to both the manual button and automatic generation.',
|
|
'field_language' => 'Post language',
|
|
'language_desc' => 'Defines the language the AI writes in.',
|
|
'field_app_language' => 'App language',
|
|
'app_language_desc' => 'Language of the admin panel.',
|
|
'field_posts_per_run' => 'Posts per run',
|
|
'min_posts' => 'Min:',
|
|
'max_posts' => 'Max:',
|
|
'field_editorial' => 'Editorial profile',
|
|
'editorial_ph' => 'E.g. Tech, AI and startups blog. Prioritize generative AI news.',
|
|
'editorial_desc' => 'The AI uses this profile to pick the most relevant articles.',
|
|
'field_negative' => 'Negative profile',
|
|
'negative_ph' => 'E.g. Avoid politics, sports and clickbait.',
|
|
'negative_desc' => 'Topics the AI must <strong>avoid</strong> when selecting articles.',
|
|
'rewrite_label' => 'Rewriting',
|
|
'image_label' => 'Cover image',
|
|
'field_rewrite' => 'Rewrite instructions',
|
|
'rewrite_ph' => 'E.g. Write in a formal tone, use data and avoid clickbait.',
|
|
'rewrite_desc' => 'Extra instructions sent to the AI when rewriting.',
|
|
'field_feeds' => 'Feed URLs',
|
|
'feeds_desc' => 'One feed per line.',
|
|
'field_feed_max' => 'Articles per feed',
|
|
'feed_max_desc' => 'How many recent articles per feed are evaluated.',
|
|
'field_gnews_key' => 'API key',
|
|
'key_saved_hint' => 'A key is already saved. Leave the field blank to keep it.',
|
|
'gnews_key_desc' => 'Get it at <a href="https://gnews.io" target="_blank" rel="noopener">gnews.io</a>.',
|
|
'field_gnews_cats' => 'Categories',
|
|
'gnews_cats_desc' => 'A separate request is made for each selected category.',
|
|
'field_gnews_max' => 'Articles per category',
|
|
'gnews_max_desc' => 'On the GNews free plan the maximum is 10 articles per request.',
|
|
'field_provider' => 'AI provider',
|
|
'provider_desc' => 'The provider used for every AI call.',
|
|
'field_nvidia_key' => 'NVIDIA API key',
|
|
'nvidia_key_desc' => 'Get it at <a href="https://build.nvidia.com" target="_blank" rel="noopener">build.nvidia.com</a>.',
|
|
'field_openai_key' => 'OpenAI API key',
|
|
'openai_key_desc' => 'Get it at <a href="https://platform.openai.com" target="_blank" rel="noopener">platform.openai.com</a>.',
|
|
'field_anthropic_key' => 'Anthropic API key',
|
|
'anthropic_key_desc' => 'Get it at <a href="https://console.anthropic.com" target="_blank" rel="noopener">console.anthropic.com</a>.',
|
|
'field_openrouter_key' => 'OpenRouter API key',
|
|
'openrouter_key_desc' => 'Get it at <a href="https://openrouter.ai" target="_blank" rel="noopener">openrouter.ai</a>.',
|
|
'field_custom_url' => 'Base URL',
|
|
'custom_url_desc' => 'OpenAI-compatible endpoint, including /v1.',
|
|
'field_custom_key' => 'API key',
|
|
'custom_key_desc' => 'Key sent as Bearer to the endpoint above.',
|
|
'field_vertex_project' => 'Project ID',
|
|
'field_vertex_location' => 'Location',
|
|
'field_vertex_sa' => 'Service account (JSON)',
|
|
'vertex_sa_desc' => 'Full contents of the Google Cloud service account JSON file.',
|
|
'field_model' => 'Model',
|
|
'model_desc' => 'Leave blank to use the provider default model.',
|
|
'field_ai_limits' => 'Timeout and retries',
|
|
'timeout_label' => 'Timeout',
|
|
'retries_label' => 'Retries',
|
|
'ai_limits_desc' => 'Applies to every AI call.',
|
|
'ai_test_label' => 'Test connection',
|
|
'ai_test_btn' => 'Test now',
|
|
'ai_test_desc' => 'Sends a short call to the selected provider and shows the reply or the error.',
|
|
'ai_test_testing' => 'Testing…',
|
|
'ai_test_ok' => 'Connection works',
|
|
'field_image_instructions' => 'Image instructions',
|
|
'image_instructions_ph' => 'E.g. Prefer real photos of people working, no text in the image.',
|
|
'image_instructions_desc' => 'The AI uses these instructions to build the DuckDuckGo query and write the image texts.',
|
|
'field_image_caption' => 'Configurable caption',
|
|
'image_caption_ph' => 'E.g. Always mention the company name. Max 120 characters.',
|
|
'image_caption_desc' => 'Style or rules the image caption must follow.',
|
|
'other_version' => 'Plugin version',
|
|
'other_support' => 'Support and credits',
|
|
'save_all' => 'Save all settings',
|
|
'discard_changes' => 'Discard changes',
|
|
'unsaved_changes' => 'Unsaved changes',
|
|
'exec_subtitle' => 'Follow plugin runs and control automatic generation.',
|
|
'running_now' => 'Running now...',
|
|
'no_execution' => 'No process running',
|
|
'started_in' => 'Started at: %s',
|
|
'idle_desc' => 'No run in progress right now.',
|
|
'processing_feeds' => 'Processing feeds...',
|
|
'last_run' => 'Last:',
|
|
'never' => 'never',
|
|
'running_btn' => 'Running...',
|
|
'abort_btn' => 'Abort run',
|
|
'exec_note' => 'Updated automatically every 3 seconds. Abort ends the process immediately.',
|
|
'status_running' => 'Running',
|
|
'status_idle' => 'Stopped',
|
|
'section_run_now' => 'Run now',
|
|
'card_auto' => 'Automatic generation',
|
|
'auto_status_label' => 'Status',
|
|
'auto_active' => 'Active',
|
|
'auto_inactive' => 'Inactive',
|
|
'next_run' => 'Next:',
|
|
'auto_first_run' => 'First run',
|
|
'start_now' => 'Start now',
|
|
'set_schedule' => 'Set a schedule',
|
|
'schedule_desc' => 'Pick the date and time for the first run.',
|
|
'field_auto_period' => 'Automatic generation period',
|
|
'auto_period_hint' => 'Interval between automatic runs.',
|
|
'stop_auto_btn' => 'Pause automatic',
|
|
'start_auto_btn' => 'Start automatic',
|
|
'log_title' => 'Live log',
|
|
'log_panel_subtitle' => 'Follow plugin events and errors.',
|
|
'log_live' => 'Auto refresh',
|
|
'log_level' => 'Level',
|
|
'log_level_all' => 'All levels',
|
|
'log_loading' => 'Loading...',
|
|
'log_load_more' => 'Load more',
|
|
'help_subtitle' => 'Plugin credits.',
|
|
'created_by' => 'created by',
|
|
'licence_label' => 'GPLv2 License',
|
|
'help_website' => 'Author website',
|
|
'plugin_active' => 'Plugin active',
|
|
'version_label' => 'Version %s',
|
|
'js_no_execution' => 'No process running',
|
|
'js_running' => 'Running...',
|
|
'js_aborting' => 'Aborting...',
|
|
'js_run_now' => 'Run now',
|
|
'js_processing' => 'Processing feeds...',
|
|
'js_error_prefix' => 'Error:',
|
|
'js_aborted' => 'Run aborted.',
|
|
'js_wait' => 'Please wait...',
|
|
'js_auto_started' => 'Automatic generation enabled.',
|
|
'js_auto_paused' => 'Automatic generation paused.',
|
|
'js_comm_error' => 'Communication failed.',
|
|
'js_error_start' => 'Could not start.',
|
|
'js_error_abort' => 'Could not abort.',
|
|
'js_start_auto' => 'Start automatic',
|
|
'js_stop_auto' => 'Pause automatic',
|
|
'js_log_empty' => 'No logs yet.',
|
|
'js_log_updated' => 'Updated',
|
|
'js_next_run' => 'Next:',
|
|
'js_auto_active' => 'Active',
|
|
'js_auto_inactive' => 'Inactive',
|
|
'js_schedule_required' => 'Pick a date and time.',
|
|
'js_schedule_past' => 'The date must be in the future.',
|
|
'js_settings_saved' => 'Settings saved.',
|
|
'js_preparing' => 'Preparing...',
|
|
'js_running_feeds' => 'Processing feeds...',
|
|
'js_sleeping' => 'Waiting...',
|
|
'gnews_categories' => ['general' => 'General', 'world' => 'World', 'nation' => 'Nation', 'business' => 'Business', 'technology' => 'Technology', 'entertainment' => 'Entertainment', 'sports' => 'Sports', 'science' => 'Science', 'health' => 'Health'],
|
|
'auto_period_units' => ['minutes' => 'minutes', 'hours' => 'hours', 'days' => 'days'],
|
|
'help_page_title' => 'Help, Credits and Donation',
|
|
'help_page_subtitle' => 'Find help, see the plugin credits and support the project.',
|
|
'section_donate' => 'Support the Project',
|
|
'section_donate_desc' => 'Your support keeps the plugin updated and evolving.',
|
|
'donate_title' => 'Make a donation',
|
|
'donate_desc' => 'Any amount helps a lot to keep this plugin in development and to bring new features to you.',
|
|
'donate_btn' => 'Donate with Pix',
|
|
'donate_copied' => 'Copy and paste key copied!',
|
|
'donate_qr_hint' => 'Point your camera',
|
|
'or_label' => 'or',
|
|
'section_credits' => 'Credits',
|
|
'section_credits_desc' => 'Thanks to everyone who makes this project possible.',
|
|
'credit_developer' => 'Lead Developer',
|
|
'section_about' => 'About the Plugin',
|
|
'section_about_desc' => 'Important information about Automatic AI Posts.',
|
|
'about_desc' => 'WordPress plugin to generate and publish posts automatically with artificial intelligence, simply and efficiently.',
|
|
'about_feature_1' => 'Automatic AI posts',
|
|
'about_feature_2' => 'Multiple settings',
|
|
'about_feature_3' => 'Detailed logs',
|
|
'about_feature_4' => 'RSS feed support',
|
|
'about_feature_5' => 'Scheduled runs',
|
|
'about_feature_6' => 'Multiple AI providers',
|
|
'about_github' => 'Project on GitHub',
|
|
'donate_key_label' => 'Copy and paste key:',
|
|
'donate_no_qr' => 'Save the QR code image at admin/pix-qrcode.png',
|
|
'editor_box_title' => 'Automatic AI Posts',
|
|
'editor_desc' => 'Searches a new cover image and regenerates the alt, caption and description, exactly like the pipeline.',
|
|
'editor_btn_has_image' => 'Search a new image',
|
|
'editor_btn_no_image' => 'Search a cover image',
|
|
'editor_working' => 'Searching a new image…',
|
|
'editor_success' => 'Cover image updated.',
|
|
'editor_no_image' => 'No usable image was found. The current cover was kept.',
|
|
'editor_error' => 'Could not search the image. Check the plugin logs.',
|
|
];
|