diff --git a/lang/pt-br/accounts.php b/lang/pt-br/accounts.php
new file mode 100644
index 00000000..7a49bece
--- /dev/null
+++ b/lang/pt-br/accounts.php
@@ -0,0 +1,63 @@
+ 'Conexões',
+ 'page_title' => 'Contas Conectadas',
+ 'description' => 'Conecte suas redes sociais para agendar e publicar posts',
+
+ 'not_connected' => 'Não conectado',
+ 'connect' => 'Conectar',
+ 'connection_lost' => 'Conexão perdida',
+ 'reconnect_account' => 'Reconectar conta',
+ 'view_profile' => 'Ver perfil',
+ 'disconnect' => 'Desconectar',
+
+ 'disconnect_modal' => [
+ 'title' => 'Desconectar Conta',
+ 'description' => 'Tem certeza que deseja desconectar esta conta? Você pode reconectá-la a qualquer momento.',
+ 'confirm' => 'Desconectar',
+ 'cancel' => 'Cancelar',
+ ],
+
+ 'bluesky' => [
+ 'title' => 'Conectar Bluesky',
+ 'description' => 'Digite suas credenciais para conectar',
+ 'email' => 'E-mail',
+ 'email_placeholder' => 'seuhandle.bsky.social',
+ 'app_password' => 'Senha do App',
+ 'app_password_placeholder' => 'xxxx-xxxx-xxxx-xxxx',
+ 'app_password_hint' => 'Use uma Senha do App por segurança. Crie uma em bsky.app/settings.',
+ 'submit' => 'Conectar Bluesky',
+ 'submitting' => 'Conectando...',
+ ],
+
+ 'mastodon' => [
+ 'title' => 'Conectar Mastodon',
+ 'description' => 'Digite a instância do seu Mastodon',
+ 'instance_url' => 'URL da Instância',
+ 'instance_placeholder' => 'https://mastodon.social',
+ 'instance_hint' => 'Digite a URL da sua instância Mastodon (ex: mastodon.social, techhub.social)',
+ 'submit' => 'Continuar com Mastodon',
+ 'submitting' => 'Conectando...',
+ ],
+
+ 'facebook' => [
+ 'title' => 'Selecionar Página do Facebook',
+ 'description' => 'Escolha qual página você deseja conectar',
+ 'no_pages' => 'Nenhuma página encontrada',
+ 'no_pages_description' => 'Você não é administrador de nenhuma página do Facebook.',
+ 'page_label' => 'Página do Facebook',
+ ],
+
+ 'linkedin' => [
+ 'title' => 'Selecionar Página do LinkedIn',
+ 'description' => 'Escolha qual página você deseja conectar',
+ 'no_pages' => 'Nenhuma página encontrada',
+ 'no_pages_description' => 'Você não é administrador de nenhuma página do LinkedIn.',
+ 'page_label' => 'Página do LinkedIn',
+ ],
+
+ 'flash' => [
+ 'disconnected' => 'Conta desconectada com sucesso!',
+ ],
+];
diff --git a/lang/pt-br/auth.php b/lang/pt-br/auth.php
new file mode 100644
index 00000000..1333a3a5
--- /dev/null
+++ b/lang/pt-br/auth.php
@@ -0,0 +1,95 @@
+ 'Essas credenciais não correspondem aos nossos registros.',
+ 'password' => 'A senha fornecida está incorreta.',
+ 'throttle' => 'Muitas tentativas de login. Por favor, tente novamente em :seconds segundos.',
+
+ 'flash' => [
+ 'welcome' => 'Bem-vindo ao TryPost!',
+ 'welcome_trial' => 'Bem-vindo ao TryPost! Seu período de teste começou.',
+ ],
+
+ 'login' => [
+ 'title' => 'Entrar na sua conta',
+ 'description' => 'Digite seu email e senha abaixo para entrar',
+ 'page_title' => 'Entrar',
+ 'email' => 'Endereço de email',
+ 'password' => 'Senha',
+ 'forgot_password' => 'Esqueceu a senha?',
+ 'remember_me' => 'Lembrar de mim',
+ 'submit' => 'Entrar',
+ 'no_account' => 'Não tem uma conta?',
+ 'sign_up' => 'Cadastre-se',
+ ],
+
+ 'register' => [
+ 'title' => 'Criar uma conta',
+ 'description' => 'Digite seus dados abaixo para criar sua conta',
+ 'page_title' => 'Cadastro',
+ 'name' => 'Nome',
+ 'name_placeholder' => 'Nome completo',
+ 'email' => 'Endereço de email',
+ 'password' => 'Senha',
+ 'submit' => 'Criar conta',
+ 'has_account' => 'Já tem uma conta?',
+ 'log_in' => 'Entrar',
+ ],
+
+ 'forgot_password' => [
+ 'title' => 'Esqueceu a senha',
+ 'description' => 'Digite seu email para receber um link de redefinição de senha',
+ 'page_title' => 'Esqueceu a senha',
+ 'email' => 'Endereço de email',
+ 'submit' => 'Enviar link de redefinição',
+ 'return_to' => 'Ou, volte para',
+ 'log_in' => 'entrar',
+ ],
+
+ 'reset_password' => [
+ 'title' => 'Redefinir senha',
+ 'description' => 'Por favor, digite sua nova senha abaixo',
+ 'page_title' => 'Redefinir senha',
+ 'email' => 'Email',
+ 'password' => 'Senha',
+ 'confirm_password' => 'Confirmar Senha',
+ 'confirm_placeholder' => 'Confirmar senha',
+ 'submit' => 'Redefinir senha',
+ ],
+
+ 'verify_email' => [
+ 'title' => 'Verificar email',
+ 'description' => 'Por favor, verifique seu endereço de email clicando no link que acabamos de enviar.',
+ 'page_title' => 'Verificação de email',
+ 'link_sent' => 'Um novo link de verificação foi enviado para o endereço de email que você forneceu durante o cadastro.',
+ 'resend' => 'Reenviar email de verificação',
+ 'log_out' => 'Sair',
+ ],
+
+ 'accept_invite' => [
+ 'page_title' => 'Aceitar Convite',
+ 'title' => 'Você foi convidado!',
+ 'description' => 'Você foi convidado para participar do workspace :workspace.',
+ 'workspace' => 'Workspace',
+ 'your_role' => 'Seu cargo',
+ 'email' => 'Email',
+ 'accept' => 'Aceitar Convite',
+ 'decline' => 'Recusar Convite',
+ 'login_prompt' => 'Entre ou crie uma conta para aceitar este convite.',
+ 'log_in' => 'Entrar',
+ 'create_account' => 'Criar Conta',
+ ],
+
+];
diff --git a/lang/pt-br/calendar.php b/lang/pt-br/calendar.php
new file mode 100644
index 00000000..c37bba52
--- /dev/null
+++ b/lang/pt-br/calendar.php
@@ -0,0 +1,11 @@
+ 'Calendário',
+ 'today' => 'Hoje',
+ 'week' => 'Semana',
+ 'month' => 'Mês',
+ 'new_post' => 'Novo Post',
+ 'no_content' => 'Sem conteúdo',
+ 'more' => '+:count mais',
+];
diff --git a/lang/pt-br/hashtags.php b/lang/pt-br/hashtags.php
new file mode 100644
index 00000000..b3c18956
--- /dev/null
+++ b/lang/pt-br/hashtags.php
@@ -0,0 +1,48 @@
+ 'Hashtags',
+ 'description' => 'Crie grupos de hashtags para adicionar rapidamente aos seus posts',
+ 'new_group' => 'Novo Grupo',
+ 'no_groups_yet' => 'Nenhum grupo de hashtags ainda',
+ 'no_groups_description' => 'Crie grupos de hashtags para adicionar rapidamente hashtags populares aos seus posts',
+ 'create_first_group' => 'Crie seu primeiro grupo',
+ 'hashtags_count' => ':count hashtags',
+
+ 'create' => [
+ 'title' => 'Criar Grupo de Hashtags',
+ 'description' => 'Dê um nome ao grupo e adicione hashtags separadas por espaços ou vírgulas',
+ 'name' => 'Nome do Grupo',
+ 'name_placeholder' => 'ex: Marketing, Viagem, Comida',
+ 'hashtags' => 'Hashtags',
+ 'hashtags_placeholder' => '#marketing #redessociais #negocios #crescimento',
+ 'hashtags_hint' => 'Digite as hashtags separadas por espaços ou vírgulas. Inclua o símbolo #.',
+ 'submit' => 'Criar Grupo',
+ 'submitting' => 'Criando...',
+ ],
+
+ 'edit' => [
+ 'title' => 'Editar Grupo de Hashtags',
+ 'description' => 'Atualize o nome e as hashtags deste grupo',
+ 'name' => 'Nome do Grupo',
+ 'name_placeholder' => 'ex: Marketing, Viagem, Comida',
+ 'hashtags' => 'Hashtags',
+ 'hashtags_placeholder' => '#marketing #redessociais #negocios #crescimento',
+ 'hashtags_hint' => 'Digite as hashtags separadas por espaços ou vírgulas. Inclua o símbolo #.',
+ 'submit' => 'Salvar Alterações',
+ 'submitting' => 'Salvando...',
+ ],
+
+ 'delete' => [
+ 'title' => 'Excluir Grupo de Hashtags',
+ 'description' => 'Tem certeza que deseja excluir este grupo de hashtags? Esta ação não pode ser desfeita.',
+ 'confirm' => 'Excluir',
+ 'cancel' => 'Cancelar',
+ ],
+
+ 'flash' => [
+ 'created' => 'Grupo de hashtags criado com sucesso!',
+ 'updated' => 'Grupo de hashtags atualizado com sucesso!',
+ 'deleted' => 'Grupo de hashtags excluído com sucesso!',
+ ],
+];
diff --git a/lang/pt-br/labels.php b/lang/pt-br/labels.php
new file mode 100644
index 00000000..78f646a4
--- /dev/null
+++ b/lang/pt-br/labels.php
@@ -0,0 +1,42 @@
+ 'Etiquetas',
+ 'description' => 'Crie etiquetas para organizar e categorizar seus posts',
+ 'new_label' => 'Nova Etiqueta',
+ 'no_labels_yet' => 'Nenhuma etiqueta ainda',
+ 'create_first_label' => 'Crie sua primeira etiqueta',
+
+ 'create' => [
+ 'title' => 'Criar Etiqueta',
+ 'description' => 'Dê um nome e escolha uma cor para sua etiqueta',
+ 'name' => 'Nome',
+ 'name_placeholder' => 'Digite o nome da etiqueta...',
+ 'color' => 'Cor',
+ 'submit' => 'Criar Etiqueta',
+ 'submitting' => 'Criando...',
+ ],
+
+ 'edit' => [
+ 'title' => 'Editar Etiqueta',
+ 'description' => 'Atualize o nome e a cor desta etiqueta',
+ 'name' => 'Nome',
+ 'name_placeholder' => 'Digite o nome da etiqueta...',
+ 'color' => 'Cor',
+ 'submit' => 'Salvar Alterações',
+ 'submitting' => 'Salvando...',
+ ],
+
+ 'delete' => [
+ 'title' => 'Excluir Etiqueta',
+ 'description' => 'Tem certeza que deseja excluir esta etiqueta? Esta ação não pode ser desfeita.',
+ 'confirm' => 'Excluir',
+ 'cancel' => 'Cancelar',
+ ],
+
+ 'flash' => [
+ 'created' => 'Etiqueta criada com sucesso!',
+ 'updated' => 'Etiqueta atualizada com sucesso!',
+ 'deleted' => 'Etiqueta excluída com sucesso!',
+ ],
+];
diff --git a/lang/pt-br/mail.php b/lang/pt-br/mail.php
new file mode 100644
index 00000000..dce2efe5
--- /dev/null
+++ b/lang/pt-br/mail.php
@@ -0,0 +1,15 @@
+ [
+ 'subject' => '{1} :count conta precisa ser reconectada em :workspace|[2,*] :count contas precisam ser reconectadas em :workspace',
+ 'title' => 'Contas Precisam ser Reconectadas',
+ 'intro' => 'As seguintes contas de redes sociais no seu workspace :workspace foram desconectadas e precisam ser reconectadas:',
+ 'reasons_title' => 'Isso pode ter acontecido porque:',
+ 'reason_expired' => 'Os tokens de acesso expiraram',
+ 'reason_revoked' => 'Você revogou o acesso ao TryPost na plataforma',
+ 'reason_changed' => 'A plataforma mudou os requisitos de autenticação',
+ 'reconnect_cta' => 'Por favor, reconecte essas contas para continuar agendando e publicando posts.',
+ 'button' => 'Reconectar Contas',
+ ],
+];
diff --git a/lang/pt-br/pagination.php b/lang/pt-br/pagination.php
new file mode 100644
index 00000000..4deabd6f
--- /dev/null
+++ b/lang/pt-br/pagination.php
@@ -0,0 +1,19 @@
+ '« Anterior',
+ 'next' => 'Próximo »',
+
+];
diff --git a/lang/pt-br/passwords.php b/lang/pt-br/passwords.php
new file mode 100644
index 00000000..49fa8f07
--- /dev/null
+++ b/lang/pt-br/passwords.php
@@ -0,0 +1,22 @@
+ 'Sua senha foi redefinida.',
+ 'sent' => 'Enviamos o link de redefinição de senha por e-mail.',
+ 'throttled' => 'Por favor, aguarde antes de tentar novamente.',
+ 'token' => 'Este token de redefinição de senha é inválido.',
+ 'user' => "Não conseguimos encontrar um usuário com esse endereço de e-mail.",
+
+];
diff --git a/lang/pt-br/posts.php b/lang/pt-br/posts.php
new file mode 100644
index 00000000..a35988e5
--- /dev/null
+++ b/lang/pt-br/posts.php
@@ -0,0 +1,219 @@
+ 'Posts',
+ 'all_posts' => 'Todos os Posts',
+ 'new_post' => 'Novo Post',
+ 'create_post' => 'Criar Post',
+ 'no_posts' => 'Nenhum post encontrado',
+ 'no_posts_status' => 'Nenhum post :status ainda.',
+ 'start_creating' => 'Comece criando seu primeiro post.',
+ 'manage_posts' => 'Gerencie todos os seus posts',
+ 'delete_confirm' => 'Tem certeza que deseja excluir este post?',
+ 'by' => 'por',
+
+ 'actions' => [
+ 'view' => 'Ver post',
+ 'delete' => 'Excluir post',
+ ],
+
+ '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...',
+ ],
+
+ 'status' => [
+ 'draft' => 'Rascunho',
+ 'scheduled' => 'Agendado',
+ 'publishing' => 'Publicando',
+ 'published' => 'Publicado',
+ 'partially_published' => 'Parcialmente Publicado',
+ 'failed' => 'Falhou',
+ ],
+
+ 'descriptions' => [
+ 'draft' => 'Posts aguardando agendamento',
+ 'scheduled' => 'Posts agendados para publicação',
+ 'published' => 'Posts já publicados',
+ ],
+
+ 'edit' => [
+ 'title' => 'Editar Post',
+ 'view_title' => 'Visualizar Post',
+ 'manage_platforms' => 'Gerenciar plataformas',
+ 'sync' => 'Sincronizar',
+ 'schedule' => 'Agendar',
+ 'publish' => 'Publicar',
+ 'saving' => 'Salvando...',
+ 'saved' => 'Salvo',
+ 'scheduled_at' => 'Agendado:',
+ 'published_at' => 'Publicado:',
+ 'media' => 'Mídia',
+ 'caption' => 'Legenda',
+ 'no_caption' => 'Sem legenda',
+ 'no_content' => 'Sem conteúdo',
+
+ 'empty_state' => [
+ 'title' => 'Nenhuma plataforma selecionada',
+ 'description' => 'Selecione pelo menos uma plataforma para criar seu post',
+ ],
+
+ '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.',
+ ],
+
+ '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',
+ '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é 90 segundos',
+ ],
+ 'instagram_story' => [
+ 'label' => 'Story',
+ 'description' => 'Desaparece após 24 horas',
+ ],
+ 'linkedin_post' => [
+ 'label' => 'Post',
+ 'description' => 'Post padrão com texto e mídia',
+ ],
+ 'linkedin_carousel' => [
+ 'label' => 'Carrossel',
+ 'description' => 'Imagens deslizáveis',
+ ],
+ 'linkedin_page_post' => [
+ 'label' => 'Post',
+ 'description' => 'Post padrão com texto e mídia',
+ ],
+ 'linkedin_page_carousel' => [
+ 'label' => 'Carrossel',
+ 'description' => 'Imagens deslizáveis',
+ ],
+ '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' => 'Desaparece após 24 horas',
+ ],
+ 'tiktok_video' => [
+ 'label' => 'Vídeo',
+ 'description' => 'Conteúdo de vídeo curto',
+ ],
+ 'youtube_short' => [
+ 'label' => 'Short',
+ 'description' => 'Vídeo vertical de até 60 segundos',
+ ],
+ '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 com link',
+ ],
+ 'pinterest_video_pin' => [
+ 'label' => 'Pin de Vídeo',
+ 'description' => 'Conteúdo em vídeo',
+ ],
+ 'pinterest_carousel' => [
+ 'label' => 'Carrossel',
+ 'description' => '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',
+ ],
+ ],
+
+ '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!',
+ 'publishing' => 'Post está sendo publicado!',
+ 'deleted' => 'Post excluído com sucesso!',
+ 'cannot_edit_published' => 'Posts publicados não podem ser editados.',
+ 'connect_first' => 'Conecte pelo menos uma rede social antes de criar um post.',
+ ],
+
+ 'errors' => [
+ 'account_disconnected' => 'Conta social está desconectada',
+ ],
+];
diff --git a/lang/pt-br/settings.php b/lang/pt-br/settings.php
new file mode 100644
index 00000000..b448c655
--- /dev/null
+++ b/lang/pt-br/settings.php
@@ -0,0 +1,121 @@
+ 'Configurações',
+ 'description' => 'Gerencie seu perfil e configurações da conta',
+
+ 'nav' => [
+ 'profile' => 'Perfil',
+ 'password' => 'Senha',
+ 'workspace' => 'Workspace',
+ 'members' => 'Membros',
+ 'billing' => 'Faturamento',
+ ],
+
+ 'profile' => [
+ 'title' => 'Configurações do 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',
+ ],
+
+ 'password' => [
+ 'title' => 'Configurações de senha',
+ 'heading' => 'Atualizar senha',
+ 'description' => 'Certifique-se de que sua conta esteja usando uma senha longa e aleatória para se manter seguro',
+ 'current_password' => 'Senha atual',
+ 'current_password_placeholder' => 'Senha atual',
+ 'new_password' => 'Nova senha',
+ 'new_password_placeholder' => 'Nova senha',
+ 'confirm_password' => 'Confirmar senha',
+ 'confirm_password_placeholder' => 'Confirmar senha',
+ 'save' => 'Salvar senha',
+ ],
+
+ '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' => 'Uma vez que sua conta for excluída, todos os seus recursos e dados também serão permanentemente excluídos. Por favor, digite sua senha para confirmar que deseja excluir permanentemente sua conta.',
+ 'password' => 'Senha',
+ 'password_placeholder' => 'Senha',
+ 'cancel' => 'Cancelar',
+ 'confirm' => 'Excluir conta',
+ ],
+
+ 'workspace' => [
+ 'title' => 'Configurações do workspace',
+ 'heading' => 'Configurações do workspace',
+ 'description' => 'Atualize o nome, logo e fuso horário do workspace',
+ 'logo' => 'Logo',
+ 'name' => 'Nome',
+ 'name_placeholder' => 'Meu Workspace',
+ 'timezone' => 'Fuso horário',
+ 'save' => 'Salvar',
+ 'saved' => 'Salvo.',
+ ],
+
+ 'members' => [
+ 'title' => 'Membros',
+ 'heading' => 'Membros da equipe',
+ 'description' => 'Gerencie membros e convites deste workspace',
+
+ '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',
+ 'cancel_confirm' => 'Tem certeza que deseja cancelar este 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_confirm' => 'Tem certeza que deseja remover este membro?',
+ ],
+
+ 'roles' => [
+ 'owner' => 'Proprietário',
+ 'admin' => 'Administrador',
+ 'member' => 'Membro',
+ ],
+
+ 'flash' => [
+ 'invite_sent' => 'Convite enviado com sucesso!',
+ 'invite_deleted' => 'Convite excluído.',
+ 'member_removed' => 'Membro removido com sucesso.',
+ '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.',
+ ],
+ ],
+
+ 'flash' => [
+ '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!',
+ ],
+];
diff --git a/lang/pt-br/sidebar.php b/lang/pt-br/sidebar.php
new file mode 100644
index 00000000..d447df40
--- /dev/null
+++ b/lang/pt-br/sidebar.php
@@ -0,0 +1,48 @@
+ 'Selecionar workspace',
+ 'create_workspace' => 'Criar workspace',
+ 'create_post' => 'Criar post',
+ 'profile' => 'Perfil',
+ 'log_out' => 'Sair',
+
+ 'workspace' => 'Workspace: :name',
+ 'workspace_select' => 'Workspace: Selecionar',
+
+ 'theme' => 'Tema: :name',
+ 'theme_light' => 'Claro',
+ 'theme_dark' => 'Escuro',
+ 'theme_system' => 'Sistema',
+
+ 'language' => 'Idioma: :name',
+ 'language_select' => 'Idioma: Selecionar',
+
+ 'groups' => [
+ 'posts' => 'Posts',
+ 'configuration' => 'Configurações',
+ 'support' => 'Suporte',
+ ],
+
+ 'posts' => [
+ 'calendar' => 'Calendário',
+ 'all' => 'Todos',
+ 'scheduled' => 'Agendados',
+ 'posted' => 'Publicados',
+ 'drafts' => 'Rascunhos',
+ ],
+
+ 'config' => [
+ 'connections' => 'Conexões',
+ 'hashtags' => 'Hashtags',
+ 'labels' => 'Etiquetas',
+ 'settings' => 'Configurações',
+ ],
+
+ 'support' => [
+ 'discord' => 'Discord',
+ 'share_feedback' => 'Enviar feedback',
+ 'last_updates' => 'Últimas Atualizações',
+ 'docs' => 'Documentação',
+ ],
+];
diff --git a/lang/pt-br/validation.php b/lang/pt-br/validation.php
new file mode 100644
index 00000000..05d4442e
--- /dev/null
+++ b/lang/pt-br/validation.php
@@ -0,0 +1,200 @@
+ 'O campo :attribute deve ser aceito.',
+ 'accepted_if' => 'O campo :attribute deve ser aceito quando :other for :value.',
+ 'active_url' => 'O campo :attribute deve ser uma URL válida.',
+ 'after' => 'O campo :attribute deve ser uma data posterior a :date.',
+ 'after_or_equal' => 'O campo :attribute deve ser uma data posterior ou igual a :date.',
+ 'alpha' => 'O campo :attribute deve conter apenas letras.',
+ 'alpha_dash' => 'O campo :attribute deve conter apenas letras, números, hifens e underscores.',
+ 'alpha_num' => 'O campo :attribute deve conter apenas letras e números.',
+ 'any_of' => 'O campo :attribute é inválido.',
+ 'array' => 'O campo :attribute deve ser um array.',
+ 'ascii' => 'O campo :attribute deve conter apenas caracteres alfanuméricos e símbolos de um byte.',
+ 'before' => 'O campo :attribute deve ser uma data anterior a :date.',
+ 'before_or_equal' => 'O campo :attribute deve ser uma data anterior ou igual a :date.',
+ 'between' => [
+ 'array' => 'O campo :attribute deve ter entre :min e :max itens.',
+ 'file' => 'O campo :attribute deve estar entre :min e :max kilobytes.',
+ 'numeric' => 'O campo :attribute deve estar entre :min e :max.',
+ 'string' => 'O campo :attribute deve estar entre :min e :max caracteres.',
+ ],
+ 'boolean' => 'O campo :attribute deve ser verdadeiro ou falso.',
+ 'can' => 'O campo :attribute contém um valor não autorizado.',
+ 'confirmed' => 'A confirmação do campo :attribute não corresponde.',
+ 'contains' => 'O campo :attribute está faltando um valor obrigatório.',
+ 'current_password' => 'A senha está incorreta.',
+ 'date' => 'O campo :attribute deve ser uma data válida.',
+ 'date_equals' => 'O campo :attribute deve ser uma data igual a :date.',
+ 'date_format' => 'O campo :attribute deve corresponder ao formato :format.',
+ 'decimal' => 'O campo :attribute deve ter :decimal casas decimais.',
+ 'declined' => 'O campo :attribute deve ser recusado.',
+ 'declined_if' => 'O campo :attribute deve ser recusado quando :other for :value.',
+ 'different' => 'O campo :attribute e :other devem ser diferentes.',
+ 'digits' => 'O campo :attribute deve ter :digits dígitos.',
+ 'digits_between' => 'O campo :attribute deve ter entre :min e :max dígitos.',
+ 'dimensions' => 'O campo :attribute deve ter dimensões de imagem válidas.',
+ 'distinct' => 'O campo :attribute tem um valor duplicado.',
+ 'doesnt_contain' => 'O campo :attribute não deve conter nenhum dos seguintes: :values.',
+ 'doesnt_end_with' => 'O campo :attribute não deve terminar com nenhum dos seguintes: :values.',
+ 'doesnt_start_with' => 'O campo :attribute não deve começar com nenhum dos seguintes: :values.',
+ 'email' => 'O campo :attribute deve ser um endereço de e-mail válido.',
+ 'encoding' => 'O campo :attribute deve ser codificado em :encoding.',
+ 'ends_with' => 'O campo :attribute deve terminar com um dos seguintes: :values.',
+ 'enum' => 'O :attribute selecionado é inválido.',
+ 'exists' => 'O :attribute selecionado é inválido.',
+ 'extensions' => 'O campo :attribute deve ter uma das seguintes extensões: :values.',
+ 'file' => 'O campo :attribute deve ser um arquivo.',
+ 'filled' => 'O campo :attribute deve ter um valor.',
+ 'gt' => [
+ 'array' => 'O campo :attribute deve ter mais de :value itens.',
+ 'file' => 'O campo :attribute deve ser maior que :value kilobytes.',
+ 'numeric' => 'O campo :attribute deve ser maior que :value.',
+ 'string' => 'O campo :attribute deve ser maior que :value caracteres.',
+ ],
+ 'gte' => [
+ 'array' => 'O campo :attribute deve ter :value itens ou mais.',
+ 'file' => 'O campo :attribute deve ser maior ou igual a :value kilobytes.',
+ 'numeric' => 'O campo :attribute deve ser maior ou igual a :value.',
+ 'string' => 'O campo :attribute deve ser maior ou igual a :value caracteres.',
+ ],
+ 'hex_color' => 'O campo :attribute deve ser uma cor hexadecimal válida.',
+ 'image' => 'O campo :attribute deve ser uma imagem.',
+ 'in' => 'O :attribute selecionado é inválido.',
+ 'in_array' => 'O campo :attribute deve existir em :other.',
+ 'in_array_keys' => 'O campo :attribute deve conter pelo menos uma das seguintes chaves: :values.',
+ 'integer' => 'O campo :attribute deve ser um inteiro.',
+ 'ip' => 'O campo :attribute deve ser um endereço IP válido.',
+ 'ipv4' => 'O campo :attribute deve ser um endereço IPv4 válido.',
+ 'ipv6' => 'O campo :attribute deve ser um endereço IPv6 válido.',
+ 'json' => 'O campo :attribute deve ser uma string JSON válida.',
+ 'list' => 'O campo :attribute deve ser uma lista.',
+ 'lowercase' => 'O campo :attribute deve estar em minúsculas.',
+ 'lt' => [
+ 'array' => 'O campo :attribute deve ter menos de :value itens.',
+ 'file' => 'O campo :attribute deve ser menor que :value kilobytes.',
+ 'numeric' => 'O campo :attribute deve ser menor que :value.',
+ 'string' => 'O campo :attribute deve ser menor que :value caracteres.',
+ ],
+ 'lte' => [
+ 'array' => 'O campo :attribute deve ter :value itens ou menos.',
+ 'file' => 'O campo :attribute deve ser menor ou igual a :value kilobytes.',
+ 'numeric' => 'O campo :attribute deve ser menor ou igual a :value.',
+ 'string' => 'O campo :attribute deve ser menor ou igual a :value caracteres.',
+ ],
+ 'mac_address' => 'O campo :attribute deve ser um endereço MAC válido.',
+ 'max' => [
+ 'array' => 'O campo :attribute deve ter no máximo :max itens.',
+ 'file' => 'O campo :attribute deve ter no máximo :max kilobytes.',
+ 'numeric' => 'O campo :attribute deve ter no máximo :max.',
+ 'string' => 'O campo :attribute deve ter no máximo :max caracteres.',
+ ],
+ 'max_digits' => 'O campo :attribute não deve ter mais que :max dígitos.',
+ 'mimes' => 'O campo :attribute deve ser um arquivo do tipo: :values.',
+ 'mimetypes' => 'O campo :attribute deve ser um arquivo do tipo: :values.',
+ 'min' => [
+ 'array' => 'O campo :attribute deve ter pelo menos :min itens.',
+ 'file' => 'O campo :attribute deve ter pelo menos :min kilobytes.',
+ 'numeric' => 'O campo :attribute deve ter pelo menos :min.',
+ 'string' => 'O campo :attribute deve ter pelo menos :min caracteres.',
+ ],
+ 'min_digits' => 'O campo :attribute deve ter pelo menos :min dígitos.',
+ 'missing' => 'O campo :attribute deve estar ausente.',
+ 'missing_if' => 'O campo :attribute deve estar ausente quando :other for :value.',
+ 'missing_unless' => 'O campo :attribute deve estar ausente a menos que :other seja :value.',
+ 'missing_with' => 'O campo :attribute deve estar ausente quando :values estiver presente.',
+ 'missing_with_all' => 'O campo :attribute deve estar ausente quando :values estiverem presentes.',
+ 'multiple_of' => 'O campo :attribute deve ser um múltiplo de :value.',
+ 'not_in' => 'O :attribute selecionado é inválido.',
+ 'not_regex' => 'O formato do campo :attribute é inválido.',
+ 'numeric' => 'O campo :attribute deve ser um número.',
+ 'password' => [
+ 'letters' => 'O campo :attribute deve conter pelo menos uma letra.',
+ 'mixed' => 'O campo :attribute deve conter pelo menos uma letra maiúscula e uma minúscula.',
+ 'numbers' => 'O campo :attribute deve conter pelo menos um número.',
+ 'symbols' => 'O campo :attribute deve conter pelo menos um símbolo.',
+ 'uncompromised' => 'O :attribute fornecido apareceu em um vazamento de dados. Por favor, escolha um :attribute diferente.',
+ ],
+ 'present' => 'O campo :attribute deve estar presente.',
+ 'present_if' => 'O campo :attribute deve estar presente quando :other for :value.',
+ 'present_unless' => 'O campo :attribute deve estar presente a menos que :other seja :value.',
+ 'present_with' => 'O campo :attribute deve estar presente quando :values estiver presente.',
+ 'present_with_all' => 'O campo :attribute deve estar presente quando :values estiverem presentes.',
+ 'prohibited' => 'O campo :attribute é proibido.',
+ 'prohibited_if' => 'O campo :attribute é proibido quando :other for :value.',
+ 'prohibited_if_accepted' => 'O campo :attribute é proibido quando :other for aceito.',
+ 'prohibited_if_declined' => 'O campo :attribute é proibido quando :other for recusado.',
+ 'prohibited_unless' => 'O campo :attribute é proibido a menos que :other esteja em :values.',
+ 'prohibits' => 'O campo :attribute proíbe :other de estar presente.',
+ 'regex' => 'O formato do campo :attribute é inválido.',
+ 'required' => 'O campo :attribute é obrigatório.',
+ 'required_array_keys' => 'O campo :attribute deve conter entradas para: :values.',
+ 'required_if' => 'O campo :attribute é obrigatório quando :other for :value.',
+ 'required_if_accepted' => 'O campo :attribute é obrigatório quando :other for aceito.',
+ 'required_if_declined' => 'O campo :attribute é obrigatório quando :other for recusado.',
+ 'required_unless' => 'O campo :attribute é obrigatório a menos que :other esteja em :values.',
+ 'required_with' => 'O campo :attribute é obrigatório quando :values estiver presente.',
+ 'required_with_all' => 'O campo :attribute é obrigatório quando :values estiverem presentes.',
+ 'required_without' => 'O campo :attribute é obrigatório quando :values não estiver presente.',
+ 'required_without_all' => 'O campo :attribute é obrigatório quando nenhum dos :values estiver presente.',
+ 'same' => 'O campo :attribute deve ser igual a :other.',
+ 'size' => [
+ 'array' => 'O campo :attribute deve conter :size itens.',
+ 'file' => 'O campo :attribute deve ter :size kilobytes.',
+ 'numeric' => 'O campo :attribute deve ser :size.',
+ 'string' => 'O campo :attribute deve ter :size caracteres.',
+ ],
+ 'starts_with' => 'O campo :attribute deve começar com um dos seguintes: :values.',
+ 'string' => 'O campo :attribute deve ser uma string.',
+ 'timezone' => 'O campo :attribute deve ser um fuso horário válido.',
+ 'unique' => 'O :attribute já foi utilizado.',
+ 'uploaded' => 'O :attribute falhou ao ser enviado.',
+ 'uppercase' => 'O campo :attribute deve estar em maiúsculo.',
+ 'url' => 'O campo :attribute deve ser uma URL válida.',
+ 'ulid' => 'O campo :attribute deve ser um ULID válido.',
+ 'uuid' => 'O campo :attribute deve ser um UUID válido.',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Custom Validation Language Lines
+ |--------------------------------------------------------------------------
+ |
+ | Here you may specify custom validation messages for attributes using the
+ | convention "attribute.rule" to name the lines. This makes it quick to
+ | specify a specific custom language line for a given attribute rule.
+ |
+ */
+
+ 'custom' => [
+ 'attribute-name' => [
+ 'rule-name' => 'custom-message',
+ ],
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Custom Validation Attributes
+ |--------------------------------------------------------------------------
+ |
+ | The following language lines are used to swap our attribute placeholder
+ | with something more reader friendly such as "E-Mail Address" instead
+ | of "email". This simply helps us make our message more expressive.
+ |
+ */
+
+ 'attributes' => [],
+
+];