/** * pt — translation drift fragment. Keys added after the main batches * (language picker search, trust, marketplace guidelines, clothing craft, * weather additions, Cordn MLS chat). Composed LAST in `index.ts` via a deep * merge so these nested keys complement — never replace — the batch namespaces. */ const drift = { nav: { searchLanguages: "Buscar idiomas…", noLanguages: "Nenhum idioma encontrado", }, mapPage: { searchSuggestPlaces: "Lugares", }, mapUi: { firstRunTitle: "Comece agora", firstRunAddSpot: "Adicione seu primeiro spot", firstRunJoinCrew: "Entrar em uma crew", firstRunStartCrew: "Comece sua crew", firstRunWallet: "Configure sua carteira", forecastDays: "Previsão de {{count}} dias", }, spotUi: { forecastDays: "Previsão de {{count}} dias", }, marketUi: { trades: { stateRevoked: "revogado", stateVerifying: "verificando", }, loadFailed: "Não foi possível alcançar os relays. Verifique sua conexão e tente novamente.", statusPending: "pendente", offers: { closeDeal: "Fechar negócio", loadFailed: "Não foi possível carregar as ofertas. Verifique sua conexão e tente novamente.", }, pay: { nonSats: "Esta oferta está em {{currency}}. O pagamento no app é apenas em sats. Acerte diretamente com o vendedor.", unsupported: "Este código de pagamento (uma solicitação Cashu) ainda não é suportado. Peça ao vendedor uma fatura ou um endereço Lightning.", }, escrowRequest: { lockedNotSent: "Os fundos estão bloqueados no escrow e salvos neste dispositivo, mas a solicitação não foi enviada. Reabra o anúncio para tentar de novo. Não pague novamente.", mintLabel: "Mint (onde os fundos estão bloqueados)", sellerMintHint: "O vendedor prefere este mint; fundos bloqueados aqui são os mais fáceis de ele resgatar.", mintHint: "O escrow fica neste mint. O vendedor resgata aqui, então escolha um em que vocês dois confiem.", noMints: "Nenhum mint disponível", p2pkUnsupported: "Este mint não anuncia suporte a P2PK (NUT-11), então o escrow não pode ser bloqueado aqui. Escolha outro mint.", }, }, labUi: { offerClothing: "Oferecer roupas", tabClothing: "Roupas", empty: { clothingTitle: "Ainda sem designers de roupas", clothingBody: "Seja o primeiro a oferecer roupas personalizadas, kits de time e apparel para a cena.", }, craftFields: { sizing: "Faixa de tamanhos", samples: "Amostras / protótipos", customization: "Personalização", }, }, socialUi: { coordinator: { ourDefaultTitle: "Coordenador do SkateSpots", ourDefaultDesc: "O SkateSpots mantém um coordenador em relay.skate-spots.org. Use-o por padrão, ou rode o seu — um coordenador só vê texto cifrado e metadados, nunca suas mensagens.", useOurs: "Usar o coordenador do SkateSpots", }, crewCoordinator: { encryptedChat: "Chat criptografado", privateChatName: "Chat privado", privateChatDesc: "Chat de grupo com sigilo persistente (MLS) por meio de um coordenador.", privateChatDescFull: "O chat privado é criado uma vez por um admin, depois os membros entram.", chatRowDesc: "Todos na crew — selado com a chave de cada membro (NIP-17).", openChat: "Abrir", setUpChat: "Configurar", joinChat: "Entrar", checking: "Verificando…", openInAnotherApp: "Abrir em outro app", openInCordnWeb: "Cordn (web)", openCordnGroup: "Abrir o chat da crew", copyForStaircase: "Copiar para o Staircase", }, dms: { refresh: "Atualizar", crews: "Crews", crewFounder: "Fundador", crewMember: "Membro", crewOpen: "Abrir", crewSetUp: "Configurar", }, form: { cordnGroup: "Grupo Cordn", cordnGroupHint: "Opcional: cole o link do grupo do Staircase ou do Cordn web. Sua crew passa a ter um chat MLS real de ponta a ponta, hospedado no nosso coordenador.", }, }, settingsUi: { loginDialog: { welcomeSubtitleBrowse: "Cadastre-se ou entre — ou continue explorando.", extensionCard: "Extensão do navegador", signerCard: "App assinador", secretKeyLink: "Usar uma chave secreta", whereBunker: "Onde consigo um bunker?", }, settingsPage: { trust: "Confiança", trustSub: "Fontes e exibição", }, }, walletUi: { trust: { mute: "Silenciar", muted: "Silenciado", mutedDesc: "Você não verá o conteúdo dela.", muteFailed: "Não foi possível silenciar. Tente novamente.", loginToMute: "Faça login para silenciar.", attributedNetwork: "De pessoas da sua rede", attributedProviderHouse: "Do provedor de confiança da comunidade", attributedProviderCustom: "Do provedor que você escolheu", howItWorks: "Como funciona a confiança", flaggedNoticeTitle: "Sinalizado por skatistas de confiança", flaggedNoticeDesc: "Cuidado. Pessoas de confiança na rede sinalizaram esta conta.", flaggedReporterFollow: "{{count}} que você segue", flaggedReporterNetwork: "{{count}} na sua rede", flaggedReporterOther: "{{count}} outras contas", flaggedReport: "Denunciar", flaggedDismiss: "Dispensar", bucketVerified: "Verificado", bucketUnknown: "Desconhecido", bucketFlagged: "Sinalizado", bucketVerifiedDesc: "Alguém da sua rede atesta por esta conta.", bucketUnknownDesc: "Ninguém da sua rede atestou por esta conta ainda.", bucketFlaggedDesc: "Pessoas de confiança sinalizaram esta conta.", reportedByTrusted: "Sinalizado por {{count}} pessoas de confiança", }, }, trustUi: { alertsTitle: "Alertas de rede", alertsDesc: "Contas que você segue e que pessoas de confiança sinalizaram ou silenciaram.", alertsEmpty: "Nenhum alerta. Verificamos as contas que você segue em busca de denúncias confiáveis.", alertsReported: "Sinalizado por {{count}} pessoas de confiança", alertsMuted: "Silenciado por {{count}} pessoas de confiança", alertsIgnore: "Ignorar", alertsUnfollow: "Deixar de seguir", alertsLogin: "Faça login para ver alertas das contas que você segue.", providerTitle: "Provedor", providerDesc: "As pontuações vêm de um provedor que você escolhe. O provedor da comunidade é o padrão.", useCommunity: "Usar o provedor da comunidade", setProvider: "Definir um provedor", customPubkeyPlaceholder: "npub ou chave pública hex do provedor", customRelayPlaceholder: "wss://relay.exemplo.com", invalidProvider: "Informe um npub válido ou chave pública hex de 64 caracteres, e um relay wss://.", publishFailed: "Não foi possível publicar o provedor. Tente novamente.", providerSaved: "Provedor atualizado.", loggedOutProvider: "Faça login para escolher um provedor.", showMarks: "Mostrar marcas de confiança", showMarksDesc: "Marcas verificadas e desconhecidas. As denúncias sempre aparecem.", sourceLabel: "Fonte", sourceHouse: "Provedor de confiança da comunidade", sourceCustom: "Seu provedor", loggedOut: "Faça login para escolher seu próprio provedor de confiança.", seoTitle: "Como funciona a confiança", seoDescription: "Como o SkateSpots mostra a confiança: três estados, de onde vêm as pontuações e por que a ausência não é desconfiança.", title: "Como funciona a confiança", intro: "Aqui a confiança é um sinal, não um veredito. Ela vem de quem você conhece, ou de um provedor que você escolhe. Não classificamos pessoas globalmente.", statesTitle: "Três estados", verifiedTitle: "Verificado", verifiedDesc: "Alguém da sua rede atesta por esta conta: um amigo de um amigo, ou o provedor que você escolheu.", unknownTitle: "Desconhecido", unknownDesc: "Ninguém atestou ainda. É aqui que toda conta nova começa.", flaggedTitle: "Sinalizado", flaggedDesc: "Pessoas de confiança sinalizaram esta conta. É um aviso para olhar com atenção, não uma prova.", absenceTitle: "Não ter selo não é desconfiança", absenceDesc: "A maioria das contas não mostra nada. Isso significa que ninguém da sua rede atestou ainda, não que algo esteja errado. Nunca leia uma marca ausente como negativa.", sourceTitle: "Quem calcula", sourceDesc: "Por padrão, usamos a sua própria rede. Você também pode escolher um provedor de confiança que publica pontuações assinadas no Nostr (NIP-85), ou desativar a exibição. Denúncias sempre aparecem, porque são um sinal de segurança.", endorsementTitle: "Presença não é endosso", endorsementDesc: "Uma marca verificada significa que alguém atestou, não que a pessoa seja boa. Uma sinalização significa que pessoas de confiança a denunciaram, não que ela seja culpada. Confira os detalhes antes de decidir.", povTitle: "Depende do ponto de vista", povDesc: "Uma pontuação é relativa a quem olha. Um ranking de um provedor ou de uma pessoa não é comparável a outro, e nunca apresentamos um como fato objetivo.", settingsCta: "Gerenciar nas configurações", }, marketTerms: { link: "Diretrizes do Marketplace", seoTitle: "Diretrizes do Marketplace", seoDescription: "Como funcionam os anúncios de equipamentos do SkateSpots: entre pessoas, comprador atento, e as regras.", title: "Diretrizes do Marketplace", intro: "O SkateSpots é um mural de equipamentos entre pessoas. Você negocia direto com a outra pessoa: não retemos fundos, não enviamos itens nem resolvemos disputas.", howTitle: "Como funciona", howBody: "Publique equipamentos, fale com o vendedor por mensagem privada e acerte direto (dinheiro, Lightning ou troca). Não há carrinho nem checkout.", rulesTitle: "O que não é permitido", rulesBody: "Nada de conteúdo ilegal, perigoso ou adulto; nada de drogas, armas, falsificações ou itens roubados. Mantenha os anúncios sobre equipamentos de skate e itens relacionados.", respectTitle: "Seja respeitoso", respectBody: "Nada de abuso, assédio, ameaças ou ódio. Moderadores podem ocultar anúncios ou contas.", trustTitle: "Confiança é um guia, não uma garantia", trustBody: "Marcas de verificação e reputação de trocas são sinais da rede, não promessas. Faça suas próprias verificações antes de negociar.", trustLink: "Como funciona a confiança", privacyLink: "O que sai do seu dispositivo", safetyTitle: "Negocie com segurança", safetyBody: "Encontre-se em local público para as entregas, use escrow ou um depósito de boa-fé em negócios enviados, e nunca envie dinheiro fora do app.", moderationTitle: "A moderação é leve e reversível", moderationBody: "Conteúdo oculto permanece nos relays e pode ser restaurado; disputas entre pessoas são vocês que resolvem.", }, labOptions: { clothing: { service: { tees: "Camisetas", hoodies: "Moletons e blusas", pants: "Calças e shorts", jackets: "Jaquetas e agasalhos", kits: "Kits de time e camisas", caps: "Bonés e gorros", socks: "Meias", accessories: "Bolsas e acessórios", footwear: "Calçados", patches: "Patches e aplicações", griptape: "Vestuário de griptape e shape", onepiece: "Peças únicas / upcycled", }, serviceDesc: { tees: "Camisetas e tops personalizados", hoodies: "Moletons, blusões e calças de moletom", pants: "Calças de trabalho, cargos e shorts", jackets: "Jaquetas de coach, corta-vento e de trabalho", kits: "Kits de time, camisas e uniformes", caps: "Bonés, gorros e chapéus", socks: "Meias de crew e malhas", accessories: "Bolsas, cintos e pequenos itens", footwear: "Calçados personalizados", patches: "Patches bordados e aplicações", griptape: "Arte em griptape e vestuário de shape", onepiece: "Peças únicas e roupas upcycled", }, method: { screenprint: "Serigrafia", dtg: "DTG / impressão direta em tecido", embroidery: "Bordado", cutsew: "Corte e costura", sublimation: "Sublimação", heattransfer: "Transfer térmico / vinil", garmentdye: "Tingimento da peça", knit: "Malharia", patchwork: "Patchwork", allover: "Estampa all-over", }, material: { cotton: "Algodão", heavyweight: "Peso pesado", organic: "Orgânico / sustentável", fleece: "Fleece", denim: "Denim", canvas: "Canvas", nylon: "Nylon / técnico", wool: "Merino / lã", leather: "Couro", recycled: "Reciclado / deadstock", }, }, }, becomeRolesUi: { clothing: { seoTitle: "Seja designer de roupas - SkateSpots", seoDescription: "Roupas personalizadas, kits de time e apparel para a cena.", heading: "Designer de roupas", tagline: "Roupas personalizadas, kits de time e apparel para a cena", noun: "designer de roupas", rateLabel: "Tarifa", portfolioLabel: "Link da loja / portfólio", sectionWhatYouMake: "O que você faz", sectionHowYouMake: "Como você faz", sectionMaterials: "Materiais", minimumPlaceholder: "ex.: 10 peças", turnaroundPlaceholder: "ex.: 2-3 semanas", sizingPlaceholder: "ex.: XS-3XL / sob medida", samplesHelper: "Você oferece amostras ou protótipos antes de uma produção completa?", customizationPlaceholder: "ex.: nomes, números, gráficos", }, }, weatherUi: { updated: "Atualizado", refresh: "Atualizar", unavailable: "Clima indisponível.", retry: "Tentar novamente", sunrise: "Nascer do sol", sunset: "Pôr do sol", legendTitle: "Pontuação do clima", legendWeatherOnly: "Apenas clima", }, cordnUi: { shareInvite: 'Convidar', shareInviteText: 'Entre em {{crew}} — chat privado do crew', inviteCopied: 'Link de convite copiado', title: "Chat privado", subtitle: "Criptografado de ponta a ponta (MLS) entre os membros da crew. O coordenador roteia apenas texto cifrado e metadados — nunca vê o conteúdo das mensagens.", notLoggedIn: "Faça login para usar o chat privado da crew.", membersOnly: "Apenas membros da crew podem abrir o chat privado.", connecting: "Conectando…", noCoordinator: "Nenhum coordenador está configurado para esta crew ainda.", noGroupAdmin: "O chat privado desta crew ainda não foi criado.", noGroupMember: "Você ainda não está no chat privado desta crew.", create: "Criar o chat privado", requestJoin: "Pedir para entrar", checkInvite: "Verificar convite", requested: "Solicitação enviada — um admin da crew vai aprovar.", noInvite: "Nenhum convite aguardando. Peça a um admin para aprovar sua solicitação.", placeholder: "Mensagem para a crew…", send: "Enviar", refresh: "Atualizar", requests: "Pedidos de entrada", checkRequests: "Verificar pedidos", approve: "Adicionar", noRequests: "Nenhum pedido de entrada pendente.", inviteHint: "Por enquanto só você está neste chat — os membros da crew podem tocar em “Pedir para entrar”, e você os aprova aqui.", memberCount: "{{count}} no grupo", you: "Você", groupRef: "Link do grupo", copyRef: "Copiar", copied: "Copiado", attachImage: "Anexar imagem", uploading: "Enviando…", uploadFailed: "Não foi possível enviar a imagem.", bannerTitle: "Esta crew ainda não tem chat privado", bannerBody: "Configure um chat criptografado de ponta a ponta (MLS) para sua crew — os membros entram pela aba.", bannerCta: "Configurar", ready: "Conectado · MLS", errorPrefix: "Não foi possível alcançar o coordenador", interactiveHint: "Seu signer pede aprovação a cada ação — use Atualizar e Enviar conforme necessário.", }, }; export default drift;