@proulr/rosetta 0.1.18 → 0.1.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,15 @@
1
1
  {
2
+ "profile.a11y.back": "Voltar",
3
+ "profile.a11y.changeVibesPhoto": "Trocar foto no Vibes",
4
+ "profile.a11y.close": "Fechar",
5
+ "profile.a11y.closeTip": "Fechar dica",
6
+ "profile.a11y.dismiss": "Dispensar",
7
+ "profile.a11y.editTravel": "Editar viagem",
8
+ "profile.a11y.moreActions": "Mais ações",
9
+ "profile.a11y.nextProfile": "Próximo perfil",
10
+ "profile.a11y.previousProfile": "Perfil anterior",
11
+ "profile.a11y.quickMessage": "Mensagem rápida",
12
+ "profile.a11y.viewFullPhoto": "Ver foto em tela cheia",
2
13
  "profile.ageGate.mail.accountSection": "--- Dados da conta ---",
3
14
  "profile.ageGate.mail.descriptionSection": "--- Descrição do ocorrido ---",
4
15
  "profile.ageGate.mail.email": "E-mail: {email}",
@@ -22,9 +33,62 @@
22
33
  "profile.ageVerify.noFace": "Não detectamos um rosto no vídeo. Tente novamente com boa iluminação.",
23
34
  "profile.ageVerify.notAdult": "Não foi possível confirmar que você tem 18 anos ou mais.",
24
35
  "profile.ageVerify.serviceUnavailable": "O serviço de verificação está sobrecarregado ou reiniciando. Aguarde alguns segundos e tente de novo.",
36
+ "profile.album.accessPending": "Pedido de álbum enviado",
37
+ "profile.album.accessRequestFail": "Não foi possível pedir acesso ao álbum.",
38
+ "profile.album.locked": "Álbum bloqueado",
39
+ "profile.album.lockedHint": "Álbum privado — peça acesso",
40
+ "profile.album.pendingHint": "Aguardando liberação do álbum privado",
41
+ "profile.album.pendingShort": "Pedido enviado",
42
+ "profile.album.private": "Álbum privado",
43
+ "profile.album.requestAccess": "Pedir acesso ao álbum",
44
+ "profile.album.requestSentBody": "Avisamos no chat.",
45
+ "profile.album.sending": "Enviando…",
46
+ "profile.album.sharedHint": "Álbuns compartilhados com você",
47
+ "profile.album.viewAlbums": "Ver álbuns",
48
+ "profile.albums.activeInChat": "Ativo neste chat",
49
+ "profile.albums.addMediaFail": "Não foi possível adicionar a mídia.",
50
+ "profile.albums.addPhoto": "Adicionar foto",
51
+ "profile.albums.addVideo": "Adicionar vídeo",
52
+ "profile.albums.createA11y": "Criar álbum",
53
+ "profile.albums.createFail": "Não foi possível criar o álbum.",
54
+ "profile.albums.createFirst": "Criar primeiro álbum",
55
+ "profile.albums.createNew": "Novo álbum",
56
+ "profile.albums.delete": "Excluir álbum",
57
+ "profile.albums.deleteConfirm": "Esta ação não pode ser desfeita.",
58
+ "profile.albums.deleteFail": "Não foi possível excluir o álbum.",
59
+ "profile.albums.deleteTitle": "Excluir álbum",
60
+ "profile.albums.editPrivateSubtitle": "Editar álbum privado",
61
+ "profile.albums.editSubtitle": "Editar álbum",
62
+ "profile.albums.emptyEditor": "Nenhum item ainda. Adicione fotos ou um vídeo privado.",
63
+ "profile.albums.emptyListHint": "Crie coleções privadas de fotos e vídeos para compartilhar no chat.",
64
+ "profile.albums.emptyListTitle": "Nenhum álbum ainda",
65
+ "profile.albums.emptyShare": "Álbum vazio",
66
+ "profile.albums.emptyShareBody": "Adicione fotos ou vídeos antes de compartilhar.",
67
+ "profile.albums.emptyViewer": "Este álbum está vazio ou indisponível.",
68
+ "profile.albums.expiryHint": "Por quanto tempo {name} ficará visível neste chat?",
69
+ "profile.albums.expiryTitle": "Tempo de acesso",
25
70
  "profile.albums.fallbackName": "Álbum",
71
+ "profile.albums.limits": "{photos}/{maxPhotos} fotos · {videos}/{maxVideos} vídeo",
72
+ "profile.albums.mediaUnavailable": "Mídia indisponível",
73
+ "profile.albums.nameLabel": "Nome do álbum",
74
+ "profile.albums.nextPhoto": "Próxima foto",
75
+ "profile.albums.optionsA11y": "Opções do álbum",
76
+ "profile.albums.previousPhoto": "Foto anterior",
77
+ "profile.albums.removeFail": "Não foi possível remover o item.",
78
+ "profile.albums.removeItemBody": "Deseja remover este item do álbum?",
79
+ "profile.albums.removeItemTitle": "Remover item",
80
+ "profile.albums.resend": "Reenviar álbum",
81
+ "profile.albums.saveNameFail": "Não foi possível salvar o nome.",
82
+ "profile.albums.sectionCount": "Álbuns ({count}/{max})",
83
+ "profile.albums.send": "Enviar álbum",
84
+ "profile.albums.shareChat": "Compartilhar no chat",
85
+ "profile.albums.shareFail": "Não foi possível compartilhar o álbum.",
86
+ "profile.albums.sharing": "Compartilhando",
87
+ "profile.albums.stopShare": "Parar de compartilhar",
88
+ "profile.albums.stopShareFail": "Não foi possível parar de compartilhar.",
26
89
  "profile.albums.subtitle": "Coleções privadas de fotos e vídeos",
27
90
  "profile.albums.title": "Meus álbuns",
91
+ "profile.albums.videoInAlbum": "Vídeo no álbum",
28
92
  "profile.attribute.bodyHair": "Pelo corporal",
29
93
  "profile.attribute.bodyType": "Porte físico",
30
94
  "profile.attribute.ethnicity": "Etnia",
@@ -48,10 +112,51 @@
48
112
  "profile.completion.reminderBody": "Perfis completos aparecem mais no Caçar e recebem mais Flashes.",
49
113
  "profile.completion.reminderTitle": "Complete seu perfil",
50
114
  "profile.fallback.someone": "Alguém",
115
+ "profile.field.aboutMe": "SOBRE MIM",
116
+ "profile.field.aboutYou": "SOBRE VOCÊ",
117
+ "profile.field.acceptsExplicit": "Aceita conteúdo explícito",
118
+ "profile.field.communities": "Comunidades",
119
+ "profile.field.currentCity": "CIDADE ATUAL",
120
+ "profile.field.externalLink": "LINK EXTERNO",
121
+ "profile.field.gender": "GÊNERO",
122
+ "profile.field.hivStatus": "Status HIV",
123
+ "profile.field.hivStatusVisible": "Mostrar status no perfil",
124
+ "profile.field.interests": "INTERESSES (separados por vírgula)",
125
+ "profile.field.interestsLabel": "Interesses",
126
+ "profile.field.lastTest": "Último exame",
127
+ "profile.field.lookingFor": "EM BUSCA DE",
128
+ "profile.field.lookingForSelect": "Em busca de",
129
+ "profile.field.myInterests": "MEUS INTERESSES (separados por vírgula)",
130
+ "profile.field.myTags": "MINHAS TAGS (separadas por vírgula)",
131
+ "profile.field.myTribes": "Minhas tribos",
132
+ "profile.field.position": "POSIÇÃO",
133
+ "profile.field.precautions": "Precauções",
134
+ "profile.field.sexPractices": "Práticas de sexo",
135
+ "profile.field.showAge": "Mostrar idade no perfil",
136
+ "profile.field.showPosition": "Mostrar posição no perfil",
137
+ "profile.field.showTribes": "Mostrar tribos no perfil",
138
+ "profile.field.tags": "TAGS (separadas por vírgula)",
139
+ "profile.field.travelMode": "Modo viagem",
140
+ "profile.field.tribesLiked": "Tribos que curto",
141
+ "profile.field.vaccines": "Vacinas",
142
+ "profile.field.whatIDo": "O QUE VOCÊ FAZ",
143
+ "profile.field.whatIDoSelf": "O QUE EU FAÇO",
144
+ "profile.handle.available": "@ disponível",
145
+ "profile.handle.checking": "Verificando disponibilidade…",
146
+ "profile.handle.hintShort": "3–30 caracteres: letras minúsculas, números e _",
51
147
  "profile.handle.invalidFormat": "O @ deve ter 3–30 caracteres (letras minúsculas, números e _).",
148
+ "profile.handle.placeholder": "seu_handle",
52
149
  "profile.handle.rateLimited": "Você só pode trocar o @ a cada 30 dias.",
53
150
  "profile.handle.reserved": "Esse @ é reservado e não pode ser usado.",
151
+ "profile.handle.reservedShort": "Esse @ é reservado",
54
152
  "profile.handle.taken": "Esse @ já está em uso por outra pessoa.",
153
+ "profile.handle.takenShort": "Esse @ já está em uso",
154
+ "profile.handle.vibesOnlyHint": "Seu @ aparece só no Vibes, nunca no Caçar. Pode ser trocado a cada 30 dias.",
155
+ "profile.hint.photosHoldToRemove": "Segure uma foto para remover. A primeira é a principal.",
156
+ "profile.hint.profileLink": "Para criadores: um link externo com destaque no seu perfil Caçar.",
157
+ "profile.hint.residenceCity": "Onde você fica hoje. Depois atualizamos pela cidade em que você mais permaneceu nos últimos 30 dias.",
158
+ "profile.hint.residenceCitySeed": "Seed inicial para novos usuários. Com o uso do app, atualizamos pela cidade em que você mais permaneceu nos últimos 30 dias.",
159
+ "profile.hint.testReminderPrivate": "O lembrete é privado e chega como notificação local no seu aparelho.",
55
160
  "profile.moderation.block": "Bloquear perfil",
56
161
  "profile.moderation.hide": "Ocultar da grade",
57
162
  "profile.moderation.mute": "Silenciar notificações",
@@ -182,13 +287,68 @@
182
287
  "profile.photo.add": "Adicionar foto",
183
288
  "profile.photo.addPromptBody": "Perfis com foto recebem muito mais Flashes.",
184
289
  "profile.photo.addPromptTitle": "Que tal uma foto?",
290
+ "profile.photo.change": "Trocar foto",
185
291
  "profile.photo.continueWithout": "Continuar sem foto",
186
292
  "profile.photo.huntTitle": "Foto do Caçar",
293
+ "profile.photo.primaryBadge": "principal",
187
294
  "profile.photo.readError": "Não foi possível ler a imagem.",
188
295
  "profile.photo.sourceCamera": "Câmera",
189
296
  "profile.photo.sourceMessage": "Como deseja adicionar a imagem?",
190
297
  "profile.photo.sourceTitle": "Foto de perfil",
191
298
  "profile.photo.vibesTitle": "Foto do Vibes",
299
+ "profile.placeholder.aboutMe": "Fale um pouco sobre você...",
300
+ "profile.placeholder.cityExample": "Ex.: São Paulo",
301
+ "profile.placeholder.displayName": "Como quer ser chamado",
302
+ "profile.placeholder.displayNameProfile": "Como você aparece no perfil",
303
+ "profile.placeholder.externalLink": "https://seu-link.com",
304
+ "profile.placeholder.heightCm": "Altura (cm)",
305
+ "profile.placeholder.interests": "cinema, trilha, culinária",
306
+ "profile.placeholder.lastTest": "Último exame (DD/MM/AAAA)",
307
+ "profile.placeholder.nameOnboarding": "Como quer ser chamado",
308
+ "profile.placeholder.tags": "praia, música, fitness",
309
+ "profile.placeholder.testReminder": "Lembrete do próximo exame (DD/MM/AAAA)",
310
+ "profile.placeholder.vibesDisplayName": "Como você aparece no Vibes",
311
+ "profile.placeholder.weightKg": "Peso (kg)",
312
+ "profile.placeholder.whatIDo": "Profissão, ocupação...",
313
+ "profile.report.attach": "Anexar",
314
+ "profile.report.attachA11y": "Anexar imagem",
315
+ "profile.report.blockFail": "Não foi possível bloquear o perfil.",
316
+ "profile.report.blockPrompt": "Deseja bloquear este perfil? Com o bloqueio, vocês não aparecem um para o outro.",
317
+ "profile.report.blockYes": "Sim, bloquear",
318
+ "profile.report.blockedToast": "Perfil bloqueado. Vocês não aparecem um para o outro.",
319
+ "profile.report.detailsPlaceholder": "O que aconteceu? Descreva com suas palavras",
320
+ "profile.report.evidence": "Evidências (opcional)",
321
+ "profile.report.evidenceHint": "Você pode anexar até {count} imagens (prints, fotos).",
322
+ "profile.report.intro": "Você está denunciando {name}. Conta o que aconteceu — nossa equipe analisa com cuidado.",
323
+ "profile.report.no": "Não",
324
+ "profile.report.reason": "Motivo",
325
+ "profile.report.removeAttachment": "Remover anexo",
326
+ "profile.report.removeAttachmentA11y": "Remover anexo",
327
+ "profile.report.send": "Enviar denúncia",
328
+ "profile.report.sentBody": "Obrigado. Vamos analisar o relato sobre {name}.",
329
+ "profile.report.sentTitle": "Denúncia enviada",
330
+ "profile.report.submitFail": "Não foi possível enviar a denúncia. Tente de novo.",
331
+ "profile.report.submittedBody": "Obrigado. Vamos analisar o relato sobre {name}.",
332
+ "profile.report.submittedTitle": "Denúncia enviada",
333
+ "profile.report.summary": "Resumo",
334
+ "profile.report.summaryPlaceholder": "O que aconteceu? Descreva com suas palavras",
335
+ "profile.report.thisProfile": "este perfil",
336
+ "profile.report.title": "Denunciar",
337
+ "profile.section.aboutMe": "Sobre mim",
338
+ "profile.section.basic": "Básico",
339
+ "profile.section.body": "Corpo",
340
+ "profile.section.communities": "Comunidades",
341
+ "profile.section.health": "Saúde",
342
+ "profile.section.identity": "Identidade",
343
+ "profile.section.link": "Link",
344
+ "profile.section.preferences": "Preferências",
345
+ "profile.section.profileLink": "Link do perfil",
346
+ "profile.section.sexualHealth": "Saúde sexual",
347
+ "profile.section.social": "Redes sociais",
348
+ "profile.section.tags": "Tags",
349
+ "profile.section.travel": "Viagem",
350
+ "profile.section.tribes": "Tribos",
351
+ "profile.section.vibesDisplay": "Exibição no Vibes",
192
352
  "profile.social.placeholder.gamertag": "gamertag",
193
353
  "profile.social.placeholder.handle": "@usuario",
194
354
  "profile.social.placeholder.linkOrId": "link ou id",
@@ -200,22 +360,91 @@
200
360
  "profile.social.website": "Site",
201
361
  "profile.surface.hunt": "Caçar",
202
362
  "profile.surface.vibes": "Vibes",
363
+ "profile.toast.done": "Pronto",
364
+ "profile.toast.linkSaveFail": "Não foi possível salvar o link.",
365
+ "profile.toast.linkSavedBody": "Link externo atualizado.",
366
+ "profile.toast.travelActivated": "Indicador de viagem ativado",
367
+ "profile.toast.travelAdded": "Viagem adicionada ao perfil",
368
+ "profile.toast.travelTitle": "Viagem",
369
+ "profile.travel.addTitle": "Adicionar viagem",
370
+ "profile.travel.badge": "Viajando",
371
+ "profile.travel.bannerEyebrow": "Em viagem",
372
+ "profile.travel.confirmAdd": "Sim, adicionar",
373
+ "profile.travel.confirmIndicateOnly": "Só indicar",
374
+ "profile.travel.detectionBody": "Parece que você saiu de {fromCity} e está em {toPlace}. Quer adicionar essa viagem no perfil?",
375
+ "profile.travel.detectionTitle": "Você está viajando?",
376
+ "profile.travel.indicatorActivateFail": "Não foi possível ativar o indicador de viagem.",
377
+ "profile.travel.saveFail": "Não foi possível salvar a viagem.",
378
+ "profile.travel.saveToProfile": "Salvar no perfil",
379
+ "profile.trip.add": "Adicionar viagem",
203
380
  "profile.trip.destinationFallback": "Destino",
204
381
  "profile.trip.fromDate": "A partir de {date}",
382
+ "profile.trip.placeholder.city": "Cidade",
383
+ "profile.trip.placeholder.country": "País (opcional)",
384
+ "profile.trip.placeholder.end": "Fim (DD/MM/AAAA)",
385
+ "profile.trip.placeholder.start": "Início (DD/MM/AAAA)",
205
386
  "profile.trip.untilDate": "Até {date}",
387
+ "profile.ui.aboutMe": "Sobre mim",
388
+ "profile.ui.age": "Idade",
389
+ "profile.ui.albums": "Álbuns",
390
+ "profile.ui.back": "Voltar",
206
391
  "profile.ui.customVibesHint": "O resto do perfil continua o mesmo nos dois modos.",
207
392
  "profile.ui.customVibesToggle": "Usar foto e nome diferentes no Vibes",
208
393
  "profile.ui.customVibesToggleHint": "O resto do perfil continua o mesmo. Só a foto e o nome de exibição mudam nos posts do Vibes.",
394
+ "profile.ui.data": "Dados",
209
395
  "profile.ui.editTitle": "Editar perfil",
396
+ "profile.ui.externalLink": "Link externo",
397
+ "profile.ui.getStarted": "Começar",
210
398
  "profile.ui.handleLabel": "SEU @",
399
+ "profile.ui.interests": "Interesses",
400
+ "profile.ui.lastTest": "Último exame",
401
+ "profile.ui.link": "Link",
402
+ "profile.ui.linkClicks": "Cliques no link",
403
+ "profile.ui.media": "Mídias",
211
404
  "profile.ui.modeHunt": "Modo Caçar",
212
405
  "profile.ui.modeVibes": "Modo Vibes",
213
406
  "profile.ui.myProfile": "Meu perfil",
214
407
  "profile.ui.nameLabel": "SEU NOME",
408
+ "profile.ui.noMediaPublished": "Nenhuma mídia publicada.",
409
+ "profile.ui.noMediaYet": "Nenhuma mídia publicada.",
410
+ "profile.ui.noPhotosYet": "Nenhuma foto publicada ainda.",
411
+ "profile.ui.noPostsYet": "Nenhum post ainda.",
412
+ "profile.ui.noThoughtsYet": "Nenhum pensamento ainda.",
413
+ "profile.ui.notFound": "Perfil não encontrado.",
414
+ "profile.ui.openChat": "Abrir conversa",
415
+ "profile.ui.openLink": "Abrir link",
416
+ "profile.ui.photosCount": "Fotos",
215
417
  "profile.ui.photosHint": "A primeira foto é a principal do seu perfil.",
216
418
  "profile.ui.photosTitle": "Fotos",
419
+ "profile.ui.posts": "Posts",
420
+ "profile.ui.presenceStatus": "Status",
217
421
  "profile.ui.save": "Salvar perfil",
422
+ "profile.ui.saveLink": "Salvar link",
423
+ "profile.ui.status": "Status",
424
+ "profile.ui.tags": "Tags",
425
+ "profile.ui.tribes": "Tribos",
426
+ "profile.ui.trips": "Viagens",
218
427
  "profile.ui.vibesName": "NOME NO VIBES",
219
428
  "profile.ui.vibesPhoto": "FOTO NO VIBES",
220
- "profile.ui.vibesPhotoHint": "Aparece ao lado do seu @ nos posts do Vibes."
429
+ "profile.ui.vibesPhotoHint": "Aparece ao lado do seu @ nos posts do Vibes.",
430
+ "profile.ui.viewProfile": "Ver perfil",
431
+ "profile.ui.views": "Visualizações",
432
+ "profile.ui.visitExternalLink": "Visitar link externo",
433
+ "profile.ui.visitLink": "Visitar meu link",
434
+ "profile.ui.yourProfile": "Seu perfil",
435
+ "profile.view.actionFail": "Não foi possível concluir a ação.",
436
+ "profile.view.blocked": "Perfil bloqueado.",
437
+ "profile.view.gotIt": "Entendi",
438
+ "profile.view.hidden": "Perfil oculto.",
439
+ "profile.view.keyboardTip": "Use ← → no teclado para ver o próximo perfil",
440
+ "profile.view.messagePlaceholder": "Mensagem para {name}...",
441
+ "profile.view.muted": "Notificações silenciadas desta pessoa.",
442
+ "profile.view.next": "Próximo",
443
+ "profile.view.notFound": "Perfil não encontrado.",
444
+ "profile.view.previous": "Anterior",
445
+ "profile.view.reactionSent": "Reação enviada: {label}",
446
+ "profile.view.sendFailMessage": "Não foi possível enviar a mensagem.",
447
+ "profile.view.sendMessage": "Enviar mensagem",
448
+ "profile.view.sendReaction": "Enviar reação",
449
+ "profile.view.unmuted": "Notificações permitidas de novo."
221
450
  }
