@proulr/rosetta 0.1.13 → 0.1.15

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.
@@ -10,6 +10,7 @@ export const PT_BR_MESSAGES = {
10
10
  "alerts.attention": "Atenção",
11
11
  "alerts.block": "Bloquear",
12
12
  "alerts.camera": "Erro na câmera",
13
+ "alerts.common.ok": "OK",
13
14
  "alerts.couldNotAddTrip": "Não foi possível adicionar a viagem.",
14
15
  "alerts.couldNotComplete": "Não foi possível concluir",
15
16
  "alerts.couldNotRemove": "Não foi possível remover.",
@@ -17,6 +18,20 @@ export const PT_BR_MESSAGES = {
17
18
  "alerts.couldNotSave": "Não foi possível salvar.",
18
19
  "alerts.couldNotSaveNetworks": "Não foi possível salvar as redes.",
19
20
  "alerts.crop": "Erro ao cortar",
21
+ "alerts.dataExport.createJobFailed": "Falha ao criar job de exportação",
22
+ "alerts.dataExport.jobNotFound": "Job de exportação não encontrado",
23
+ "alerts.dataExport.processFailed": "Falha ao processar exportação",
24
+ "alerts.dataExport.serverTimeout": "Tempo esgotado aguardando exportação do servidor",
25
+ "alerts.dataExport.shareDialogTitle": "Exportar dados locais",
26
+ "alerts.dataExport.sharingUnavailable": "Compartilhamento indisponível neste dispositivo",
27
+ "alerts.devicePermission.location": "localização",
28
+ "alerts.devicePermission.notifications": "notificações",
29
+ "alerts.devicePermission.pairFormat": "{first} e {second}",
30
+ "alerts.devicePermission.sound": "som",
31
+ "alerts.devicePermission.tripleFormat": "{first}, {second} e {third}",
32
+ "alerts.diagnostics.connectionFailed": "Falha na conexão",
33
+ "alerts.diagnostics.locationFailed": "Falha ao obter localização",
34
+ "alerts.diagnostics.permissionDenied": "Permissão negada",
20
35
  "alerts.displayNameRequired": "Informe um nome de exibição.",
21
36
  "alerts.empty": "Vazio",
22
37
  "alerts.error": "Erro",
@@ -30,9 +45,69 @@ export const PT_BR_MESSAGES = {
30
45
  "alerts.location": "Localização",
31
46
  "alerts.mic": "Microfone",
32
47
  "alerts.ops": "Ops",
48
+ "alerts.permission.cameraBlocked": "Câmera bloqueada. Ative nas configurações do aparelho.",
49
+ "alerts.permission.cameraDenied": "Permissão de câmera negada. Ative nas configurações do aparelho.",
50
+ "alerts.permission.locationBlocked": "Localização bloqueada. Ative nas configurações do aparelho.",
51
+ "alerts.permission.locationDenied": "Permissão de localização negada. Ative nas configurações para usar o Descubra perto de você.",
52
+ "alerts.permission.mediaLibraryBlocked": "Galeria bloqueada. Ative nas configurações do aparelho.",
53
+ "alerts.permission.mediaLibraryDenied": "Permissão de galeria negada. Ative nas configurações para escolher fotos e vídeos.",
54
+ "alerts.permission.microphoneBlocked": "Microfone bloqueado. Ative nas configurações do aparelho.",
55
+ "alerts.permission.microphoneDenied": "Permissão de microfone negada. Ative nas configurações para gravar áudio e vídeo.",
56
+ "alerts.permission.notificationsBlocked": "Notificações bloqueadas. Ative nas configurações do aparelho.",
57
+ "alerts.permission.notificationsDenied": "Permissão de notificações negada. Ative nas configurações do aparelho.",
33
58
  "alerts.photoPick": "Erro ao escolher foto",
34
59
  "alerts.photoUpload": "Erro ao enviar foto",
35
60
  "alerts.pinInvalid": "PIN inválido. Use pelo menos 4 dígitos.",
61
+ "alerts.push.blockedWebMessage": "Permita notificações do Proulr no navegador para receber mensagens como no WhatsApp Web.",
62
+ "alerts.push.blockedWebTitle": "Notificações bloqueadas",
63
+ "alerts.push.deniedMessage": "Ative as notificações do Proulr nas configurações do celular para receber alertas.",
64
+ "alerts.push.deniedTitle": "Notificações desativadas",
65
+ "alerts.push.enableMessage": "Toque abaixo para permitir alertas de mensagens e flashes.",
66
+ "alerts.push.enableTitle": "Ative as notificações",
67
+ "alerts.push.expoGoMessage": "No Android, notificações na bandeja exigem build nativo. O Expo Go não entrega push.",
68
+ "alerts.push.expoGoTitle": "Expo Go não suporta push",
69
+ "alerts.push.flashSentBody": "{name} te enviou um Flash",
70
+ "alerts.push.groupFallbackTitle": "Grupo",
71
+ "alerts.push.groupInviteBody": "{name} adicionou você ao grupo",
72
+ "alerts.push.groupMessageBody": "{name}: Mensagem",
73
+ "alerts.push.messageBody": "Mensagem",
74
+ "alerts.push.missingProjectIdMessage": "Defina extra.eas.projectId no app.json para registrar push.",
75
+ "alerts.push.missingProjectIdTitle": "Projeto EAS não configurado",
76
+ "alerts.push.nativeActiveMessage": "Você receberá alertas na bandeja do celular mesmo com o app fechado.",
77
+ "alerts.push.nativeActiveTitle": "Notificações ativas",
78
+ "alerts.push.newFlashTitle": "Novo Flash!",
79
+ "alerts.push.newReactionTitle": "Nova reação!",
80
+ "alerts.push.reactionBody": "{name} {message} {emoji}",
81
+ "alerts.push.simulatorMessage": "Push não funciona em emulador. Instale o app em um aparelho real.",
82
+ "alerts.push.simulatorTitle": "Use um celular físico",
83
+ "alerts.push.someoneFallback": "Alguém",
84
+ "alerts.push.unavailableEnvMessage": "Instale o app com build nativo para receber mensagens com o app fechado.",
85
+ "alerts.push.unavailableEnvTitle": "Push indisponível neste ambiente",
86
+ "alerts.push.webActiveMessage": "Você receberá alertas na área de trabalho mesmo com a aba em segundo plano ou fechada.",
87
+ "alerts.push.webActiveTitle": "Notificações web ativas",
88
+ "alerts.push.webEnableMessage": "Receba mensagens e Flashes na área de trabalho, como no WhatsApp Web.",
89
+ "alerts.push.webEnableTitle": "Ative as notificações web",
90
+ "alerts.push.webMissingVapidMessage": "Defina EXPO_PUBLIC_WEB_PUSH_VAPID_PUBLIC_KEY no .env e reinicie o servidor web.",
91
+ "alerts.push.webMissingVapidTitle": "Web Push não configurado",
92
+ "alerts.pushDiag.browserPermissionDenied": "Permissão de notificação negada pelo navegador.",
93
+ "alerts.pushDiag.expoGoUnsupported": "Ambiente sem suporte a push (Expo Go no Android).",
94
+ "alerts.pushDiag.moduleUnavailable": "expo-notifications não pôde ser carregado.",
95
+ "alerts.pushDiag.physicalDeviceRequired": "Push remoto exige aparelho físico (não emulador).",
96
+ "alerts.pushDiag.projectIdMissing": "extra.eas.projectId ausente no app.json.",
97
+ "alerts.pushDiag.systemPermissionDenied": "Permissão de notificação negada pelo sistema.",
98
+ "alerts.pushDiag.vapidKeyMissing": "EXPO_PUBLIC_WEB_PUSH_VAPID_PUBLIC_KEY ausente.",
99
+ "alerts.pushTest.acceptedByExpo": "Push aceito pela Expo.",
100
+ "alerts.pushTest.expoApiError": "Erro na API da Expo.",
101
+ "alerts.pushTest.localBody": "Se você viu isto, permissão e canal estão OK no aparelho.",
102
+ "alerts.pushTest.localScheduled": "Notificação local agendada.",
103
+ "alerts.pushTest.localTitle": "Teste local 🔔",
104
+ "alerts.pushTest.moduleUnavailable": "expo-notifications indisponível neste ambiente.",
105
+ "alerts.pushTest.permissionDenied": "Permissão de notificação negada.",
106
+ "alerts.pushTest.remoteBody": "Push remoto via Expo chegou no aparelho.",
107
+ "alerts.pushTest.remoteTitle": "Teste remoto 🚀",
108
+ "alerts.pushTest.sendError": "Erro no envio.",
109
+ "alerts.pushTest.ticketFormat": "Ticket {id}",
110
+ "alerts.pushTest.tokenUnavailable": "Token de push indisponível.",
36
111
  "alerts.report": "Denúncia",
37
112
  "alerts.report.already": "Você já denunciou este perfil nas últimas 24 horas.",
38
113
  "alerts.report.chooseReason": "Escolha o motivo da denúncia.",
@@ -40,16 +115,30 @@ export const PT_BR_MESSAGES = {
40
115
  "alerts.report.writeSummary": "Escreva um breve resumo do que aconteceu.",
41
116
  "alerts.soon": "Em breve",
42
117
  "alerts.soonFeature": "{feature} ainda não está disponível.",
118
+ "alerts.systemNotif.browserLabel": "Configurar no navegador",
119
+ "alerts.systemNotif.browserSubtitle": "Abrir permissões do site Proulr neste navegador",
120
+ "alerts.systemNotif.deviceLabel": "Configurar no aparelho",
121
+ "alerts.systemNotif.deviceSubtitle": "Abrir painel de notificações do sistema",
43
122
  "alerts.tryAgain": "Tente novamente.",
44
123
  "alerts.unavailable": "Indisponível",
45
124
  "alerts.wait": "Aguarde",
125
+ "alerts.webNotif.chromiumSteps": "No {browser}: toque no cadeado (ou ícone ⓘ) à esquerda da URL {origin} → Configurações do site → Notificações → Permitir.",
126
+ "alerts.webNotif.firefoxSteps": "No Firefox: toque no cadeado à esquerda da URL {origin} → Conexão segura → Mais informações → Permissões → Notificações → Permitir.",
127
+ "alerts.webNotif.genericSteps": "Abra as permissões do site {origin} no seu navegador (ícone ao lado da URL) e permita Notificações para o Proulr.",
128
+ "alerts.webNotif.gotIt": "Entendi",
129
+ "alerts.webNotif.safariSteps": "No Safari: abra Ajustes (ou Safari → Ajustes no Mac) → Sites → Notificações → encontre {origin} e escolha Permitir.",
130
+ "alerts.webNotif.title": "Permissões do site",
46
131
  "alerts.yourHandle": "Seu @",
47
132
  "auth.ageGate.banner": "É rápido e seguro: o vídeo serve só para verificar idade adulta — não pedimos documento nem data de nascimento nesta etapa.",
133
+ "auth.ageGate.cameraNotReady": "A câmera ainda não está pronta. Aguarde um instante.",
134
+ "auth.ageGate.captureFaceFail": "Não foi possível capturar o rosto.",
135
+ "auth.ageGate.captureFaceVideoFail": "Não foi possível capturar o rosto no vídeo.",
48
136
  "auth.ageGate.cta": "Continuar — leva poucos segundos",
49
137
  "auth.ageGate.errorTitle": "Erro na verificação",
50
138
  "auth.ageGate.manualReviewHint": "Se a validação automática falhar, revisamos manualmente — você não perde o cadastro.",
51
139
  "auth.ageGate.processingSubtitle": "Analisando seu vídeo. Em geral leva poucos segundos.",
52
140
  "auth.ageGate.processingTitle": "Verificando idade",
141
+ "auth.ageGate.recordVideoFail": "Falha ao gravar o vídeo.",
53
142
  "auth.ageGate.steps": "1. Centralize seu rosto no oval\n2. Grave um vídeo de 3 segundos\n3. Aguarde a validação automática",
54
143
  "auth.ageGate.subtitle": "Só um vídeo de 3 segundos para confirmar que você tem 18 anos ou mais",
55
144
  "auth.ageGate.title": "Verificação rápida e segura",
@@ -58,6 +147,19 @@ export const PT_BR_MESSAGES = {
58
147
  "auth.ageGate.trustSafeBody": "Usado só para confirmar idade. Seus dados ficam protegidos",
59
148
  "auth.ageGate.trustSafeTitle": "Seguro",
60
149
  "auth.common.back": "Voltar",
150
+ "auth.googleError.expoGoIncomplete": "Login com Google não concluído no Expo Go. Configure EXPO_PUBLIC_AUTH_REDIRECT_URL (exp://IP:8081/--/auth-callback) ou teste com npx expo run:android.",
151
+ "auth.googleError.generic": "Não foi possível concluir o login com Google.",
152
+ "auth.googleError.inProgress": "Login com Google já está em andamento.",
153
+ "auth.googleError.nativeModuleMissing": "Login Google nativo indisponível neste build. Gere um novo development build ou APK com o plugin @react-native-google-signin/google-signin (npx expo run:android / EAS Build).",
154
+ "auth.googleError.playServicesUnavailable": "Google Play Services indisponível neste dispositivo.",
155
+ "auth.googleError.providerDisabled": "Google OAuth não está habilitado no servidor. Preencha GOOGLE_CLIENT_ID e GOOGLE_CLIENT_SECRET no .env e rode: npm run configure:google-oauth",
156
+ "auth.googleError.redirectNotAllowed": "URL de retorno OAuth não autorizada no servidor. Rode npm run configure:google-oauth para sincronizar os redirects na VPS.",
157
+ "auth.googleError.startFail": "Não foi possível iniciar o login com Google.",
158
+ "auth.googleError.tokenMissing": "Token do Google indisponível.",
159
+ "auth.googleError.webClientIdMissing": "EXPO_PUBLIC_GOOGLE_WEB_CLIENT_ID não configurado.",
160
+ "auth.googleInfo.expoGoBrowserFlow": "No Expo Go o login nativo com Google não está disponível. O app abre o navegador; no APK/build nativo (npx expo run:android) o login usa a conta Google do aparelho.",
161
+ "auth.googleInfo.missingWebClientId": "Configure EXPO_PUBLIC_GOOGLE_WEB_CLIENT_ID no .env para entrar com Google.",
162
+ "auth.googleInfo.nativeBuildSdk": "Build nativo detectado — o login Google usa o SDK do aparelho. Se falhar, confirme o client Android (pacote com.proulr.app + SHA-1) no Google Cloud.",
61
163
  "auth.locale.changeA11y": "Alterar idioma",
62
164
  "auth.locale.currentA11y": "Idioma atual: {label}",
63
165
  "auth.login.createAccount": "Criar conta",
@@ -102,6 +204,12 @@ export const PT_BR_MESSAGES = {
102
204
  "auth.welcome.createAccount": "Criar conta",
103
205
  "auth.welcome.heroCaption": "Entre na caçada noturna",
104
206
  "auth.welcome.signIn": "Entrar",
207
+ "chat.audio.error.unavailable": "Arquivo de áudio indisponível.",
208
+ "chat.common.listPair": "{a} e {b}",
209
+ "chat.common.someone": "Alguém",
210
+ "chat.common.you": "Você",
211
+ "chat.date.today": "Hoje",
212
+ "chat.date.yesterday": "Ontem",
105
213
  "chat.empty.chats.title": "Nenhuma conversa ainda.",
106
214
  "chat.empty.flashes.hint": "Reações e sinais de interesse aparecem aqui.",
107
215
  "chat.empty.flashes.title": "Nenhum Flash ainda",
@@ -109,13 +217,69 @@ export const PT_BR_MESSAGES = {
109
217
  "chat.empty.visits.title": "Ninguém visualizou seu perfil nas últimas 24h",
110
218
  "chat.fab.closed": "Criar no Chat",
111
219
  "chat.fab.newGroup": "Novo grupo",
220
+ "chat.file.error.downloadFailed": "Não foi possível baixar o arquivo.",
221
+ "chat.file.error.notDownloaded": "Arquivo ainda não foi baixado.",
222
+ "chat.file.error.unavailable": "Arquivo indisponível.",
223
+ "chat.file.openDialogTitle": "Abrir arquivo",
112
224
  "chat.filter.all": "Todas",
113
225
  "chat.filter.nearby": "Próximos",
114
226
  "chat.filter.online": "Online",
227
+ "chat.filter.received": "Recebidas",
115
228
  "chat.filter.sent": "Enviadas",
116
229
  "chat.filter.unread": "Não lidas",
230
+ "chat.group.header.members": "{count} membros",
231
+ "chat.group.header.onlineAndMembers": "{online} online · {count} membros",
232
+ "chat.group.photo.error.mustBeImage": "A foto do grupo precisa ser uma imagem.",
233
+ "chat.group.system.created": "Grupo foi criado",
234
+ "chat.group.system.createdTitled": "Grupo \"{title}\" foi criado",
235
+ "chat.group.system.memberJoined": "Novo membro {name} entrou no grupo",
236
+ "chat.group.system.memberLeft": "{name} saiu do grupo",
237
+ "chat.group.system.memberRemoved": "{name} foi removido do grupo",
238
+ "chat.group.system.memberRemovedUnknown": "Um membro foi removido do grupo",
239
+ "chat.group.system.membersJoined": "Novos membros entraram no grupo",
240
+ "chat.group.system.membersJoinedNamed": "Novos membros {names} entraram no grupo",
241
+ "chat.group.system.renamed": "O grupo foi renomeado para {title}",
242
+ "chat.group.system.renamedBy": "{name} alterou o nome do grupo para {title}",
243
+ "chat.group.system.updated": "Atualização do grupo",
244
+ "chat.groupInvite.shareMessage": "Entre no grupo \"{title}\" no Proulr\n{url}",
245
+ "chat.inbox.distanceHidden": "Distância oculta",
246
+ "chat.inbox.distanceUnavailable": "Distância indisponível",
117
247
  "chat.invite.subtitle": "Entrando no grupo",
118
248
  "chat.invite.title": "Convite",
249
+ "chat.media.albumRevokedNamed": "Álbum removido: {name}",
250
+ "chat.media.audio": "Áudio",
251
+ "chat.media.error.readImage": "Não foi possível ler a imagem.",
252
+ "chat.media.error.readSelected": "Não foi possível ler a mídia selecionada.",
253
+ "chat.media.file": "Arquivo",
254
+ "chat.media.gif": "GIF",
255
+ "chat.media.location": "Localização",
256
+ "chat.media.photo": "Foto",
257
+ "chat.media.video": "Vídeo",
258
+ "chat.presence.offline": "Offline",
259
+ "chat.presence.online": "Online",
260
+ "chat.presence.recent": "Ativo recentemente",
261
+ "chat.preview.albumAccessRequest": "Pedido de acesso ao álbum",
262
+ "chat.preview.albumNamed": "Álbum: {name}",
263
+ "chat.preview.albumRequest": "Pediu acesso ao álbum",
264
+ "chat.preview.albumRequestMine": "Pedido de álbum",
265
+ "chat.preview.albumRevoked": "Álbum removido",
266
+ "chat.preview.encrypted": "Mensagem criptografada",
267
+ "chat.preview.fileNamed": "Arquivo: {name}",
268
+ "chat.preview.groupMessage": "Mensagem do grupo",
269
+ "chat.preview.message": "Mensagem",
270
+ "chat.preview.openedMessage": "Mensagem aberta",
271
+ "chat.preview.poll": "Enquete",
272
+ "chat.preview.pollNamed": "Enquete: {question}",
273
+ "chat.preview.reaction": "{subject} reagiu com {emoji} a: {preview}",
274
+ "chat.preview.senderPrefix": "{name}: ",
275
+ "chat.preview.storyReaction": "Reagiu ao story",
276
+ "chat.preview.storyReply": "Resposta ao story",
277
+ "chat.savedPhrases.grabDrink": "Vamos tomar algo?",
278
+ "chat.savedPhrases.greeting": "Oi! Tudo bem?",
279
+ "chat.savedPhrases.letsTalk": "E aí, bora conversar?",
280
+ "chat.savedPhrases.likedProfile": "Adorei seu perfil!",
281
+ "chat.savedPhrases.nearby": "Tô por perto, quer se encontrar?",
282
+ "chat.savedPhrases.whatTime": "Que horas você pode?",
119
283
  "chat.search.placeholder": "Buscar conversas…",
120
284
  "chat.segment.chats": "Chats",
121
285
  "chat.segment.flashes": "Flashes",
@@ -123,8 +287,29 @@ export const PT_BR_MESSAGES = {
123
287
  "chat.thread.fallbackGroup": "Grupo",
124
288
  "chat.thread.fallbackName": "Conversa",
125
289
  "common.active": "Ativo",
290
+ "common.album.defaultName": "Meu álbum",
291
+ "common.album.expiry10m": "10 minutos",
292
+ "common.album.expiry1h": "1 hora",
293
+ "common.album.expiry24h": "24 horas",
294
+ "common.album.expiryNever": "Sem expiração",
295
+ "common.album.expiryViewOnce": "Ver uma vez",
296
+ "common.album.invalidName": "Nome inválido.",
297
+ "common.album.itemCountMany": "{count} itens",
298
+ "common.album.itemCountOne": "1 item",
299
+ "common.album.maxAlbums": "Você pode ter no máximo {max} álbuns.",
300
+ "common.album.maxPhotos": "Máximo de {max} fotos por álbum.",
301
+ "common.album.maxVideos": "Máximo de {max} vídeo por álbum.",
126
302
  "common.app": "App",
127
303
  "common.attention": "Atenção",
304
+ "common.camera.notReady": "A câmera ainda não está pronta. Aguarde um instante.",
305
+ "common.camera.photoSaveFail": "Não foi possível salvar a foto.",
306
+ "common.camera.streamUnavailable": "Stream da câmera indisponível neste navegador.",
307
+ "common.camera.videoFileUnavailable": "Arquivo de vídeo indisponível.",
308
+ "common.camera.videoRecordError": "Falha ao gravar o vídeo.",
309
+ "common.camera.videoRecordFail": "Não foi possível gravar o vídeo.",
310
+ "common.camera.videoRecordingUnsupported": "Gravação de vídeo não está disponível neste navegador. Use o app no celular.",
311
+ "common.camera.videoSaveFail": "Não foi possível salvar o vídeo.",
312
+ "common.camera.webNotReadyToRecord": "Câmera web ainda não está pronta para gravar.",
128
313
  "common.cancel": "Cancelar",
129
314
  "common.chat": "Chat",
130
315
  "common.chats": "Chats",
@@ -135,10 +320,25 @@ export const PT_BR_MESSAGES = {
135
320
  "common.huntConnectDiscover": "Caçar · Conectar · Descobrir",
136
321
  "common.id": "ID",
137
322
  "common.media": "Mídia",
323
+ "common.media.readFail": "Não foi possível ler a mídia selecionada.",
138
324
  "common.notifications": "Notificações",
139
325
  "common.ops": "Ops",
140
326
  "common.options": "Opções",
141
327
  "common.privacy": "Privacidade",
328
+ "common.purchase.cancelled": "Compra cancelada.",
329
+ "common.purchase.genericFail": "Não foi possível concluir a compra. Tente novamente em instantes.",
330
+ "common.purchase.manageNativeOnly": "Gerenciamento de assinatura disponível apenas no app iOS/Android.",
331
+ "common.purchase.proPlanDescription": "Modo furtivo, confirmações de leitura e mais",
332
+ "common.purchase.proPlanTitle": "Proulr Pro",
333
+ "common.purchase.productNotFound": "Produto não encontrado no RevenueCat. Verifique offerings e IDs de produto.",
334
+ "common.purchase.productUnavailable": "Produto indisponível na loja neste momento.",
335
+ "common.purchase.storeOffline": "Sem conexão com a loja. Verifique sua internet e tente novamente.",
336
+ "common.purchase.storeSettingsOpenFail": "Não foi possível abrir as configurações da loja.",
337
+ "common.purchase.unavailableInstallSdk": "Instale react-native-purchases e gere um novo build nativo para habilitar compras.",
338
+ "common.purchase.unavailableKeysMissing": "Compras in-app em breve — chaves RevenueCat ainda não configuradas neste build.",
339
+ "common.purchase.unavailableNotConfigured": "Compras in-app indisponíveis — configure EXPO_PUBLIC_REVENUECAT_* neste build.",
340
+ "common.purchase.unavailableRuntime": "Compras in-app disponíveis apenas no app iOS/Android (build nativo).",
341
+ "common.purchase.unavailableSdkMissing": "SDK de compras não instalado. Adicione react-native-purchases e gere um novo build nativo.",
142
342
  "common.save": "Salvar",
143
343
  "common.saved": "Salvo",
144
344
  "common.security": "Segurança",
@@ -179,8 +379,15 @@ export const PT_BR_MESSAGES = {
179
379
  "discover.subtitle.huntingIn": "Caçando em {label}",
180
380
  "discover.subtitle.huntingOther": "Caçando em outra região",
181
381
  "discover.subtitle.nearby": "Encontros por proximidade",
382
+ "flash.cooldown.limitReached": "Você já enviou uma reação para esta pessoa nas últimas 24 horas.",
383
+ "flash.cooldown.retryInDays": "Você pode enviar outra reação em {days} dia(s).",
384
+ "flash.cooldown.retryInHours": "Você pode enviar outra reação em {hours}h.",
182
385
  "flash.deprecated.subtitle": "Migrado para o chat-bff",
183
386
  "flash.deprecated.title": "Flashes",
387
+ "flash.inbox.actionReply": "Responder",
388
+ "flash.inbox.reactionLine": "{name} {message}",
389
+ "flash.inbox.sentYouFlash": "{name} te enviou um Flash",
390
+ "flash.inbox.someone": "Alguém",
184
391
  "flash.msg.chat": "quer conversar",
185
392
  "flash.msg.eyes": "está de olho em você",
186
393
  "flash.msg.fire": "achou você quente",
@@ -193,19 +400,73 @@ export const PT_BR_MESSAGES = {
193
400
  "flash.reaction.flash": "Flash",
194
401
  "flash.reaction.heart": "Curti",
195
402
  "flash.reaction.wave": "Oi",
403
+ "hybrid.chatThread.fallbackTitle": "Conversa",
404
+ "hybrid.unavailable.album": "Álbum indisponível.",
405
+ "hybrid.unavailable.chatThread": "Conversa indisponível — volte e tente de novo.",
406
+ "hybrid.unavailable.comments": "Comentários indisponíveis.",
407
+ "hybrid.unavailable.group": "Grupo indisponível.",
408
+ "hybrid.unavailable.invite": "Convite indisponível.",
409
+ "hybrid.unavailable.profile": "Perfil indisponível.",
410
+ "hybrid.unavailable.profileReport": "Perfil indisponível para denúncia.",
411
+ "hybrid.unavailable.settingsHome": "Atualize o app para ver as configurações.",
412
+ "hybrid.unavailable.socialProfile": "Perfil social indisponível.",
413
+ "profile.ageGate.mail.accountSection": "--- Dados da conta ---",
414
+ "profile.ageGate.mail.descriptionSection": "--- Descrição do ocorrido ---",
415
+ "profile.ageGate.mail.email": "E-mail: {email}",
416
+ "profile.ageGate.mail.estimatedRange": "Faixa estimada: {min}–{max} anos",
417
+ "profile.ageGate.mail.greeting": "Olá, equipe Proulr.",
418
+ "profile.ageGate.mail.name": "Nome: {name}",
419
+ "profile.ageGate.mail.notProvided": "(não informado)",
420
+ "profile.ageGate.mail.reason": "Motivo: {reason}",
421
+ "profile.ageGate.mail.reasonFallback": "não reconhecido como maior de idade",
422
+ "profile.ageGate.mail.request": "Solicito revisão manual da minha verificação de idade.",
423
+ "profile.ageGate.mail.resultSection": "--- Resultado automático ---",
424
+ "profile.ageGate.mail.subject": "Verificação de idade – revisão manual",
425
+ "profile.ageGate.mail.thanks": "Obrigado.",
426
+ "profile.ageGate.mail.userId": "ID do usuário: {id}",
427
+ "profile.ageGate.mail.vibesHandle": "@ Vibes: {handle}",
428
+ "profile.ageVerify.genericError": "Não foi possível concluir a verificação de idade.",
429
+ "profile.ageVerify.imageTooSmall": "Não foi possível analisar o vídeo. Tente novamente.",
430
+ "profile.ageVerify.lowConfidence": "A imagem ficou pouco nítida. Tente novamente em um ambiente mais iluminado.",
431
+ "profile.ageVerify.networkError": "Falha de conexão. Verifique sua internet e tente novamente.",
432
+ "profile.ageVerify.noFace": "Não detectamos um rosto no vídeo. Tente novamente com boa iluminação.",
433
+ "profile.ageVerify.notAdult": "Não foi possível confirmar que você tem 18 anos ou mais.",
434
+ "profile.ageVerify.serviceUnavailable": "O serviço de verificação está sobrecarregado ou reiniciando. Aguarde alguns segundos e tente de novo.",
435
+ "profile.albums.fallbackName": "Álbum",
196
436
  "profile.albums.subtitle": "Coleções privadas de fotos e vídeos",
197
437
  "profile.albums.title": "Meus álbuns",
438
+ "profile.attribute.bodyHair": "Pelo corporal",
439
+ "profile.attribute.bodyType": "Porte físico",
440
+ "profile.attribute.ethnicity": "Etnia",
441
+ "profile.attribute.gender": "Gênero",
442
+ "profile.attribute.height": "Altura",
443
+ "profile.attribute.meetingPlace": "Local de encontro",
444
+ "profile.attribute.partnership": "Parceria",
445
+ "profile.attribute.position": "Posição",
446
+ "profile.attribute.pronouns": "Pronomes",
447
+ "profile.attribute.relationship": "Relacionamento",
448
+ "profile.attribute.residence": "Onde moro",
449
+ "profile.attribute.weight": "Peso",
450
+ "profile.attribute.whatIDo": "O que eu faço",
198
451
  "profile.completion.banner": "Complete seu perfil para aparecer mais",
199
452
  "profile.completion.cta": "Completar perfil",
453
+ "profile.completion.fieldBirthDate": "Data de nascimento",
454
+ "profile.completion.fieldName": "Nome",
200
455
  "profile.completion.gateLater": "Fazer depois e começar a usar",
201
456
  "profile.completion.gateNow": "Completar agora",
202
457
  "profile.completion.gateTitle": "Complete seu perfil para ter mais alcance",
203
458
  "profile.completion.reminderBody": "Perfis completos aparecem mais no Caçar e recebem mais Flashes.",
204
459
  "profile.completion.reminderTitle": "Complete seu perfil",
460
+ "profile.fallback.someone": "Alguém",
205
461
  "profile.handle.invalidFormat": "O @ deve ter 3–30 caracteres (letras minúsculas, números e _).",
206
462
  "profile.handle.rateLimited": "Você só pode trocar o @ a cada 30 dias.",
207
463
  "profile.handle.reserved": "Esse @ é reservado e não pode ser usado.",
208
464
  "profile.handle.taken": "Esse @ já está em uso por outra pessoa.",
465
+ "profile.moderation.block": "Bloquear perfil",
466
+ "profile.moderation.hide": "Ocultar da grade",
467
+ "profile.moderation.mute": "Silenciar notificações",
468
+ "profile.moderation.report": "Denunciar",
469
+ "profile.moderation.unmute": "Permitir notificações",
209
470
  "profile.onboarding.corpo.interstitial": "Vamos falar sobre relacionamento.",
210
471
  "profile.onboarding.corpo.subtitle": "Altura, peso, etnia, porte e pelos.",
211
472
  "profile.onboarding.corpo.title": "Seu corpo",
@@ -230,20 +491,130 @@ export const PT_BR_MESSAGES = {
230
491
  "profile.onboarding.relacionamento.interstitial": "Conte sobre seus interesses.",
231
492
  "profile.onboarding.relacionamento.subtitle": "Status, parceria e onde gosta de se encontrar.",
232
493
  "profile.onboarding.relacionamento.title": "Relacionamento",
494
+ "profile.onboarding.resumeBody": "Falta pouco pra começar a caçar. Abra o Proulr e termine seu perfil.",
495
+ "profile.onboarding.resumeTitle": "Continue seu cadastro",
233
496
  "profile.onboarding.saude.interstitial": "Vamos adicionar suas redes sociais.",
234
497
  "profile.onboarding.saude.subtitle": "HIV, precauções, vacinas e práticas.",
235
498
  "profile.onboarding.saude.title": "Saúde",
236
499
  "profile.onboarding.sobre.interstitial": "Agora algumas informações sobre o seu corpo.",
237
500
  "profile.onboarding.sobre.subtitle": "Uma bio curta, o que você faz e onde mora.",
238
501
  "profile.onboarding.sobre.title": "Sobre você",
502
+ "profile.options.bodyHair.hairy": "Peludo",
503
+ "profile.options.bodyHair.light": "Pouco peludo",
504
+ "profile.options.bodyHair.moderate": "Moderado",
505
+ "profile.options.bodyHair.none": "Sem pelos",
506
+ "profile.options.bodyHair.veryHairy": "Muito peludo",
507
+ "profile.options.bodyType.athletic": "Atlético",
508
+ "profile.options.bodyType.average": "Mediano",
509
+ "profile.options.bodyType.muscular": "Musculoso",
510
+ "profile.options.bodyType.overweight": "Acima do peso",
511
+ "profile.options.bodyType.slim": "Magro",
512
+ "profile.options.bodyType.stocky": "Parrudo",
513
+ "profile.options.community.activism": "Ativismo",
514
+ "profile.options.community.art": "Arte",
515
+ "profile.options.community.college": "Universitário",
516
+ "profile.options.community.fitness": "Fitness",
517
+ "profile.options.community.gamer": "Gamer",
518
+ "profile.options.community.geek": "Geek",
519
+ "profile.options.community.music": "Música",
520
+ "profile.options.community.nerd": "Nerd",
521
+ "profile.options.community.pop": "Pop",
522
+ "profile.options.community.travel": "Viagem",
523
+ "profile.options.ethnicity.asian": "Asiático",
524
+ "profile.options.ethnicity.black": "Negro",
525
+ "profile.options.ethnicity.indigenous": "Indígena",
526
+ "profile.options.ethnicity.mixed": "Pardo",
527
+ "profile.options.ethnicity.white": "Branco",
528
+ "profile.options.explicitContent.always": "Sempre",
529
+ "profile.options.explicitContent.depends": "Depende",
530
+ "profile.options.explicitContent.never": "Nunca",
531
+ "profile.options.explicitContent.notSelected": "Não selecionado",
532
+ "profile.options.gender.cisMan": "Homem cis",
533
+ "profile.options.gender.cisWoman": "Mulher cis",
534
+ "profile.options.gender.nonBinary": "Não-binário",
535
+ "profile.options.gender.transMan": "Homem trans",
536
+ "profile.options.gender.transWoman": "Mulher trans",
537
+ "profile.options.hivStatus.negative": "Negativo",
538
+ "profile.options.hivStatus.negativePrep": "Negativo (PrEP)",
539
+ "profile.options.hivStatus.positive": "Positivo",
540
+ "profile.options.hivStatus.positiveUndetectable": "Positivo (indetectável)",
541
+ "profile.options.lookingFor.chat": "Bate-papo",
542
+ "profile.options.lookingFor.dates": "Encontros",
543
+ "profile.options.lookingFor.friendship": "Amizade",
544
+ "profile.options.lookingFor.networking": "Networking",
545
+ "profile.options.lookingFor.relationship": "Relacionamento",
546
+ "profile.options.lookingFor.rightNow": "Agora",
547
+ "profile.options.meetingPlace.goOut": "Sair",
548
+ "profile.options.meetingPlace.myPlace": "Meu lugar",
549
+ "profile.options.meetingPlace.theirPlace": "Lugar dele",
550
+ "profile.options.meetingPlace.toArrange": "A combinar",
551
+ "profile.options.other": "Outro",
552
+ "profile.options.partnership.inRelationship": "Em um relacionamento",
553
+ "profile.options.partnership.married": "Casado",
554
+ "profile.options.partnership.open": "Relacionamento aberto",
555
+ "profile.options.partnership.polyamorous": "Poliamor",
556
+ "profile.options.partnership.single": "Solteiro",
557
+ "profile.options.precaution.condom": "Camisinha",
558
+ "profile.options.precaution.doxyPep": "DoxyPEP",
559
+ "profile.options.precaution.prep": "PrEP",
560
+ "profile.options.precaution.talkFirst": "Conversamos antes",
561
+ "profile.options.precaution.undetectable": "Indetectável",
562
+ "profile.options.pronoun.any": "Indiferente",
563
+ "profile.options.pronoun.heHim": "Ele/Dele",
564
+ "profile.options.pronoun.sheHer": "Ela/Dela",
565
+ "profile.options.pronoun.theyThem": "Elu/Delu",
566
+ "profile.options.relationship.complicated": "Enrolado",
567
+ "profile.options.relationship.dating": "Namorando",
568
+ "profile.options.relationship.married": "Casado",
569
+ "profile.options.relationship.open": "Relação aberta",
570
+ "profile.options.relationship.single": "Solteiro",
571
+ "profile.options.sexPractice.fetish": "Fetiche",
572
+ "profile.options.sexPractice.kissing": "Beijo",
573
+ "profile.options.sexPractice.massage": "Massagem",
574
+ "profile.options.sexPractice.noPreference": "Sem preferência",
575
+ "profile.options.sexPractice.oral": "Oral",
576
+ "profile.options.tribe.bear": "Urso",
577
+ "profile.options.tribe.daddy": "Daddy",
578
+ "profile.options.tribe.discreet": "Discreto",
579
+ "profile.options.tribe.geek": "Geek",
580
+ "profile.options.tribe.jock": "Jock",
581
+ "profile.options.tribe.leather": "Leather",
582
+ "profile.options.tribe.muscle": "Musculoso",
583
+ "profile.options.tribe.otter": "Otter",
584
+ "profile.options.tribe.trans": "Trans",
585
+ "profile.options.tribe.twink": "Twink",
586
+ "profile.options.vaccine.covid19": "COVID-19",
587
+ "profile.options.vaccine.hepatitisA": "Hepatite A",
588
+ "profile.options.vaccine.hepatitisB": "Hepatite B",
589
+ "profile.options.vaccine.hpv": "HPV",
590
+ "profile.options.vaccine.meningitis": "Meningite",
591
+ "profile.options.vaccine.mpox": "Mpox",
239
592
  "profile.photo.add": "Adicionar foto",
240
593
  "profile.photo.addPromptBody": "Perfis com foto recebem muito mais Flashes.",
241
594
  "profile.photo.addPromptTitle": "Que tal uma foto?",
242
595
  "profile.photo.continueWithout": "Continuar sem foto",
243
596
  "profile.photo.huntTitle": "Foto do Caçar",
597
+ "profile.photo.readError": "Não foi possível ler a imagem.",
598
+ "profile.photo.sourceCamera": "Câmera",
599
+ "profile.photo.sourceMessage": "Como deseja adicionar a imagem?",
600
+ "profile.photo.sourceTitle": "Foto de perfil",
244
601
  "profile.photo.vibesTitle": "Foto do Vibes",
602
+ "profile.social.placeholder.gamertag": "gamertag",
603
+ "profile.social.placeholder.handle": "@usuario",
604
+ "profile.social.placeholder.linkOrId": "link ou id",
605
+ "profile.social.placeholder.profileLink": "link do perfil",
606
+ "profile.social.placeholder.psnId": "PSN ID",
607
+ "profile.social.placeholder.username": "usuario",
608
+ "profile.social.placeholder.websiteUrl": "https://seu-site.com",
609
+ "profile.social.website": "Site",
610
+ "profile.surface.hunt": "Caçar",
611
+ "profile.surface.vibes": "Vibes",
612
+ "profile.trip.destinationFallback": "Destino",
613
+ "profile.trip.fromDate": "A partir de {date}",
614
+ "profile.trip.untilDate": "Até {date}",
245
615
  "profile.ui.customVibesHint": "O resto do perfil continua o mesmo nos dois modos.",
246
616
  "profile.ui.customVibesToggle": "Usar foto e nome diferentes no Vibes",
617
+ "profile.ui.customVibesToggleHint": "O resto do perfil continua o mesmo. Só a foto e o nome de exibição mudam nos posts do Vibes.",
247
618
  "profile.ui.editTitle": "Editar perfil",
248
619
  "profile.ui.handleLabel": "SEU @",
249
620
  "profile.ui.modeHunt": "Modo Caçar",
@@ -362,6 +733,10 @@ export const PT_BR_MESSAGES = {
362
733
  "shell.about.section.social": "Social",
363
734
  "shell.about.section.terms": "Termos e políticas",
364
735
  "shell.about.title": "Sobre",
736
+ "shell.appIcon.defaultHint": "Ícone principal com a marca",
737
+ "shell.appIcon.defaultLabel": "Proulr",
738
+ "shell.appIcon.discreetHint": "Aparência neutra de calendário na tela inicial",
739
+ "shell.appIcon.discreetLabel": "Discreto",
365
740
  "shell.consent.ads": "Publicidade personalizada",
366
741
  "shell.consent.ads.hint": "Quando ativarmos ads, respeitaremos esta escolha",
367
742
  "shell.consent.analytics": "Análise de uso",
@@ -469,6 +844,8 @@ export const PT_BR_MESSAGES = {
469
844
  "shell.quality.adaptive": "Adaptativa",
470
845
  "shell.quality.maximum": "Máxima",
471
846
  "shell.quality.thumbnail": "Miniatura",
847
+ "shell.quietHours.defaultRange": "22h às 8h",
848
+ "shell.quietHours.rangeFormat": "{start} às {end}",
472
849
  "shell.safety.blockReport.subtitle": "Como bloquear e reportar alguém",
473
850
  "shell.safety.blockReport.title": "Bloqueio e denúncias",
474
851
  "shell.safety.community.subtitle": "Regras de convivência no Proulr",
@@ -534,13 +911,44 @@ export const PT_BR_MESSAGES = {
534
911
  "shell.units.system": "Sistema",
535
912
  "shell.units.system.hint": "Segue o idioma do aparelho",
536
913
  "shell.units.title": "Unidades",
914
+ "social.count.millionShort": "{value} mi",
915
+ "social.count.thousandShort": "{value} mil",
537
916
  "social.fab.photos": "Fotos",
538
917
  "social.fab.publish": "Publicar",
539
918
  "social.fab.story": "Story",
540
919
  "social.feed.fab": "Criar no Feed",
541
920
  "social.feed.subtitle": "Publicações da comunidade",
542
921
  "social.feed.title": "Feed",
922
+ "social.media.readImageError": "Não foi possível ler a imagem.",
923
+ "social.notifyMode.all": "Tudo",
924
+ "social.notifyMode.allHint": "Posts, mídias e respostas deste perfil",
925
+ "social.notifyMode.media": "Só mídias",
926
+ "social.notifyMode.mediaHint": "Apenas fotos e vídeos",
927
+ "social.notifyMode.off": "Desativar",
928
+ "social.notifyMode.offHint": "Sem notificações deste perfil",
929
+ "social.notifyMode.replies": "Só respostas",
930
+ "social.notifyMode.repliesHint": "Quando esta pessoa responder posts",
931
+ "social.people.someone": "Alguém",
932
+ "social.replyAudience.everyone": "Qualquer pessoa",
933
+ "social.replyAudience.everyoneHint": "Todos podem responder a este post.",
934
+ "social.replyAudience.everyoneReply": "Qualquer pessoa pode responder",
935
+ "social.replyAudience.followers": "Quem te segue",
936
+ "social.replyAudience.followersHint": "Somente pessoas que seguem você podem responder.",
937
+ "social.replyAudience.followersReply": "Quem te segue pode responder",
938
+ "social.replyAudience.mentioned": "Somente quem você menciona",
939
+ "social.replyAudience.mentionedHint": "Apenas perfis mencionados no post podem responder.",
940
+ "social.replyAudience.mentionedReply": "Somente quem você menciona pode responder",
543
941
  "social.saved.title": "Itens salvos",
942
+ "social.story.captureImageError": "Não foi possível gerar a imagem do story.",
943
+ "social.storyFont.bold": "Negrito",
944
+ "social.storyFont.extrabold": "Impacto",
945
+ "social.storyFont.medium": "Leve",
946
+ "social.storyFont.regular": "Clássica",
947
+ "social.storyFont.semibold": "Semi",
948
+ "social.time.daysShort": "{count}d",
949
+ "social.time.hoursShort": "{count}h",
950
+ "social.time.minutesShort": "{count}min",
951
+ "social.time.now": "agora",
544
952
  "social.vibes.fab": "Criar no Vibes",
545
953
  "social.vibes.subtitle": "O que a comunidade está dizendo",
546
954
  "social.vibes.title": "Vibes",
@@ -553,6 +961,7 @@ export const EN_MESSAGES: FlatMessages = {
553
961
  "alerts.attention": "Attention",
554
962
  "alerts.block": "Block",
555
963
  "alerts.camera": "Camera error",
964
+ "alerts.common.ok": "OK",
556
965
  "alerts.couldNotAddTrip": "Couldn’t add the trip.",
557
966
  "alerts.couldNotComplete": "Couldn’t complete",
558
967
  "alerts.couldNotRemove": "Couldn’t remove.",
@@ -560,6 +969,20 @@ export const EN_MESSAGES: FlatMessages = {
560
969
  "alerts.couldNotSave": "Couldn’t save.",
561
970
  "alerts.couldNotSaveNetworks": "Couldn’t save social links.",
562
971
  "alerts.crop": "Couldn’t crop",
972
+ "alerts.dataExport.createJobFailed": "Couldn’t create the export job",
973
+ "alerts.dataExport.jobNotFound": "Export job not found",
974
+ "alerts.dataExport.processFailed": "Couldn’t process the export",
975
+ "alerts.dataExport.serverTimeout": "Timed out waiting for the server export",
976
+ "alerts.dataExport.shareDialogTitle": "Export local data",
977
+ "alerts.dataExport.sharingUnavailable": "Sharing is unavailable on this device",
978
+ "alerts.devicePermission.location": "location",
979
+ "alerts.devicePermission.notifications": "notifications",
980
+ "alerts.devicePermission.pairFormat": "{first} and {second}",
981
+ "alerts.devicePermission.sound": "sound",
982
+ "alerts.devicePermission.tripleFormat": "{first}, {second} and {third}",
983
+ "alerts.diagnostics.connectionFailed": "Connection failed",
984
+ "alerts.diagnostics.locationFailed": "Couldn’t get location",
985
+ "alerts.diagnostics.permissionDenied": "Permission denied",
563
986
  "alerts.displayNameRequired": "Enter a display name.",
564
987
  "alerts.empty": "Empty",
565
988
  "alerts.error": "Error",
@@ -573,9 +996,69 @@ export const EN_MESSAGES: FlatMessages = {
573
996
  "alerts.location": "Location",
574
997
  "alerts.mic": "Microphone",
575
998
  "alerts.ops": "Oops",
999
+ "alerts.permission.cameraBlocked": "Camera blocked. Enable it in device settings.",
1000
+ "alerts.permission.cameraDenied": "Camera permission denied. Enable it in device settings.",
1001
+ "alerts.permission.locationBlocked": "Location blocked. Enable it in device settings.",
1002
+ "alerts.permission.locationDenied": "Location permission denied. Enable it in settings to use Discover near you.",
1003
+ "alerts.permission.mediaLibraryBlocked": "Photo library blocked. Enable it in device settings.",
1004
+ "alerts.permission.mediaLibraryDenied": "Photo library permission denied. Enable it in settings to pick photos and videos.",
1005
+ "alerts.permission.microphoneBlocked": "Microphone blocked. Enable it in device settings.",
1006
+ "alerts.permission.microphoneDenied": "Microphone permission denied. Enable it in settings to record audio and video.",
1007
+ "alerts.permission.notificationsBlocked": "Notifications blocked. Enable them in device settings.",
1008
+ "alerts.permission.notificationsDenied": "Notification permission denied. Enable it in device settings.",
576
1009
  "alerts.photoPick": "Couldn’t pick photo",
577
1010
  "alerts.photoUpload": "Couldn’t upload photo",
578
1011
  "alerts.pinInvalid": "Invalid PIN. Use at least 4 digits.",
1012
+ "alerts.push.blockedWebMessage": "Allow Proulr notifications in your browser to get messages like WhatsApp Web.",
1013
+ "alerts.push.blockedWebTitle": "Notifications blocked",
1014
+ "alerts.push.deniedMessage": "Enable Proulr notifications in your phone settings to receive alerts.",
1015
+ "alerts.push.deniedTitle": "Notifications disabled",
1016
+ "alerts.push.enableMessage": "Tap below to allow message and flash alerts.",
1017
+ "alerts.push.enableTitle": "Turn on notifications",
1018
+ "alerts.push.expoGoMessage": "On Android, tray notifications require a native build. Expo Go doesn’t deliver push.",
1019
+ "alerts.push.expoGoTitle": "Expo Go doesn’t support push",
1020
+ "alerts.push.flashSentBody": "{name} sent you a Flash",
1021
+ "alerts.push.groupFallbackTitle": "Group",
1022
+ "alerts.push.groupInviteBody": "{name} added you to the group",
1023
+ "alerts.push.groupMessageBody": "{name}: Message",
1024
+ "alerts.push.messageBody": "Message",
1025
+ "alerts.push.missingProjectIdMessage": "Set extra.eas.projectId in app.json to register push.",
1026
+ "alerts.push.missingProjectIdTitle": "EAS project not configured",
1027
+ "alerts.push.nativeActiveMessage": "You’ll get alerts in your phone tray even with the app closed.",
1028
+ "alerts.push.nativeActiveTitle": "Notifications active",
1029
+ "alerts.push.newFlashTitle": "New Flash!",
1030
+ "alerts.push.newReactionTitle": "New reaction!",
1031
+ "alerts.push.reactionBody": "{name} {message} {emoji}",
1032
+ "alerts.push.simulatorMessage": "Push doesn’t work in an emulator. Install the app on a real device.",
1033
+ "alerts.push.simulatorTitle": "Use a physical phone",
1034
+ "alerts.push.someoneFallback": "Someone",
1035
+ "alerts.push.unavailableEnvMessage": "Install a native build to receive messages with the app closed.",
1036
+ "alerts.push.unavailableEnvTitle": "Push unavailable in this environment",
1037
+ "alerts.push.webActiveMessage": "You’ll get desktop alerts even with the tab in the background or closed.",
1038
+ "alerts.push.webActiveTitle": "Web notifications active",
1039
+ "alerts.push.webEnableMessage": "Get messages and Flashes on your desktop, like WhatsApp Web.",
1040
+ "alerts.push.webEnableTitle": "Turn on web notifications",
1041
+ "alerts.push.webMissingVapidMessage": "Set EXPO_PUBLIC_WEB_PUSH_VAPID_PUBLIC_KEY in .env and restart the web server.",
1042
+ "alerts.push.webMissingVapidTitle": "Web Push not configured",
1043
+ "alerts.pushDiag.browserPermissionDenied": "Notification permission denied by the browser.",
1044
+ "alerts.pushDiag.expoGoUnsupported": "Environment without push support (Expo Go on Android).",
1045
+ "alerts.pushDiag.moduleUnavailable": "expo-notifications could not be loaded.",
1046
+ "alerts.pushDiag.physicalDeviceRequired": "Remote push requires a physical device (not an emulator).",
1047
+ "alerts.pushDiag.projectIdMissing": "extra.eas.projectId missing in app.json.",
1048
+ "alerts.pushDiag.systemPermissionDenied": "Notification permission denied by the system.",
1049
+ "alerts.pushDiag.vapidKeyMissing": "EXPO_PUBLIC_WEB_PUSH_VAPID_PUBLIC_KEY missing.",
1050
+ "alerts.pushTest.acceptedByExpo": "Push accepted by Expo.",
1051
+ "alerts.pushTest.expoApiError": "Expo API error.",
1052
+ "alerts.pushTest.localBody": "If you saw this, permission and channel are OK on this device.",
1053
+ "alerts.pushTest.localScheduled": "Local notification scheduled.",
1054
+ "alerts.pushTest.localTitle": "Local test 🔔",
1055
+ "alerts.pushTest.moduleUnavailable": "expo-notifications unavailable in this environment.",
1056
+ "alerts.pushTest.permissionDenied": "Notification permission denied.",
1057
+ "alerts.pushTest.remoteBody": "Remote push via Expo reached this device.",
1058
+ "alerts.pushTest.remoteTitle": "Remote test 🚀",
1059
+ "alerts.pushTest.sendError": "Send error.",
1060
+ "alerts.pushTest.ticketFormat": "Ticket {id}",
1061
+ "alerts.pushTest.tokenUnavailable": "Push token unavailable.",
579
1062
  "alerts.report": "Report",
580
1063
  "alerts.report.already": "You already reported this profile in the last 24 hours.",
581
1064
  "alerts.report.chooseReason": "Choose a report reason.",
@@ -583,16 +1066,30 @@ export const EN_MESSAGES: FlatMessages = {
583
1066
  "alerts.report.writeSummary": "Write a short summary of what happened.",
584
1067
  "alerts.soon": "Coming soon",
585
1068
  "alerts.soonFeature": "{feature} isn’t available yet.",
1069
+ "alerts.systemNotif.browserLabel": "Set up in browser",
1070
+ "alerts.systemNotif.browserSubtitle": "Open Proulr site permissions in this browser",
1071
+ "alerts.systemNotif.deviceLabel": "Set up on device",
1072
+ "alerts.systemNotif.deviceSubtitle": "Open the system notification settings",
586
1073
  "alerts.tryAgain": "Try again.",
587
1074
  "alerts.unavailable": "Unavailable",
588
1075
  "alerts.wait": "Please wait",
1076
+ "alerts.webNotif.chromiumSteps": "In {browser}: tap the padlock (or ⓘ icon) to the left of the URL {origin} → Site settings → Notifications → Allow.",
1077
+ "alerts.webNotif.firefoxSteps": "In Firefox: tap the padlock to the left of the URL {origin} → Secure connection → More information → Permissions → Notifications → Allow.",
1078
+ "alerts.webNotif.genericSteps": "Open the site permissions for {origin} in your browser (icon next to the URL) and allow Notifications for Proulr.",
1079
+ "alerts.webNotif.gotIt": "Got it",
1080
+ "alerts.webNotif.safariSteps": "In Safari: open Settings (or Safari → Settings on Mac) → Websites → Notifications → find {origin} and choose Allow.",
1081
+ "alerts.webNotif.title": "Site permissions",
589
1082
  "alerts.yourHandle": "Your @",
590
1083
  "auth.ageGate.banner": "It’s quick and secure: the video is only used to verify adult age — we don’t ask for an ID or date of birth in this step.",
1084
+ "auth.ageGate.cameraNotReady": "The camera isn’t ready yet. Give it a moment.",
1085
+ "auth.ageGate.captureFaceFail": "Couldn’t capture your face.",
1086
+ "auth.ageGate.captureFaceVideoFail": "Couldn’t capture your face in the video.",
591
1087
  "auth.ageGate.cta": "Continue — it only takes a moment",
592
1088
  "auth.ageGate.errorTitle": "Verification error",
593
1089
  "auth.ageGate.manualReviewHint": "If automatic validation fails, we review it manually — you won’t lose your signup.",
594
1090
  "auth.ageGate.processingSubtitle": "Analyzing your video. It usually takes a few seconds.",
595
1091
  "auth.ageGate.processingTitle": "Verifying age",
1092
+ "auth.ageGate.recordVideoFail": "Video recording failed.",
596
1093
  "auth.ageGate.steps": "1. Center your face in the oval\n2. Record a 3-second video\n3. Wait for automatic validation",
597
1094
  "auth.ageGate.subtitle": "Just a 3-second video to confirm you’re 18 or older",
598
1095
  "auth.ageGate.title": "Quick and secure verification",
@@ -601,6 +1098,19 @@ export const EN_MESSAGES: FlatMessages = {
601
1098
  "auth.ageGate.trustSafeBody": "Used only to confirm age. Your data stays protected",
602
1099
  "auth.ageGate.trustSafeTitle": "Secure",
603
1100
  "auth.common.back": "Back",
1101
+ "auth.googleError.expoGoIncomplete": "Google sign-in not completed in Expo Go. Set EXPO_PUBLIC_AUTH_REDIRECT_URL (exp://IP:8081/--/auth-callback) or test with npx expo run:android.",
1102
+ "auth.googleError.generic": "Couldn’t complete Google sign-in.",
1103
+ "auth.googleError.inProgress": "Google sign-in is already in progress.",
1104
+ "auth.googleError.nativeModuleMissing": "Native Google sign-in is unavailable in this build. Create a new development build or APK with the @react-native-google-signin/google-signin plugin (npx expo run:android / EAS Build).",
1105
+ "auth.googleError.playServicesUnavailable": "Google Play Services unavailable on this device.",
1106
+ "auth.googleError.providerDisabled": "Google OAuth isn’t enabled on the server. Fill in GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET in .env and run: npm run configure:google-oauth",
1107
+ "auth.googleError.redirectNotAllowed": "OAuth redirect URL not allowed on the server. Run npm run configure:google-oauth to sync the redirects on the VPS.",
1108
+ "auth.googleError.startFail": "Couldn’t start Google sign-in.",
1109
+ "auth.googleError.tokenMissing": "Google token unavailable.",
1110
+ "auth.googleError.webClientIdMissing": "EXPO_PUBLIC_GOOGLE_WEB_CLIENT_ID is not set.",
1111
+ "auth.googleInfo.expoGoBrowserFlow": "In Expo Go, native Google sign-in isn’t available. The app opens the browser; in an APK/native build (npx expo run:android) sign-in uses the device’s Google account.",
1112
+ "auth.googleInfo.missingWebClientId": "Set EXPO_PUBLIC_GOOGLE_WEB_CLIENT_ID in .env to sign in with Google.",
1113
+ "auth.googleInfo.nativeBuildSdk": "Native build detected — Google sign-in uses the device SDK. If it fails, confirm the Android client (package com.proulr.app + SHA-1) in Google Cloud.",
604
1114
  "auth.locale.changeA11y": "Change language",
605
1115
  "auth.locale.currentA11y": "Current language: {label}",
606
1116
  "auth.login.createAccount": "Create account",
@@ -645,6 +1155,12 @@ export const EN_MESSAGES: FlatMessages = {
645
1155
  "auth.welcome.createAccount": "Create account",
646
1156
  "auth.welcome.heroCaption": "Join the night hunt",
647
1157
  "auth.welcome.signIn": "Sign in",
1158
+ "chat.audio.error.unavailable": "Audio file unavailable.",
1159
+ "chat.common.listPair": "{a} and {b}",
1160
+ "chat.common.someone": "Someone",
1161
+ "chat.common.you": "You",
1162
+ "chat.date.today": "Today",
1163
+ "chat.date.yesterday": "Yesterday",
648
1164
  "chat.empty.chats.title": "No conversations yet.",
649
1165
  "chat.empty.flashes.hint": "Reactions and interest signals show up here.",
650
1166
  "chat.empty.flashes.title": "No Flashes yet",
@@ -652,13 +1168,69 @@ export const EN_MESSAGES: FlatMessages = {
652
1168
  "chat.empty.visits.title": "No one viewed your profile in the last 24h",
653
1169
  "chat.fab.closed": "Create in Chat",
654
1170
  "chat.fab.newGroup": "New group",
1171
+ "chat.file.error.downloadFailed": "Couldn't download the file.",
1172
+ "chat.file.error.notDownloaded": "File hasn't been downloaded yet.",
1173
+ "chat.file.error.unavailable": "File unavailable.",
1174
+ "chat.file.openDialogTitle": "Open file",
655
1175
  "chat.filter.all": "All",
656
1176
  "chat.filter.nearby": "Nearby",
657
1177
  "chat.filter.online": "Online",
1178
+ "chat.filter.received": "Received",
658
1179
  "chat.filter.sent": "Sent",
659
1180
  "chat.filter.unread": "Unread",
1181
+ "chat.group.header.members": "{count} members",
1182
+ "chat.group.header.onlineAndMembers": "{online} online · {count} members",
1183
+ "chat.group.photo.error.mustBeImage": "The group photo must be an image.",
1184
+ "chat.group.system.created": "Group was created",
1185
+ "chat.group.system.createdTitled": "Group \"{title}\" was created",
1186
+ "chat.group.system.memberJoined": "New member {name} joined the group",
1187
+ "chat.group.system.memberLeft": "{name} left the group",
1188
+ "chat.group.system.memberRemoved": "{name} was removed from the group",
1189
+ "chat.group.system.memberRemovedUnknown": "A member was removed from the group",
1190
+ "chat.group.system.membersJoined": "New members joined the group",
1191
+ "chat.group.system.membersJoinedNamed": "New members {names} joined the group",
1192
+ "chat.group.system.renamed": "The group was renamed to {title}",
1193
+ "chat.group.system.renamedBy": "{name} changed the group name to {title}",
1194
+ "chat.group.system.updated": "Group update",
1195
+ "chat.groupInvite.shareMessage": "Join the group \"{title}\" on Proulr\n{url}",
1196
+ "chat.inbox.distanceHidden": "Distance hidden",
1197
+ "chat.inbox.distanceUnavailable": "Distance unavailable",
660
1198
  "chat.invite.subtitle": "Joining the group",
661
1199
  "chat.invite.title": "Invite",
1200
+ "chat.media.albumRevokedNamed": "Album removed: {name}",
1201
+ "chat.media.audio": "Audio",
1202
+ "chat.media.error.readImage": "Couldn't read the image.",
1203
+ "chat.media.error.readSelected": "Couldn't read the selected media.",
1204
+ "chat.media.file": "File",
1205
+ "chat.media.gif": "GIF",
1206
+ "chat.media.location": "Location",
1207
+ "chat.media.photo": "Photo",
1208
+ "chat.media.video": "Video",
1209
+ "chat.presence.offline": "Offline",
1210
+ "chat.presence.online": "Online",
1211
+ "chat.presence.recent": "Recently active",
1212
+ "chat.preview.albumAccessRequest": "Album access request",
1213
+ "chat.preview.albumNamed": "Album: {name}",
1214
+ "chat.preview.albumRequest": "Requested album access",
1215
+ "chat.preview.albumRequestMine": "Album request",
1216
+ "chat.preview.albumRevoked": "Album removed",
1217
+ "chat.preview.encrypted": "Encrypted message",
1218
+ "chat.preview.fileNamed": "File: {name}",
1219
+ "chat.preview.groupMessage": "Group message",
1220
+ "chat.preview.message": "Message",
1221
+ "chat.preview.openedMessage": "Message opened",
1222
+ "chat.preview.poll": "Poll",
1223
+ "chat.preview.pollNamed": "Poll: {question}",
1224
+ "chat.preview.reaction": "{subject} reacted with {emoji} to: {preview}",
1225
+ "chat.preview.senderPrefix": "{name}: ",
1226
+ "chat.preview.storyReaction": "Reacted to the story",
1227
+ "chat.preview.storyReply": "Story reply",
1228
+ "chat.savedPhrases.grabDrink": "Wanna grab a drink?",
1229
+ "chat.savedPhrases.greeting": "Hi! How are you?",
1230
+ "chat.savedPhrases.letsTalk": "Hey, up for a chat?",
1231
+ "chat.savedPhrases.likedProfile": "Loved your profile!",
1232
+ "chat.savedPhrases.nearby": "I'm nearby, want to meet up?",
1233
+ "chat.savedPhrases.whatTime": "What time works for you?",
662
1234
  "chat.search.placeholder": "Search chats…",
663
1235
  "chat.segment.chats": "Chats",
664
1236
  "chat.segment.flashes": "Flashes",
@@ -666,8 +1238,29 @@ export const EN_MESSAGES: FlatMessages = {
666
1238
  "chat.thread.fallbackGroup": "Group",
667
1239
  "chat.thread.fallbackName": "Conversation",
668
1240
  "common.active": "Active",
1241
+ "common.album.defaultName": "My album",
1242
+ "common.album.expiry10m": "10 minutes",
1243
+ "common.album.expiry1h": "1 hour",
1244
+ "common.album.expiry24h": "24 hours",
1245
+ "common.album.expiryNever": "No expiration",
1246
+ "common.album.expiryViewOnce": "View once",
1247
+ "common.album.invalidName": "Invalid name.",
1248
+ "common.album.itemCountMany": "{count} items",
1249
+ "common.album.itemCountOne": "1 item",
1250
+ "common.album.maxAlbums": "You can have at most {max} albums.",
1251
+ "common.album.maxPhotos": "Maximum of {max} photos per album.",
1252
+ "common.album.maxVideos": "Maximum of {max} video per album.",
669
1253
  "common.app": "App",
670
1254
  "common.attention": "Attention",
1255
+ "common.camera.notReady": "The camera isn’t ready yet. Give it a moment.",
1256
+ "common.camera.photoSaveFail": "Couldn’t save the photo.",
1257
+ "common.camera.streamUnavailable": "Camera stream unavailable in this browser.",
1258
+ "common.camera.videoFileUnavailable": "Video file unavailable.",
1259
+ "common.camera.videoRecordError": "Video recording failed.",
1260
+ "common.camera.videoRecordFail": "Couldn’t record the video.",
1261
+ "common.camera.videoRecordingUnsupported": "Video recording isn’t available in this browser. Use the mobile app.",
1262
+ "common.camera.videoSaveFail": "Couldn’t save the video.",
1263
+ "common.camera.webNotReadyToRecord": "Web camera isn’t ready to record yet.",
671
1264
  "common.cancel": "Cancel",
672
1265
  "common.chat": "Chat",
673
1266
  "common.chats": "Chats",
@@ -678,10 +1271,25 @@ export const EN_MESSAGES: FlatMessages = {
678
1271
  "common.huntConnectDiscover": "Hunt · Connect · Discover",
679
1272
  "common.id": "ID",
680
1273
  "common.media": "Media",
1274
+ "common.media.readFail": "Couldn’t read the selected media.",
681
1275
  "common.notifications": "Notifications",
682
1276
  "common.ops": "Oops",
683
1277
  "common.options": "Options",
684
1278
  "common.privacy": "Privacy",
1279
+ "common.purchase.cancelled": "Purchase canceled.",
1280
+ "common.purchase.genericFail": "Couldn’t complete the purchase. Try again in a moment.",
1281
+ "common.purchase.manageNativeOnly": "Subscription management is only available in the iOS/Android app.",
1282
+ "common.purchase.proPlanDescription": "Stealth mode, read receipts, and more",
1283
+ "common.purchase.proPlanTitle": "Proulr Pro",
1284
+ "common.purchase.productNotFound": "Product not found in RevenueCat. Check offerings and product IDs.",
1285
+ "common.purchase.productUnavailable": "Product unavailable in the store right now.",
1286
+ "common.purchase.storeOffline": "No connection to the store. Check your internet and try again.",
1287
+ "common.purchase.storeSettingsOpenFail": "Couldn’t open the store settings.",
1288
+ "common.purchase.unavailableInstallSdk": "Install react-native-purchases and create a new native build to enable purchases.",
1289
+ "common.purchase.unavailableKeysMissing": "In-app purchases coming soon — RevenueCat keys aren’t configured in this build yet.",
1290
+ "common.purchase.unavailableNotConfigured": "In-app purchases unavailable — set EXPO_PUBLIC_REVENUECAT_* in this build.",
1291
+ "common.purchase.unavailableRuntime": "In-app purchases are only available in the iOS/Android app (native build).",
1292
+ "common.purchase.unavailableSdkMissing": "Purchases SDK not installed. Add react-native-purchases and create a new native build.",
685
1293
  "common.save": "Save",
686
1294
  "common.saved": "Saved",
687
1295
  "common.security": "Security",
@@ -722,8 +1330,15 @@ export const EN_MESSAGES: FlatMessages = {
722
1330
  "discover.subtitle.huntingIn": "Hunting in {label}",
723
1331
  "discover.subtitle.huntingOther": "Hunting in another region",
724
1332
  "discover.subtitle.nearby": "Nearby encounters",
1333
+ "flash.cooldown.limitReached": "You already sent a reaction to this person in the last 24 hours.",
1334
+ "flash.cooldown.retryInDays": "You can send another reaction in {days} day(s).",
1335
+ "flash.cooldown.retryInHours": "You can send another reaction in {hours}h.",
725
1336
  "flash.deprecated.subtitle": "Moved to chat-bff",
726
1337
  "flash.deprecated.title": "Flashes",
1338
+ "flash.inbox.actionReply": "Reply",
1339
+ "flash.inbox.reactionLine": "{name} {message}",
1340
+ "flash.inbox.sentYouFlash": "{name} sent you a Flash",
1341
+ "flash.inbox.someone": "Someone",
727
1342
  "flash.msg.chat": "wants to chat",
728
1343
  "flash.msg.eyes": "has their eye on you",
729
1344
  "flash.msg.fire": "thinks you’re hot",
@@ -736,19 +1351,73 @@ export const EN_MESSAGES: FlatMessages = {
736
1351
  "flash.reaction.flash": "Flash",
737
1352
  "flash.reaction.heart": "Liked",
738
1353
  "flash.reaction.wave": "Hi",
1354
+ "hybrid.chatThread.fallbackTitle": "Conversation",
1355
+ "hybrid.unavailable.album": "Album unavailable.",
1356
+ "hybrid.unavailable.chatThread": "Conversation unavailable — go back and try again.",
1357
+ "hybrid.unavailable.comments": "Comments unavailable.",
1358
+ "hybrid.unavailable.group": "Group unavailable.",
1359
+ "hybrid.unavailable.invite": "Invite unavailable.",
1360
+ "hybrid.unavailable.profile": "Profile unavailable.",
1361
+ "hybrid.unavailable.profileReport": "Profile unavailable for reporting.",
1362
+ "hybrid.unavailable.settingsHome": "Update the app to see the settings.",
1363
+ "hybrid.unavailable.socialProfile": "Social profile unavailable.",
1364
+ "profile.ageGate.mail.accountSection": "--- Account details ---",
1365
+ "profile.ageGate.mail.descriptionSection": "--- What happened ---",
1366
+ "profile.ageGate.mail.email": "Email: {email}",
1367
+ "profile.ageGate.mail.estimatedRange": "Estimated range: {min}–{max} years",
1368
+ "profile.ageGate.mail.greeting": "Hi, Proulr team.",
1369
+ "profile.ageGate.mail.name": "Name: {name}",
1370
+ "profile.ageGate.mail.notProvided": "(not provided)",
1371
+ "profile.ageGate.mail.reason": "Reason: {reason}",
1372
+ "profile.ageGate.mail.reasonFallback": "not recognized as an adult",
1373
+ "profile.ageGate.mail.request": "I'm requesting a manual review of my age verification.",
1374
+ "profile.ageGate.mail.resultSection": "--- Automated result ---",
1375
+ "profile.ageGate.mail.subject": "Age verification – manual review",
1376
+ "profile.ageGate.mail.thanks": "Thank you.",
1377
+ "profile.ageGate.mail.userId": "User ID: {id}",
1378
+ "profile.ageGate.mail.vibesHandle": "Vibes @: {handle}",
1379
+ "profile.ageVerify.genericError": "We couldn't complete age verification.",
1380
+ "profile.ageVerify.imageTooSmall": "We couldn't analyze the video. Try again.",
1381
+ "profile.ageVerify.lowConfidence": "The image wasn't sharp enough. Try again somewhere brighter.",
1382
+ "profile.ageVerify.networkError": "Connection failed. Check your internet and try again.",
1383
+ "profile.ageVerify.noFace": "We couldn't detect a face in the video. Try again with good lighting.",
1384
+ "profile.ageVerify.notAdult": "We couldn't confirm that you're 18 or older.",
1385
+ "profile.ageVerify.serviceUnavailable": "The verification service is overloaded or restarting. Wait a few seconds and try again.",
1386
+ "profile.albums.fallbackName": "Album",
739
1387
  "profile.albums.subtitle": "Private photo and video collections",
740
1388
  "profile.albums.title": "My albums",
1389
+ "profile.attribute.bodyHair": "Body hair",
1390
+ "profile.attribute.bodyType": "Build",
1391
+ "profile.attribute.ethnicity": "Ethnicity",
1392
+ "profile.attribute.gender": "Gender",
1393
+ "profile.attribute.height": "Height",
1394
+ "profile.attribute.meetingPlace": "Meeting place",
1395
+ "profile.attribute.partnership": "Partnership",
1396
+ "profile.attribute.position": "Position",
1397
+ "profile.attribute.pronouns": "Pronouns",
1398
+ "profile.attribute.relationship": "Relationship",
1399
+ "profile.attribute.residence": "Where I live",
1400
+ "profile.attribute.weight": "Weight",
1401
+ "profile.attribute.whatIDo": "What I do",
741
1402
  "profile.completion.banner": "Complete your profile to show up more",
742
1403
  "profile.completion.cta": "Complete profile",
1404
+ "profile.completion.fieldBirthDate": "Birth date",
1405
+ "profile.completion.fieldName": "Name",
743
1406
  "profile.completion.gateLater": "Do it later and start using",
744
1407
  "profile.completion.gateNow": "Complete now",
745
1408
  "profile.completion.gateTitle": "Complete your profile for more reach",
746
1409
  "profile.completion.reminderBody": "Complete profiles show up more in Hunt and get more Flashes.",
747
1410
  "profile.completion.reminderTitle": "Complete your profile",
1411
+ "profile.fallback.someone": "Someone",
748
1412
  "profile.handle.invalidFormat": "Your @ must be 3–30 characters (lowercase letters, numbers, and _).",
749
1413
  "profile.handle.rateLimited": "You can only change your @ every 30 days.",
750
1414
  "profile.handle.reserved": "That @ is reserved and can’t be used.",
751
1415
  "profile.handle.taken": "That @ is already taken.",
1416
+ "profile.moderation.block": "Block profile",
1417
+ "profile.moderation.hide": "Hide from grid",
1418
+ "profile.moderation.mute": "Mute notifications",
1419
+ "profile.moderation.report": "Report",
1420
+ "profile.moderation.unmute": "Allow notifications",
752
1421
  "profile.onboarding.corpo.interstitial": "Let’s talk about relationships.",
753
1422
  "profile.onboarding.corpo.subtitle": "Height, weight, ethnicity, build, and body hair.",
754
1423
  "profile.onboarding.corpo.title": "Your body",
@@ -773,20 +1442,130 @@ export const EN_MESSAGES: FlatMessages = {
773
1442
  "profile.onboarding.relacionamento.interstitial": "Tell us about your interests.",
774
1443
  "profile.onboarding.relacionamento.subtitle": "Status, partnership, and where you like to meet.",
775
1444
  "profile.onboarding.relacionamento.title": "Relationship",
1445
+ "profile.onboarding.resumeBody": "You're almost ready to start hunting. Open Proulr and finish your profile.",
1446
+ "profile.onboarding.resumeTitle": "Continue your sign-up",
776
1447
  "profile.onboarding.saude.interstitial": "Let’s add your social links.",
777
1448
  "profile.onboarding.saude.subtitle": "HIV, precautions, vaccines, and practices.",
778
1449
  "profile.onboarding.saude.title": "Health",
779
1450
  "profile.onboarding.sobre.interstitial": "Next, a few details about your body.",
780
1451
  "profile.onboarding.sobre.subtitle": "A short bio, what you do, and where you live.",
781
1452
  "profile.onboarding.sobre.title": "About you",
1453
+ "profile.options.bodyHair.hairy": "Hairy",
1454
+ "profile.options.bodyHair.light": "Lightly hairy",
1455
+ "profile.options.bodyHair.moderate": "Moderate",
1456
+ "profile.options.bodyHair.none": "Smooth",
1457
+ "profile.options.bodyHair.veryHairy": "Very hairy",
1458
+ "profile.options.bodyType.athletic": "Athletic",
1459
+ "profile.options.bodyType.average": "Average",
1460
+ "profile.options.bodyType.muscular": "Muscular",
1461
+ "profile.options.bodyType.overweight": "Overweight",
1462
+ "profile.options.bodyType.slim": "Slim",
1463
+ "profile.options.bodyType.stocky": "Stocky",
1464
+ "profile.options.community.activism": "Activism",
1465
+ "profile.options.community.art": "Art",
1466
+ "profile.options.community.college": "College",
1467
+ "profile.options.community.fitness": "Fitness",
1468
+ "profile.options.community.gamer": "Gamer",
1469
+ "profile.options.community.geek": "Geek",
1470
+ "profile.options.community.music": "Music",
1471
+ "profile.options.community.nerd": "Nerd",
1472
+ "profile.options.community.pop": "Pop",
1473
+ "profile.options.community.travel": "Travel",
1474
+ "profile.options.ethnicity.asian": "Asian",
1475
+ "profile.options.ethnicity.black": "Black",
1476
+ "profile.options.ethnicity.indigenous": "Indigenous",
1477
+ "profile.options.ethnicity.mixed": "Mixed",
1478
+ "profile.options.ethnicity.white": "White",
1479
+ "profile.options.explicitContent.always": "Always",
1480
+ "profile.options.explicitContent.depends": "It depends",
1481
+ "profile.options.explicitContent.never": "Never",
1482
+ "profile.options.explicitContent.notSelected": "Not selected",
1483
+ "profile.options.gender.cisMan": "Cis man",
1484
+ "profile.options.gender.cisWoman": "Cis woman",
1485
+ "profile.options.gender.nonBinary": "Non-binary",
1486
+ "profile.options.gender.transMan": "Trans man",
1487
+ "profile.options.gender.transWoman": "Trans woman",
1488
+ "profile.options.hivStatus.negative": "Negative",
1489
+ "profile.options.hivStatus.negativePrep": "Negative (on PrEP)",
1490
+ "profile.options.hivStatus.positive": "Positive",
1491
+ "profile.options.hivStatus.positiveUndetectable": "Positive (undetectable)",
1492
+ "profile.options.lookingFor.chat": "Chat",
1493
+ "profile.options.lookingFor.dates": "Dates",
1494
+ "profile.options.lookingFor.friendship": "Friendship",
1495
+ "profile.options.lookingFor.networking": "Networking",
1496
+ "profile.options.lookingFor.relationship": "Relationship",
1497
+ "profile.options.lookingFor.rightNow": "Right now",
1498
+ "profile.options.meetingPlace.goOut": "Go out",
1499
+ "profile.options.meetingPlace.myPlace": "My place",
1500
+ "profile.options.meetingPlace.theirPlace": "His place",
1501
+ "profile.options.meetingPlace.toArrange": "To be arranged",
1502
+ "profile.options.other": "Other",
1503
+ "profile.options.partnership.inRelationship": "In a relationship",
1504
+ "profile.options.partnership.married": "Married",
1505
+ "profile.options.partnership.open": "Open relationship",
1506
+ "profile.options.partnership.polyamorous": "Polyamory",
1507
+ "profile.options.partnership.single": "Single",
1508
+ "profile.options.precaution.condom": "Condoms",
1509
+ "profile.options.precaution.doxyPep": "DoxyPEP",
1510
+ "profile.options.precaution.prep": "PrEP",
1511
+ "profile.options.precaution.talkFirst": "We talk first",
1512
+ "profile.options.precaution.undetectable": "Undetectable",
1513
+ "profile.options.pronoun.any": "Any",
1514
+ "profile.options.pronoun.heHim": "He/Him",
1515
+ "profile.options.pronoun.sheHer": "She/Her",
1516
+ "profile.options.pronoun.theyThem": "They/Them",
1517
+ "profile.options.relationship.complicated": "It's complicated",
1518
+ "profile.options.relationship.dating": "Dating",
1519
+ "profile.options.relationship.married": "Married",
1520
+ "profile.options.relationship.open": "Open relationship",
1521
+ "profile.options.relationship.single": "Single",
1522
+ "profile.options.sexPractice.fetish": "Fetish",
1523
+ "profile.options.sexPractice.kissing": "Kissing",
1524
+ "profile.options.sexPractice.massage": "Massage",
1525
+ "profile.options.sexPractice.noPreference": "No preference",
1526
+ "profile.options.sexPractice.oral": "Oral",
1527
+ "profile.options.tribe.bear": "Bear",
1528
+ "profile.options.tribe.daddy": "Daddy",
1529
+ "profile.options.tribe.discreet": "Discreet",
1530
+ "profile.options.tribe.geek": "Geek",
1531
+ "profile.options.tribe.jock": "Jock",
1532
+ "profile.options.tribe.leather": "Leather",
1533
+ "profile.options.tribe.muscle": "Muscle",
1534
+ "profile.options.tribe.otter": "Otter",
1535
+ "profile.options.tribe.trans": "Trans",
1536
+ "profile.options.tribe.twink": "Twink",
1537
+ "profile.options.vaccine.covid19": "COVID-19",
1538
+ "profile.options.vaccine.hepatitisA": "Hepatitis A",
1539
+ "profile.options.vaccine.hepatitisB": "Hepatitis B",
1540
+ "profile.options.vaccine.hpv": "HPV",
1541
+ "profile.options.vaccine.meningitis": "Meningitis",
1542
+ "profile.options.vaccine.mpox": "Mpox",
782
1543
  "profile.photo.add": "Add photo",
783
1544
  "profile.photo.addPromptBody": "Profiles with a photo get many more Flashes.",
784
1545
  "profile.photo.addPromptTitle": "How about a photo?",
785
1546
  "profile.photo.continueWithout": "Continue without a photo",
786
1547
  "profile.photo.huntTitle": "Hunt photo",
1548
+ "profile.photo.readError": "Couldn't read the image.",
1549
+ "profile.photo.sourceCamera": "Camera",
1550
+ "profile.photo.sourceMessage": "How would you like to add the image?",
1551
+ "profile.photo.sourceTitle": "Profile photo",
787
1552
  "profile.photo.vibesTitle": "Vibes photo",
1553
+ "profile.social.placeholder.gamertag": "gamertag",
1554
+ "profile.social.placeholder.handle": "@username",
1555
+ "profile.social.placeholder.linkOrId": "link or ID",
1556
+ "profile.social.placeholder.profileLink": "profile link",
1557
+ "profile.social.placeholder.psnId": "PSN ID",
1558
+ "profile.social.placeholder.username": "username",
1559
+ "profile.social.placeholder.websiteUrl": "https://your-site.com",
1560
+ "profile.social.website": "Website",
1561
+ "profile.surface.hunt": "Hunt",
1562
+ "profile.surface.vibes": "Vibes",
1563
+ "profile.trip.destinationFallback": "Destination",
1564
+ "profile.trip.fromDate": "From {date}",
1565
+ "profile.trip.untilDate": "Until {date}",
788
1566
  "profile.ui.customVibesHint": "The rest of your profile stays the same in both modes.",
789
1567
  "profile.ui.customVibesToggle": "Use a different photo and name on Vibes",
1568
+ "profile.ui.customVibesToggleHint": "The rest of your profile stays the same. Only the photo and display name change on Vibes posts.",
790
1569
  "profile.ui.editTitle": "Edit profile",
791
1570
  "profile.ui.handleLabel": "YOUR @",
792
1571
  "profile.ui.modeHunt": "Hunt mode",
@@ -905,6 +1684,10 @@ export const EN_MESSAGES: FlatMessages = {
905
1684
  "shell.about.section.social": "Social",
906
1685
  "shell.about.section.terms": "Terms & policies",
907
1686
  "shell.about.title": "About",
1687
+ "shell.appIcon.defaultHint": "Main icon with the brand",
1688
+ "shell.appIcon.defaultLabel": "Proulr",
1689
+ "shell.appIcon.discreetHint": "Neutral calendar look on the home screen",
1690
+ "shell.appIcon.discreetLabel": "Discreet",
908
1691
  "shell.consent.ads": "Personalized ads",
909
1692
  "shell.consent.ads.hint": "When we enable ads, we’ll honor this choice",
910
1693
  "shell.consent.analytics": "Usage analytics",
@@ -1012,6 +1795,8 @@ export const EN_MESSAGES: FlatMessages = {
1012
1795
  "shell.quality.adaptive": "Adaptive",
1013
1796
  "shell.quality.maximum": "Maximum",
1014
1797
  "shell.quality.thumbnail": "Thumbnail",
1798
+ "shell.quietHours.defaultRange": "10 PM to 8 AM",
1799
+ "shell.quietHours.rangeFormat": "{start} to {end}",
1015
1800
  "shell.safety.blockReport.subtitle": "How to block and report someone",
1016
1801
  "shell.safety.blockReport.title": "Blocking and reports",
1017
1802
  "shell.safety.community.subtitle": "Community rules on Proulr",
@@ -1077,13 +1862,44 @@ export const EN_MESSAGES: FlatMessages = {
1077
1862
  "shell.units.system": "System",
1078
1863
  "shell.units.system.hint": "Follows device language",
1079
1864
  "shell.units.title": "Units",
1865
+ "social.count.millionShort": "{value}M",
1866
+ "social.count.thousandShort": "{value}K",
1080
1867
  "social.fab.photos": "Photos",
1081
1868
  "social.fab.publish": "Post",
1082
1869
  "social.fab.story": "Story",
1083
1870
  "social.feed.fab": "Create in Feed",
1084
1871
  "social.feed.subtitle": "Community posts",
1085
1872
  "social.feed.title": "Feed",
1873
+ "social.media.readImageError": "Couldn't read the image.",
1874
+ "social.notifyMode.all": "Everything",
1875
+ "social.notifyMode.allHint": "Posts, media, and replies from this profile",
1876
+ "social.notifyMode.media": "Media only",
1877
+ "social.notifyMode.mediaHint": "Photos and videos only",
1878
+ "social.notifyMode.off": "Turn off",
1879
+ "social.notifyMode.offHint": "No notifications from this profile",
1880
+ "social.notifyMode.replies": "Replies only",
1881
+ "social.notifyMode.repliesHint": "When this person replies to posts",
1882
+ "social.people.someone": "Someone",
1883
+ "social.replyAudience.everyone": "Anyone",
1884
+ "social.replyAudience.everyoneHint": "Everyone can reply to this post.",
1885
+ "social.replyAudience.everyoneReply": "Anyone can reply",
1886
+ "social.replyAudience.followers": "People who follow you",
1887
+ "social.replyAudience.followersHint": "Only people who follow you can reply.",
1888
+ "social.replyAudience.followersReply": "People who follow you can reply",
1889
+ "social.replyAudience.mentioned": "Only people you mention",
1890
+ "social.replyAudience.mentionedHint": "Only profiles mentioned in the post can reply.",
1891
+ "social.replyAudience.mentionedReply": "Only people you mention can reply",
1086
1892
  "social.saved.title": "Saved items",
1893
+ "social.story.captureImageError": "Couldn't generate the story image.",
1894
+ "social.storyFont.bold": "Bold",
1895
+ "social.storyFont.extrabold": "Impact",
1896
+ "social.storyFont.medium": "Light",
1897
+ "social.storyFont.regular": "Classic",
1898
+ "social.storyFont.semibold": "Semi",
1899
+ "social.time.daysShort": "{count}d",
1900
+ "social.time.hoursShort": "{count}h",
1901
+ "social.time.minutesShort": "{count}m",
1902
+ "social.time.now": "now",
1087
1903
  "social.vibes.fab": "Create in Vibes",
1088
1904
  "social.vibes.subtitle": "What the community is saying",
1089
1905
  "social.vibes.title": "Vibes",