1234 lines
58 KiB
TypeScript
1234 lines
58 KiB
TypeScript
const br: Record<string, string | { name: string; category: string }[]> = {
|
|
// Common
|
|
'common.save': 'Salvar',
|
|
'common.cancel': 'Cancelar',
|
|
'common.delete': 'Excluir',
|
|
'common.edit': 'Editar',
|
|
'common.add': 'Adicionar',
|
|
'common.loading': 'Carregando...',
|
|
'common.error': 'Erro',
|
|
'common.back': 'Voltar',
|
|
'common.all': 'Todos',
|
|
'common.close': 'Fechar',
|
|
'common.open': 'Abrir',
|
|
'common.upload': 'Enviar',
|
|
'common.search': 'Buscar',
|
|
'common.confirm': 'Confirmar',
|
|
'common.ok': 'OK',
|
|
'common.yes': 'Sim',
|
|
'common.no': 'Não',
|
|
'common.or': 'ou',
|
|
'common.none': 'Nenhum',
|
|
'common.date': 'Data',
|
|
'common.rename': 'Renomear',
|
|
'common.name': 'Nome',
|
|
'common.email': 'E-mail',
|
|
'common.password': 'Senha',
|
|
'common.saving': 'Salvando...',
|
|
'common.update': 'Atualizar',
|
|
'common.change': 'Alterar',
|
|
'common.uploading': 'Enviando…',
|
|
'common.backToPlanning': 'Voltar ao planejamento',
|
|
'common.reset': 'Redefinir',
|
|
|
|
// Navbar
|
|
'nav.trip': 'Viagem',
|
|
'nav.share': 'Compartilhar',
|
|
'nav.settings': 'Configurações',
|
|
'nav.admin': 'Admin',
|
|
'nav.logout': 'Sair',
|
|
'nav.lightMode': 'Modo claro',
|
|
'nav.darkMode': 'Modo escuro',
|
|
'nav.autoMode': 'Automático',
|
|
'nav.administrator': 'Administrador',
|
|
|
|
// Dashboard
|
|
'dashboard.title': 'Minhas viagens',
|
|
'dashboard.subtitle.loading': 'Carregando viagens...',
|
|
'dashboard.subtitle.trips': '{count} viagens ({archived} arquivadas)',
|
|
'dashboard.subtitle.empty': 'Comece sua primeira viagem',
|
|
'dashboard.subtitle.activeOne': '{count} viagem ativa',
|
|
'dashboard.subtitle.activeMany': '{count} viagens ativas',
|
|
'dashboard.subtitle.archivedSuffix': ' · {count} arquivadas',
|
|
'dashboard.newTrip': 'Nova viagem',
|
|
'dashboard.gridView': 'Grade',
|
|
'dashboard.listView': 'Lista',
|
|
'dashboard.currency': 'Moeda',
|
|
'dashboard.timezone': 'Fusos horários',
|
|
'dashboard.localTime': 'Local',
|
|
'dashboard.timezoneCustomTitle': 'Fuso personalizado',
|
|
'dashboard.timezoneCustomLabelPlaceholder': 'Rótulo (opcional)',
|
|
'dashboard.timezoneCustomTzPlaceholder': 'ex.: America/Sao_Paulo',
|
|
'dashboard.timezoneCustomAdd': 'Adicionar',
|
|
'dashboard.timezoneCustomErrorEmpty': 'Informe um identificador de fuso',
|
|
'dashboard.timezoneCustomErrorInvalid': 'Fuso inválido. Use o formato Europe/Berlin',
|
|
'dashboard.timezoneCustomErrorDuplicate': 'Já adicionado',
|
|
'dashboard.emptyTitle': 'Nenhuma viagem ainda',
|
|
'dashboard.emptyText': 'Crie sua primeira viagem e comece a planejar!',
|
|
'dashboard.emptyButton': 'Criar primeira viagem',
|
|
'dashboard.nextTrip': 'Próxima viagem',
|
|
'dashboard.shared': 'Compartilhada',
|
|
'dashboard.sharedBy': 'Compartilhada por {name}',
|
|
'dashboard.days': 'Dias',
|
|
'dashboard.places': 'Lugares',
|
|
'dashboard.archive': 'Arquivar',
|
|
'dashboard.restore': 'Restaurar',
|
|
'dashboard.archived': 'Arquivada',
|
|
'dashboard.status.ongoing': 'Em andamento',
|
|
'dashboard.status.today': 'Hoje',
|
|
'dashboard.status.tomorrow': 'Amanhã',
|
|
'dashboard.status.past': 'Passada',
|
|
'dashboard.status.daysLeft': 'Faltam {count} dias',
|
|
'dashboard.toast.loadError': 'Não foi possível carregar as viagens',
|
|
'dashboard.toast.created': 'Viagem criada com sucesso!',
|
|
'dashboard.toast.createError': 'Não foi possível criar a viagem',
|
|
'dashboard.toast.updated': 'Viagem atualizada!',
|
|
'dashboard.toast.updateError': 'Não foi possível atualizar a viagem',
|
|
'dashboard.toast.deleted': 'Viagem excluída',
|
|
'dashboard.toast.deleteError': 'Não foi possível excluir a viagem',
|
|
'dashboard.toast.archived': 'Viagem arquivada',
|
|
'dashboard.toast.archiveError': 'Não foi possível arquivar',
|
|
'dashboard.toast.restored': 'Viagem restaurada',
|
|
'dashboard.toast.restoreError': 'Não foi possível restaurar',
|
|
'dashboard.confirm.delete': 'Excluir a viagem "{title}"? Todos os lugares e planos serão excluídos permanentemente.',
|
|
'dashboard.editTrip': 'Editar viagem',
|
|
'dashboard.createTrip': 'Criar nova viagem',
|
|
'dashboard.tripTitle': 'Título',
|
|
'dashboard.tripTitlePlaceholder': 'ex.: Verão no Japão',
|
|
'dashboard.tripDescription': 'Descrição',
|
|
'dashboard.tripDescriptionPlaceholder': 'Sobre o que é esta viagem?',
|
|
'dashboard.startDate': 'Data de início',
|
|
'dashboard.endDate': 'Data de término',
|
|
'dashboard.noDateHint': 'Sem datas — serão criados 7 dias padrão. Você pode alterar depois.',
|
|
'dashboard.coverImage': 'Imagem de capa',
|
|
'dashboard.addCoverImage': 'Adicionar capa (ou arrastar e soltar)',
|
|
'dashboard.addMembers': 'Companheiros de viagem',
|
|
'dashboard.addMember': 'Adicionar membro',
|
|
'dashboard.coverSaved': 'Capa salva',
|
|
'dashboard.coverUploadError': 'Falha no envio',
|
|
'dashboard.coverRemoveError': 'Falha ao remover',
|
|
'dashboard.titleRequired': 'O título é obrigatório',
|
|
'dashboard.endDateError': 'A data final deve ser depois da inicial',
|
|
|
|
// Settings
|
|
'settings.title': 'Configurações',
|
|
'settings.subtitle': 'Ajuste suas preferências pessoais',
|
|
'settings.map': 'Mapa',
|
|
'settings.mapTemplate': 'Modelo de mapa',
|
|
'settings.mapTemplatePlaceholder.select': 'Selecione o modelo...',
|
|
'settings.mapDefaultHint': 'Deixe vazio para OpenStreetMap (padrão)',
|
|
'settings.mapTemplatePlaceholder': 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
|
|
'settings.mapHint': 'URL do modelo de blocos do mapa',
|
|
'settings.latitude': 'Latitude',
|
|
'settings.longitude': 'Longitude',
|
|
'settings.saveMap': 'Salvar mapa',
|
|
'settings.apiKeys': 'Chaves de API',
|
|
'settings.mapsKey': 'Chave da API Google Maps',
|
|
'settings.mapsKeyHint': 'Para busca de lugares. Requer Places API (New). Obtenha em console.cloud.google.com',
|
|
'settings.weatherKey': 'Chave OpenWeatherMap',
|
|
'settings.weatherKeyHint': 'Para dados meteorológicos. Grátis em openweathermap.org/api',
|
|
'settings.keyPlaceholder': 'Digite a chave...',
|
|
'settings.configured': 'Configurada',
|
|
'settings.saveKeys': 'Salvar chaves',
|
|
'settings.display': 'Exibição',
|
|
'settings.colorMode': 'Tema de cores',
|
|
'settings.light': 'Claro',
|
|
'settings.dark': 'Escuro',
|
|
'settings.auto': 'Automático',
|
|
'settings.language': 'Idioma',
|
|
'settings.temperature': 'Unidade de temperatura',
|
|
'settings.timeFormat': 'Formato de hora',
|
|
'settings.routeCalculation': 'Cálculo de rota',
|
|
'settings.on': 'Ligado',
|
|
'settings.off': 'Desligado',
|
|
'settings.account': 'Conta',
|
|
'settings.username': 'Nome de usuário',
|
|
'settings.email': 'E-mail',
|
|
'settings.role': 'Função',
|
|
'settings.roleAdmin': 'Administrador',
|
|
'settings.oidcLinked': 'Vinculado a',
|
|
'settings.changePassword': 'Alterar senha',
|
|
'settings.currentPassword': 'Senha atual',
|
|
'settings.currentPasswordRequired': 'A senha atual é obrigatória',
|
|
'settings.newPassword': 'Nova senha',
|
|
'settings.confirmPassword': 'Confirmar nova senha',
|
|
'settings.updatePassword': 'Atualizar senha',
|
|
'settings.passwordRequired': 'Informe a senha atual e a nova',
|
|
'settings.passwordTooShort': 'A senha deve ter pelo menos 8 caracteres',
|
|
'settings.passwordMismatch': 'As senhas não coincidem',
|
|
'settings.passwordWeak': 'A senha deve ter maiúscula, minúscula e número',
|
|
'settings.passwordChanged': 'Senha alterada com sucesso',
|
|
'settings.deleteAccount': 'Excluir conta',
|
|
'settings.deleteAccountTitle': 'Excluir sua conta?',
|
|
'settings.deleteAccountWarning': 'Sua conta e todas as viagens, lugares e arquivos serão excluídos permanentemente. Esta ação não pode ser desfeita.',
|
|
'settings.deleteAccountConfirm': 'Excluir permanentemente',
|
|
'settings.deleteBlockedTitle': 'Exclusão não permitida',
|
|
'settings.deleteBlockedMessage': 'Você é o único administrador. Promova outro usuário a administrador antes de excluir sua conta.',
|
|
'settings.roleUser': 'Usuário',
|
|
'settings.saveProfile': 'Salvar perfil',
|
|
'settings.toast.mapSaved': 'Configurações do mapa salvas',
|
|
'settings.toast.keysSaved': 'Chaves de API salvas',
|
|
'settings.toast.displaySaved': 'Configurações de exibição salvas',
|
|
'settings.toast.profileSaved': 'Perfil salvo',
|
|
'settings.uploadAvatar': 'Enviar foto do perfil',
|
|
'settings.removeAvatar': 'Remover foto do perfil',
|
|
'settings.avatarUploaded': 'Foto do perfil atualizada',
|
|
'settings.avatarRemoved': 'Foto do perfil removida',
|
|
'settings.avatarError': 'Falha no envio',
|
|
'settings.mfa.title': 'Autenticação em duas etapas (2FA)',
|
|
'settings.mfa.description': 'Adiciona uma segunda etapa ao entrar com e-mail e senha. Use um app autenticador (Google Authenticator, Authy, etc.).',
|
|
'settings.mfa.enabled': 'O 2FA está ativado na sua conta.',
|
|
'settings.mfa.disabled': 'O 2FA não está ativado.',
|
|
'settings.mfa.setup': 'Configurar autenticador',
|
|
'settings.mfa.scanQr': 'Leia este QR code no app ou digite o segredo manualmente.',
|
|
'settings.mfa.secretLabel': 'Chave secreta (entrada manual)',
|
|
'settings.mfa.codePlaceholder': 'Código de 6 dígitos',
|
|
'settings.mfa.enable': 'Ativar 2FA',
|
|
'settings.mfa.cancelSetup': 'Cancelar',
|
|
'settings.mfa.disableTitle': 'Desativar 2FA',
|
|
'settings.mfa.disableHint': 'Digite sua senha e um código atual do autenticador.',
|
|
'settings.mfa.disable': 'Desativar 2FA',
|
|
'settings.mfa.toastEnabled': 'Autenticação em duas etapas ativada',
|
|
'settings.mfa.toastDisabled': 'Autenticação em duas etapas desativada',
|
|
'settings.mfa.demoBlocked': 'Indisponível no modo demonstração',
|
|
|
|
// Login
|
|
'login.error': 'Falha no login. Verifique suas credenciais.',
|
|
'login.tagline': 'Suas viagens.\nSeu plano.',
|
|
'login.description': 'Planeje viagens em equipe com mapas interativos, orçamento e sincronização em tempo real.',
|
|
'login.features.maps': 'Mapas interativos',
|
|
'login.features.mapsDesc': 'Google Places, rotas e agrupamento',
|
|
'login.features.realtime': 'Sincronização em tempo real',
|
|
'login.features.realtimeDesc': 'Planejem juntos via WebSocket',
|
|
'login.features.budget': 'Controle de orçamento',
|
|
'login.features.budgetDesc': 'Categorias, gráficos e custo por pessoa',
|
|
'login.features.collab': 'Colaboração',
|
|
'login.features.collabDesc': 'Vários usuários com viagens compartilhadas',
|
|
'login.features.packing': 'Listas de malas',
|
|
'login.features.packingDesc': 'Categorias, progresso e sugestões',
|
|
'login.features.bookings': 'Reservas',
|
|
'login.features.bookingsDesc': 'Voos, hotéis, restaurantes e mais',
|
|
'login.features.files': 'Documentos',
|
|
'login.features.filesDesc': 'Envie e gerencie documentos',
|
|
'login.features.routes': 'Rotas inteligentes',
|
|
'login.features.routesDesc': 'Otimize e exporte para o Google Maps',
|
|
'login.selfHosted': 'Auto-hospedado \u00B7 Código aberto \u00B7 Seus dados são seus',
|
|
'login.title': 'Entrar',
|
|
'login.subtitle': 'Bem-vindo de volta',
|
|
'login.signingIn': 'Entrando…',
|
|
'login.signIn': 'Entrar',
|
|
'login.createAdmin': 'Criar conta de administrador',
|
|
'login.createAdminHint': 'Configure a primeira conta de administrador do TREK.',
|
|
'login.createAccount': 'Criar conta',
|
|
'login.createAccountHint': 'Cadastre uma nova conta.',
|
|
'login.creating': 'Criando…',
|
|
'login.noAccount': 'Não tem conta?',
|
|
'login.hasAccount': 'Já tem conta?',
|
|
'login.register': 'Cadastrar',
|
|
'login.emailPlaceholder': 'seu@email.com',
|
|
'login.username': 'Nome de usuário',
|
|
'login.oidc.registrationDisabled': 'Cadastro desativado. Fale com o administrador.',
|
|
'login.oidc.noEmail': 'Nenhum e-mail recebido do provedor.',
|
|
'login.oidc.tokenFailed': 'Falha na autenticação.',
|
|
'login.oidc.invalidState': 'Sessão inválida. Tente novamente.',
|
|
'login.demoFailed': 'Falha no login de demonstração',
|
|
'login.oidcSignIn': 'Entrar com {name}',
|
|
'login.oidcOnly': 'Login por senha desativado. Use o provedor SSO.',
|
|
'login.demoHint': 'Experimente a demonstração — sem cadastro',
|
|
'login.mfaTitle': 'Autenticação em duas etapas',
|
|
'login.mfaSubtitle': 'Digite o código de 6 dígitos do seu app autenticador.',
|
|
'login.mfaCodeLabel': 'Código de verificação',
|
|
'login.mfaCodeRequired': 'Digite o código do app autenticador.',
|
|
'login.mfaHint': 'Abra o Google Authenticator, Authy ou outro app TOTP.',
|
|
'login.mfaBack': '← Voltar ao login',
|
|
'login.mfaVerify': 'Verificar',
|
|
|
|
// Register
|
|
'register.passwordMismatch': 'As senhas não coincidem',
|
|
'register.passwordTooShort': 'A senha deve ter pelo menos 6 caracteres',
|
|
'register.failed': 'Falha no cadastro',
|
|
'register.getStarted': 'Começar',
|
|
'register.subtitle': 'Crie uma conta e comece a planejar suas viagens.',
|
|
'register.feature1': 'Viagens ilimitadas',
|
|
'register.feature2': 'Mapa interativo',
|
|
'register.feature3': 'Gerencie lugares e categorias',
|
|
'register.feature4': 'Acompanhe reservas',
|
|
'register.feature5': 'Listas de malas',
|
|
'register.feature6': 'Fotos e arquivos',
|
|
'register.createAccount': 'Criar conta',
|
|
'register.startPlanning': 'Comece a planejar',
|
|
'register.minChars': 'Mín. 6 caracteres',
|
|
'register.confirmPassword': 'Confirmar senha',
|
|
'register.repeatPassword': 'Repita a senha',
|
|
'register.registering': 'Cadastrando...',
|
|
'register.register': 'Cadastrar',
|
|
'register.hasAccount': 'Já tem conta?',
|
|
'register.signIn': 'Entrar',
|
|
|
|
// Admin
|
|
'admin.title': 'Administração',
|
|
'admin.subtitle': 'Gestão de usuários e configurações do sistema',
|
|
'admin.tabs.users': 'Usuários',
|
|
'admin.tabs.categories': 'Categorias',
|
|
'admin.tabs.backup': 'Backup',
|
|
'admin.stats.users': 'Usuários',
|
|
'admin.stats.trips': 'Viagens',
|
|
'admin.stats.places': 'Lugares',
|
|
'admin.stats.photos': 'Fotos',
|
|
'admin.stats.files': 'Arquivos',
|
|
'admin.table.user': 'Usuário',
|
|
'admin.table.email': 'E-mail',
|
|
'admin.table.role': 'Função',
|
|
'admin.table.created': 'Criado',
|
|
'admin.table.lastLogin': 'Último acesso',
|
|
'admin.table.actions': 'Ações',
|
|
'admin.you': '(Você)',
|
|
'admin.editUser': 'Editar usuário',
|
|
'admin.newPassword': 'Nova senha',
|
|
'admin.newPasswordHint': 'Deixe em branco para manter a senha atual',
|
|
'admin.deleteUser': 'Excluir o usuário "{name}"? Todas as viagens serão excluídas permanentemente.',
|
|
'admin.deleteUserTitle': 'Excluir usuário',
|
|
'admin.newPasswordPlaceholder': 'Digite a nova senha…',
|
|
'admin.toast.loadError': 'Falha ao carregar dados do admin',
|
|
'admin.toast.userUpdated': 'Usuário atualizado',
|
|
'admin.toast.updateError': 'Falha ao atualizar',
|
|
'admin.toast.userDeleted': 'Usuário excluído',
|
|
'admin.toast.deleteError': 'Falha ao excluir',
|
|
'admin.toast.cannotDeleteSelf': 'Não é possível excluir a própria conta',
|
|
'admin.toast.userCreated': 'Usuário criado',
|
|
'admin.toast.createError': 'Falha ao criar usuário',
|
|
'admin.toast.fieldsRequired': 'Nome de usuário, e-mail e senha são obrigatórios',
|
|
'admin.createUser': 'Criar usuário',
|
|
'admin.invite.title': 'Links de convite',
|
|
'admin.invite.subtitle': 'Crie links de cadastro de uso único',
|
|
'admin.invite.create': 'Criar link',
|
|
'admin.invite.createAndCopy': 'Criar e copiar',
|
|
'admin.invite.empty': 'Nenhum link de convite criado ainda',
|
|
'admin.invite.maxUses': 'Máx. usos',
|
|
'admin.invite.expiry': 'Expira após',
|
|
'admin.invite.uses': 'usado(s)',
|
|
'admin.invite.expiresAt': 'expira',
|
|
'admin.invite.createdBy': 'por',
|
|
'admin.invite.active': 'Ativo',
|
|
'admin.invite.expired': 'Expirado',
|
|
'admin.invite.usedUp': 'Esgotado',
|
|
'admin.invite.copied': 'Link de convite copiado para a área de transferência',
|
|
'admin.invite.copyLink': 'Copiar link',
|
|
'admin.invite.deleted': 'Link de convite excluído',
|
|
'admin.invite.createError': 'Falha ao criar link de convite',
|
|
'admin.invite.deleteError': 'Falha ao excluir link de convite',
|
|
'admin.tabs.settings': 'Configurações',
|
|
'admin.allowRegistration': 'Permitir cadastro',
|
|
'admin.allowRegistrationHint': 'Novos usuários podem se cadastrar sozinhos',
|
|
'admin.apiKeys': 'Chaves de API',
|
|
'admin.apiKeysHint': 'Opcional. Habilita dados estendidos de lugares, como fotos e clima.',
|
|
'admin.mapsKey': 'Chave da API Google Maps',
|
|
'admin.mapsKeyHint': 'Necessária para busca de lugares. Obtenha em console.cloud.google.com',
|
|
'admin.mapsKeyHintLong': 'Sem chave de API, o OpenStreetMap é usado na busca. Com uma chave Google, também podem ser carregadas fotos, avaliações e horários. Obtenha em console.cloud.google.com.',
|
|
'admin.recommended': 'Recomendado',
|
|
'admin.weatherKey': 'Chave OpenWeatherMap',
|
|
'admin.weatherKeyHint': 'Para dados meteorológicos. Grátis em openweathermap.org',
|
|
'admin.validateKey': 'Testar',
|
|
'admin.keyValid': 'Conectado',
|
|
'admin.keyInvalid': 'Inválida',
|
|
'admin.keySaved': 'Chaves de API salvas',
|
|
'admin.oidcTitle': 'Single Sign-On (OIDC)',
|
|
'admin.oidcSubtitle': 'Permitir login via provedores externos como Google, Apple, Authentik ou Keycloak.',
|
|
'admin.oidcDisplayName': 'Nome exibido',
|
|
'admin.oidcIssuer': 'URL do emissor',
|
|
'admin.oidcIssuerHint': 'URL do emissor OpenID Connect do provedor, ex.: https://accounts.google.com',
|
|
'admin.oidcSaved': 'Configuração OIDC salva',
|
|
'admin.oidcOnlyMode': 'Desativar login por senha',
|
|
'admin.oidcOnlyModeHint': 'Quando ativado, só é permitido login SSO. Login e cadastro por senha ficam bloqueados.',
|
|
|
|
// File Types
|
|
'admin.fileTypes': 'Tipos de arquivo permitidos',
|
|
'admin.fileTypesHint': 'Configure quais tipos de arquivo os usuários podem enviar.',
|
|
'admin.fileTypesFormat': 'Extensões separadas por vírgula (ex.: jpg,png,pdf,doc). Use * para permitir todos.',
|
|
'admin.fileTypesSaved': 'Configurações de tipos de arquivo salvas',
|
|
|
|
// Packing Templates & Bag Tracking
|
|
'admin.bagTracking.title': 'Rastreamento de malas',
|
|
'admin.bagTracking.subtitle': 'Ativar peso e atribuição de mala para itens da lista',
|
|
'admin.tabs.config': 'Configuração',
|
|
'admin.tabs.templates': 'Modelos de mala',
|
|
'admin.packingTemplates.title': 'Modelos de mala',
|
|
'admin.packingTemplates.subtitle': 'Crie listas de mala reutilizáveis para suas viagens',
|
|
'admin.packingTemplates.create': 'Novo modelo',
|
|
'admin.packingTemplates.namePlaceholder': 'Nome do modelo (ex.: Praia)',
|
|
'admin.packingTemplates.empty': 'Nenhum modelo criado ainda',
|
|
'admin.packingTemplates.items': 'itens',
|
|
'admin.packingTemplates.categories': 'categorias',
|
|
'admin.packingTemplates.itemName': 'Nome do item',
|
|
'admin.packingTemplates.itemCategory': 'Categoria',
|
|
'admin.packingTemplates.categoryName': 'Nome da categoria (ex.: Roupas)',
|
|
'admin.packingTemplates.addCategory': 'Adicionar categoria',
|
|
'admin.packingTemplates.created': 'Modelo criado',
|
|
'admin.packingTemplates.deleted': 'Modelo excluído',
|
|
'admin.packingTemplates.loadError': 'Falha ao carregar modelos',
|
|
'admin.packingTemplates.createError': 'Falha ao criar modelo',
|
|
'admin.packingTemplates.deleteError': 'Falha ao excluir modelo',
|
|
'admin.packingTemplates.saveError': 'Falha ao salvar',
|
|
|
|
// Addons
|
|
'admin.tabs.addons': 'Complementos',
|
|
'admin.addons.title': 'Complementos',
|
|
'admin.addons.subtitle': 'Ative ou desative recursos para personalizar sua experiência no TREK.',
|
|
'admin.addons.catalog.memories.name': 'Memórias',
|
|
'admin.addons.catalog.memories.description': 'Álbuns de fotos compartilhados em cada viagem',
|
|
'admin.addons.catalog.packing.name': 'Mala',
|
|
'admin.addons.catalog.packing.description': 'Listas para preparar a bagagem de cada viagem',
|
|
'admin.addons.catalog.budget.name': 'Orçamento',
|
|
'admin.addons.catalog.budget.description': 'Acompanhe despesas e planeje o orçamento da viagem',
|
|
'admin.addons.catalog.documents.name': 'Documentos',
|
|
'admin.addons.catalog.documents.description': 'Armazene e gerencie documentos de viagem',
|
|
'admin.addons.catalog.vacay.name': 'Vacay',
|
|
'admin.addons.catalog.vacay.description': 'Planejador de férias pessoal com visão em calendário',
|
|
'admin.addons.catalog.atlas.name': 'Atlas',
|
|
'admin.addons.catalog.atlas.description': 'Mapa mundial com países visitados e estatísticas',
|
|
'admin.addons.catalog.collab.name': 'Colab',
|
|
'admin.addons.catalog.collab.description': 'Notas, enquetes e chat em tempo real para planejar a viagem',
|
|
'admin.addons.subtitleBefore': 'Ative ou desative recursos para personalizar sua ',
|
|
'admin.addons.subtitleAfter': ' experiência.',
|
|
'admin.addons.enabled': 'Ativado',
|
|
'admin.addons.disabled': 'Desativado',
|
|
'admin.addons.type.trip': 'Viagem',
|
|
'admin.addons.type.global': 'Global',
|
|
'admin.addons.tripHint': 'Disponível como aba em cada viagem',
|
|
'admin.addons.globalHint': 'Disponível como seção própria na navegação principal',
|
|
'admin.addons.toast.updated': 'Complemento atualizado',
|
|
'admin.addons.toast.error': 'Falha ao atualizar complemento',
|
|
'admin.addons.noAddons': 'Nenhum complemento disponível',
|
|
// Weather info
|
|
'admin.weather.title': 'Dados meteorológicos',
|
|
'admin.weather.badge': 'Desde 24 de março de 2026',
|
|
'admin.weather.description': 'O TREK usa Open-Meteo como fonte de clima. Open-Meteo é um serviço gratuito e de código aberto — sem chave de API.',
|
|
'admin.weather.forecast': 'Previsão de 16 dias',
|
|
'admin.weather.forecastDesc': 'Antes eram 5 dias (OpenWeatherMap)',
|
|
'admin.weather.climate': 'Dados climáticos históricos',
|
|
'admin.weather.climateDesc': 'Médias dos últimos 85 anos para dias além da previsão de 16 dias',
|
|
'admin.weather.requests': '10.000 requisições / dia',
|
|
'admin.weather.requestsDesc': 'Grátis, sem chave de API',
|
|
'admin.weather.locationHint': 'O clima usa o primeiro lugar com coordenadas de cada dia. Se nenhum lugar estiver atribuído ao dia, qualquer lugar da lista serve como referência.',
|
|
|
|
// GitHub
|
|
'admin.tabs.github': 'GitHub',
|
|
'admin.github.title': 'Histórico de versões',
|
|
'admin.github.subtitle': 'Últimas atualizações de {repo}',
|
|
'admin.github.latest': 'Mais recente',
|
|
'admin.github.prerelease': 'Pré-lançamento',
|
|
'admin.github.showDetails': 'Mostrar detalhes',
|
|
'admin.github.hideDetails': 'Ocultar detalhes',
|
|
'admin.github.loadMore': 'Carregar mais',
|
|
'admin.github.loading': 'Carregando...',
|
|
'admin.github.error': 'Falha ao carregar versões',
|
|
'admin.github.by': 'por',
|
|
'admin.github.support': 'Ajuda a continuar desenvolvendo o TREK',
|
|
|
|
'admin.update.available': 'Atualização disponível',
|
|
'admin.update.text': 'O TREK {version} está disponível. Você está na {current}.',
|
|
'admin.update.button': 'Ver no GitHub',
|
|
'admin.update.install': 'Instalar atualização',
|
|
'admin.update.confirmTitle': 'Instalar atualização?',
|
|
'admin.update.confirmText': 'O TREK será atualizado de {current} para {version}. O servidor reiniciará automaticamente em seguida.',
|
|
'admin.update.dataInfo': 'Todos os seus dados (viagens, usuários, chaves de API, envios, Vacay, Atlas, orçamentos) serão preservados.',
|
|
'admin.update.warning': 'O app ficará brevemente indisponível durante o reinício.',
|
|
'admin.update.confirm': 'Atualizar agora',
|
|
'admin.update.installing': 'Atualizando…',
|
|
'admin.update.success': 'Atualização instalada! O servidor está reiniciando…',
|
|
'admin.update.failed': 'Falha na atualização',
|
|
'admin.update.backupHint': 'Recomendamos criar um backup antes de atualizar.',
|
|
'admin.update.backupLink': 'Ir para Backup',
|
|
'admin.update.howTo': 'Como atualizar',
|
|
'admin.update.dockerText': 'Sua instância TREK roda no Docker. Para atualizar para {version}, execute no servidor:',
|
|
'admin.update.reloadHint': 'Recarregue a página em alguns segundos.',
|
|
|
|
// Vacay addon
|
|
'vacay.subtitle': 'Planeje e gerencie dias de férias',
|
|
'vacay.settings': 'Configurações',
|
|
'vacay.year': 'Ano',
|
|
'vacay.addYear': 'Adicionar ano',
|
|
'vacay.removeYear': 'Remover ano',
|
|
'vacay.removeYearConfirm': 'Remover {year}?',
|
|
'vacay.removeYearHint': 'Todas as entradas de férias e feriados da empresa deste ano serão excluídas permanentemente.',
|
|
'vacay.remove': 'Remover',
|
|
'vacay.persons': 'Pessoas',
|
|
'vacay.noPersons': 'Nenhuma pessoa adicionada',
|
|
'vacay.addPerson': 'Adicionar pessoa',
|
|
'vacay.editPerson': 'Editar pessoa',
|
|
'vacay.removePerson': 'Remover pessoa',
|
|
'vacay.removePersonConfirm': 'Remover {name}?',
|
|
'vacay.removePersonHint': 'Todas as entradas de férias desta pessoa serão excluídas permanentemente.',
|
|
'vacay.personName': 'Nome',
|
|
'vacay.personNamePlaceholder': 'Digite o nome',
|
|
'vacay.color': 'Cor',
|
|
'vacay.add': 'Adicionar',
|
|
'vacay.legend': 'Legenda',
|
|
'vacay.publicHoliday': 'Feriado nacional',
|
|
'vacay.companyHoliday': 'Feriado da empresa',
|
|
'vacay.weekend': 'Fim de semana',
|
|
'vacay.modeVacation': 'Férias',
|
|
'vacay.modeCompany': 'Feriado da empresa',
|
|
'vacay.entitlement': 'Direito',
|
|
'vacay.entitlementDays': 'Dias',
|
|
'vacay.used': 'Usados',
|
|
'vacay.remaining': 'Restantes',
|
|
'vacay.carriedOver': 'de {year}',
|
|
'vacay.blockWeekends': 'Bloquear fins de semana',
|
|
'vacay.weekendDays': 'Dias de fim de semana',
|
|
'vacay.mon': 'Seg',
|
|
'vacay.tue': 'Ter',
|
|
'vacay.wed': 'Qua',
|
|
'vacay.thu': 'Qui',
|
|
'vacay.fri': 'Sex',
|
|
'vacay.sat': 'Sáb',
|
|
'vacay.sun': 'Dom',
|
|
'vacay.blockWeekendsHint': 'Impedir entradas de férias aos sábados e domingos',
|
|
'vacay.publicHolidays': 'Feriados nacionais',
|
|
'vacay.publicHolidaysHint': 'Marcar feriados nacionais no calendário',
|
|
'vacay.selectCountry': 'Selecione o país',
|
|
'vacay.selectRegion': 'Selecione a região (opcional)',
|
|
'vacay.addCalendar': 'Adicionar calendário',
|
|
'vacay.calendarLabel': 'Rótulo (opcional)',
|
|
'vacay.calendarColor': 'Cor',
|
|
'vacay.noCalendars': 'Nenhum calendário de feriados adicionado ainda',
|
|
'vacay.companyHolidays': 'Feriados da empresa',
|
|
'vacay.companyHolidaysHint': 'Permitir marcar dias de feriado em toda a empresa',
|
|
'vacay.companyHolidaysNoDeduct': 'Feriados da empresa não contam como dias de férias.',
|
|
'vacay.carryOver': 'Acúmulo',
|
|
'vacay.carryOverHint': 'Levar automaticamente os dias de férias restantes para o ano seguinte',
|
|
'vacay.sharing': 'Compartilhamento',
|
|
'vacay.sharingHint': 'Compartilhe seu plano de férias com outros usuários do TREK',
|
|
'vacay.owner': 'Proprietário',
|
|
'vacay.shareEmailPlaceholder': 'E-mail do usuário TREK',
|
|
'vacay.shareSuccess': 'Plano compartilhado com sucesso',
|
|
'vacay.shareError': 'Não foi possível compartilhar o plano',
|
|
'vacay.dissolve': 'Encerrar fusão',
|
|
'vacay.dissolveHint': 'Separar os calendários novamente. Suas entradas serão mantidas.',
|
|
'vacay.dissolveAction': 'Encerrar',
|
|
'vacay.dissolved': 'Calendário separado',
|
|
'vacay.fusedWith': 'Fundido com',
|
|
'vacay.you': 'você',
|
|
'vacay.noData': 'Sem dados',
|
|
'vacay.changeColor': 'Alterar cor',
|
|
'vacay.inviteUser': 'Convidar usuário',
|
|
'vacay.inviteHint': 'Convide outro usuário TREK para compartilhar um calendário de férias combinado.',
|
|
'vacay.selectUser': 'Selecionar usuário',
|
|
'vacay.sendInvite': 'Enviar convite',
|
|
'vacay.inviteSent': 'Convite enviado',
|
|
'vacay.inviteError': 'Não foi possível enviar o convite',
|
|
'vacay.pending': 'pendente',
|
|
'vacay.noUsersAvailable': 'Nenhum usuário disponível',
|
|
'vacay.accept': 'Aceitar',
|
|
'vacay.decline': 'Recusar',
|
|
'vacay.acceptFusion': 'Aceitar e fundir',
|
|
'vacay.inviteTitle': 'Pedido de fusão',
|
|
'vacay.inviteWantsToFuse': 'quer compartilhar um calendário de férias com você.',
|
|
'vacay.fuseInfo1': 'Ambos verão todas as entradas de férias em um calendário compartilhado.',
|
|
'vacay.fuseInfo2': 'Ambos podem criar e editar entradas um do outro.',
|
|
'vacay.fuseInfo3': 'Ambos podem excluir entradas e alterar direitos de férias.',
|
|
'vacay.fuseInfo4': 'Configurações como feriados nacionais e da empresa são compartilhadas.',
|
|
'vacay.fuseInfo5': 'A fusão pode ser encerrada a qualquer momento por qualquer parte. Suas entradas serão preservadas.',
|
|
'nav.myTrips': 'Minhas viagens',
|
|
|
|
// Atlas addon
|
|
'atlas.subtitle': 'Sua pegada de viagens pelo mundo',
|
|
'atlas.countries': 'Países',
|
|
'atlas.trips': 'Viagens',
|
|
'atlas.places': 'Lugares',
|
|
'atlas.unmark': 'Remover',
|
|
'atlas.confirmMark': 'Marcar este país como visitado?',
|
|
'atlas.confirmUnmark': 'Remover este país da lista de visitados?',
|
|
'atlas.markVisited': 'Marcar como visitado',
|
|
'atlas.markVisitedHint': 'Adicionar este país à lista de visitados',
|
|
'atlas.addToBucket': 'Adicionar à lista de desejos',
|
|
'atlas.addToBucketHint': 'Salvar como lugar que você quer visitar',
|
|
'atlas.bucketWhen': 'Quando pretende visitar?',
|
|
'atlas.statsTab': 'Estatísticas',
|
|
'atlas.bucketTab': 'Lista de desejos',
|
|
'atlas.addBucket': 'Adicionar à lista de desejos',
|
|
'atlas.bucketNamePlaceholder': 'Lugar ou destino...',
|
|
'atlas.bucketNotesPlaceholder': 'Notas (opcional)',
|
|
'atlas.bucketEmpty': 'Sua lista de desejos está vazia',
|
|
'atlas.bucketEmptyHint': 'Adicione lugares que sonha em visitar',
|
|
'atlas.days': 'Dias',
|
|
'atlas.visitedCountries': 'Países visitados',
|
|
'atlas.cities': 'Cidades',
|
|
'atlas.noData': 'Ainda sem dados de viagem',
|
|
'atlas.noDataHint': 'Crie uma viagem e adicione lugares para ver o mapa mundial',
|
|
'atlas.lastTrip': 'Última viagem',
|
|
'atlas.nextTrip': 'Próxima viagem',
|
|
'atlas.daysLeft': 'dias restantes',
|
|
'atlas.streak': 'Sequência',
|
|
'atlas.year': 'ano',
|
|
'atlas.years': 'anos',
|
|
'atlas.yearInRow': 'ano seguido',
|
|
'atlas.yearsInRow': 'anos seguidos',
|
|
'atlas.tripIn': 'viagem em',
|
|
'atlas.tripsIn': 'viagens em',
|
|
'atlas.since': 'desde',
|
|
'atlas.europe': 'Europa',
|
|
'atlas.asia': 'Ásia',
|
|
'atlas.northAmerica': 'América do Norte',
|
|
'atlas.southAmerica': 'América do Sul',
|
|
'atlas.africa': 'África',
|
|
'atlas.oceania': 'Oceania',
|
|
'atlas.other': 'Outro',
|
|
'atlas.firstVisit': 'Primeira viagem',
|
|
'atlas.lastVisitLabel': 'Última viagem',
|
|
'atlas.tripSingular': 'Viagem',
|
|
'atlas.tripPlural': 'Viagens',
|
|
'atlas.placeVisited': 'Lugar visitado',
|
|
'atlas.placesVisited': 'Lugares visitados',
|
|
|
|
// Trip Planner
|
|
'trip.tabs.plan': 'Plano',
|
|
'trip.tabs.reservations': 'Reservas',
|
|
'trip.tabs.reservationsShort': 'Reservas',
|
|
'trip.tabs.packing': 'Lista de mala',
|
|
'trip.tabs.packingShort': 'Mala',
|
|
'trip.tabs.budget': 'Orçamento',
|
|
'trip.tabs.files': 'Arquivos',
|
|
'trip.loading': 'Carregando viagem...',
|
|
'trip.mobilePlan': 'Plano',
|
|
'trip.mobilePlaces': 'Lugares',
|
|
'trip.toast.placeUpdated': 'Lugar atualizado',
|
|
'trip.toast.placeAdded': 'Lugar adicionado',
|
|
'trip.toast.placeDeleted': 'Lugar excluído',
|
|
'trip.toast.selectDay': 'Selecione um dia primeiro',
|
|
'trip.toast.assignedToDay': 'Lugar atribuído ao dia',
|
|
'trip.toast.reorderError': 'Falha ao reordenar',
|
|
'trip.toast.reservationUpdated': 'Reserva atualizada',
|
|
'trip.toast.reservationAdded': 'Reserva adicionada',
|
|
'trip.toast.deleted': 'Excluído',
|
|
'trip.confirm.deletePlace': 'Tem certeza de que deseja excluir este lugar?',
|
|
|
|
// Day Plan Sidebar
|
|
'dayplan.emptyDay': 'Nenhum lugar planejado para este dia',
|
|
'dayplan.addNote': 'Adicionar nota',
|
|
'dayplan.editNote': 'Editar nota',
|
|
'dayplan.noteAdd': 'Adicionar nota',
|
|
'dayplan.noteEdit': 'Editar nota',
|
|
'dayplan.noteTitle': 'Nota',
|
|
'dayplan.noteSubtitle': 'Nota do dia',
|
|
'dayplan.totalCost': 'Custo total',
|
|
'dayplan.days': 'Dias',
|
|
'dayplan.dayN': 'Dia {n}',
|
|
'dayplan.calculating': 'Calculando...',
|
|
'dayplan.route': 'Rota',
|
|
'dayplan.optimize': 'Otimizar',
|
|
'dayplan.optimized': 'Rota otimizada',
|
|
'dayplan.routeError': 'Falha ao calcular a rota',
|
|
'dayplan.toast.needTwoPlaces': 'São necessários pelo menos dois lugares para otimizar a rota',
|
|
'dayplan.toast.routeOptimized': 'Rota otimizada',
|
|
'dayplan.toast.noGeoPlaces': 'Nenhum lugar com coordenadas para calcular a rota',
|
|
'dayplan.confirmed': 'Confirmada',
|
|
'dayplan.pendingRes': 'Pendente',
|
|
'dayplan.pdf': 'PDF',
|
|
'dayplan.pdfTooltip': 'Exportar plano do dia em PDF',
|
|
'dayplan.pdfError': 'Falha ao exportar PDF',
|
|
|
|
// Places Sidebar
|
|
'places.addPlace': 'Adicionar lugar/atividade',
|
|
'places.assignToDay': 'Adicionar a qual dia?',
|
|
'places.all': 'Todos',
|
|
'places.unplanned': 'Não planejados',
|
|
'places.search': 'Buscar lugares...',
|
|
'places.allCategories': 'Todas as categorias',
|
|
'places.count': '{count} lugares',
|
|
'places.countSingular': '1 lugar',
|
|
'places.allPlanned': 'Todos os lugares estão planejados',
|
|
'places.noneFound': 'Nenhum lugar encontrado',
|
|
'places.editPlace': 'Editar lugar',
|
|
'places.formName': 'Nome',
|
|
'places.formNamePlaceholder': 'ex.: Torre Eiffel',
|
|
'places.formDescription': 'Descrição',
|
|
'places.formDescriptionPlaceholder': 'Breve descrição...',
|
|
'places.formAddress': 'Endereço',
|
|
'places.formAddressPlaceholder': 'Rua, cidade, país',
|
|
'places.formLat': 'Latitude (ex.: -23.5505)',
|
|
'places.formLng': 'Longitude (ex.: -46.6333)',
|
|
'places.formCategory': 'Categoria',
|
|
'places.noCategory': 'Sem categoria',
|
|
'places.categoryNamePlaceholder': 'Nome da categoria',
|
|
'places.formTime': 'Horário',
|
|
'places.startTime': 'Início',
|
|
'places.endTime': 'Fim',
|
|
'places.endTimeBeforeStart': 'O horário de fim é antes do início',
|
|
'places.timeCollision': 'Sobreposição de horário com:',
|
|
'places.formWebsite': 'Site',
|
|
'places.formNotesPlaceholder': 'Notas pessoais...',
|
|
'places.formReservation': 'Reserva',
|
|
'places.reservationNotesPlaceholder': 'Notas da reserva, código de confirmação...',
|
|
'places.mapsSearchPlaceholder': 'Buscar lugares...',
|
|
'places.mapsSearchError': 'Falha na busca de lugares.',
|
|
'places.osmHint': 'Busca via OpenStreetMap (sem fotos, horários ou avaliações). Adicione uma chave Google nas configurações para detalhes completos.',
|
|
'places.osmActive': 'Busca via OpenStreetMap (sem fotos, avaliações ou horário de funcionamento). Adicione uma chave Google em Configurações para mais dados.',
|
|
'places.categoryCreateError': 'Falha ao criar categoria',
|
|
'places.nameRequired': 'Digite um nome',
|
|
'places.saveError': 'Falha ao salvar',
|
|
// Place Inspector
|
|
'inspector.opened': 'Aberto',
|
|
'inspector.closed': 'Fechado',
|
|
'inspector.openingHours': 'Horário de funcionamento',
|
|
'inspector.showHours': 'Mostrar horário de funcionamento',
|
|
'inspector.files': 'Arquivos',
|
|
'inspector.filesCount': '{count} arquivos',
|
|
'inspector.removeFromDay': 'Remover do dia',
|
|
'inspector.addToDay': 'Adicionar ao dia',
|
|
'inspector.confirmedRes': 'Reserva confirmada',
|
|
'inspector.pendingRes': 'Reserva pendente',
|
|
'inspector.google': 'Abrir no Google Maps',
|
|
'inspector.website': 'Abrir site',
|
|
'inspector.addRes': 'Reserva',
|
|
'inspector.editRes': 'Editar reserva',
|
|
'inspector.participants': 'Participantes',
|
|
|
|
// Reservations
|
|
'reservations.title': 'Reservas',
|
|
'reservations.empty': 'Nenhuma reserva ainda',
|
|
'reservations.emptyHint': 'Adicione reservas de voos, hotéis e mais',
|
|
'reservations.add': 'Adicionar reserva',
|
|
'reservations.addManual': 'Reserva manual',
|
|
'reservations.placeHint': 'Dica: o ideal é criar reservas a partir de um lugar para vinculá-las ao plano do dia.',
|
|
'reservations.confirmed': 'Confirmada',
|
|
'reservations.pending': 'Pendente',
|
|
'reservations.summary': '{confirmed} confirmada(s), {pending} pendente(s)',
|
|
'reservations.fromPlan': 'Do plano',
|
|
'reservations.showFiles': 'Mostrar arquivos',
|
|
'reservations.editTitle': 'Editar reserva',
|
|
'reservations.status': 'Status',
|
|
'reservations.datetime': 'Data e hora',
|
|
'reservations.startTime': 'Horário de início',
|
|
'reservations.endTime': 'Horário de término',
|
|
'reservations.date': 'Data',
|
|
'reservations.time': 'Hora',
|
|
'reservations.timeAlt': 'Hora (alternativa, ex.: 19:30)',
|
|
'reservations.notes': 'Notas',
|
|
'reservations.notesPlaceholder': 'Notas adicionais...',
|
|
'reservations.meta.airline': 'Companhia aérea',
|
|
'reservations.meta.flightNumber': 'Nº do voo',
|
|
'reservations.meta.from': 'De',
|
|
'reservations.meta.to': 'Para',
|
|
'reservations.meta.trainNumber': 'Nº do trem',
|
|
'reservations.meta.platform': 'Plataforma',
|
|
'reservations.meta.seat': 'Assento',
|
|
'reservations.meta.checkIn': 'Check-in',
|
|
'reservations.meta.checkOut': 'Check-out',
|
|
'reservations.meta.linkAccommodation': 'Hospedagem',
|
|
'reservations.meta.pickAccommodation': 'Vincular à hospedagem',
|
|
'reservations.meta.noAccommodation': 'Nenhuma',
|
|
'reservations.meta.hotelPlace': 'Hospedagem',
|
|
'reservations.meta.pickHotel': 'Selecionar hospedagem',
|
|
'reservations.meta.fromDay': 'De',
|
|
'reservations.meta.toDay': 'Até',
|
|
'reservations.meta.selectDay': 'Selecionar dia',
|
|
'reservations.type.flight': 'Voo',
|
|
'reservations.type.hotel': 'Hospedagem',
|
|
'reservations.type.restaurant': 'Restaurante',
|
|
'reservations.type.train': 'Trem',
|
|
'reservations.type.car': 'Carro alugado',
|
|
'reservations.type.cruise': 'Cruzeiro',
|
|
'reservations.type.event': 'Evento',
|
|
'reservations.type.tour': 'Passeio',
|
|
'reservations.type.other': 'Outro',
|
|
'reservations.confirm.delete': 'Tem certeza de que deseja excluir a reserva "{name}"?',
|
|
'reservations.toast.updated': 'Reserva atualizada',
|
|
'reservations.toast.removed': 'Reserva excluída',
|
|
'reservations.toast.fileUploaded': 'Arquivo enviado',
|
|
'reservations.toast.uploadError': 'Falha no envio',
|
|
'reservations.newTitle': 'Nova reserva',
|
|
'reservations.bookingType': 'Tipo de reserva',
|
|
'reservations.titleLabel': 'Título',
|
|
'reservations.titlePlaceholder': 'ex.: LATAM LA800, Hotel Copacabana...',
|
|
'reservations.locationAddress': 'Local / endereço',
|
|
'reservations.locationPlaceholder': 'Endereço, aeroporto, hotel...',
|
|
'reservations.confirmationCode': 'Código da reserva',
|
|
'reservations.confirmationPlaceholder': 'ex.: ABC12345',
|
|
'reservations.day': 'Dia',
|
|
'reservations.noDay': 'Sem dia',
|
|
'reservations.place': 'Lugar',
|
|
'reservations.noPlace': 'Sem lugar',
|
|
'reservations.pendingSave': 'será salvo…',
|
|
'reservations.uploading': 'Enviando...',
|
|
'reservations.attachFile': 'Anexar arquivo',
|
|
'reservations.linkExisting': 'Vincular arquivo existente',
|
|
'reservations.toast.saveError': 'Falha ao salvar',
|
|
'reservations.toast.updateError': 'Falha ao atualizar',
|
|
'reservations.toast.deleteError': 'Falha ao excluir',
|
|
'reservations.confirm.remove': 'Remover a reserva "{name}"?',
|
|
'reservations.linkAssignment': 'Vincular à atribuição do dia',
|
|
'reservations.pickAssignment': 'Selecione uma atribuição do seu plano...',
|
|
'reservations.noAssignment': 'Sem vínculo (avulsa)',
|
|
|
|
// Budget
|
|
'budget.title': 'Orçamento',
|
|
'budget.emptyTitle': 'Nenhum orçamento criado ainda',
|
|
'budget.emptyText': 'Crie categorias e lançamentos para planejar o orçamento da viagem',
|
|
'budget.emptyPlaceholder': 'Nome da categoria...',
|
|
'budget.createCategory': 'Criar categoria',
|
|
'budget.category': 'Categoria',
|
|
'budget.categoryName': 'Nome da categoria',
|
|
'budget.table.name': 'Nome',
|
|
'budget.table.total': 'Total',
|
|
'budget.table.persons': 'Pessoas',
|
|
'budget.table.days': 'Dias',
|
|
'budget.table.perPerson': 'Por pessoa',
|
|
'budget.table.perDay': 'Por dia',
|
|
'budget.table.perPersonDay': 'P. p. / dia',
|
|
'budget.table.note': 'Obs.',
|
|
'budget.newEntry': 'Novo lançamento',
|
|
'budget.defaultEntry': 'Novo lançamento',
|
|
'budget.defaultCategory': 'Nova categoria',
|
|
'budget.total': 'Total',
|
|
'budget.totalBudget': 'Orçamento total',
|
|
'budget.byCategory': 'Por categoria',
|
|
'budget.editTooltip': 'Clique para editar',
|
|
'budget.confirm.deleteCategory': 'Excluir a categoria "{name}" com {count} lançamento(s)?',
|
|
'budget.deleteCategory': 'Excluir categoria',
|
|
'budget.perPerson': 'Por pessoa',
|
|
'budget.paid': 'Pago',
|
|
'budget.open': 'Em aberto',
|
|
'budget.noMembers': 'Nenhum membro atribuído',
|
|
|
|
// Files
|
|
'files.title': 'Arquivos',
|
|
'files.count': '{count} arquivos',
|
|
'files.countSingular': '1 arquivo',
|
|
'files.uploaded': '{count} enviado(s)',
|
|
'files.uploadError': 'Falha no envio',
|
|
'files.dropzone': 'Solte os arquivos aqui',
|
|
'files.dropzoneHint': 'ou clique para escolher',
|
|
'files.allowedTypes': 'Imagens, PDF, DOC, DOCX, XLS, XLSX, TXT, CSV · Máx. 50 MB',
|
|
'files.uploading': 'Enviando...',
|
|
'files.filterAll': 'Todos',
|
|
'files.filterPdf': 'PDFs',
|
|
'files.filterImages': 'Imagens',
|
|
'files.filterDocs': 'Documentos',
|
|
'files.filterCollab': 'Notas Colab',
|
|
'files.sourceCollab': 'Das notas Colab',
|
|
'files.empty': 'Nenhum arquivo ainda',
|
|
'files.emptyHint': 'Envie arquivos para anexá-los à viagem',
|
|
'files.openTab': 'Abrir em nova aba',
|
|
'files.confirm.delete': 'Excluir este arquivo?',
|
|
'files.toast.deleted': 'Arquivo excluído',
|
|
'files.toast.deleteError': 'Falha ao excluir arquivo',
|
|
'files.sourcePlan': 'Plano do dia',
|
|
'files.sourceBooking': 'Reserva',
|
|
'files.attach': 'Anexar',
|
|
'files.pasteHint': 'Você também pode colar imagens da área de transferência (Ctrl+V)',
|
|
'files.trash': 'Lixeira',
|
|
'files.trashEmpty': 'A lixeira está vazia',
|
|
'files.emptyTrash': 'Esvaziar lixeira',
|
|
'files.restore': 'Restaurar',
|
|
'files.star': 'Favoritar',
|
|
'files.unstar': 'Remover favorito',
|
|
'files.assign': 'Atribuir',
|
|
'files.assignTitle': 'Atribuir arquivo',
|
|
'files.assignPlace': 'Lugar',
|
|
'files.assignBooking': 'Reserva',
|
|
'files.unassigned': 'Não atribuído',
|
|
'files.unlink': 'Remover vínculo',
|
|
'files.toast.trashed': 'Movido para a lixeira',
|
|
'files.toast.restored': 'Arquivo restaurado',
|
|
'files.toast.trashEmptied': 'Lixeira esvaziada',
|
|
'files.toast.assigned': 'Arquivo atribuído',
|
|
'files.toast.assignError': 'Falha na atribuição',
|
|
'files.toast.restoreError': 'Falha ao restaurar',
|
|
'files.confirm.permanentDelete': 'Excluir permanentemente este arquivo? Não é possível desfazer.',
|
|
'files.confirm.emptyTrash': 'Excluir permanentemente todos os arquivos na lixeira? Não é possível desfazer.',
|
|
'files.noteLabel': 'Nota',
|
|
'files.notePlaceholder': 'Adicione uma nota...',
|
|
|
|
// Packing
|
|
'packing.title': 'Lista de mala',
|
|
'packing.empty': 'A lista de mala está vazia',
|
|
'packing.progress': '{packed} de {total} na mala ({percent}%)',
|
|
'packing.clearChecked': 'Remover {count} marcado(s)',
|
|
'packing.clearCheckedShort': 'Remover {count}',
|
|
'packing.suggestions': 'Sugestões',
|
|
'packing.suggestionsTitle': 'Adicionar sugestões',
|
|
'packing.allSuggested': 'Todas as sugestões adicionadas',
|
|
'packing.allPacked': 'Tudo na mala!',
|
|
'packing.addPlaceholder': 'Adicionar item...',
|
|
'packing.categoryPlaceholder': 'Categoria...',
|
|
'packing.filterAll': 'Todos',
|
|
'packing.filterOpen': 'Abertos',
|
|
'packing.filterDone': 'Prontos',
|
|
'packing.emptyTitle': 'A lista de mala está vazia',
|
|
'packing.emptyHint': 'Adicione itens ou use as sugestões',
|
|
'packing.emptyFiltered': 'Nenhum item corresponde ao filtro',
|
|
'packing.menuRename': 'Renomear',
|
|
'packing.menuCheckAll': 'Marcar todos',
|
|
'packing.menuUncheckAll': 'Desmarcar todos',
|
|
'packing.menuDeleteCat': 'Excluir categoria',
|
|
'packing.assignUser': 'Atribuir usuário',
|
|
'packing.noMembers': 'Nenhum membro na viagem',
|
|
'packing.addItem': 'Adicionar item',
|
|
'packing.addItemPlaceholder': 'Nome do item...',
|
|
'packing.addCategory': 'Adicionar categoria',
|
|
'packing.newCategoryPlaceholder': 'Nome da categoria (ex.: Roupas)',
|
|
'packing.applyTemplate': 'Aplicar modelo',
|
|
'packing.template': 'Modelo',
|
|
'packing.templateApplied': '{count} itens adicionados do modelo',
|
|
'packing.templateError': 'Falha ao aplicar modelo',
|
|
'packing.bags': 'Malas',
|
|
'packing.noBag': 'Sem mala',
|
|
'packing.totalWeight': 'Peso total',
|
|
'packing.bagName': 'Nome da mala...',
|
|
'packing.addBag': 'Adicionar mala',
|
|
'packing.changeCategory': 'Alterar categoria',
|
|
'packing.confirm.clearChecked': 'Remover {count} item(ns) marcado(s)?',
|
|
'packing.confirm.deleteCat': 'Excluir a categoria "{name}" com {count} item(ns)?',
|
|
'packing.defaultCategory': 'Outros',
|
|
'packing.toast.saveError': 'Falha ao salvar',
|
|
'packing.toast.deleteError': 'Falha ao excluir',
|
|
'packing.toast.renameError': 'Falha ao renomear',
|
|
'packing.toast.addError': 'Falha ao adicionar',
|
|
|
|
// Packing suggestions
|
|
'packing.suggestions.items': [
|
|
{ name: 'Passaporte', category: 'Documentos' },
|
|
{ name: 'Documento de identidade', category: 'Documentos' },
|
|
{ name: 'Seguro viagem', category: 'Documentos' },
|
|
{ name: 'Passagens aéreas', category: 'Documentos' },
|
|
{ name: 'Cartão de crédito', category: 'Finanças' },
|
|
{ name: 'Dinheiro', category: 'Finanças' },
|
|
{ name: 'Visto', category: 'Documentos' },
|
|
{ name: 'Camisetas', category: 'Roupas' },
|
|
{ name: 'Calças', category: 'Roupas' },
|
|
{ name: 'Roupa íntima', category: 'Roupas' },
|
|
{ name: 'Meias', category: 'Roupas' },
|
|
{ name: 'Jaqueta', category: 'Roupas' },
|
|
{ name: 'Pijama', category: 'Roupas' },
|
|
{ name: 'Traje de banho', category: 'Roupas' },
|
|
{ name: 'Capa de chuva', category: 'Roupas' },
|
|
{ name: 'Sapatos confortáveis', category: 'Roupas' },
|
|
{ name: 'Escova de dentes', category: 'Higiene' },
|
|
{ name: 'Creme dental', category: 'Higiene' },
|
|
{ name: 'Shampoo', category: 'Higiene' },
|
|
{ name: 'Desodorante', category: 'Higiene' },
|
|
{ name: 'Protetor solar', category: 'Higiene' },
|
|
{ name: 'Aparelho de barbear', category: 'Higiene' },
|
|
{ name: 'Carregador', category: 'Eletrônicos' },
|
|
{ name: 'Power bank', category: 'Eletrônicos' },
|
|
{ name: 'Fones de ouvido', category: 'Eletrônicos' },
|
|
{ name: 'Adaptador de viagem', category: 'Eletrônicos' },
|
|
{ name: 'Câmera', category: 'Eletrônicos' },
|
|
{ name: 'Medicamento para dor', category: 'Saúde' },
|
|
{ name: 'Curativos', category: 'Saúde' },
|
|
{ name: 'Desinfetante', category: 'Saúde' },
|
|
],
|
|
|
|
// Members / Sharing
|
|
'members.shareTrip': 'Compartilhar viagem',
|
|
'members.inviteUser': 'Convidar usuário',
|
|
'members.selectUser': 'Selecionar usuário…',
|
|
'members.invite': 'Convidar',
|
|
'members.allHaveAccess': 'Todos os usuários já têm acesso.',
|
|
'members.access': 'Acesso',
|
|
'members.person': 'pessoa',
|
|
'members.persons': 'pessoas',
|
|
'members.you': 'você',
|
|
'members.owner': 'Proprietário',
|
|
'members.leaveTrip': 'Sair da viagem',
|
|
'members.removeAccess': 'Remover acesso',
|
|
'members.confirmLeave': 'Sair da viagem? Você perderá o acesso.',
|
|
'members.confirmRemove': 'Remover o acesso deste usuário?',
|
|
'members.loadError': 'Falha ao carregar membros',
|
|
'members.added': 'adicionado',
|
|
'members.addError': 'Falha ao adicionar',
|
|
'members.removed': 'Membro removido',
|
|
'members.removeError': 'Falha ao remover',
|
|
|
|
// Categories (Admin)
|
|
'categories.title': 'Categorias',
|
|
'categories.subtitle': 'Gerenciar categorias de lugares',
|
|
'categories.new': 'Nova categoria',
|
|
'categories.empty': 'Nenhuma categoria ainda',
|
|
'categories.namePlaceholder': 'Nome da categoria',
|
|
'categories.icon': 'Ícone',
|
|
'categories.color': 'Cor',
|
|
'categories.customColor': 'Escolher cor personalizada',
|
|
'categories.preview': 'Pré-visualização',
|
|
'categories.defaultName': 'Categoria',
|
|
'categories.update': 'Atualizar',
|
|
'categories.create': 'Criar',
|
|
'categories.confirm.delete': 'Excluir categoria? Os lugares desta categoria não serão excluídos.',
|
|
'categories.toast.loadError': 'Falha ao carregar categorias',
|
|
'categories.toast.nameRequired': 'Digite um nome',
|
|
'categories.toast.updated': 'Categoria atualizada',
|
|
'categories.toast.created': 'Categoria criada',
|
|
'categories.toast.saveError': 'Falha ao salvar',
|
|
'categories.toast.deleted': 'Categoria excluída',
|
|
'categories.toast.deleteError': 'Falha ao excluir',
|
|
|
|
// Backup (Admin)
|
|
'backup.title': 'Backup de dados',
|
|
'backup.subtitle': 'Banco de dados e todos os arquivos enviados',
|
|
'backup.refresh': 'Atualizar',
|
|
'backup.upload': 'Enviar backup',
|
|
'backup.uploading': 'Enviando…',
|
|
'backup.create': 'Criar backup',
|
|
'backup.creating': 'Criando…',
|
|
'backup.empty': 'Nenhum backup ainda',
|
|
'backup.createFirst': 'Criar primeiro backup',
|
|
'backup.download': 'Baixar',
|
|
'backup.restore': 'Restaurar',
|
|
'backup.confirm.restore': 'Restaurar o backup "{name}"?\n\nTodos os dados atuais serão substituídos pelo backup.',
|
|
'backup.confirm.uploadRestore': 'Enviar e restaurar o arquivo "{name}"?\n\nTodos os dados atuais serão sobrescritos.',
|
|
'backup.confirm.delete': 'Excluir o backup "{name}"?',
|
|
'backup.toast.loadError': 'Falha ao carregar backups',
|
|
'backup.toast.created': 'Backup criado com sucesso',
|
|
'backup.toast.createError': 'Falha ao criar backup',
|
|
'backup.toast.restored': 'Backup restaurado. A página será recarregada…',
|
|
'backup.toast.restoreError': 'Falha ao restaurar',
|
|
'backup.toast.uploadError': 'Falha no envio',
|
|
'backup.toast.deleted': 'Backup excluído',
|
|
'backup.toast.deleteError': 'Falha ao excluir',
|
|
'backup.toast.downloadError': 'Falha no download',
|
|
'backup.toast.settingsSaved': 'Configurações de backup automático salvas',
|
|
'backup.toast.settingsError': 'Falha ao salvar configurações',
|
|
'backup.auto.title': 'Backup automático',
|
|
'backup.auto.subtitle': 'Backup automático em agenda',
|
|
'backup.auto.enable': 'Ativar backup automático',
|
|
'backup.auto.enableHint': 'Backups serão criados automaticamente conforme a agenda escolhida',
|
|
'backup.auto.interval': 'Intervalo',
|
|
'backup.auto.keepLabel': 'Excluir backups antigos após',
|
|
'backup.interval.hourly': 'A cada hora',
|
|
'backup.interval.daily': 'Diário',
|
|
'backup.interval.weekly': 'Semanal',
|
|
'backup.interval.monthly': 'Mensal',
|
|
'backup.keep.1day': '1 dia',
|
|
'backup.keep.3days': '3 dias',
|
|
'backup.keep.7days': '7 dias',
|
|
'backup.keep.14days': '14 dias',
|
|
'backup.keep.30days': '30 dias',
|
|
'backup.keep.forever': 'Manter para sempre',
|
|
|
|
// Photos
|
|
'photos.allDays': 'Todos os dias',
|
|
'photos.noPhotos': 'Nenhuma foto ainda',
|
|
'photos.uploadHint': 'Envie suas fotos de viagem',
|
|
'photos.clickToSelect': 'ou clique para selecionar',
|
|
'photos.linkPlace': 'Vincular lugar',
|
|
'photos.noPlace': 'Sem lugar',
|
|
'photos.uploadN': 'Enviar {n} foto(s)',
|
|
|
|
// Backup restore modal
|
|
'backup.restoreConfirmTitle': 'Restaurar backup?',
|
|
'backup.restoreWarning': 'Todos os dados atuais (viagens, lugares, usuários, envios) serão permanentemente substituídos pelo backup. Esta ação não pode ser desfeita.',
|
|
'backup.restoreTip': 'Dica: crie um backup do estado atual antes de restaurar.',
|
|
'backup.restoreConfirm': 'Sim, restaurar',
|
|
|
|
// PDF
|
|
'pdf.travelPlan': 'Plano de viagem',
|
|
'pdf.planned': 'Planejado',
|
|
'pdf.costLabel': 'Custo (EUR)',
|
|
'pdf.preview': 'Pré-visualização do PDF',
|
|
'pdf.saveAsPdf': 'Salvar como PDF',
|
|
|
|
// Planner
|
|
'planner.places': 'Lugares',
|
|
'planner.bookings': 'Reservas',
|
|
'planner.packingList': 'Lista de mala',
|
|
'planner.documents': 'Documentos',
|
|
'planner.dayPlan': 'Plano do dia',
|
|
'planner.reservations': 'Reservas',
|
|
'planner.minTwoPlaces': 'São necessários pelo menos 2 lugares com coordenadas',
|
|
'planner.noGeoPlaces': 'Nenhum lugar com coordenadas disponível',
|
|
'planner.routeCalculated': 'Rota calculada',
|
|
'planner.routeCalcFailed': 'Não foi possível calcular a rota',
|
|
'planner.routeError': 'Erro ao calcular a rota',
|
|
'planner.routeOptimized': 'Rota otimizada',
|
|
'planner.reservationUpdated': 'Reserva atualizada',
|
|
'planner.reservationAdded': 'Reserva adicionada',
|
|
'planner.confirmDeleteReservation': 'Excluir reserva?',
|
|
'planner.reservationDeleted': 'Reserva excluída',
|
|
'planner.days': 'Dias',
|
|
'planner.allPlaces': 'Todos os lugares',
|
|
'planner.totalPlaces': '{n} lugares no total',
|
|
'planner.noDaysPlanned': 'Nenhum dia planejado ainda',
|
|
'planner.editTrip': 'Editar viagem \u2192',
|
|
'planner.placeOne': '1 lugar',
|
|
'planner.placeN': '{n} lugares',
|
|
'planner.addNote': 'Adicionar nota',
|
|
'planner.noEntries': 'Nenhuma entrada neste dia',
|
|
'planner.addPlace': 'Adicionar lugar/atividade',
|
|
'planner.addPlaceShort': '+ Adicionar lugar/atividade',
|
|
'planner.resPending': 'Reserva pendente · ',
|
|
'planner.resConfirmed': 'Reserva confirmada · ',
|
|
'planner.notePlaceholder': 'Nota\u2026',
|
|
'planner.noteTimePlaceholder': 'Horário (opcional)',
|
|
'planner.noteExamplePlaceholder': 'ex.: metrô às 14:30 da estação central, barco do cais 7, pausa para almoço\u2026',
|
|
'planner.totalCost': 'Custo total',
|
|
'planner.searchPlaces': 'Buscar lugares\u2026',
|
|
'planner.allCategories': 'Todas as categorias',
|
|
'planner.noPlacesFound': 'Nenhum lugar encontrado',
|
|
'planner.addFirstPlace': 'Adicionar primeiro lugar',
|
|
'planner.noReservations': 'Nenhuma reserva',
|
|
'planner.addFirstReservation': 'Adicionar primeira reserva',
|
|
'planner.new': 'Novo',
|
|
'planner.addToDay': '+ Dia',
|
|
'planner.calculating': 'Calculando\u2026',
|
|
'planner.route': 'Rota',
|
|
'planner.optimize': 'Otimizar',
|
|
'planner.openGoogleMaps': 'Abrir no Google Maps',
|
|
'planner.selectDayHint': 'Selecione um dia na lista à esquerda para ver o plano do dia',
|
|
'planner.noPlacesForDay': 'Nenhum lugar neste dia ainda',
|
|
'planner.addPlacesLink': 'Adicionar lugares \u2192',
|
|
'planner.minTotal': 'mín. total',
|
|
'planner.noReservation': 'Sem reserva',
|
|
'planner.removeFromDay': 'Remover do dia',
|
|
'planner.addToThisDay': 'Adicionar ao dia',
|
|
'planner.overview': 'Visão geral',
|
|
'planner.noDays': 'Nenhum dia ainda',
|
|
'planner.editTripToAddDays': 'Edite a viagem para adicionar dias',
|
|
'planner.dayCount': '{n} dias',
|
|
'planner.clickToUnlock': 'Clique para desbloquear',
|
|
'planner.keepPosition': 'Manter posição durante a otimização da rota',
|
|
'planner.dayDetails': 'Detalhes do dia',
|
|
'planner.dayN': 'Dia {n}',
|
|
|
|
// Dashboard Stats
|
|
'stats.countries': 'Países',
|
|
'stats.cities': 'Cidades',
|
|
'stats.trips': 'Viagens',
|
|
'stats.places': 'Lugares',
|
|
'stats.worldProgress': 'Progresso no mundo',
|
|
'stats.visited': 'visitados',
|
|
'stats.remaining': 'restantes',
|
|
'stats.visitedCountries': 'Países visitados',
|
|
|
|
// Day Detail Panel
|
|
'day.precipProb': 'Probabilidade de chuva',
|
|
'day.precipitation': 'Precipitação',
|
|
'day.wind': 'Vento',
|
|
'day.sunrise': 'Nascer do sol',
|
|
'day.sunset': 'Pôr do sol',
|
|
'day.hourlyForecast': 'Previsão por hora',
|
|
'day.climateHint': 'Médias históricas — previsão real disponível até 16 dias desta data.',
|
|
'day.noWeather': 'Sem dados meteorológicos. Adicione um lugar com coordenadas.',
|
|
'day.overview': 'Resumo do dia',
|
|
'day.accommodation': 'Hospedagem',
|
|
'day.addAccommodation': 'Adicionar hospedagem',
|
|
'day.hotelDayRange': 'Aplicar aos dias',
|
|
'day.noPlacesForHotel': 'Adicione lugares à viagem primeiro',
|
|
'day.allDays': 'Todos',
|
|
'day.checkIn': 'Check-in',
|
|
'day.checkOut': 'Check-out',
|
|
'day.confirmation': 'Confirmação',
|
|
'day.editAccommodation': 'Editar hospedagem',
|
|
'day.reservations': 'Reservas',
|
|
|
|
// Collab Addon
|
|
'collab.tabs.chat': 'Chat',
|
|
'collab.tabs.notes': 'Notas',
|
|
'collab.tabs.polls': 'Enquetes',
|
|
'collab.whatsNext.title': 'Próximos passos',
|
|
'collab.whatsNext.today': 'Hoje',
|
|
'collab.whatsNext.tomorrow': 'Amanhã',
|
|
'collab.whatsNext.empty': 'Nenhuma atividade próxima',
|
|
'collab.whatsNext.until': 'até',
|
|
'collab.whatsNext.emptyHint': 'Atividades com horário aparecerão aqui',
|
|
'collab.chat.send': 'Enviar',
|
|
'collab.chat.placeholder': 'Digite uma mensagem...',
|
|
'collab.chat.empty': 'Inicie a conversa',
|
|
'collab.chat.emptyHint': 'As mensagens são compartilhadas com todos os membros da viagem',
|
|
'collab.chat.emptyDesc': 'Compartilhe ideias, planos e atualizações com o grupo',
|
|
'collab.chat.today': 'Hoje',
|
|
'collab.chat.yesterday': 'Ontem',
|
|
'collab.chat.deletedMessage': 'apagou uma mensagem',
|
|
'collab.chat.loadMore': 'Carregar mensagens antigas',
|
|
'collab.chat.justNow': 'agora mesmo',
|
|
'collab.chat.minutesAgo': 'há {n} min',
|
|
'collab.chat.hoursAgo': 'há {n} h',
|
|
'collab.notes.title': 'Notas',
|
|
'collab.notes.new': 'Nova nota',
|
|
'collab.notes.empty': 'Nenhuma nota ainda',
|
|
'collab.notes.emptyHint': 'Comece a registrar ideias e planos',
|
|
'collab.notes.all': 'Todas',
|
|
'collab.notes.titlePlaceholder': 'Título da nota',
|
|
'collab.notes.contentPlaceholder': 'Escreva algo...',
|
|
'collab.notes.categoryPlaceholder': 'Categoria',
|
|
'collab.notes.newCategory': 'Nova categoria...',
|
|
'collab.notes.category': 'Categoria',
|
|
'collab.notes.noCategory': 'Sem categoria',
|
|
'collab.notes.color': 'Cor',
|
|
'collab.notes.save': 'Salvar',
|
|
'collab.notes.cancel': 'Cancelar',
|
|
'collab.notes.edit': 'Editar',
|
|
'collab.notes.delete': 'Excluir',
|
|
'collab.notes.pin': 'Fixar',
|
|
'collab.notes.unpin': 'Desafixar',
|
|
'collab.notes.daysAgo': 'há {n} d',
|
|
'collab.notes.categorySettings': 'Gerenciar categorias',
|
|
'collab.notes.create': 'Criar',
|
|
'collab.notes.website': 'Site',
|
|
'collab.notes.websitePlaceholder': 'https://...',
|
|
'collab.notes.attachFiles': 'Anexar arquivos',
|
|
'collab.notes.noCategoriesYet': 'Nenhuma categoria ainda',
|
|
'collab.notes.emptyDesc': 'Crie uma nota para começar',
|
|
'collab.polls.title': 'Enquetes',
|
|
'collab.polls.new': 'Nova enquete',
|
|
'collab.polls.empty': 'Nenhuma enquete ainda',
|
|
'collab.polls.emptyHint': 'Pergunte ao grupo e votem juntos',
|
|
'collab.polls.question': 'Pergunta',
|
|
'collab.polls.questionPlaceholder': 'O que vamos fazer?',
|
|
'collab.polls.addOption': '+ Adicionar opção',
|
|
'collab.polls.optionPlaceholder': 'Opção {n}',
|
|
'collab.polls.create': 'Criar enquete',
|
|
'collab.polls.close': 'Encerrar',
|
|
'collab.polls.closed': 'Encerrada',
|
|
'collab.polls.votes': '{n} votos',
|
|
'collab.polls.vote': '{n} voto',
|
|
'collab.polls.multipleChoice': 'Múltipla escolha',
|
|
'collab.polls.multiChoice': 'Múltipla escolha',
|
|
'collab.polls.deadline': 'Prazo',
|
|
'collab.polls.option': 'Opção',
|
|
'collab.polls.options': 'Opções',
|
|
'collab.polls.delete': 'Excluir',
|
|
'collab.polls.closedSection': 'Encerradas',
|
|
|
|
// Memories (Immich Photos)
|
|
'memories.title': 'Fotos',
|
|
'memories.notConnected': 'Immich não conectado',
|
|
'memories.notConnectedHint': 'Conecte sua instância Immich nas Configurações para ver suas fotos de viagem aqui.',
|
|
'memories.noDates': 'Adicione datas à sua viagem para carregar fotos.',
|
|
'memories.noPhotos': 'Nenhuma foto encontrada',
|
|
'memories.noPhotosHint': 'Nenhuma foto encontrada no Immich para o período desta viagem.',
|
|
'memories.photosFound': 'fotos',
|
|
'memories.fromOthers': 'de outros',
|
|
'memories.sharePhotos': 'Compartilhar fotos',
|
|
'memories.sharing': 'Compartilhando',
|
|
'memories.reviewTitle': 'Revise suas fotos',
|
|
'memories.reviewHint': 'Clique nas fotos para excluí-las do compartilhamento.',
|
|
'memories.shareCount': 'Compartilhar {count} fotos',
|
|
'memories.immichUrl': 'URL do servidor Immich',
|
|
'memories.immichApiKey': 'Chave da API',
|
|
'memories.testConnection': 'Testar conexão',
|
|
'memories.connected': 'Conectado',
|
|
'memories.disconnected': 'Não conectado',
|
|
'memories.connectionSuccess': 'Conectado ao Immich',
|
|
'memories.connectionError': 'Não foi possível conectar ao Immich',
|
|
'memories.saved': 'Configurações do Immich salvas',
|
|
'memories.addPhotos': 'Adicionar fotos',
|
|
'memories.selectPhotos': 'Selecionar fotos do Immich',
|
|
'memories.selectHint': 'Toque nas fotos para selecioná-las.',
|
|
'memories.selected': 'selecionadas',
|
|
'memories.addSelected': 'Adicionar {count} fotos',
|
|
'memories.alreadyAdded': 'Já adicionada',
|
|
'memories.private': 'Privado',
|
|
'memories.stopSharing': 'Parar de compartilhar',
|
|
'memories.oldest': 'Mais antigas',
|
|
'memories.newest': 'Mais recentes',
|
|
'memories.allLocations': 'Todos os locais',
|
|
'memories.tripDates': 'Datas da viagem',
|
|
'memories.allPhotos': 'Todas as fotos',
|
|
'memories.confirmShareTitle': 'Compartilhar com membros da viagem?',
|
|
'memories.confirmShareHint': '{count} fotos serão visíveis para todos os membros desta viagem. Você pode tornar fotos individuais privadas depois.',
|
|
'memories.confirmShareButton': 'Compartilhar fotos',
|
|
}
|
|
|
|
export default br
|