@@ -62,5 +62,6 @@
62
62
  "referral.settings.transparency": "Medimos cliques e o resultado do convite. Não exibimos quem se cadastrou pelo seu link.",
63
63
  "referral.web.influencer.cta": "Fale com a gente",
64
64
  "referral.web.influencer.pitch": "Parceiros recebem um link com o @ e um painel de métricas agregadas para campanhas.",
65
+ "referral.web.influencer.privacy": "As métricas mostram cliques, cadastros e conversões — nunca a identidade de quem se cadastrou.",
65
66
  "referral.web.influencer.title": "Programa para influenciadores"
66
67
  }
@@ -21,6 +21,17 @@
21
21
  "settings.section.general": "Geral",
22
22
  "settings.section.media": "Mídia e tela",
23
23
  "settings.section.notifications": "Notificações",
24
+ "shell.a11y.backToApp": "Voltar ao app",
25
+ "shell.a11y.closeMenu": "Fechar menu",
26
+ "shell.a11y.closeProfileMenu": "Fechar menu do perfil",
27
+ "shell.a11y.closeSelection": "Fechar seleção",
28
+ "shell.a11y.groupInfo": "Informações de {title}",
29
+ "shell.a11y.moreOptions": "Mais opções",
30
+ "shell.a11y.openProfileMenu": "Abrir menu do perfil",
31
+ "shell.a11y.search": "Buscar",
32
+ "shell.a11y.switchToMode": "Mudar para {mode}",
33
+ "shell.a11y.viewMyProfile": "Ver meu perfil",
34
+ "shell.a11y.viewPeerProfile": "Ver perfil de {name}",
24
35
  "shell.about.build": "Build",
