trypost/lang/pt-BR/settings.php
Paulo Castellano 148a2f432f feat: AI image generation pipeline and post creation overhaul
Core changes:
- Replace Unsplash slide pipeline with gpt-image-2 via Laravel AI SDK.
  New AiImageClient builds prompts from a Blade template seeded by the
  workspace's ImageStyle enum, content language, brand color (mapped to a
  human-readable name via HexColorName helper) and brand description.
- Drop Template B from TemplateImageGenerator: every slide now renders as
  Template A (full-bleed photo + bottom gradient + white/grey overlay).
  Removes renderTemplateB, roundCorners, blendHex, ensureContrast and the
  closing-slide pipeline.
- StreamPostCreation creates the Post directly and dispatches
  PostCreationReady with post_id; the wizard kills its preview step and
  redirects straight to the post editor on completion. Finalize endpoint
  removed.
- New Workspace.image_style enum field with an 8-option visual picker
  shared by /workspaces/create and /settings/workspace/brand via a single
  BrandForm component (autofill is a prop). 8 sample webp thumbs ship
  under public/images/branding/image-styles/.
- Media items gain optional source ('ai'|'unsplash'|'giphy') and
  source_meta (recipe needed to regenerate AI images later); the gallery
  picker tags Unsplash/Giphy attachments.
- Brand-color autofill: new CssColorFrequencyExtractor parses every
  hex/rgb/hsl value in the homepage CSS, clusters perceptually similar
  shades in CIE LAB (Delta E 76 < 12), filters neutrals and returns the
  most frequent cluster. Solves Tailwind/utility-CSS sites where no
  semantic --primary variable is exposed.
- Credits: gpt-image-2 metered at 15 credits/image (low quality default).
- Layout: AuthSplitLayout right column is sticky/h-svh so the form
  textarea growth no longer stretches the marketing slider.
- i18n cleanup: localized labels follow the no-em-dash convention.
2026-05-08 13:38:30 -03:00

319 lines
14 KiB
PHP

