trypost/lang/pt-BR/posts.php
Paulo Castellano 27287aa130
fix: Pinterest video processing timeout — longer poll + retry (#246)
* fix: give Pinterest video processing more time and retry on timeout

A valid ~54s video pin failed after ~90s of polling while Pinterest was
still processing. Extend the poll window to ~5 minutes and treat timeout
as platform unavailable so PublishToSocialPlatform reschedules instead of
failing the post on the first attempt.

Co-authored-by: Cursor <cursoragent@cursor.com>

* refactor: use Laravel Sleep for Pinterest media processing polls

Co-authored-by: Cursor <cursoragent@cursor.com>

* refactor: inline Pinterest video processing poll constants

Co-authored-by: Cursor <cursoragent@cursor.com>

* refactor: map Pinterest media upload statuses to an enum

Use the official MediaUploadStatus values (registered, processing,
succeeded, failed) instead of comparing raw strings in the publisher.

Co-authored-by: Cursor <cursoragent@cursor.com>

* refactor: trim Pinterest media processing docblock

* fix: cap platform-unavailable retries and recover stuck retrying posts

Stop infinite reschedules after 6 attempts with a user-safe failure
message, keep technical detail in error_context, recover Retrying
platforms in social:recover-stuck-posts, and drop unused isTerminal().

Co-authored-by: Cursor <cursoragent@cursor.com>

* refactor: remove unused failedCount in RecoverStuckPosts

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix: skip final Pinterest poll sleep and localize recover timeout

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix: raise publish job timeout headroom and ignore already-failed platforms

Give social publish jobs 15 minutes so Pinterest media polling fits under
the worker limit, bump Horizon/redis retry_after above that timeout, and
skip handle/failed when the platform is already Failed so delayed jobs
cannot revive posts recovered by social:recover-stuck-posts.

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix: restore social-publishing and ai-assistant horizon supervisors

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix: harden Pinterest 401 handling, unique publish jobs, and recover JSON

Treat media-status 401 as TokenExpired, make PublishToSocialPlatform
unique per platform+attempt so retries still queue, and persist recover
error_context via Eloquent casts instead of manual json_encode.

Co-authored-by: Cursor <cursoragent@cursor.com>

* refactor: mass-update stuck post platforms without per-row each

Eloquent query updates already bind JSON arrays correctly here, so one
UPDATE is enough — no manual json_encode and no N model writes.

Co-authored-by: Cursor <cursoragent@cursor.com>

* refactor: simplify Pinterest media processing poll loop

Co-authored-by: Cursor <cursoragent@cursor.com>

* refactor: simplify publish job retry and terminal status checks

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix: do not finalize posts while platforms are still retrying

Co-authored-by: Cursor <cursoragent@cursor.com>

* test: cover Pinterest timeout, unique jobs, and recover edge cases

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix: retry Pinterest media poll on connection errors and tighten tests

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix: remove ineffective TypeError import that breaks CI

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-06 20:49:37 -03:00

693 lines
32 KiB
PHP

<?php
return [
'title' => 'Posts',
'search' => 'Buscar posts...',
'all_posts' => 'Todos os Posts',
'new_post' => 'Novo Post',
'no_posts' => 'Nenhum post encontrado',
'no_search_results' => 'Nenhum post corresponde à sua busca',
'try_different_search' => 'Tente outra palavra-chave ou limpe a busca.',
'start_creating' => 'Comece criando seu primeiro post.',
'filter_by_label' => 'Filtrar por label',
'label_search_placeholder' => 'Buscar labels...',
'no_labels' => 'Nenhuma label encontrada.',
'clear_label_filter' => 'Limpar filtro de labels',
'table' => [
'post' => 'Post',
'status' => 'Status',
'content' => 'Conteúdo',
'platforms' => 'Plataformas',
'labels' => 'Etiquetas',
'scheduled_at' => 'Data',
'actions' => '',
],
'manage_posts' => 'Gerencie todos os seus posts',
'delete_confirm' => 'Tem certeza que deseja excluir este post?',
'by' => 'por',
'actions' => [
'view' => 'Ver post',
'delete' => 'Excluir',
'duplicate' => 'Duplicar',
'copy_id' => 'Copiar ID',
'copied' => 'ID copiado para a área de transferência',
],
'form' => [
'post_type' => 'Tipo de Post',
'board' => 'Pasta',
'select_board' => 'Selecione uma pasta',
'search_board' => 'Buscar pasta...',
'no_board_found' => 'Nenhuma pasta encontrada',
'media' => 'Mídia',
'min' => 'Mín',
'uploading' => 'Enviando...',
'drop_to_upload' => 'Solte para enviar',
'drag_and_drop' => 'Arraste e solte ou clique para enviar',
'photos_and_videos' => 'Fotos e vídeos',
'photos_only' => 'Apenas fotos',
'videos_only' => 'Apenas vídeos',
'drag_to_reorder' => 'Arraste para reordenar',
'caption' => 'Legenda',
'write_caption' => 'Escreva sua legenda...',
'content_exceeds_platform' => ':platform: longo demais por :over caracteres (máx :limit).',
'tiktok' => [
'settings' => 'Configurações do TikTok',
'variant_label' => 'Tipo de publicação',
'variant' => [
'video' => 'Vídeo',
'photo' => 'Carrossel de fotos',
],
'posting_to' => 'Publicando em',
'privacy_level' => 'Quem pode ver este vídeo?',
'privacy_placeholder' => 'Selecione quem pode ver este post',
'privacy' => [
'public' => 'Público para todos',
'friends' => 'Amigos em comum',
'followers' => 'Seguidores',
'private' => 'Apenas eu',
'private_disabled_branded' => 'Conteúdo de marca não pode ser privado.',
],
'privacy_hint' => 'As opções disponíveis dependem das configurações da sua conta TikTok.',
'auto_add_music' => 'Adicionar música automaticamente',
'auto_add_music_hint' => 'Disponível apenas para fotos. Adiciona uma música padrão que pode ser alterada depois.',
'yes' => 'Sim',
'no' => 'Não',
'allow_users' => 'Permitir que usuários:',
'comments' => 'Comentem',
'duet' => 'Dueto',
'stitch' => 'Stitch',
'is_aigc' => 'Vídeo feito com IA',
'disclose' => 'Divulgar conteúdo do vídeo',
'disclose_hint' => 'Ative para divulgar que este vídeo promove bens ou serviços em troca de algo de valor. Seu vídeo pode promover você, terceiros ou ambos.',
'promotional_organic_title' => 'Sua foto/vídeo será rotulado como "Conteúdo Promocional".',
'promotional_paid_title' => 'Sua foto/vídeo será rotulado como "Parceria paga".',
'promotional_description' => 'Isso não poderá ser alterado após a publicação.',
'compliance_incomplete' => 'Você precisa indicar se o conteúdo promove você mesmo, terceiros ou ambos.',
'privacy_required' => 'A visibilidade do TikTok é obrigatória ao publicar.',
'branded_cleared_private' => 'A visibilidade foi limpa porque conteúdo de marca não pode ser privado.',
'interaction_disabled_by_creator' => 'Desativado nas configurações da sua conta TikTok',
'max_duration_exceeded' => 'Vídeo tem :duration s mas esta conta só permite vídeos de até :max s.',
'processing_hint' => 'Após publicar, pode levar alguns minutos para o conteúdo ser processado e aparecer no seu perfil TikTok.',
'brand_organic' => 'Sua marca',
'brand_organic_hint' => 'Você está promovendo você mesmo ou sua própria marca. Este vídeo será classificado como Brand Organic.',
'brand_content' => 'Conteúdo patrocinado',
'brand_content_hint' => 'Você está promovendo outra marca ou terceiros. Este vídeo será classificado como Branded Content.',
'compliance' => [
'agree' => 'Ao publicar, você concorda com a',
'music_usage' => 'Confirmação de Uso de Música',
'and' => 'e',
'branded_policy' => 'Política de Conteúdo Patrocinado',
],
],
'instagram' => [
'settings' => 'Configurações do Instagram',
'posting_to' => 'Publicando em',
'variant_label' => 'Tipo de publicação',
'variant' => [
'feed' => 'Post',
'reel' => 'Reel',
'story' => 'Story',
],
'aspect_label' => 'Proporção',
'aspect' => [
'square' => 'Quadrado (1:1)',
'portrait' => 'Retrato (4:5)',
'landscape' => 'Paisagem (16:9)',
'original' => 'Original',
],
],
'facebook' => [
'settings' => 'Configurações do Facebook',
'posting_to' => 'Publicando em',
'variant_label' => 'Tipo de publicação',
'variant' => [
'post' => 'Post',
'reel' => 'Reel',
'story' => 'Story',
],
'aspect_label' => 'Proporção',
'aspect' => [
'square' => 'Quadrado (1:1)',
'portrait' => 'Retrato (4:5)',
'landscape' => 'Paisagem (16:9)',
'original' => 'Original',
],
],
'linkedin' => [
'settings' => 'Configurações do LinkedIn',
'settings_page' => 'Configurações da Página do LinkedIn',
'posting_to' => 'Publicando em',
'document_title' => 'Título do documento',
'document_title_placeholder' => 'Aparece no seu post de documento PDF',
],
'pinterest' => [
'settings' => 'Configurações do Pinterest',
'posting_to' => 'Publicando em',
'variant_label' => 'Tipo de pin',
'variant' => [
'pin' => 'Pin',
'video_pin' => 'Video Pin',
'carousel' => 'Carrossel',
],
'board' => 'Quadro',
'select_board' => 'Selecione um quadro',
'no_boards' => 'Nenhum quadro do Pinterest encontrado. Crie um na sua conta do Pinterest primeiro.',
'boards_truncated' => 'Alguns boards não puderam ser carregados. Se o seu não aparecer, abra o Pinterest e tente de novo.',
'search_board' => 'Pesquisar quadros...',
'no_board_found' => 'Nenhum quadro encontrado.',
'board_required' => 'Selecione um quadro do Pinterest para publicar este post.',
'title' => 'Título',
'title_placeholder' => 'Título opcional do pin',
'link' => 'Link de destino',
'link_placeholder' => 'https://exemplo.com',
'link_invalid' => 'Informe um link de destino válido (http ou https).',
'title_max' => 'O título pode ter no máximo 100 caracteres.',
'link_max' => 'O link de destino pode ter no máximo 2048 caracteres.',
],
'discord' => [
'settings' => 'Configurações do Discord',
'posting_to' => 'Publicando em',
'channel' => 'Canal',
'select_channel' => 'Selecione um canal',
'loading_channels' => 'Carregando canais…',
'search_channel' => 'Buscar canais…',
'no_channels' => 'Nenhum canal encontrado.',
'channel_required' => 'Selecione um canal do Discord para publicar este post.',
'mentions' => 'Menções',
'search_mention' => 'Mencione um cargo ou membro…',
'embeds' => 'Embeds',
'embed' => 'Embed',
'add_embed' => 'Adicionar embed',
'embed_title' => 'Título do embed',
'embed_description' => 'Descrição do embed',
'embed_url' => 'URL do embed',
'embed_image' => 'URL da imagem',
'embed_color' => 'Cor',
],
'warnings' => [
'no_variant' => 'Escolha um tipo de publicação para continuar.',
'requires_media' => 'Este tipo exige pelo menos uma imagem ou vídeo.',
'max_files_exceeded' => 'Este tipo aceita até :max arquivos (você tem :current).',
'min_files_required' => 'Este tipo exige pelo menos :min arquivos (você tem :current).',
'no_video_allowed' => 'Este tipo não aceita vídeos.',
'no_image_allowed' => 'Este tipo aceita apenas vídeos.',
'no_document_allowed' => 'Este tipo não aceita documentos PDF.',
'no_mixed_media' => 'Não dá pra combinar imagens e um vídeo no mesmo post.',
'document_not_alone' => 'Um PDF precisa ser publicado sozinho, sem outras imagens ou vídeos.',
'gif_not_allowed' => 'Esta rede não aceita GIF. Remova o GIF ou escolha outra rede.',
'image_too_large' => 'A imagem passa do limite de :max (a sua tem :current).',
'video_too_large' => 'O vídeo passa do limite de :max (o seu tem :current).',
'document_too_large' => 'O PDF passa do limite de :max (o seu tem :current).',
'video_too_long' => 'O vídeo dura :current, mas este tipo permite no máximo :max.',
'aspect_ratio_too_narrow' => 'A proporção :current está muito alta (mínimo :min).',
'aspect_ratio_too_wide' => 'A proporção :current está muito larga (máximo :max).',
],
],
'status' => [
'pending' => 'Pendente',
'draft' => 'Rascunho',
'scheduled' => 'Agendado',
'publishing' => 'Publicando',
'retrying' => 'Tentando novamente',
'published' => 'Publicado',
'partially_published' => 'Parcialmente Publicado',
'failed' => 'Falhou',
],
'descriptions' => [
'draft' => 'Posts aguardando agendamento',
'scheduled' => 'Posts agendados para publicação',
'published' => 'Posts já publicados',
],
'ai' => [
'generate' => [
'button_tooltip' => 'Gerar com IA',
'title' => 'Gerar post com IA',
'description' => 'Descreva sobre o que o post deve ser. A IA vai usar o contexto da sua marca pra escrever.',
'prompt_label' => 'Sobre o que é esse post?',
'prompt_placeholder' => 'ex: anunciar nossa nova feature de geração de imagens pra carrosséis',
'preview_label' => 'Prévia',
'start' => 'Gerar',
'apply' => 'Usar este conteúdo',
'retry' => 'Tentar de novo',
'cancel' => 'Cancelar',
],
'review' => [
'button_tooltip' => 'Revisar com IA',
'title' => 'Revisar post com IA',
'description' => 'A IA analisa gramática, ortografia e clareza. Aplique as sugestões com as quais você concorda.',
'loading' => 'Revisando seu texto...',
'no_issues' => 'Nenhum problema encontrado. Tudo certo.',
'original' => 'Original',
'suggestion' => 'Sugestão',
'apply' => 'Aplicar',
'apply_all' => 'Aplicar todas',
'applied' => 'Aplicada',
'cancel' => 'Cancelar',
],
'image_regenerate' => [
'button' => 'Ajustar',
'title' => 'Ajustar imagem com IA',
'description' => 'Descreva a correção. A nova imagem substitui a atual e mantém a posição no carrossel.',
'instruction_label' => 'Instrução',
'instruction_placeholder' => 'ex: Corrigir o erro no título e deixar o fundo mais claro.',
'processing' => 'Regenerando imagem... isso pode levar alguns segundos.',
'submit' => 'Regenerar imagem',
'cancel' => 'Cancelar',
'success' => 'Imagem atualizada. A nova versão substituiu a anterior no post.',
'fallback_title' => 'Melhore esta copy da imagem',
'errors' => [
'required' => 'A instrução é obrigatória.',
'start_failed' => 'Não foi possível iniciar a regeneração.',
'unavailable' => 'Não foi possível regenerar esta imagem agora.',
'timeout' => 'A regeneração está demorando mais que o esperado. Tente de novo em instantes.',
'media_not_found' => 'Mídia não encontrada.',
'not_ai_media' => 'Só é possível regenerar mídia gerada por IA.',
],
],
'templates' => [
'image_card' => [
'name' => 'Post com imagem',
'description' => 'Imagem com IA, título e legenda.',
],
'carousel' => [
'name' => 'Carrossel',
'description' => 'Carrossel de vários slides com legenda.',
],
'tweet_card' => [
'name' => 'Card de tweet',
'description' => 'Seu post no estilo de um post do X/Twitter.',
],
'tweet_card_image' => [
'name' => 'Card de tweet com foto',
'description' => 'Seu post como card do X/Twitter sobre uma foto desfocada.',
],
],
],
'show' => [
'title' => 'Detalhes do Post',
'edit' => 'Editar',
'back' => 'Voltar',
'no_content' => 'Sem legenda',
'platforms' => 'Plataformas',
'no_platforms' => 'Nenhuma plataforma selecionada.',
'view_on_platform' => 'Ver na plataforma',
'published_on' => 'Publicado em :date',
'scheduled_for' => 'Agendado para :date',
'draft' => 'Rascunho',
'status_pending' => 'Pendente',
'metrics' => 'Métricas',
'metrics_loading' => 'Carregando métricas…',
'metrics_unavailable' => 'Métricas ainda não disponíveis para esta plataforma.',
'metrics_empty' => 'Nenhuma métrica retornada.',
],
'edit' => [
'title' => 'Editar Post',
'view_title' => 'Visualizar Post',
'labels' => 'Etiqueta',
'signatures' => 'Assinaturas',
'schedule' => 'Agendar',
'delete' => 'Excluir',
'schedule_for' => 'Agendar para',
'unschedule' => 'Desagendar',
'saving' => 'Salvando...',
'saved' => 'Salvo',
'draft' => 'Rascunho',
'media' => 'Mídia',
'add_media' => 'Adicionar mídia',
'caption' => 'Legenda',
'caption_placeholder' => 'Escreva sua legenda...',
'compose_title' => 'Crie um post',
'compose_subtitle' => 'Componha sua mensagem e adicione mídia',
'preview_empty' => [
'title' => 'Nenhuma plataforma selecionada',
'description' => 'Selecione uma plataforma para publicar e ver o preview.',
],
'drop_zone_title' => 'Adicionar mídia',
'drop_zone_subtitle' => 'Arraste arquivos ou clique para selecionar',
'add' => 'Adicionar',
'publish_to' => 'Publicar em',
'organize' => 'Organizar',
'no_labels' => 'Nenhuma etiqueta criada ainda',
'pick_time' => 'Escolher horário',
'pick_time_past' => 'Escolha uma data e hora no futuro.',
'post_now' => 'Publicar agora',
'time' => 'Horário',
'cancel' => 'Cancelar',
'schedule_date' => 'Data de agendamento',
'view_on_platform' => 'Ver na plataforma',
'platform_status' => 'Status da plataforma',
'compliance_incomplete' => 'Algumas configurações de plataforma estão incompletas ou incompatíveis com a mídia anexada.',
'compliance' => [
'requires_content_or_media' => 'Adicione texto ou mídia para publicar.',
'requires_media' => 'Adicione uma imagem ou vídeo para publicar aqui.',
'too_many_files' => 'Apenas :max arquivo(s) permitido(s) para este formato.',
'too_few_files' => 'Adicione pelo menos :min arquivos para este formato.',
'no_videos' => 'Apenas imagens são permitidas neste formato.',
'no_images' => 'Apenas vídeos são permitidos neste formato.',
'no_mixed_media' => 'Não é possível combinar imagem e vídeo na mesma publicação.',
'no_gifs' => 'GIFs não são suportados aqui.',
'no_documents' => 'Documentos PDF não são suportados por este formato.',
'document_not_alone' => 'Um PDF precisa ser publicado sozinho, sem outras imagens ou vídeos.',
'video_too_large' => 'Vídeo excede o limite de tamanho desta plataforma.',
'video_too_long' => 'Vídeo deve ter menos de :seconds segundos neste formato.',
'image_too_large' => 'Imagem excede o limite de tamanho desta plataforma.',
'document_too_large' => 'O PDF excede o limite de tamanho desta plataforma.',
'aspect_ratio_invalid' => 'A proporção da imagem não é suportada por este formato.',
'no_content_type' => 'Escolha um tipo de conteúdo para esta plataforma.',
'requires_text' => 'Adicione texto — este formato precisa de um título.',
],
'publishing' => 'Publicando...',
'publishing_overlay_title' => 'Seu post está sendo publicado',
'publishing_overlay_subtitle' => 'Isso pode levar alguns instantes. Você pode sair desta página sem problemas.',
'scheduled_overlay_title' => 'Este post está agendado',
'scheduled_overlay_subtitle' => 'Agendado para :date. Desagende para fazer alterações.',
'unschedule_cta' => 'Desagendar para editar',
'tabs' => [
'compose' => 'Escrever',
'preview' => 'Pré-visualização',
'channels' => 'Canais',
'comments' => 'Comentários',
'comments_empty' => 'Nenhum comentário ainda.',
],
'media_picker' => [
'title' => 'Escolher da galeria',
'search' => 'Buscar mídia...',
'empty' => 'Sua galeria ainda está vazia',
'cancel' => 'Cancelar',
'add' => 'Adicionar',
'add_count' => 'Adicionar :count',
],
'alt_text' => [
'label' => 'Texto alternativo',
'edit' => 'Editar texto alternativo',
'placeholder' => 'Descreva esta imagem para pessoas que usam leitores de tela',
'hint' => 'Publicado nas plataformas que oferecem suporte a descrições de imagem.',
'save' => 'Salvar',
],
'emoji_picker' => [
'search' => 'Buscar emoji',
'empty' => 'Nenhum emoji encontrado',
'recent' => 'Usados recentemente',
'smileys' => 'Sorrisos e emoções',
'people' => 'Pessoas e corpo',
'nature' => 'Animais e natureza',
'food' => 'Comidas e bebidas',
'activities' => 'Atividades',
'travel' => 'Viagens e lugares',
'objects' => 'Objetos',
'symbols' => 'Símbolos',
'flags' => 'Bandeiras',
],
'status' => [
'pending' => 'Pendente',
'scheduled' => 'Agendado',
'published' => 'Publicado',
'publishing' => 'Publicando...',
'retrying' => 'Tentando novamente...',
'failed' => 'Falhou',
],
'delete_modal' => [
'title' => 'Excluir Post',
'description' => 'Tem certeza que deseja excluir este post? Esta ação não pode ser desfeita.',
'action' => 'Excluir',
'cancel' => 'Cancelar',
],
'sync_enable' => [
'title' => 'Ativar sincronização?',
'description' => 'Todas as plataformas compartilharão o mesmo conteúdo. Qualquer edição personalizada feita em plataformas individuais será substituída pelo conteúdo atual.',
'cancel' => 'Cancelar',
'action' => 'Ativar sincronização',
],
'sync_disable' => [
'title' => 'Desativar sincronização?',
'description' => 'Cada plataforma manterá seu conteúdo atual, mas edições futuras serão aplicadas apenas à plataforma que você estiver editando.',
'customize_note' => 'Você poderá personalizar o conteúdo para cada plataforma individualmente.',
'cancel' => 'Cancelar',
'action' => 'Desativar sincronização',
],
'platforms_dialog' => [
'title' => 'Selecionar Plataformas',
'description' => 'Escolha em quais plataformas publicar este post.',
],
'signatures_modal' => [
'search' => 'Buscar assinaturas...',
'no_results' => 'Nenhuma assinatura encontrada.',
],
'validation' => [
'select_board' => 'Selecione uma pasta',
'images_not_supported' => 'Imagens não suportadas',
'videos_not_supported' => 'Vídeos não suportados',
'max_images' => 'Máx :count imagens',
'requires_media' => 'Requer mídia',
'requires_content' => 'Texto é obrigatório',
'exceeded' => ':count excedido',
'does_not_support_images' => ':platform não suporta imagens',
'supports_up_to_images' => ':platform suporta até :count imagens',
'does_not_support_videos' => ':platform não suporta vídeos',
],
],
'content_types' => [
'instagram_feed' => [
'label' => 'Post do Feed',
'description' => 'Aparece no seu feed e perfil',
],
'instagram_reel' => [
'label' => 'Reels',
'description' => 'Vídeo curto de até 15 minutos',
],
'instagram_story' => [
'label' => 'Story',
'description' => 'Desaparece após 24 horas',
],
'linkedin_post' => [
'label' => 'Post',
'description' => 'Post padrão — imagem, várias imagens, vídeo ou PDF',
],
'linkedin_page_post' => [
'label' => 'Post',
'description' => 'Post padrão — imagem, várias imagens, vídeo ou PDF',
],
'facebook_post' => [
'label' => 'Post',
'description' => 'Post padrão na sua página',
],
'facebook_reel' => [
'label' => 'Reels',
'description' => 'Vídeo curto de até 90 segundos',
],
'facebook_story' => [
'label' => 'Story',
'description' => 'Story em vídeo vertical, até 60 segundos',
],
'tiktok_video' => [
'label' => 'Vídeo',
'description' => 'Conteúdo de vídeo curto',
],
'tiktok_photo' => [
'label' => 'Carrossel de fotos',
'description' => 'Até 35 fotos em um carrossel deslizável',
],
'youtube_short' => [
'label' => 'Short',
'description' => 'Vídeo vertical de até 3 minutos',
],
'x_post' => [
'label' => 'Post',
'description' => 'Tweet com texto e mídia',
],
'threads_post' => [
'label' => 'Post',
'description' => 'Post de texto com mídia opcional',
],
'pinterest_pin' => [
'label' => 'Pin',
'description' => 'Pin de imagem padrão',
],
'pinterest_video_pin' => [
'label' => 'Pin de Vídeo',
'description' => 'Pin de vídeo (4s - 15min)',
],
'pinterest_carousel' => [
'label' => 'Carrossel',
'description' => 'Carrossel multi-imagem (2-5 imagens)',
],
'bluesky_post' => [
'label' => 'Post',
'description' => 'Post de texto com imagens opcionais',
],
'mastodon_post' => [
'label' => 'Post',
'description' => 'Post de texto com mídia opcional',
],
'telegram_post' => [
'label' => 'Post',
'description' => 'Post de texto com mídia opcional',
],
'discord_message' => [
'label' => 'Mensagem',
'description' => 'Mensagem para um canal do Discord com mídia e embeds opcionais',
],
],
'platforms' => [
'linkedin' => 'LinkedIn',
'linkedin-page' => 'Página do LinkedIn',
'x' => 'X',
'tiktok' => 'TikTok',
'youtube' => 'YouTube Shorts',
'facebook' => 'Página do Facebook',
'instagram' => 'Instagram',
'threads' => 'Threads',
'pinterest' => 'Pinterest',
'bluesky' => 'Bluesky',
'mastodon' => 'Mastodon',
],
'flash' => [
'scheduled' => 'Post agendado com sucesso!',
'deleted' => 'Post excluído com sucesso!',
'duplicated' => 'Post duplicado como rascunho.',
'cannot_edit_finalized' => 'Este post já foi processado e não pode ser republicado. Duplique-o para tentar de novo.',
'cannot_delete_published' => 'Posts publicados não podem ser excluídos.',
'connect_first' => 'Conecte pelo menos uma rede social antes de criar um post.',
],
'errors' => [
'account_disconnected' => 'Conta social está desconectada',
'account_inactive' => 'Conta social está desativada',
'account_token_expired' => 'Sessão da conta social expirou — reconecte a conta',
'platform_unavailable' => 'A plataforma está temporariamente indisponível. Vamos tentar de novo em breve.',
'platform_unavailable_exhausted' => 'A plataforma continuou indisponível após várias tentativas. Tente de novo mais tarde.',
'publishing_timed_out' => 'A publicação excedeu o tempo limite. Tente novamente.',
],
'delete' => [
'title' => 'Excluir post?',
'description' => 'Esta ação não pode ser desfeita. O post e todas as suas mídias serão removidos permanentemente.',
'confirm' => 'Sim, excluir',
'cancel' => 'Cancelar',
],
'create' => [
'title' => 'Criar novo post',
'description' => 'Escolha como quer começar.',
'scratch_title' => 'Começar do zero',
'scratch_description' => 'Abre um post em branco pra você escrever tudo.',
'ai_title' => 'Gerar com IA',
'ai_description' => 'Descreva o que quer e a IA gera o conteúdo pra você.',
'ai_configure_description' => 'Escolha o formato e descreva o post que quer criar.',
'ai_pick_template_description' => 'Escolha um estilo para o seu post gerado por IA.',
'template_title' => 'Usar um template',
'template_description' => 'Escolha um dos nossos templates e personalize.',
'coming_soon' => 'Em breve',
'preview' => [
'image_title' => 'Título da imagem',
'image_body' => 'Texto da imagem',
],
'steps' => [
'template_picker_title' => 'Escolha um estilo',
'format_title' => 'Escolha um formato',
'format_description' => 'Selecione o tipo de post que deseja criar.',
'account_title' => 'Escolha uma conta',
'account_description' => 'Selecione a conta social para publicar.',
'media_title' => 'Opções de mídia',
'media_carousel' => 'Quantos slides?',
'media_optional' => 'Incluir imagens?',
'media_optional_label' => 'Quantas imagens?',
'media_none' => 'Nenhuma',
'media_count_label' => 'Número de imagens',
'brand_colors_label' => 'Cores da marca',
'brand_colors_description' => 'Aplica a paleta da sua marca nas imagens geradas. Desative para deixar a IA escolher as cores que combinam com o conteúdo.',
'prompt_title' => 'Descreva seu post',
'prompt_label' => 'Sobre o que é este post?',
'prompt_placeholder' => 'Ex. Anunciar nossa nova função de carrossel para o Instagram',
'preview_error' => 'Algo deu errado. Por favor, tente novamente.',
'loading_page_title' => 'Gerando seu post',
'loading_eta' => 'Tempo estimado: cerca de :minutes.',
'loading_eta_minute_one' => '1 minuto',
'loading_eta_minute_other' => ':count minutos',
'loading_leave_title' => 'Você pode continuar trabalhando.',
'loading_leave_body' => 'A gente te avisa assim que o post ficar pronto.',
'loading_leave_cta' => 'Ir pro calendário',
'loading_create_another_cta' => 'Criar outro post',
'loading_tip_credits' => 'Cada imagem AI consome cerca de 15 créditos.',
'loading_tip_edit' => 'Você poderá editar tudo quando o post ficar pronto.',
'loading_tip_draft' => 'Posts gerados vão direto pros seus rascunhos.',
'loading_tip_brand' => 'Ajuste sua marca pra influenciar os próximos posts.',
'loading_tip_carousel' => 'Carrosséis geram um slide por imagem solicitada.',
'loading_tip_quality' => 'A qualidade equilibra velocidade e custo.',
'create' => 'Criar post',
'back' => 'Voltar',
'next' => 'Continuar',
'cancel' => 'Cancelar',
'discard' => 'Descartar',
'retry' => 'Tentar novamente',
'no_platforms' => 'Nenhuma conta conectada',
'connect_first' => 'Conecte pelo menos uma conta social para usar a geração com IA.',
'no_account_for_template' => 'Conecte uma conta compatível para usar este template.',
'format' => [
'instagram_feed' => 'Post no Feed do Instagram',
'instagram_carousel' => 'Carrossel do Instagram',
'linkedin_post' => 'Post no LinkedIn',
'linkedin_page_post' => 'Post em Página do LinkedIn',
'x_post' => 'Post no X',
'bluesky_post' => 'Post no Bluesky',
'threads_post' => 'Post no Threads',
'mastodon_post' => 'Post no Mastodon',
'telegram_post' => 'Post no Telegram',
'discord_message' => 'Mensagem do Discord',
'facebook_post' => 'Post no Facebook',
'pinterest_pin' => 'Pin no Pinterest',
'instagram_story' => 'Story do Instagram',
'facebook_story' => 'Story do Facebook',
],
],
],
'templates' => [
'browser_title' => 'Escolha um template',
'browser_description' => 'Comece com um template pronto e adapte ao seu jeito.',
'all_platforms' => 'Todas as plataformas',
'platform_search_placeholder' => 'Buscar plataforma…',
'no_platform_match' => 'Nenhuma plataforma corresponde.',
'use_this' => 'Usar este template',
'no_templates' => 'Nenhum template disponível.',
'applying' => 'Aplicando template…',
'search_placeholder' => 'Buscar templates…',
'no_search_results' => 'Nenhum template encontrado',
'try_different_search' => 'Tente outra palavra-chave ou limpe a busca.',
'slides_count' => '{count} slide|{count} slides',
'category' => [
'product_launch' => 'Lançamento de produto',
'promotion' => 'Promoção',
'educational' => 'Educacional',
'behind_the_scenes' => 'Bastidores',
'testimonial' => 'Depoimento',
'industry_tip' => 'Dica do setor',
'event' => 'Evento',
'engagement' => 'Engajamento',
],
],
];