25
36
  "shell.about.followIg": "Seguir no Instagram",
26
37
  "shell.about.followX": "Seguir no X",
@@ -29,10 +40,66 @@
29
40
  "shell.about.section.social": "Social",
30
41
  "shell.about.section.terms": "Termos e políticas",
31
42
  "shell.about.title": "Sobre",
43
+ "shell.ad.label": "Anúncio",
44
+ "shell.appIcon.appearanceSection": "Aparência na tela inicial",
32
45
  "shell.appIcon.defaultHint": "Ícone principal com a marca",
33
46
  "shell.appIcon.defaultLabel": "Proulr",
34
47
  "shell.appIcon.discreetHint": "Aparência neutra de calendário na tela inicial",
35
48
  "shell.appIcon.discreetLabel": "Discreto",
49
+ "shell.appIcon.nativeBuildHint": "Ícones alternativos exigem build nativo (iOS ou Android). No Expo Go ou na web, o ícone padrão permanece ativo.",
50
+ "shell.appIcon.nativeOnly": "Disponível apenas no app nativo.",
51
+ "shell.appIcon.restartHint": "Em alguns aparelhos o ícone só muda após reiniciar o launcher ou o celular.",
52
+ "shell.appIcon.subtitle": "Alternar ícone do app na tela inicial",
53
+ "shell.appIcon.swapHint": "A troca pode levar alguns segundos. Em builds de desenvolvimento, rode prebuild após adicionar novos assets de ícone.",
54
+ "shell.appIcon.title": "Ícone discreto",
55
+ "shell.appIcon.webUnavailable": "Troca de ícone não está disponível na web.",
56
+ "shell.appLock.biometricConfirm": "Confirmar biometria para o bloqueio",
57
+ "shell.appLock.biometricHintAvailable": "Face ID / impressão digital",
58
+ "shell.appLock.biometricHintUnavailable": "Biometria indisponível neste aparelho",
59
+ "shell.appLock.biometricSection": "Biometria",
60
+ "shell.appLock.biometricToggle": "Desbloquear com biometria",
61
+ "shell.appLock.confirmPin": "Confirmar PIN",
62
+ "shell.appLock.disable": "Desativar bloqueio",
63
+ "shell.appLock.disableBody": "Remover PIN e biometria deste aparelho?",
64
+ "shell.appLock.disableConfirm": "Desativar",
65
+ "shell.appLock.disableTitle": "Desativar bloqueio",
66
+ "shell.appLock.enabledBody": "Na próxima abertura do app, será necessário informar o PIN ou usar biometria.",
67
+ "shell.appLock.enabledTitle": "Bloqueio ativado",
68
+ "shell.appLock.enterPinHint": "Digite seu PIN para continuar",
69
+ "shell.appLock.gatePrompt": "Desbloquear o Proulr",
70
+ "shell.appLock.lockedTitle": "Proulr bloqueado",
71
+ "shell.appLock.nativeOnly": "Disponível apenas no app nativo.",
72
+ "shell.appLock.newPin": "Novo PIN",
73
+ "shell.appLock.pinPlaceholder": "PIN",
74
+ "shell.appLock.pinSection": "PIN",
75
+ "shell.appLock.protectHint": "Proteja o app em aparelhos compartilhados. O PIN fica apenas neste dispositivo (SecureStore).",
76
+ "shell.appLock.savePin": "Salvar PIN",
77
+ "shell.appLock.subtitle": "PIN e biometria ao abrir o app",
78
+ "shell.appLock.title": "Bloqueio de início",
79
+ "shell.appLock.unlock": "Desbloquear",
80
+ "shell.appLock.useBiometric": "Usar biometria",
81
+ "shell.appLock.wrongPin": "PIN incorreto",
82
+ "shell.blocked.actionUnblock": "desbloquear",
83
+ "shell.blocked.actionUnhide": "desocultar",
84
+ "shell.blocked.bulkUnblock": "Desbloquear todos",
85
+ "shell.blocked.bulkUnhide": "Desocultar todos",
86
+ "shell.blocked.cancelSelection": "Cancelar seleção",
87
+ "shell.blocked.confirmBody": "Deseja {action} {name}?",
88
+ "shell.blocked.confirmTitle": "Confirmar",
89
+ "shell.blocked.done": "Concluir",
90
+ "shell.blocked.empty": "Nenhum perfil bloqueado ou oculto.",
91
+ "shell.blocked.hint": "Toque na foto para desbloquear/desocultar. Menu ⋮ para ação em massa.",
92
+ "shell.blocked.meta": "{status} · Último contato: {date}",
93
+ "shell.blocked.moreActions": "Mais ações",
94
+ "shell.blocked.noRecentContact": "Sem contato recente",
95
+ "shell.blocked.profilesSection": "Perfis",
96
+ "shell.blocked.selectMany": "Selecionar vários",
97
+ "shell.blocked.statusBlocked": "Bloqueado",
98
+ "shell.blocked.statusHidden": "Oculto",
99
+ "shell.blocked.statusMuted": "Silenciado",
100
+ "shell.blocked.subtitle": "Gerencie perfis que você bloqueou ou ocultou",
101
+ "shell.blocked.title": "Ocultos e bloqueados",
102
+ "shell.blocked.updating": "Atualizando lista…",
36
103
  "shell.consent.ads": "Publicidade personalizada",