<?php
return [
'title' => 'Configurações',
'description' => 'Gerencie seu perfil e configurações da conta',
'hub' => [
'title' => 'Configurações',
'description' => 'Escolha o que você quer gerenciar.',
'profile' => [
'title' => 'Perfil',
'description' => 'Atualize suas informações pessoais, senha e preferências de notificações.',
],
'workspace' => [
'title' => 'Workspace',
'description' => 'Configure seu workspace, marca, membros e chaves de API.',
],
'account' => [
'title' => 'Conta',
'description' => 'Gerencie informações da conta, uso e faturamento.',
],
],
'nav' => [
'profile' => 'Perfil',
'authentication' => 'Autenticação',
'workspace' => 'Workspace',
'members' => 'Membros',
'notifications' => 'Notificações',
'billing' => 'Faturamento',
],
'notifications' => [
'title' => 'Preferências de notificações',
'heading' => 'Notificações por e-mail',
'description' => 'Escolha quais notificações por e-mail deseja receber',
'post_published' => 'Post publicado',
'post_published_description' => 'Receber um e-mail quando seu post for publicado com sucesso',
'post_failed' => 'Post falhou',
'post_failed_description' => 'Receber um e-mail quando seu post falhar ao publicar',
'account_disconnected' => 'Conta desconectada',
'account_disconnected_description' => 'Receber um e-mail quando uma conta social for desconectada',
'save' => 'Salvar preferências',
],
'profile' => [
'title' => 'Configurações do perfil',
'photo_heading' => 'Foto do perfil',
'photo_description' => 'Envie uma foto de perfil',
'heading' => 'Informações do perfil',
'description' => 'Atualize seu nome e endereço de e-mail',
'avatar' => 'Avatar',
'name' => 'Nome',
'name_placeholder' => 'Nome completo',
'email' => 'Endereço de e-mail',
'email_placeholder' => 'Endereço de e-mail',
'email_unverified' => 'Seu endereço de e-mail não foi verificado.',
'resend_verification' => 'Clique aqui para reenviar o e-mail de verificação.',
'verification_sent' => 'Um novo link de verificação foi enviado para seu endereço de e-mail.',
'save' => 'Salvar',
],
'authentication' => [
'title' => 'Autenticação',
'page_title' => 'Configurações de autenticação',
'sessions' => [
'title' => 'Sessões ativas',
'description' => 'Se você notar algo suspeito, encerre as sessões em outros dispositivos.',
'unknown_browser' => 'Navegador desconhecido',
'unknown_ip' => 'IP desconhecido',
'on' => 'em',
'active_now' => 'Ativa agora',
'log_out_others' => 'Encerrar outras sessões',
'modal_title' => 'Encerrar outras sessões',
'modal_description_password' => 'Digite sua senha atual para confirmar o encerramento das outras sessões.',
'modal_description_email' => 'Digite seu e-mail para confirmar o encerramento das outras sessões.',
'password_placeholder' => 'Senha atual',
'email_placeholder' => 'Seu e-mail',
'cancel' => 'Cancelar',
'submit' => 'Encerrar outras sessões',
'email_mismatch' => 'O e-mail não corresponde à sua conta.',
'flash_logged_out' => 'Outras sessões foram encerradas.',
],
'password' => [
'update_title' => 'Atualizar senha',
'set_title' => 'Definir uma senha',
'update_description' => 'Use uma senha longa e aleatória para manter sua conta segura.',
'set_description' => 'Adicione uma senha para entrar sem precisar de um provedor conectado.',
'current_password' => 'Senha atual',
'new_password' => 'Nova senha',
'confirm_password' => 'Confirmar senha',
'save' => 'Salvar senha',
'set' => 'Definir senha',
],
'providers' => [
'title' => 'Contas conectadas',
'description' => 'Faça login mais rápido usando esses provedores conectados.',
'connected' => 'Conectada',
'not_connected' => 'Não conectada',
'connect' => 'Conectar',
'disconnect' => 'Desconectar',
'flash_disconnected' => ':provider desconectada com sucesso.',
'flash_connected' => ':provider conectada com sucesso.',
'flash_already_linked' => 'Essa conta do :provider já está vinculada a outro usuário.',
'flash_cannot_disconnect' => 'Você não pode desconectar seu único método de login. Defina uma senha ou conecte outro provedor primeiro.',
],
],
'delete_account' => [
'heading' => 'Excluir conta',
'description' => 'Exclua sua conta e todos os seus recursos',
'warning' => 'Atenção',
'warning_message' => 'Por favor, prossiga com cuidado, isso não pode ser desfeito.',
'button' => 'Excluir conta',
'modal_title' => 'Tem certeza que deseja excluir sua conta?',
'modal_description_password' => 'Uma vez excluída, todos os seus recursos e dados também serão permanentemente removidos. Digite sua senha para confirmar.',
'modal_description_email' => 'Uma vez excluída, todos os seus recursos e dados também serão permanentemente removidos. Digite o seu e-mail :email para confirmar.',
'password' => 'Senha',
'password_placeholder' => 'Senha',
'email_placeholder' => 'Seu e-mail',
'email_mismatch' => 'O e-mail não corresponde à sua conta.',
'cancel' => 'Cancelar',
'confirm' => 'Excluir conta',
],
'workspace' => [
'tabs' => [
'workspace' => 'Workspace',
'brand' => 'Marca',
'users' => 'Membros',
'api_keys' => 'API Keys',
],
'title' => 'Configurações do workspace',
'logo_heading' => 'Logo do workspace',
'logo_description' => 'Envie um logo para o workspace',
'heading' => 'Nome do workspace',
'description' => 'Atualize o nome do workspace',
'members_heading' => 'Membros',
'members_description' => 'Gerencie membros e convites do workspace',
'name' => 'Nome',
'name_placeholder' => 'Meu Workspace',
'save' => 'Salvar',
],
'brand' => [
'title' => 'Marca',
'description' => 'Configure a identidade da sua marca para os conteúdos gerados por AI.',
'name' => 'Nome do workspace',
'name_placeholder' => 'Minha marca',
'website' => 'Site',
'website_placeholder' => 'https://suamarca.com',
'brand_description' => 'Descrição',
'brand_description_placeholder' => 'Conte sobre sua marca, o que você faz e quem é seu público...',
'tone' => 'Tom de voz',
'tone_professional' => 'Profissional',
'tone_casual' => 'Casual',
'tone_friendly' => 'Amigável',
'tone_bold' => 'Ousado',
'tone_inspirational' => 'Inspirador',
'tone_humorous' => 'Bem-humorado',
'tone_educational' => 'Educacional',
'voice_notes' => 'Notas de voz',
'voice_notes_placeholder' => 'Diretrizes adicionais de escrita, palavras a evitar, preferências de estilo...',
'brand_color' => 'Cor da marca',
'background_color' => 'Cor de fundo',
'text_color' => 'Cor do texto',
'font' => 'Fonte',
'image_style' => 'Estilo das imagens',
'image_style_description' => 'Estilo visual aplicado ao gerar imagens de slides e capas para posts com AI.',
'image_style_cinematic' => 'Cinematográfico',
'image_style_illustration' => 'Ilustração',
'image_style_isometric_3d' => 'Isométrico',
'image_style_cartoon' => 'Cartoon',
'image_style_typographic' => 'Tipográfico',
'image_style_infographic' => 'Infográfico',
'image_style_minimalist' => 'Minimalista',
'image_style_mockup' => 'Mockup',
'content_language' => 'Idioma do conteúdo',
'content_language_description' => 'Idioma usado nas legendas, hashtags e em qualquer texto dentro de imagens ou vídeos gerados por AI.',
],
'members' => [
'title' => 'Membros',
'heading' => 'Membros da equipe',
'description' => 'Gerencie membros e convites deste workspace',
'cancel' => 'Cancelar',
'remove' => 'Remover',
'make_admin' => 'Tornar administrador',
'make_member' => 'Tornar membro',
'invite' => [
'title' => 'Convidar Membro',
'description' => 'Envie um convite por e-mail para adicionar colaboradores',
'email' => 'E-mail',
'email_placeholder' => 'colaborador@email.com',
'role' => 'Função',
'role_placeholder' => 'Selecione uma função',
'submit' => 'Enviar Convite',
],
'pending' => [
'title' => 'Convites Pendentes',
'description' => 'Convites aguardando aceitação',
'empty' => 'Nenhum convite pendente',
],
'list' => [
'title' => 'Membros',
'description' => 'Pessoas com acesso a este workspace',
'empty' => 'Nenhum membro além do proprietário',
],
'remove_modal' => [
'title' => 'Remover membro',
'description' => 'Tem certeza que deseja remover este membro do workspace? Ele perderá acesso a todos os recursos do workspace.',
'action' => 'Remover membro',
],
'cancel_invite_modal' => [
'title' => 'Cancelar convite',
'description' => 'Tem certeza que deseja cancelar este convite?',
'action' => 'Cancelar convite',
],
'roles' => [
'owner' => 'Proprietário',
'admin' => 'Administrador',
'member' => 'Membro',
'viewer' => 'Visualizador',
],
'flash' => [
'invite_sent' => 'Convite enviado com sucesso!',
'invite_deleted' => 'Convite excluído.',
'member_removed' => 'Membro removido com sucesso.',
'role_updated' => 'Função do membro atualizada.',
'wrong_email' => 'Este convite é para um endereço de e-mail diferente.',
'already_member' => 'Você já é membro deste workspace.',
'invite_accepted' => 'Bem-vindo! Você agora é membro do workspace.',
'invite_declined' => 'Convite recusado.',
],
],
'account' => [
'tabs' => [
'account' => 'Conta',
'usage' => 'Uso',
'billing' => 'Faturamento',
],
'title' => 'Configurações da conta',
'description' => 'Gerencie o nome da conta e o e-mail de cobrança',
'name' => 'Nome da conta',
'name_placeholder' => 'Minha Empresa',
'billing_email' => 'E-mail de cobrança',
'billing_email_placeholder' => 'cobranca@empresa.com',
'billing_email_hint' => 'Este e-mail será usado para faturas e comunicações de cobrança do Stripe.',
'submit' => 'Salvar',
],
'flash' => [
'account_updated' => 'Conta atualizada com sucesso!',
'profile_updated' => 'Perfil atualizado com sucesso!',
'language_updated' => 'Idioma atualizado com sucesso!',
'password_updated' => 'Senha atualizada com sucesso!',
'workspace_updated' => 'Configurações atualizadas com sucesso!',
'photo_updated' => 'Foto atualizada com sucesso!',
'photo_deleted' => 'Foto removida com sucesso!',
'logo_updated' => 'Logo enviado com sucesso!',
'logo_deleted' => 'Logo removido com sucesso!',
'notifications_updated' => 'Preferências de notificações atualizadas!',
],
'api_keys' => [
'title' => 'Chaves API',
'page_title' => 'Chaves API',
'heading' => 'Chaves API',
'description' => 'Gerencie chaves API para acesso programático ao seu workspace.',
'create' => 'Criar chave API',
'copy' => 'Copiar',
'new_token_message' => 'Sua nova chave API foi criada. Copie agora — você não poderá vê-la novamente.',
'table' => [
'name' => 'Nome',
'key' => 'Chave',
'status' => 'Status',
'expires' => 'Expira',
'last_used' => 'Último uso',
'never' => 'Nunca',
],
'actions' => [
'copy_id' => 'Copiar ID da chave API',
'copy_id_success' => 'ID da chave API copiado',
'delete' => 'Excluir',
],
'empty' => [
'title' => 'Nenhuma chave API',
'description' => 'Crie uma chave API para acessar seu workspace programaticamente.',
],
'delete_modal' => [
'title' => 'Excluir chave API',
'description' => 'Tem certeza que deseja excluir esta chave API? Aplicações que a usam perderão acesso imediatamente.',
'action' => 'Excluir chave API',
],
'create_dialog' => [
'title' => 'Criar chave API',
'description' => 'Crie uma nova chave API para acesso programático ao seu workspace.',
'name' => 'Nome',
'name_placeholder' => 'ex. Chave API de Produção',
'expires' => 'Data de expiração (opcional)',
'expires_placeholder' => 'Sem expiração',
'submit' => 'Criar',
'cancel' => 'Cancelar',
],
'flash' => [
'created' => 'Chave de API criada com sucesso!',
'deleted' => 'Chave de API excluída com sucesso!',
],
],
];