37
104
  "shell.consent.ads.hint": "Quando ativarmos ads, respeitaremos esta escolha",
38
105
  "shell.consent.analytics": "Análise de uso",
@@ -50,6 +117,38 @@
50
117
  "shell.deactivate.signOutNow": "Sair agora",
51
118
  "shell.deactivate.subtitle": "Suporte, sair ou excluir",
52
119
  "shell.deactivate.title": "Desativar conta",
120
+ "shell.device.appVersion": "Versão do app",
121
+ "shell.device.cacheClearedBody": "Dados temporários removidos.",
122
+ "shell.device.cacheClearedTitle": "Cache limpo",
123
+ "shell.device.clearCache": "Apagar cache do aparelho",
124
+ "shell.device.clearCacheHint": "Limpa cache SDUI local",
125
+ "shell.device.connectionOk": "Conexão OK",
126
+ "shell.device.coords": "Lat {lat}, Lng {lng}",
127
+ "shell.device.copyId": "Copiar ID do dispositivo",
128
+ "shell.device.copyIdToastBody": "Identificador do aparelho na área de transferência.",
129
+ "shell.device.copyIdToastTitle": "ID copiado",
130
+ "shell.device.diagnosticsSection": "Diagnósticos",
131
+ "shell.device.infoSection": "Informações",
132
+ "shell.device.latencyMs": "Latência aproximada: {ms} ms",
133
+ "shell.device.loading": "Carregando…",
134
+ "shell.device.loadingInfo": "Carregando informações do dispositivo…",
135
+ "shell.device.locationOk": "Localização OK",
136
+ "shell.device.manageDevices": "Gerenciar aparelhos",
137
+ "shell.device.manageDevicesHint": "Sessões ativas e revogação",
138
+ "shell.device.osVersion": "Versão do SO",
139
+ "shell.device.platform": "Plataforma",
140
+ "shell.device.refresh": "Atualizar informações",
141
+ "shell.device.running": "Executando: {task}…",
142
+ "shell.device.sectionAccount": "Conta neste aparelho",
143
+ "shell.device.subtitle": "Sessões, cache e diagnósticos",
144
+ "shell.device.taskCache": "limpando cache",
145
+ "shell.device.taskConnection": "teste de conexão",
146
+ "shell.device.taskCopyId": "copiar ID",
147
+ "shell.device.taskLocation": "localização",
148
+ "shell.device.testConnection": "Testar conexão",
149
+ "shell.device.title": "Dispositivo",
150
+ "shell.device.unknownError": "Erro desconhecido",
151
+ "shell.device.verifyLocation": "Verificar localização",
53
152
  "shell.dnd.clear": "Cancelar adiamento",
54
153
  "shell.dnd.quietHours": "Horas de silêncio",
55
154
  "shell.dnd.quietHours.hint": "Usa horário padrão 22:00–08:00",
@@ -60,6 +159,38 @@
60
159
  "shell.dnd.subtitle": "Adiar ou silenciar por horário",
61
160
  "shell.dnd.title": "Não perturbe",
62
161
  "shell.dnd.untilTomorrow": "Até amanhã",
162
+ "shell.downloadData.emailFallback": "seu e-mail",
163
+ "shell.downloadData.emailHint": "Conta vinculada: {email}. O link de download expira em 7 dias.",
164
+ "shell.downloadData.emailStep": "Passo 1 — Confirmar e-mail",
165
+ "shell.downloadData.exportLocal": "Exportar dados locais",
166
+ "shell.downloadData.exportQueued": "Exportação enfileirada",
167
+ "shell.downloadData.exportReady": "Exportação pronta",
168
+ "shell.downloadData.exportReadyBody": "Abrindo link de download.",
169
+ "shell.downloadData.localFail": "Falha ao exportar dados locais",
170
+ "shell.downloadData.localHint": "JSON imediato com frases salvas e chaves AsyncStorage do app.",
171
+ "shell.downloadData.localSection": "Passo 2 — Dados locais",
172
+ "shell.downloadData.localToastBody": "Arquivo compartilhado com sucesso.",
173
+ "shell.downloadData.localToastTitle": "Exportação local",
174
+ "shell.downloadData.openDownload": "Abrir download",
175
+ "shell.downloadData.privacyBanner": "Seus dados estão em dois lugares: neste aparelho (chat cifrado, preferências locais) e no servidor (perfil, flashes, fotos). Mensagens E2E exportam ciphertext — o conteúdo legível exige sua senha de backup.",
176
+ "shell.downloadData.reusedJob": " (job existente reutilizado)",
177
+ "shell.downloadData.serverFail": "Não foi possível iniciar a exportação.",
178
+ "shell.downloadData.serverHint": "Gera um arquivo no servidor com seus dados da conta. O link fica disponível por 7 dias.",
179
+ "shell.downloadData.serverPackageHint": "Job assíncrono com perfil e metadados de fotos. Mensagens cifradas e dados locais não entram neste pacote.",
180
+ "shell.downloadData.serverSection": "Passo 3 — Dados do servidor",
181
+ "shell.downloadData.serverStart": "Começar exportação do servidor",
182
+ "shell.downloadData.serverStatus": "Exportação do servidor: {status}",
183
+ "shell.downloadData.serverTitle": "Exportação do servidor",
184
+ "shell.downloadData.statusExpired": "Expirado",
185
+ "shell.downloadData.statusFailed": "Falhou",
186
+ "shell.downloadData.statusLabel": "Status: {status}",
187
+ "shell.downloadData.statusPending": "Na fila",
188
+ "shell.downloadData.statusProcessing": "Processando",
189
+ "shell.downloadData.statusReady": "Pronto para download",
190
+ "shell.downloadData.subtitle": "Exportação local e do servidor",
191
+ "shell.downloadData.title": "Baixar meus dados",
192
+ "shell.downloadData.unavailableLink": "Link indisponível",
193
+ "shell.downloadData.unavailableLinkBody": "Não foi possível abrir o download neste aparelho.",
63
194
  "shell.drawer.boost": "Boost",
64
195
  "shell.drawer.communities": "Comunidades",
65
196
  "shell.drawer.editProfile": "Editar perfil",
@@ -69,6 +200,8 @@
69
200
  "shell.drawer.inviteFriends": "Convidar amigos",
70
201
  "shell.drawer.lists": "Listas",
71
202
  "shell.drawer.menu": "Menu",
203
+ "shell.drawer.modeHunt": "Modo Caçar",
204
+ "shell.drawer.modeVibes": "Modo Vibes",
72
205
  "shell.drawer.myAlbums": "Meus álbuns",
73
206
  "shell.drawer.myProfile": "Meu perfil",
74
207
  "shell.drawer.premium": "Premium",
@@ -76,6 +209,8 @@
76
209
  "shell.drawer.safety": "Centro de segurança",
77
210
  "shell.drawer.saved": "Itens salvos",
78
211
  "shell.drawer.signOut": "Encerrar sessão",
212
+ "shell.fab.closeCreateMenu": "Fechar menu de criação",
213
+ "shell.hunt.browseFab": "Caçar — ver quem está em outra região",
79
214
  "shell.language.en": "English",
80
215
  "shell.language.en.hint": "App text in English",
81
216
  "shell.language.ptBr": "Português (Brasil)",
@@ -84,6 +219,15 @@
84
219
  "shell.language.system": "Sistema",
85
220
  "shell.language.system.hint": "Segue o idioma do aparelho",
86
221
  "shell.language.title": "Idioma",
222
+ "shell.muted.confirmBody": "Deseja deixar de silenciar {name}?",
223
+ "shell.muted.confirmTitle": "Remover silêncio",
224
+ "shell.muted.empty": "Nenhum membro silenciado.",
225
+ "shell.muted.section": "Silenciados",
226
+ "shell.muted.statusMuted": "Silenciado",
227
+ "shell.muted.subtitle": "Quem não envia notificações de chat",
228
+ "shell.muted.title": "Membros silenciados",
229
+ "shell.muted.unmuteAll": "Remover silêncio de todos",
230
+ "shell.muted.updating": "Atualizando lista…",
87
231
  "shell.notif.appSounds": "Sons no app",
88
232
  "shell.notif.appVibrations": "Vibrações no app",
89
233
  "shell.notif.disablePush": "Desativar push global",
@@ -98,6 +242,46 @@
98
242
  "shell.notif.subtitle": "Alertas push, sons e vibrações",
99
243
  "shell.notif.systemMgmt": "Gestão do sistema",
100
244
  "shell.notif.title": "Notificações",
245
+ "shell.notifTest.banner": "Notificações na bandeja só funcionam no app instalado (build nativo). No Expo Go o push remoto não chega.",
246
+ "shell.notifTest.copyToken": "Copiar token",
247
+ "shell.notifTest.diagnostics": "Diagnóstico",
248
+ "shell.notifTest.easConfigured": "Configurado",
249
+ "shell.notifTest.easMissing": "Ausente",
250
+ "shell.notifTest.easProject": "Projeto EAS",
251
+ "shell.notifTest.env": "Ambiente",
252
+ "shell.notifTest.failed": "Falhou.",
253
+ "shell.notifTest.firebaseHint": "Se o token não é gerado, conclua a configuração do FCM:",
254
+ "shell.notifTest.firebaseSection": "Configurar Firebase (Android)",
255
+ "shell.notifTest.firebaseStep1": "1. Crie um projeto no Firebase Console.",
256
+ "shell.notifTest.firebaseStep2": "2. Adicione um app Android com o pacote com.proulr.app e baixe o google-services.json.",
257
+ "shell.notifTest.firebaseStep3": "3. Coloque o arquivo na raiz do projeto e aponte android.googleServicesFile no app.json.",
258
+ "shell.notifTest.firebaseStep4": "4. Em Firebase > Configurações > Cloud Messaging, gere a chave de conta de serviço (FCM V1) e envie ao EAS com: eas credentials.",
259
+ "shell.notifTest.firebaseStep5": "5. Refaça o build nativo e reinstale o app.",
260
+ "shell.notifTest.localHint": "Não depende do servidor nem do FCM. Valida permissão, canal e exibição no aparelho.",
261
+ "shell.notifTest.localLabel": "Notificação local",
262
+ "shell.notifTest.localRun": "Disparar notificação local",
263
+ "shell.notifTest.notEmulator": "Não (emulador)",
264
+ "shell.notifTest.openExpoDocs": "Abrir documentação da Expo",
265
+ "shell.notifTest.permission": "Permissão",
266
+ "shell.notifTest.permissionDenied": "Negada",
267
+ "shell.notifTest.permissionGranted": "Concedida",
268
+ "shell.notifTest.physicalDevice": "Aparelho físico",
269
+ "shell.notifTest.platform": "Plataforma",
270
+ "shell.notifTest.remoteHint": "Envia um push real via Expo para este aparelho. Valida o caminho completo usado por Flashes e mensagens (token + FCM + entrega).",
271
+ "shell.notifTest.remoteLabel": "Push remoto (para mim)",
272
+ "shell.notifTest.remoteRun": "Enviar push remoto de teste",
273
+ "shell.notifTest.subtitle": "Diagnóstico do push",
274
+ "shell.notifTest.success": "Sucesso.",
275
+ "shell.notifTest.tests": "Testes",
276
+ "shell.notifTest.title": "Testar notificações",
277
+ "shell.notifTest.tokenCopiedBody": "Cole no Expo Push Tool para testes manuais.",
278
+ "shell.notifTest.tokenCopiedTitle": "Token copiado",
279
+ "shell.notifTest.tokenErrorHint": "No Android, isso quase sempre significa que o Firebase Cloud Messaging (FCM) não está configurado. Veja o passo a passo abaixo.",
280
+ "shell.notifTest.tokenErrorTitle": "Erro ao gerar o token",
281
+ "shell.notifTest.tokenGenerated": "Token gerado",
282
+ "shell.notifTest.tokenLabel": "Expo push token",
283
+ "shell.notifTest.tokenSaved": "Token salvo no servidor",
284
+ "shell.pageUnavailable": "Esta página de configurações não está disponível.",
101
285
  "shell.prefs.distanceUnits": "Unidades de distância",
102
286
  "shell.prefs.distanceUnits.hint": "Métrico, imperial ou sistema",
103
287
  "shell.prefs.keepAwake": "Manter tela ligada",
@@ -137,6 +321,7 @@
137
321
  "shell.privacy.title": "Privacidade",
138
322
  "shell.privacy.travelIndicator": "Indicador de viagem",
139
323
  "shell.privacy.visibility": "Visibilidade",
324
+ "shell.pullToRefresh": "Puxe para atualizar",
140
325
  "shell.quality.adaptive": "Adaptativa",
141
326
  "shell.quality.maximum": "Máxima",
142
327
  "shell.quality.thumbnail": "Miniatura",
@@ -165,6 +350,29 @@
165
350
  "shell.safety.section.safety": "Segurança",
166
351
  "shell.safety.subtitle": "Guias, ajuda e privacidade",
167
352
  "shell.safety.title": "Central de segurança",
353
+ "shell.search.conversations": "Buscar conversas…",
354
+ "shell.search.placeholder": "Buscar…",
355
+ "shell.search.postsTags": "Buscar posts, @ ou #…",
356
+ "shell.sessions.devicesSection": "Aparelhos",
357
+ "shell.sessions.empty": "Nenhuma sessão registrada ainda. Elas aparecem após login neste aparelho.",
358
+ "shell.sessions.endCurrentTitle": "Encerrar neste aparelho",
359
+ "shell.sessions.endOthers": "Encerrar outras sessões",
360
+ "shell.sessions.endOthersBody": "Desconectar todos os outros aparelhos?",
361
+ "shell.sessions.endOthersDone": "Outras sessões encerradas",
362
+ "shell.sessions.endOthersDoneBody": "Todos os outros aparelhos foram desconectados.",
363
+ "shell.sessions.endOthersTitle": "Encerrar outras sessões",
364
+ "shell.sessions.loading": "Carregando sessões…",
365
+ "shell.sessions.revokeConfirmCurrent": "Você será desconectado deste aparelho.",
366
+ "shell.sessions.revokeConfirmOther": "Encerrar sessão neste dispositivo?",
367
+ "shell.sessions.revokeFail": "Não foi possível revogar este aparelho.",
368
+ "shell.sessions.revokeTitle": "Revogar aparelho",
369
+ "shell.sessions.revokedTitle": "Aparelho revogado",
370
+ "shell.sessions.rowSubtitle": "Versão {version} · Última atividade {date}",
371
+ "shell.sessions.signOut": "Sair",
372
+ "shell.sessions.subtitle": "Sessões conectadas à sua conta. Revogar outro aparelho encerra a sessão no servidor quando possível.",
373
+ "shell.sessions.title": "Gerenciar aparelhos",
374
+ "shell.sessions.toastEnded": "A sessão foi encerrada no servidor. O aparelho perderá acesso imediatamente.",
375
+ "shell.sessions.toastRemoved": "Registro removido. Sem identificador de sessão salvo, o aparelho pode continuar conectado até o token expirar.",
168
376
  "shell.settings.aboutProulr": "Sobre o Proulr",
169
377
  "shell.settings.appIcon": "Ícone do app",
170
378
  "shell.settings.appLock": "Bloqueio do app",
@@ -195,9 +403,50 @@
195
403
  "shell.settings.title": "Configurações",
196
404
  "shell.settings.version": "Versão",
197
405
  "shell.soon.feature": "{label} estará disponível em breve.",
406
+ "shell.subscriptions.active": "Ativo",
407
+ "shell.subscriptions.boost": "Destaque (Boost)",
408
+ "shell.subscriptions.boostPriced": "Destaque (Boost) — {price}",
409
+ "shell.subscriptions.boostSuccessBody": "Seu destaque será aplicado conforme as regras do app.",
410
+ "shell.subscriptions.boostSuccessTitle": "Boost adquirido",
411
+ "shell.subscriptions.consumables": "Consumíveis",
412
+ "shell.subscriptions.dayPass": "Passe de 1 Dia PRO",
413
+ "shell.subscriptions.dayPassPriced": "Passe de 1 Dia PRO — {price}",
414
+ "shell.subscriptions.inactive": "Inativo",
415
+ "shell.subscriptions.manage": "Gerenciar assinatura",
416
+ "shell.subscriptions.manageHint": "Abrir configurações da App Store / Play Store",
417
+ "shell.subscriptions.manageSuccessBody": "Use a tela da loja para alterar ou cancelar sua assinatura.",
418
+ "shell.subscriptions.manageSuccessTitle": "Loja aberta",
419
+ "shell.subscriptions.nativeOnly": "Disponível apenas no app nativo.",
420
+ "shell.subscriptions.passSuccessBody": "Seu acesso PRO temporário foi vinculado à conta.",
421
+ "shell.subscriptions.passSuccessTitle": "Passe ativado",
422
+ "shell.subscriptions.planSection": "Plano",
423
+ "shell.subscriptions.proSuccessBody": "Proulr Pro foi vinculado à sua conta.",
424
+ "shell.subscriptions.proSuccessTitle": "Assinatura ativa",
425
+ "shell.subscriptions.refresh": "Atualizar",
426
+ "shell.subscriptions.refreshing": "Atualizando status…",
427
+ "shell.subscriptions.renewsOn": "Renova em {date}",
428
+ "shell.subscriptions.restore": "Restaurar compra",
429
+ "shell.subscriptions.restoreHint": "Recuperar assinaturas já pagas nesta conta da loja",
430
+ "shell.subscriptions.restoreSuccessBody": "Verificamos sua conta da loja e atualizamos o status.",
431
+ "shell.subscriptions.restoreSuccessTitle": "Compras restauradas",
432
+ "shell.subscriptions.storeSection": "Conta da loja",
433
+ "shell.subscriptions.subscribePro": "Assinar Pro",
434
+ "shell.subscriptions.subscribeProPriced": "Assinar Pro ({price})",
435
+ "shell.subscriptions.subtitle": "Pro, Boost e Passe de 1 dia",
436
+ "shell.subscriptions.title": "Assinaturas",
437
+ "shell.subscriptions.unavailableConsumables": "Compras avulsas ficam disponíveis quando o RevenueCat estiver ativo.",
438
+ "shell.surface.discoverSubtitle": "Você está no modo encontros",
439
+ "shell.surface.discoverTitle": "Caçar",
440
+ "shell.surface.vibesSubtitle": "Você está no modo social",
441
+ "shell.surface.vibesTitle": "Vibes",
198
442
  "shell.tab.chat": "Chat",
199
443
  "shell.tab.discover": "Caçar",
200
444
  "shell.tab.vibes": "Vibes",
445
+ "shell.offline.cachedBanner": "Sem conexão — última versão salva.",
446
+ "shell.unavailable.body": "Não conseguimos carregar esta tela agora. Sem conexão ou sem dados salvos no aparelho.",
447
+ "shell.unavailable.goHunt": "Ir para o Caçar",
448
+ "shell.unavailable.retry": "Tentar novamente",
449
+ "shell.unavailable.title": "Tela indisponível",
201
450
  "shell.units.distance": "Distância",
202
451
  "shell.units.imperial": "Imperial",
203
452
  "shell.units.imperial.hint": "Milhas e pés",
@@ -206,5 +455,9 @@
206
455
  "shell.units.subtitle": "Como exibir distâncias no app",
207
456
  "shell.units.system": "Sistema",
208
457
  "shell.units.system.hint": "Segue o idioma do aparelho",
209
- "shell.units.title": "Unidades"
458
+ "shell.units.title": "Unidades",
459
+ "shell.web.installCta": "Instalar",
460
+ "shell.web.installSubtitle": "Abra como app, com ícone na tela inicial.",
461
+ "shell.web.installTitle": "Instalar o Proulr",
462
+ "shell.web.notNow": "Agora não"
210
463
  }