@proulr/rosetta 0.1.37 → 0.1.47
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.
- package/docs/npm-publish-cicd.md +28 -22
- package/package.json +1 -1
- package/src/domains.ts +1 -0
- package/src/generated/locale-messages.ts +216 -0
- package/src/locales/en/alerts.json +5 -0
- package/src/locales/en/chat.json +5 -0
- package/src/locales/en/discover.json +53 -0
- package/src/locales/en/random.json +46 -0
- package/src/locales/en/shell.json +1 -0
- package/src/locales/pt-BR/alerts.json +5 -0
- package/src/locales/pt-BR/chat.json +5 -0
- package/src/locales/pt-BR/discover.json +53 -0
- package/src/locales/pt-BR/random.json +46 -0
- package/src/locales/pt-BR/shell.json +1 -0
package/docs/npm-publish-cicd.md
CHANGED
|
@@ -4,30 +4,16 @@
|
|
|
4
4
|
|
|
5
5
|
## Fluxo
|
|
6
6
|
|
|
7
|
-
1. Altere o código da lib.
|
|
8
|
-
2.
|
|
9
|
-
3.
|
|
10
|
-
4.
|
|
11
|
-
5. O workflow `.github/workflows/publish-npm.yml` roda typecheck e publica se a versão ainda não existir no npm.
|
|
7
|
+
1. Altere o código da lib (JSON em `src/locales/…`).
|
|
8
|
+
2. Commit em `main` — o pre-commit (`locale:generate` → validate → bump patch via `proulr-bump-and-sync-deps.mjs`) sobe a versão.
|
|
9
|
+
3. Push em `main`.
|
|
10
|
+
4. O workflow `.github/workflows/publish-npm.yml` roda typecheck e publica se a versão ainda não existir no npm.
|
|
12
11
|
|
|
13
12
|
Se a versão já estiver publicada, o job **pula** o publish (CI verde, sem erro).
|
|
14
13
|
|
|
15
14
|
## Autenticação no npm
|
|
16
15
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
OIDC/Trusted Publishing **só funciona depois que o pacote existe** no npm. Igual ao bootstrap de contract/core:
|
|
20
|
-
|
|
21
|
-
1. Crie um token **Automation** em https://www.npmjs.com/settings/~/tokens (ou reutilize o dos outros `@proulr/*`)
|
|
22
|
-
2. No GitHub:
|
|
23
|
-
|
|
24
|
-
```bash
|
|
25
|
-
gh secret set NPM_TOKEN -R saviorbp/proulr-rosetta
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
3. Push / re-run do workflow → cria `@proulr/rosetta` no registry
|
|
29
|
-
|
|
30
|
-
### Trusted Publishing (depois do bootstrap — modo steady-state)
|
|
16
|
+
Steady-state: **Trusted Publishing (OIDC)** — igual a `@proulr/sdui-components` / `bff-core`.
|
|
31
17
|
|
|
32
18
|
1. https://www.npmjs.com/package/@proulr/rosetta → **Settings** → **Trusted Publisher** → **GitHub Actions**
|
|
33
19
|
2. Preencha:
|
|
@@ -39,16 +25,36 @@ gh secret set NPM_TOKEN -R saviorbp/proulr-rosetta
|
|
|
39
25
|
| Workflow filename | `publish-npm.yml` |
|
|
40
26
|
| Environment | *(vazio)* |
|
|
41
27
|
|
|
42
|
-
O workflow já tem `id-token: write
|
|
28
|
+
O workflow já tem `id-token: write` e limpa o `NODE_AUTH_TOKEN` dummy do `setup-node` para o OIDC funcionar.
|
|
43
29
|
|
|
44
30
|
**Repositório privado no GitHub:** sem `--provenance`.
|
|
45
31
|
|
|
32
|
+
### Fallback — Automation token
|
|
33
|
+
|
|
34
|
+
Se o Trusted Publisher ainda não estiver configurado (E404 no publish), o job tenta `secrets.NPM_TOKEN`:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
# Token tipo Automation (não Publish) com write no scope @proulr
|
|
38
|
+
gh secret set NPM_TOKEN -R saviorbp/proulr-rosetta
|
|
39
|
+
```
|
|
40
|
+
|
|
46
41
|
## Consumidores (app / BFFs)
|
|
47
42
|
|
|
48
43
|
Dependência do registry (não `file:`):
|
|
49
44
|
|
|
50
45
|
```json
|
|
51
|
-
"@proulr/rosetta": "^0.1.
|
|
46
|
+
"@proulr/rosetta": "^0.1.47"
|
|
52
47
|
```
|
|
53
48
|
|
|
54
|
-
|
|
49
|
+
### Version sync (pre-commit)
|
|
50
|
+
|
|
51
|
+
1. **Commit no Rosetta** → bump local + pending em `Projects/.proulr/pending-version-sync.json` (consumers **não** apontam ainda para a versão inédita).
|
|
52
|
+
2. **CI publica** no npm.
|
|
53
|
+
3. **Commit no app/BFF** → `proulr-pre-commit-tests.sh` chama `--sync` → atualiza `package.json` + lock para `^versão` já no registry.
|
|
54
|
+
|
|
55
|
+
Manual:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
cd ~/Projects/proulr-app
|
|
59
|
+
node ../scripts/proulr-bump-and-sync-deps.mjs --sync
|
|
60
|
+
```
|
package/package.json
CHANGED
package/src/domains.ts
CHANGED
|
@@ -134,6 +134,11 @@ export const PT_BR_MESSAGES = {
|
|
|
134
134
|
"alerts.repostSoon": "Repostar estará disponível em breve.",
|
|
135
135
|
"alerts.repostThoughtsSoon": "Repostar pensamentos estará disponível em breve.",
|
|
136
136
|
"alerts.revoke": "Revogar",
|
|
137
|
+
"alerts.rightNow.contentRequired": "Escreva um texto ou adicione uma foto para publicar.",
|
|
138
|
+
"alerts.rightNow.endFailed": "Não foi possível encerrar a sessão.",
|
|
139
|
+
"alerts.rightNow.postFailed": "Não foi possível publicar no Right Now.",
|
|
140
|
+
"alerts.rightNow.quotaExceeded": "Você usou todas as sessões Right Now desta semana.",
|
|
141
|
+
"alerts.rightNow.startFailed": "Não foi possível iniciar o Right Now. Tente novamente.",
|
|
137
142
|
"alerts.saveFailed": "Não foi possível salvar.",
|
|
138
143
|
"alerts.selectImageFail": "Não foi possível selecionar a imagem.",
|
|
139
144
|
"alerts.selectMediaFail": "Não foi possível selecionar a mídia.",
|
|
@@ -596,6 +601,10 @@ export const PT_BR_MESSAGES = {
|
|
|
596
601
|
"chat.report.sentBodyGroup": "Obrigado. Vamos analisar o grupo.",
|
|
597
602
|
"chat.report.sentTitle": "Denúncia enviada",
|
|
598
603
|
"chat.report.spam": "Spam",
|
|
604
|
+
"chat.safety.body": "Compare este código com a outra pessoa (fora do app). Se for igual, a conversa está protegida.\n\n{code}",
|
|
605
|
+
"chat.safety.title": "Código de segurança",
|
|
606
|
+
"chat.safety.unavailable": "Não foi possível montar o código de segurança neste dispositivo.",
|
|
607
|
+
"chat.safety.verify": "Verificar código de segurança",
|
|
599
608
|
"chat.savedPhrases.empty": "Nenhuma frase salva ainda.",
|
|
600
609
|
"chat.savedPhrases.errorLoad": "Não foi possível carregar suas frases salvas.",
|
|
601
610
|
"chat.savedPhrases.errorRemove": "Não foi possível remover a frase.",
|
|
@@ -626,6 +635,7 @@ export const PT_BR_MESSAGES = {
|
|
|
626
635
|
"chat.thread.fallbackName": "Conversa",
|
|
627
636
|
"chat.thread.muteOff": "Notificações permitidas de novo.",
|
|
628
637
|
"chat.thread.muteOn": "Notificações silenciadas desta pessoa.",
|
|
638
|
+
"chat.thread.peerKeyMissing": "Esta pessoa ainda não publicou a chave pública. Não é possível trocar mensagens cifradas ainda.",
|
|
629
639
|
"chat.toast.done": "Pronto",
|
|
630
640
|
"chat.viewOnce.delete": "Apagar",
|
|
631
641
|
"chat.viewOnce.infoBody": "Fotos, vídeos e áudios de visualização única desaparecem da conversa depois que a pessoa abre o arquivo uma vez.",
|
|
@@ -731,6 +741,7 @@ export const PT_BR_MESSAGES = {
|
|
|
731
741
|
"discover.empty.default": "Ninguém por perto ainda.",
|
|
732
742
|
"discover.empty.online": "Ninguém online por perto agora.",
|
|
733
743
|
"discover.empty.position": "Ninguém com posição \"{position}\" por perto. Atualize ou mude o filtro.",
|
|
744
|
+
"discover.empty.rightNow": "Ninguém no Right Now por perto agora.",
|
|
734
745
|
"discover.empty.title": "Ninguém por perto",
|
|
735
746
|
"discover.endRegion.body": "Você viu os perfis mais próximos. Ative o Caçar para explorar outras cidades sem mudar sua localização real.",
|
|
736
747
|
"discover.endRegion.cta": "Caçar em outra região",
|
|
@@ -739,6 +750,22 @@ export const PT_BR_MESSAGES = {
|
|
|
739
750
|
"discover.filter.creators": "Criadores",
|
|
740
751
|
"discover.filter.online": "Online Agora",
|
|
741
752
|
"discover.filter.position": "Posição",
|
|
753
|
+
"discover.filter.rightNow": "Right Now",
|
|
754
|
+
"discover.filters.age25to35": "25–35",
|
|
755
|
+
"discover.filters.ageOver35": "Mais de 35",
|
|
756
|
+
"discover.filters.ageUnder25": "Menos de 25",
|
|
757
|
+
"discover.filters.anyAge": "Qualquer idade",
|
|
758
|
+
"discover.filters.apply": "Aplicar",
|
|
759
|
+
"discover.filters.clearAll": "Limpar tudo",
|
|
760
|
+
"discover.filters.creators": "Criadores",
|
|
761
|
+
"discover.filters.onlineNow": "Online agora",
|
|
762
|
+
"discover.filters.rightNow": "Right Now",
|
|
763
|
+
"discover.filters.sectionAge": "Idade",
|
|
764
|
+
"discover.filters.sectionMedia": "Mídia",
|
|
765
|
+
"discover.filters.sectionPosition": "Posição",
|
|
766
|
+
"discover.filters.sectionStatus": "Status",
|
|
767
|
+
"discover.filters.title": "Filtros",
|
|
768
|
+
"discover.filters.withPhotos": "Com fotos",
|
|
742
769
|
"discover.hideDistance.body": "Enquanto essa opção estiver ativa, você não verá o grid de pessoas próximas.",
|
|
743
770
|
"discover.hideDistance.openSettings": "Abrir configurações",
|
|
744
771
|
"discover.hideDistance.title": "Você ocultou sua distância",
|
|
@@ -747,6 +774,13 @@ export const PT_BR_MESSAGES = {
|
|
|
747
774
|
"discover.hunt.changeRegion": "Mudar região",
|
|
748
775
|
"discover.hunt.otherRegion": "outra região",
|
|
749
776
|
"discover.hunt.useMyLocation": "Usar minha localização",
|
|
777
|
+
"discover.mapPin.ageYears": "{age} anos",
|
|
778
|
+
"discover.mapPin.approxHint": "Local aproximado",
|
|
779
|
+
"discover.mapPin.distanceKm": "{km} km",
|
|
780
|
+
"discover.mapPin.distanceM": "{m} m",
|
|
781
|
+
"discover.mapPin.flash": "Flash",
|
|
782
|
+
"discover.mapPin.messagePlaceholder": "Mensagem para {name}...",
|
|
783
|
+
"discover.mapPin.profile": "Ver perfil",
|
|
750
784
|
"discover.position.all": "Todas as posições",
|
|
751
785
|
"discover.position.ativo": "Ativo",
|
|
752
786
|
"discover.position.passivo": "Passivo",
|
|
@@ -754,6 +788,35 @@ export const PT_BR_MESSAGES = {
|
|
|
754
788
|
"discover.position.versatil": "Versátil",
|
|
755
789
|
"discover.position.versatilAtivo": "Versátil-ativo",
|
|
756
790
|
"discover.position.versatilPassivo": "Versátil-passivo",
|
|
791
|
+
"discover.rightNow.activate.body": "Deixe todo mundo saber que você quer encontrar alguém agora.",
|
|
792
|
+
"discover.rightNow.activate.gateBody": "Ative o Right Now para ver quem está por perto no mapa e nas publicações.",
|
|
793
|
+
"discover.rightNow.activate.hosting": "Recepcionando",
|
|
794
|
+
"discover.rightNow.activate.moodPlaceholder": "Do que você está a fim?",
|
|
795
|
+
"discover.rightNow.activate.readMore": "Saiba mais",
|
|
796
|
+
"discover.rightNow.activate.remainingSessions": "{count} sessões restantes esta semana",
|
|
797
|
+
"discover.rightNow.activate.start": "Iniciar",
|
|
798
|
+
"discover.rightNow.activate.startingSession": "Iniciando sua sessão no Right Now…",
|
|
799
|
+
"discover.rightNow.activate.title": "Iniciar uma sessão Right Now",
|
|
800
|
+
"discover.rightNow.badge": "Right Now",
|
|
801
|
+
"discover.rightNow.compose.addPhoto": "Adicionar foto",
|
|
802
|
+
"discover.rightNow.compose.captionPlaceholder": "Escreva uma descrição…",
|
|
803
|
+
"discover.rightNow.compose.close": "Fechar",
|
|
804
|
+
"discover.rightNow.compose.hint": "Publique só texto, só foto, ou os dois.",
|
|
805
|
+
"discover.rightNow.compose.post": "Publicar",
|
|
806
|
+
"discover.rightNow.compose.removePhoto": "Remover foto",
|
|
807
|
+
"discover.rightNow.compose.title": "Post Right Now",
|
|
808
|
+
"discover.rightNow.fab": "Right Now",
|
|
809
|
+
"discover.rightNow.fabActive": "Ao vivo",
|
|
810
|
+
"discover.rightNow.hub.emptyFeed": "Nenhum post no Right Now ainda. Seja o primeiro.",
|
|
811
|
+
"discover.rightNow.hub.emptyMap": "Ninguém ativo no mapa por perto.",
|
|
812
|
+
"discover.rightNow.hub.feed": "Publicações",
|
|
813
|
+
"discover.rightNow.hub.hosting": "Recepcionando",
|
|
814
|
+
"discover.rightNow.hub.map": "Mapa",
|
|
815
|
+
"discover.rightNow.hub.title": "Right Now",
|
|
816
|
+
"discover.rightNow.manage.end": "Encerrar sessão",
|
|
817
|
+
"discover.rightNow.manage.pending": "Ativo · falta {minutes}m",
|
|
818
|
+
"discover.rightNow.manage.title": "Right Now",
|
|
819
|
+
"discover.rightNow.quota.exhausted": "Você usou todas as sessões gratuitas desta semana.",
|
|
757
820
|
"discover.subtitle.huntingIn": "Caçando em {label}",
|
|
758
821
|
"discover.subtitle.huntingOther": "Caçando em outra região",
|
|
759
822
|
"discover.subtitle.nearby": "Encontros por proximidade",
|
|
@@ -1310,6 +1373,50 @@ export const PT_BR_MESSAGES = {
|
|
|
1310
1373
|
"profile.view.sendMessage": "Enviar mensagem",
|
|
1311
1374
|
"profile.view.sendReaction": "Enviar reação",
|
|
1312
1375
|
"profile.view.unmuted": "Notificações permitidas de novo.",
|
|
1376
|
+
"random.ai.cardSubtitle": "Conversa assistida quando você quiser praticar",
|
|
1377
|
+
"random.ai.cardTitle": "Chat com IA",
|
|
1378
|
+
"random.ai.soon.hint": "Uma conversa com assistência de IA está a caminho. Enquanto isso, experimente o chat aleatório com pessoas reais.",
|
|
1379
|
+
"random.ai.soon.title": "Chat com IA em breve",
|
|
1380
|
+
"random.chat.cta.cancel": "Sair da fila",
|
|
1381
|
+
"random.chat.cta.join": "Entrar na fila agora",
|
|
1382
|
+
"random.chat.cta.open": "Abrir conversa",
|
|
1383
|
+
"random.chat.idle.hint": "Fale com alguém do acaso. Só mensagens e áudio — identidade só se os dois derem Match.",
|
|
1384
|
+
"random.chat.idle.title": "Chat aleatório",
|
|
1385
|
+
"random.chat.matched.hint": "A pessoa do outro lado não vê seu perfil. Combine o Match para se revelarem.",
|
|
1386
|
+
"random.chat.matched.title": "Você está conversando",
|
|
1387
|
+
"random.chat.waiting.hint": "Assim que outra pessoa entrar, a conversa começa. Sem fotos nem perfil até o Match.",
|
|
1388
|
+
"random.chat.waiting.title": "Procurando alguém…",
|
|
1389
|
+
"random.error.enqueue": "Não foi possível entrar na fila. Tente de novo.",
|
|
1390
|
+
"random.error.generic": "Algo deu errado. Tente de novo.",
|
|
1391
|
+
"random.hub.badgeSoon": "Em breve",
|
|
1392
|
+
"random.hub.bulletAudioBody": "Conversa leve, no ritmo noturno — sem câmera no chat.",
|
|
1393
|
+
"random.hub.bulletAudioTitle": "Texto + áudio",
|
|
1394
|
+
"random.hub.bulletMatchBody": "Gostou? Match. Não? Pula e encontra outra pessoa.",
|
|
1395
|
+
"random.hub.bulletMatchTitle": "Match ou próximo",
|
|
1396
|
+
"random.hub.bulletPrivacyBody": "Nada de foto, nome ou bio até o Match mútuo.",
|
|
1397
|
+
"random.hub.bulletPrivacyTitle": "Anônimo de verdade",
|
|
1398
|
+
"random.hub.ctaExploreSoon": "Ver o que vem",
|
|
1399
|
+
"random.hub.heroSubtitle": "Entre na fila, converse com texto e áudio. Sem foto nem perfil — até o Match dos dois.",
|
|
1400
|
+
"random.hub.heroTitle": "Conheça alguém do acaso",
|
|
1401
|
+
"random.hub.moreTitle": "Mais Randoms",
|
|
1402
|
+
"random.hub.privacyBanner": "Seu perfil fica oculto. Só se revelam se os dois derem Match.",
|
|
1403
|
+
"random.hub.title": "Randoms",
|
|
1404
|
+
"random.segment.ai": "Chat com IA",
|
|
1405
|
+
"random.segment.chat": "Chat aleatório",
|
|
1406
|
+
"random.segment.video": "Vídeo aleatório",
|
|
1407
|
+
"random.soon.back": "Voltar aos Randoms",
|
|
1408
|
+
"random.thread.anonymousName": "Alguém",
|
|
1409
|
+
"random.thread.match": "Match",
|
|
1410
|
+
"random.thread.matchPending": "Aguardando o Match da outra pessoa…",
|
|
1411
|
+
"random.thread.mutualBody": "Agora vocês podem ver o perfil um do outro no chat.",
|
|
1412
|
+
"random.thread.mutualTitle": "Deu Match!",
|
|
1413
|
+
"random.thread.skip": "Próximo",
|
|
1414
|
+
"random.thread.skipConfirmBody": "Você pode entrar na fila de novo e falar com outra pessoa.",
|
|
1415
|
+
"random.thread.skipConfirmTitle": "Encerrar conversa?",
|
|
1416
|
+
"random.video.cardSubtitle": "Chamada ao vivo com alguém do acaso",
|
|
1417
|
+
"random.video.cardTitle": "Vídeo aleatório",
|
|
1418
|
+
"random.video.soon.hint": "Estamos preparando chamadas aleatórias anônimas. Volte em breve — o chat de texto já está rolando.",
|
|
1419
|
+
"random.video.soon.title": "Vídeo aleatório em breve",
|
|
1313
1420
|
"referral.creator.metric.clicks": "Cliques no link",
|
|
1314
1421
|
"referral.creator.metric.converted": "Assinaturas",
|
|
1315
1422
|
"referral.creator.metric.onboarded": "Perfis completos",
|
|
@@ -1842,6 +1949,7 @@ export const PT_BR_MESSAGES = {
|
|
|
1842
1949
|
"shell.surface.vibesTitle": "Vibes",
|
|
1843
1950
|
"shell.tab.chat": "Chat",
|
|
1844
1951
|
"shell.tab.discover": "Caçar",
|
|
1952
|
+
"shell.tab.randoms": "Randoms",
|
|
1845
1953
|
"shell.tab.vibes": "Vibes",
|
|
1846
1954
|
"shell.tabs.bodyHint": "Configuração remota da tab bar (badges, ordem, labels).",
|
|
1847
1955
|
"shell.tabs.title": "Tab bar",
|
|
@@ -2136,6 +2244,11 @@ export const EN_MESSAGES: FlatMessages = {
|
|
|
2136
2244
|
"alerts.repostSoon": "Reposting will be available soon.",
|
|
2137
2245
|
"alerts.repostThoughtsSoon": "Reposting thoughts will be available soon.",
|
|
2138
2246
|
"alerts.revoke": "Revoke",
|
|
2247
|
+
"alerts.rightNow.contentRequired": "Add a caption or a photo to post.",
|
|
2248
|
+
"alerts.rightNow.endFailed": "Couldn’t end the session.",
|
|
2249
|
+
"alerts.rightNow.postFailed": "Couldn’t post to Right Now.",
|
|
2250
|
+
"alerts.rightNow.quotaExceeded": "You’ve used all Right Now sessions this week.",
|
|
2251
|
+
"alerts.rightNow.startFailed": "Couldn’t start Right Now. Try again.",
|
|
2139
2252
|
"alerts.saveFailed": "Could not save.",
|
|
2140
2253
|
"alerts.selectImageFail": "Couldn’t select the image.",
|
|
2141
2254
|
"alerts.selectMediaFail": "Couldn’t select the media.",
|
|
@@ -2598,6 +2711,10 @@ export const EN_MESSAGES: FlatMessages = {
|
|
|
2598
2711
|
"chat.report.sentBodyGroup": "Thanks. We'll review the group.",
|
|
2599
2712
|
"chat.report.sentTitle": "Report sent",
|
|
2600
2713
|
"chat.report.spam": "Spam",
|
|
2714
|
+
"chat.safety.body": "Compare this code with the other person (outside the app). If it matches, the chat is protected.\n\n{code}",
|
|
2715
|
+
"chat.safety.title": "Safety code",
|
|
2716
|
+
"chat.safety.unavailable": "Couldn't build a safety code on this device.",
|
|
2717
|
+
"chat.safety.verify": "Verify safety code",
|
|
2601
2718
|
"chat.savedPhrases.empty": "No saved phrases yet.",
|
|
2602
2719
|
"chat.savedPhrases.errorLoad": "Couldn't load your saved phrases.",
|
|
2603
2720
|
"chat.savedPhrases.errorRemove": "Couldn't remove the phrase.",
|
|
@@ -2628,6 +2745,7 @@ export const EN_MESSAGES: FlatMessages = {
|
|
|
2628
2745
|
"chat.thread.fallbackName": "Conversation",
|
|
2629
2746
|
"chat.thread.muteOff": "Notifications are on again.",
|
|
2630
2747
|
"chat.thread.muteOn": "Notifications muted for this person.",
|
|
2748
|
+
"chat.thread.peerKeyMissing": "This person hasn't published a public key yet. Encrypted messaging isn't available.",
|
|
2631
2749
|
"chat.toast.done": "Done",
|
|
2632
2750
|
"chat.viewOnce.delete": "Delete",
|
|
2633
2751
|
"chat.viewOnce.infoBody": "View-once photos, videos, and audio disappear from the conversation after the person opens the file once.",
|
|
@@ -2733,6 +2851,7 @@ export const EN_MESSAGES: FlatMessages = {
|
|
|
2733
2851
|
"discover.empty.default": "No one nearby yet.",
|
|
2734
2852
|
"discover.empty.online": "No one online nearby right now.",
|
|
2735
2853
|
"discover.empty.position": "No one with position \"{position}\" nearby. Refresh or change the filter.",
|
|
2854
|
+
"discover.empty.rightNow": "No one on Right Now nearby right now.",
|
|
2736
2855
|
"discover.empty.title": "No one nearby",
|
|
2737
2856
|
"discover.endRegion.body": "You’ve seen the closest profiles. Turn on Hunt to explore other cities without changing your real location.",
|
|
2738
2857
|
"discover.endRegion.cta": "Hunt in another region",
|
|
@@ -2741,6 +2860,22 @@ export const EN_MESSAGES: FlatMessages = {
|
|
|
2741
2860
|
"discover.filter.creators": "Creators",
|
|
2742
2861
|
"discover.filter.online": "Online Now",
|
|
2743
2862
|
"discover.filter.position": "Position",
|
|
2863
|
+
"discover.filter.rightNow": "Right Now",
|
|
2864
|
+
"discover.filters.age25to35": "25–35",
|
|
2865
|
+
"discover.filters.ageOver35": "Over 35",
|
|
2866
|
+
"discover.filters.ageUnder25": "Under 25",
|
|
2867
|
+
"discover.filters.anyAge": "Any age",
|
|
2868
|
+
"discover.filters.apply": "Apply",
|
|
2869
|
+
"discover.filters.clearAll": "Clear all",
|
|
2870
|
+
"discover.filters.creators": "Creators",
|
|
2871
|
+
"discover.filters.onlineNow": "Online now",
|
|
2872
|
+
"discover.filters.rightNow": "Right Now",
|
|
2873
|
+
"discover.filters.sectionAge": "Age",
|
|
2874
|
+
"discover.filters.sectionMedia": "Media",
|
|
2875
|
+
"discover.filters.sectionPosition": "Position",
|
|
2876
|
+
"discover.filters.sectionStatus": "Status",
|
|
2877
|
+
"discover.filters.title": "Filters",
|
|
2878
|
+
"discover.filters.withPhotos": "With photos",
|
|
2744
2879
|
"discover.hideDistance.body": "While this is on, you won’t see the nearby people grid.",
|
|
2745
2880
|
"discover.hideDistance.openSettings": "Open settings",
|
|
2746
2881
|
"discover.hideDistance.title": "You hid your distance",
|
|
@@ -2749,6 +2884,13 @@ export const EN_MESSAGES: FlatMessages = {
|
|
|
2749
2884
|
"discover.hunt.changeRegion": "Change region",
|
|
2750
2885
|
"discover.hunt.otherRegion": "another region",
|
|
2751
2886
|
"discover.hunt.useMyLocation": "Use my location",
|
|
2887
|
+
"discover.mapPin.ageYears": "{age} years old",
|
|
2888
|
+
"discover.mapPin.approxHint": "Approximate location",
|
|
2889
|
+
"discover.mapPin.distanceKm": "{km} km",
|
|
2890
|
+
"discover.mapPin.distanceM": "{m} m",
|
|
2891
|
+
"discover.mapPin.flash": "Flash",
|
|
2892
|
+
"discover.mapPin.messagePlaceholder": "Message {name}...",
|
|
2893
|
+
"discover.mapPin.profile": "View profile",
|
|
2752
2894
|
"discover.position.all": "All positions",
|
|
2753
2895
|
"discover.position.ativo": "Top",
|
|
2754
2896
|
"discover.position.passivo": "Bottom",
|
|
@@ -2756,6 +2898,35 @@ export const EN_MESSAGES: FlatMessages = {
|
|
|
2756
2898
|
"discover.position.versatil": "Versatile",
|
|
2757
2899
|
"discover.position.versatilAtivo": "Versatile-top",
|
|
2758
2900
|
"discover.position.versatilPassivo": "Versatile-bottom",
|
|
2901
|
+
"discover.rightNow.activate.body": "Let everyone know you want to meet someone now.",
|
|
2902
|
+
"discover.rightNow.activate.gateBody": "Turn on Right Now to see who’s nearby on the map and in posts.",
|
|
2903
|
+
"discover.rightNow.activate.hosting": "Hosting",
|
|
2904
|
+
"discover.rightNow.activate.moodPlaceholder": "What are you in the mood for?",
|
|
2905
|
+
"discover.rightNow.activate.readMore": "Read more",
|
|
2906
|
+
"discover.rightNow.activate.remainingSessions": "{count} sessions left this week",
|
|
2907
|
+
"discover.rightNow.activate.start": "Start",
|
|
2908
|
+
"discover.rightNow.activate.startingSession": "Starting your Right Now session…",
|
|
2909
|
+
"discover.rightNow.activate.title": "Start a Right Now session",
|
|
2910
|
+
"discover.rightNow.badge": "Right Now",
|
|
2911
|
+
"discover.rightNow.compose.addPhoto": "Add photo",
|
|
2912
|
+
"discover.rightNow.compose.captionPlaceholder": "Write a short description…",
|
|
2913
|
+
"discover.rightNow.compose.close": "Close",
|
|
2914
|
+
"discover.rightNow.compose.hint": "Post text only, a photo only, or both.",
|
|
2915
|
+
"discover.rightNow.compose.post": "Post",
|
|
2916
|
+
"discover.rightNow.compose.removePhoto": "Remove photo",
|
|
2917
|
+
"discover.rightNow.compose.title": "Right Now post",
|
|
2918
|
+
"discover.rightNow.fab": "Right Now",
|
|
2919
|
+
"discover.rightNow.fabActive": "Live",
|
|
2920
|
+
"discover.rightNow.hub.emptyFeed": "No Right Now posts yet. Be the first.",
|
|
2921
|
+
"discover.rightNow.hub.emptyMap": "No one active on the map nearby.",
|
|
2922
|
+
"discover.rightNow.hub.feed": "Posts",
|
|
2923
|
+
"discover.rightNow.hub.hosting": "Hosting",
|
|
2924
|
+
"discover.rightNow.hub.map": "Map",
|
|
2925
|
+
"discover.rightNow.hub.title": "Right Now",
|
|
2926
|
+
"discover.rightNow.manage.end": "End session",
|
|
2927
|
+
"discover.rightNow.manage.pending": "Active · {minutes}m left",
|
|
2928
|
+
"discover.rightNow.manage.title": "Right Now",
|
|
2929
|
+
"discover.rightNow.quota.exhausted": "You’ve used all free sessions this week.",
|
|
2759
2930
|
"discover.subtitle.huntingIn": "Hunting in {label}",
|
|
2760
2931
|
"discover.subtitle.huntingOther": "Hunting in another region",
|
|
2761
2932
|
"discover.subtitle.nearby": "Nearby encounters",
|
|
@@ -3312,6 +3483,50 @@ export const EN_MESSAGES: FlatMessages = {
|
|
|
3312
3483
|
"profile.view.sendMessage": "Send message",
|
|
3313
3484
|
"profile.view.sendReaction": "Send reaction",
|
|
3314
3485
|
"profile.view.unmuted": "Notifications allowed again.",
|
|
3486
|
+
"random.ai.cardSubtitle": "Assisted chat when you want to practice",
|
|
3487
|
+
"random.ai.cardTitle": "AI chat",
|
|
3488
|
+
"random.ai.soon.hint": "An AI-assisted chat is on the way. Meanwhile, try random chat with real people.",
|
|
3489
|
+
"random.ai.soon.title": "AI chat coming soon",
|
|
3490
|
+
"random.chat.cta.cancel": "Leave queue",
|
|
3491
|
+
"random.chat.cta.join": "Join the queue now",
|
|
3492
|
+
"random.chat.cta.open": "Open chat",
|
|
3493
|
+
"random.chat.idle.hint": "Talk to someone at random. Messages and audio only — identity only if you both Match.",
|
|
3494
|
+
"random.chat.idle.title": "Random chat",
|
|
3495
|
+
"random.chat.matched.hint": "The other person can't see your profile. Match together to reveal.",
|
|
3496
|
+
"random.chat.matched.title": "You're chatting",
|
|
3497
|
+
"random.chat.waiting.hint": "When another person joins, the chat starts. No photos or profile until you both Match.",
|
|
3498
|
+
"random.chat.waiting.title": "Looking for someone…",
|
|
3499
|
+
"random.error.enqueue": "Couldn't join the queue. Try again.",
|
|
3500
|
+
"random.error.generic": "Something went wrong. Try again.",
|
|
3501
|
+
"random.hub.badgeSoon": "Coming soon",
|
|
3502
|
+
"random.hub.bulletAudioBody": "Keep it light, night-owl pace — no camera in chat.",
|
|
3503
|
+
"random.hub.bulletAudioTitle": "Text + audio",
|
|
3504
|
+
"random.hub.bulletMatchBody": "Like them? Match. Not feeling it? Skip and meet someone else.",
|
|
3505
|
+
"random.hub.bulletMatchTitle": "Match or next",
|
|
3506
|
+
"random.hub.bulletPrivacyBody": "No photo, name, or bio until a mutual Match.",
|
|
3507
|
+
"random.hub.bulletPrivacyTitle": "Truly anonymous",
|
|
3508
|
+
"random.hub.ctaExploreSoon": "See what's next",
|
|
3509
|
+
"random.hub.heroSubtitle": "Join the queue, chat with text and audio. No photo or profile — until you both Match.",
|
|
3510
|
+
"random.hub.heroTitle": "Meet someone at random",
|
|
3511
|
+
"random.hub.moreTitle": "More Randoms",
|
|
3512
|
+
"random.hub.privacyBanner": "Your profile stays hidden. You only reveal if both of you Match.",
|
|
3513
|
+
"random.hub.title": "Randoms",
|
|
3514
|
+
"random.segment.ai": "AI chat",
|
|
3515
|
+
"random.segment.chat": "Random chat",
|
|
3516
|
+
"random.segment.video": "Random video",
|
|
3517
|
+
"random.soon.back": "Back to Randoms",
|
|
3518
|
+
"random.thread.anonymousName": "Someone",
|
|
3519
|
+
"random.thread.match": "Match",
|
|
3520
|
+
"random.thread.matchPending": "Waiting for their Match…",
|
|
3521
|
+
"random.thread.mutualBody": "You can now see each other's profiles in chat.",
|
|
3522
|
+
"random.thread.mutualTitle": "It's a Match!",
|
|
3523
|
+
"random.thread.skip": "Next",
|
|
3524
|
+
"random.thread.skipConfirmBody": "You can join the queue again and talk to someone else.",
|
|
3525
|
+
"random.thread.skipConfirmTitle": "End this chat?",
|
|
3526
|
+
"random.video.cardSubtitle": "Live call with someone at random",
|
|
3527
|
+
"random.video.cardTitle": "Random video",
|
|
3528
|
+
"random.video.soon.hint": "We're building anonymous random video calls. Check back soon — text chat is already live.",
|
|
3529
|
+
"random.video.soon.title": "Random video coming soon",
|
|
3315
3530
|
"referral.creator.metric.clicks": "Link clicks",
|
|
3316
3531
|
"referral.creator.metric.converted": "Subscriptions",
|
|
3317
3532
|
"referral.creator.metric.onboarded": "Completed profiles",
|
|
@@ -3844,6 +4059,7 @@ export const EN_MESSAGES: FlatMessages = {
|
|
|
3844
4059
|
"shell.surface.vibesTitle": "Vibes",
|
|
3845
4060
|
"shell.tab.chat": "Chat",
|
|
3846
4061
|
"shell.tab.discover": "Hunt",
|
|
4062
|
+
"shell.tab.randoms": "Randoms",
|
|
3847
4063
|
"shell.tab.vibes": "Vibes",
|
|
3848
4064
|
"shell.tabs.bodyHint": "Remote tab-bar config (badges, order, labels).",
|
|
3849
4065
|
"shell.tabs.title": "Tab bar",
|
|
@@ -125,6 +125,11 @@
|
|
|
125
125
|
"alerts.report.writeSummary": "Write a short summary of what happened.",
|
|
126
126
|
"alerts.repost": "Repost",
|
|
127
127
|
"alerts.repostSoon": "Reposting will be available soon.",
|
|
128
|
+
"alerts.rightNow.quotaExceeded": "You’ve used all Right Now sessions this week.",
|
|
129
|
+
"alerts.rightNow.startFailed": "Couldn’t start Right Now. Try again.",
|
|
130
|
+
"alerts.rightNow.endFailed": "Couldn’t end the session.",
|
|
131
|
+
"alerts.rightNow.postFailed": "Couldn’t post to Right Now.",
|
|
132
|
+
"alerts.rightNow.contentRequired": "Add a caption or a photo to post.",
|
|
128
133
|
"alerts.repostThoughtsSoon": "Reposting thoughts will be available soon.",
|
|
129
134
|
"alerts.revoke": "Revoke",
|
|
130
135
|
"alerts.saveFailed": "Could not save.",
|
package/src/locales/en/chat.json
CHANGED
|
@@ -349,11 +349,16 @@
|
|
|
349
349
|
"chat.story.replied": "You replied to the story",
|
|
350
350
|
"chat.story.repliedPeer": "Replied to your story",
|
|
351
351
|
"chat.storyReply.peerKeyUnavailable": "Recipient public key unavailable.",
|
|
352
|
+
"chat.safety.title": "Safety code",
|
|
353
|
+
"chat.safety.verify": "Verify safety code",
|
|
354
|
+
"chat.safety.body": "Compare this code with the other person (outside the app). If it matches, the chat is protected.\n\n{code}",
|
|
355
|
+
"chat.safety.unavailable": "Couldn't build a safety code on this device.",
|
|
352
356
|
"chat.thread.decryptFailed": "[could not decrypt]",
|
|
353
357
|
"chat.thread.fallbackGroup": "Group",
|
|
354
358
|
"chat.thread.fallbackName": "Conversation",
|
|
355
359
|
"chat.thread.muteOff": "Notifications are on again.",
|
|
356
360
|
"chat.thread.muteOn": "Notifications muted for this person.",
|
|
361
|
+
"chat.thread.peerKeyMissing": "This person hasn't published a public key yet. Encrypted messaging isn't available.",
|
|
357
362
|
"chat.toast.done": "Done",
|
|
358
363
|
"chat.viewOnce.delete": "Delete",
|
|
359
364
|
"chat.viewOnce.infoBody": "View-once photos, videos, and audio disappear from the conversation after the person opens the file once.",
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
"discover.empty.default": "No one nearby yet.",
|
|
12
12
|
"discover.empty.online": "No one online nearby right now.",
|
|
13
13
|
"discover.empty.position": "No one with position \"{position}\" nearby. Refresh or change the filter.",
|
|
14
|
+
"discover.empty.rightNow": "No one on Right Now nearby right now.",
|
|
14
15
|
"discover.empty.title": "No one nearby",
|
|
15
16
|
"discover.endRegion.body": "You’ve seen the closest profiles. Turn on Hunt to explore other cities without changing your real location.",
|
|
16
17
|
"discover.endRegion.cta": "Hunt in another region",
|
|
@@ -19,6 +20,58 @@
|
|
|
19
20
|
"discover.filter.creators": "Creators",
|
|
20
21
|
"discover.filter.online": "Online Now",
|
|
21
22
|
"discover.filter.position": "Position",
|
|
23
|
+
"discover.filter.rightNow": "Right Now",
|
|
24
|
+
"discover.filters.title": "Filters",
|
|
25
|
+
"discover.filters.clearAll": "Clear all",
|
|
26
|
+
"discover.filters.apply": "Apply",
|
|
27
|
+
"discover.filters.sectionStatus": "Status",
|
|
28
|
+
"discover.filters.sectionMedia": "Media",
|
|
29
|
+
"discover.filters.sectionPosition": "Position",
|
|
30
|
+
"discover.filters.sectionAge": "Age",
|
|
31
|
+
"discover.filters.onlineNow": "Online now",
|
|
32
|
+
"discover.filters.withPhotos": "With photos",
|
|
33
|
+
"discover.filters.rightNow": "Right Now",
|
|
34
|
+
"discover.filters.creators": "Creators",
|
|
35
|
+
"discover.filters.ageUnder25": "Under 25",
|
|
36
|
+
"discover.filters.age25to35": "25–35",
|
|
37
|
+
"discover.filters.ageOver35": "Over 35",
|
|
38
|
+
"discover.filters.anyAge": "Any age",
|
|
39
|
+
"discover.mapPin.flash": "Flash",
|
|
40
|
+
"discover.mapPin.profile": "View profile",
|
|
41
|
+
"discover.mapPin.distanceKm": "{km} km",
|
|
42
|
+
"discover.mapPin.distanceM": "{m} m",
|
|
43
|
+
"discover.mapPin.ageYears": "{age} years old",
|
|
44
|
+
"discover.mapPin.approxHint": "Approximate location",
|
|
45
|
+
"discover.mapPin.messagePlaceholder": "Message {name}...",
|
|
46
|
+
"discover.rightNow.activate.body": "Let everyone know you want to meet someone now.",
|
|
47
|
+
"discover.rightNow.activate.gateBody": "Turn on Right Now to see who’s nearby on the map and in posts.",
|
|
48
|
+
"discover.rightNow.compose.addPhoto": "Add photo",
|
|
49
|
+
"discover.rightNow.compose.close": "Close",
|
|
50
|
+
"discover.rightNow.compose.hint": "Post text only, a photo only, or both.",
|
|
51
|
+
"discover.rightNow.compose.removePhoto": "Remove photo",
|
|
52
|
+
"discover.rightNow.activate.hosting": "Hosting",
|
|
53
|
+
"discover.rightNow.activate.moodPlaceholder": "What are you in the mood for?",
|
|
54
|
+
"discover.rightNow.activate.readMore": "Read more",
|
|
55
|
+
"discover.rightNow.activate.remainingSessions": "{count} sessions left this week",
|
|
56
|
+
"discover.rightNow.activate.start": "Start",
|
|
57
|
+
"discover.rightNow.activate.startingSession": "Starting your Right Now session…",
|
|
58
|
+
"discover.rightNow.activate.title": "Start a Right Now session",
|
|
59
|
+
"discover.rightNow.badge": "Right Now",
|
|
60
|
+
"discover.rightNow.compose.captionPlaceholder": "Write a short description…",
|
|
61
|
+
"discover.rightNow.compose.post": "Post",
|
|
62
|
+
"discover.rightNow.compose.title": "Right Now post",
|
|
63
|
+
"discover.rightNow.fab": "Right Now",
|
|
64
|
+
"discover.rightNow.fabActive": "Live",
|
|
65
|
+
"discover.rightNow.hub.emptyFeed": "No Right Now posts yet. Be the first.",
|
|
66
|
+
"discover.rightNow.hub.emptyMap": "No one active on the map nearby.",
|
|
67
|
+
"discover.rightNow.hub.feed": "Posts",
|
|
68
|
+
"discover.rightNow.hub.hosting": "Hosting",
|
|
69
|
+
"discover.rightNow.hub.map": "Map",
|
|
70
|
+
"discover.rightNow.hub.title": "Right Now",
|
|
71
|
+
"discover.rightNow.manage.end": "End session",
|
|
72
|
+
"discover.rightNow.manage.pending": "Active · {minutes}m left",
|
|
73
|
+
"discover.rightNow.manage.title": "Right Now",
|
|
74
|
+
"discover.rightNow.quota.exhausted": "You’ve used all free sessions this week.",
|
|
22
75
|
"discover.hideDistance.body": "While this is on, you won’t see the nearby people grid.",
|
|
23
76
|
"discover.hideDistance.openSettings": "Open settings",
|
|
24
77
|
"discover.hideDistance.title": "You hid your distance",
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
{
|
|
2
|
+
"random.hub.title": "Randoms",
|
|
3
|
+
"random.hub.heroTitle": "Meet someone at random",
|
|
4
|
+
"random.hub.heroSubtitle": "Join the queue, chat with text and audio. No photo or profile — until you both Match.",
|
|
5
|
+
"random.hub.privacyBanner": "Your profile stays hidden. You only reveal if both of you Match.",
|
|
6
|
+
"random.hub.moreTitle": "More Randoms",
|
|
7
|
+
"random.hub.badgeSoon": "Coming soon",
|
|
8
|
+
"random.hub.ctaExploreSoon": "See what's next",
|
|
9
|
+
"random.hub.bulletPrivacyTitle": "Truly anonymous",
|
|
10
|
+
"random.hub.bulletPrivacyBody": "No photo, name, or bio until a mutual Match.",
|
|
11
|
+
"random.hub.bulletMatchTitle": "Match or next",
|
|
12
|
+
"random.hub.bulletMatchBody": "Like them? Match. Not feeling it? Skip and meet someone else.",
|
|
13
|
+
"random.hub.bulletAudioTitle": "Text + audio",
|
|
14
|
+
"random.hub.bulletAudioBody": "Keep it light, night-owl pace — no camera in chat.",
|
|
15
|
+
"random.segment.chat": "Random chat",
|
|
16
|
+
"random.segment.video": "Random video",
|
|
17
|
+
"random.segment.ai": "AI chat",
|
|
18
|
+
"random.chat.cta.join": "Join the queue now",
|
|
19
|
+
"random.chat.cta.cancel": "Leave queue",
|
|
20
|
+
"random.chat.cta.open": "Open chat",
|
|
21
|
+
"random.chat.waiting.title": "Looking for someone…",
|
|
22
|
+
"random.chat.waiting.hint": "When another person joins, the chat starts. No photos or profile until you both Match.",
|
|
23
|
+
"random.chat.idle.title": "Random chat",
|
|
24
|
+
"random.chat.idle.hint": "Talk to someone at random. Messages and audio only — identity only if you both Match.",
|
|
25
|
+
"random.chat.matched.title": "You're chatting",
|
|
26
|
+
"random.chat.matched.hint": "The other person can't see your profile. Match together to reveal.",
|
|
27
|
+
"random.video.cardTitle": "Random video",
|
|
28
|
+
"random.video.cardSubtitle": "Live call with someone at random",
|
|
29
|
+
"random.video.soon.title": "Random video coming soon",
|
|
30
|
+
"random.video.soon.hint": "We're building anonymous random video calls. Check back soon — text chat is already live.",
|
|
31
|
+
"random.ai.cardTitle": "AI chat",
|
|
32
|
+
"random.ai.cardSubtitle": "Assisted chat when you want to practice",
|
|
33
|
+
"random.ai.soon.title": "AI chat coming soon",
|
|
34
|
+
"random.ai.soon.hint": "An AI-assisted chat is on the way. Meanwhile, try random chat with real people.",
|
|
35
|
+
"random.soon.back": "Back to Randoms",
|
|
36
|
+
"random.thread.anonymousName": "Someone",
|
|
37
|
+
"random.thread.match": "Match",
|
|
38
|
+
"random.thread.skip": "Next",
|
|
39
|
+
"random.thread.matchPending": "Waiting for their Match…",
|
|
40
|
+
"random.thread.mutualTitle": "It's a Match!",
|
|
41
|
+
"random.thread.mutualBody": "You can now see each other's profiles in chat.",
|
|
42
|
+
"random.thread.skipConfirmTitle": "End this chat?",
|
|
43
|
+
"random.thread.skipConfirmBody": "You can join the queue again and talk to someone else.",
|
|
44
|
+
"random.error.enqueue": "Couldn't join the queue. Try again.",
|
|
45
|
+
"random.error.generic": "Something went wrong. Try again."
|
|
46
|
+
}
|
|
@@ -454,6 +454,7 @@
|
|
|
454
454
|
"shell.surface.vibesTitle": "Vibes",
|
|
455
455
|
"shell.tab.chat": "Chat",
|
|
456
456
|
"shell.tab.discover": "Hunt",
|
|
457
|
+
"shell.tab.randoms": "Randoms",
|
|
457
458
|
"shell.tab.vibes": "Vibes",
|
|
458
459
|
"shell.tabs.bodyHint": "Remote tab-bar config (badges, order, labels).",
|
|
459
460
|
"shell.tabs.title": "Tab bar",
|
|
@@ -125,6 +125,11 @@
|
|
|
125
125
|
"alerts.report.writeSummary": "Escreva um breve resumo do que aconteceu.",
|
|
126
126
|
"alerts.repost": "Repost",
|
|
127
127
|
"alerts.repostSoon": "Repostar estará disponível em breve.",
|
|
128
|
+
"alerts.rightNow.quotaExceeded": "Você usou todas as sessões Right Now desta semana.",
|
|
129
|
+
"alerts.rightNow.startFailed": "Não foi possível iniciar o Right Now. Tente novamente.",
|
|
130
|
+
"alerts.rightNow.endFailed": "Não foi possível encerrar a sessão.",
|
|
131
|
+
"alerts.rightNow.postFailed": "Não foi possível publicar no Right Now.",
|
|
132
|
+
"alerts.rightNow.contentRequired": "Escreva um texto ou adicione uma foto para publicar.",
|
|
128
133
|
"alerts.repostThoughtsSoon": "Repostar pensamentos estará disponível em breve.",
|
|
129
134
|
"alerts.revoke": "Revogar",
|
|
130
135
|
"alerts.saveFailed": "Não foi possível salvar.",
|
|
@@ -349,11 +349,16 @@
|
|
|
349
349
|
"chat.story.replied": "Você respondeu ao story",
|
|
350
350
|
"chat.story.repliedPeer": "Respondeu ao seu story",
|
|
351
351
|
"chat.storyReply.peerKeyUnavailable": "Chave pública do destinatário indisponível.",
|
|
352
|
+
"chat.safety.title": "Código de segurança",
|
|
353
|
+
"chat.safety.verify": "Verificar código de segurança",
|
|
354
|
+
"chat.safety.body": "Compare este código com a outra pessoa (fora do app). Se for igual, a conversa está protegida.\n\n{code}",
|
|
355
|
+
"chat.safety.unavailable": "Não foi possível montar o código de segurança neste dispositivo.",
|
|
352
356
|
"chat.thread.decryptFailed": "[não foi possível decifrar]",
|
|
353
357
|
"chat.thread.fallbackGroup": "Grupo",
|
|
354
358
|
"chat.thread.fallbackName": "Conversa",
|
|
355
359
|
"chat.thread.muteOff": "Notificações permitidas de novo.",
|
|
356
360
|
"chat.thread.muteOn": "Notificações silenciadas desta pessoa.",
|
|
361
|
+
"chat.thread.peerKeyMissing": "Esta pessoa ainda não publicou a chave pública. Não é possível trocar mensagens cifradas ainda.",
|
|
357
362
|
"chat.toast.done": "Pronto",
|
|
358
363
|
"chat.viewOnce.delete": "Apagar",
|
|
359
364
|
"chat.viewOnce.infoBody": "Fotos, vídeos e áudios de visualização única desaparecem da conversa depois que a pessoa abre o arquivo uma vez.",
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
"discover.empty.default": "Ninguém por perto ainda.",
|
|
12
12
|
"discover.empty.online": "Ninguém online por perto agora.",
|
|
13
13
|
"discover.empty.position": "Ninguém com posição \"{position}\" por perto. Atualize ou mude o filtro.",
|
|
14
|
+
"discover.empty.rightNow": "Ninguém no Right Now por perto agora.",
|
|
14
15
|
"discover.empty.title": "Ninguém por perto",
|
|
15
16
|
"discover.endRegion.body": "Você viu os perfis mais próximos. Ative o Caçar para explorar outras cidades sem mudar sua localização real.",
|
|
16
17
|
"discover.endRegion.cta": "Caçar em outra região",
|
|
@@ -19,6 +20,58 @@
|
|
|
19
20
|
"discover.filter.creators": "Criadores",
|
|
20
21
|
"discover.filter.online": "Online Agora",
|
|
21
22
|
"discover.filter.position": "Posição",
|
|
23
|
+
"discover.filter.rightNow": "Right Now",
|
|
24
|
+
"discover.filters.title": "Filtros",
|
|
25
|
+
"discover.filters.clearAll": "Limpar tudo",
|
|
26
|
+
"discover.filters.apply": "Aplicar",
|
|
27
|
+
"discover.filters.sectionStatus": "Status",
|
|
28
|
+
"discover.filters.sectionMedia": "Mídia",
|
|
29
|
+
"discover.filters.sectionPosition": "Posição",
|
|
30
|
+
"discover.filters.sectionAge": "Idade",
|
|
31
|
+
"discover.filters.onlineNow": "Online agora",
|
|
32
|
+
"discover.filters.withPhotos": "Com fotos",
|
|
33
|
+
"discover.filters.rightNow": "Right Now",
|
|
34
|
+
"discover.filters.creators": "Criadores",
|
|
35
|
+
"discover.filters.ageUnder25": "Menos de 25",
|
|
36
|
+
"discover.filters.age25to35": "25–35",
|
|
37
|
+
"discover.filters.ageOver35": "Mais de 35",
|
|
38
|
+
"discover.filters.anyAge": "Qualquer idade",
|
|
39
|
+
"discover.mapPin.flash": "Flash",
|
|
40
|
+
"discover.mapPin.profile": "Ver perfil",
|
|
41
|
+
"discover.mapPin.distanceKm": "{km} km",
|
|
42
|
+
"discover.mapPin.distanceM": "{m} m",
|
|
43
|
+
"discover.mapPin.ageYears": "{age} anos",
|
|
44
|
+
"discover.mapPin.approxHint": "Local aproximado",
|
|
45
|
+
"discover.mapPin.messagePlaceholder": "Mensagem para {name}...",
|
|
46
|
+
"discover.rightNow.activate.body": "Deixe todo mundo saber que você quer encontrar alguém agora.",
|
|
47
|
+
"discover.rightNow.activate.gateBody": "Ative o Right Now para ver quem está por perto no mapa e nas publicações.",
|
|
48
|
+
"discover.rightNow.compose.addPhoto": "Adicionar foto",
|
|
49
|
+
"discover.rightNow.compose.close": "Fechar",
|
|
50
|
+
"discover.rightNow.compose.hint": "Publique só texto, só foto, ou os dois.",
|
|
51
|
+
"discover.rightNow.compose.removePhoto": "Remover foto",
|
|
52
|
+
"discover.rightNow.activate.hosting": "Recepcionando",
|
|
53
|
+
"discover.rightNow.activate.moodPlaceholder": "Do que você está a fim?",
|
|
54
|
+
"discover.rightNow.activate.readMore": "Saiba mais",
|
|
55
|
+
"discover.rightNow.activate.remainingSessions": "{count} sessões restantes esta semana",
|
|
56
|
+
"discover.rightNow.activate.start": "Iniciar",
|
|
57
|
+
"discover.rightNow.activate.startingSession": "Iniciando sua sessão no Right Now…",
|
|
58
|
+
"discover.rightNow.activate.title": "Iniciar uma sessão Right Now",
|
|
59
|
+
"discover.rightNow.badge": "Right Now",
|
|
60
|
+
"discover.rightNow.compose.captionPlaceholder": "Escreva uma descrição…",
|
|
61
|
+
"discover.rightNow.compose.post": "Publicar",
|
|
62
|
+
"discover.rightNow.compose.title": "Post Right Now",
|
|
63
|
+
"discover.rightNow.fab": "Right Now",
|
|
64
|
+
"discover.rightNow.fabActive": "Ao vivo",
|
|
65
|
+
"discover.rightNow.hub.emptyFeed": "Nenhum post no Right Now ainda. Seja o primeiro.",
|
|
66
|
+
"discover.rightNow.hub.emptyMap": "Ninguém ativo no mapa por perto.",
|
|
67
|
+
"discover.rightNow.hub.feed": "Publicações",
|
|
68
|
+
"discover.rightNow.hub.hosting": "Recepcionando",
|
|
69
|
+
"discover.rightNow.hub.map": "Mapa",
|
|
70
|
+
"discover.rightNow.hub.title": "Right Now",
|
|
71
|
+
"discover.rightNow.manage.end": "Encerrar sessão",
|
|
72
|
+
"discover.rightNow.manage.pending": "Ativo · falta {minutes}m",
|
|
73
|
+
"discover.rightNow.manage.title": "Right Now",
|
|
74
|
+
"discover.rightNow.quota.exhausted": "Você usou todas as sessões gratuitas desta semana.",
|
|
22
75
|
"discover.hideDistance.body": "Enquanto essa opção estiver ativa, você não verá o grid de pessoas próximas.",
|
|
23
76
|
"discover.hideDistance.openSettings": "Abrir configurações",
|
|
24
77
|
"discover.hideDistance.title": "Você ocultou sua distância",
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
{
|
|
2
|
+
"random.hub.title": "Randoms",
|
|
3
|
+
"random.hub.heroTitle": "Conheça alguém do acaso",
|
|
4
|
+
"random.hub.heroSubtitle": "Entre na fila, converse com texto e áudio. Sem foto nem perfil — até o Match dos dois.",
|
|
5
|
+
"random.hub.privacyBanner": "Seu perfil fica oculto. Só se revelam se os dois derem Match.",
|
|
6
|
+
"random.hub.moreTitle": "Mais Randoms",
|
|
7
|
+
"random.hub.badgeSoon": "Em breve",
|
|
8
|
+
"random.hub.ctaExploreSoon": "Ver o que vem",
|
|
9
|
+
"random.hub.bulletPrivacyTitle": "Anônimo de verdade",
|
|
10
|
+
"random.hub.bulletPrivacyBody": "Nada de foto, nome ou bio até o Match mútuo.",
|
|
11
|
+
"random.hub.bulletMatchTitle": "Match ou próximo",
|
|
12
|
+
"random.hub.bulletMatchBody": "Gostou? Match. Não? Pula e encontra outra pessoa.",
|
|
13
|
+
"random.hub.bulletAudioTitle": "Texto + áudio",
|
|
14
|
+
"random.hub.bulletAudioBody": "Conversa leve, no ritmo noturno — sem câmera no chat.",
|
|
15
|
+
"random.segment.chat": "Chat aleatório",
|
|
16
|
+
"random.segment.video": "Vídeo aleatório",
|
|
17
|
+
"random.segment.ai": "Chat com IA",
|
|
18
|
+
"random.chat.cta.join": "Entrar na fila agora",
|
|
19
|
+
"random.chat.cta.cancel": "Sair da fila",
|
|
20
|
+
"random.chat.cta.open": "Abrir conversa",
|
|
21
|
+
"random.chat.waiting.title": "Procurando alguém…",
|
|
22
|
+
"random.chat.waiting.hint": "Assim que outra pessoa entrar, a conversa começa. Sem fotos nem perfil até o Match.",
|
|
23
|
+
"random.chat.idle.title": "Chat aleatório",
|
|
24
|
+
"random.chat.idle.hint": "Fale com alguém do acaso. Só mensagens e áudio — identidade só se os dois derem Match.",
|
|
25
|
+
"random.chat.matched.title": "Você está conversando",
|
|
26
|
+
"random.chat.matched.hint": "A pessoa do outro lado não vê seu perfil. Combine o Match para se revelarem.",
|
|
27
|
+
"random.video.cardTitle": "Vídeo aleatório",
|
|
28
|
+
"random.video.cardSubtitle": "Chamada ao vivo com alguém do acaso",
|
|
29
|
+
"random.video.soon.title": "Vídeo aleatório em breve",
|
|
30
|
+
"random.video.soon.hint": "Estamos preparando chamadas aleatórias anônimas. Volte em breve — o chat de texto já está rolando.",
|
|
31
|
+
"random.ai.cardTitle": "Chat com IA",
|
|
32
|
+
"random.ai.cardSubtitle": "Conversa assistida quando você quiser praticar",
|
|
33
|
+
"random.ai.soon.title": "Chat com IA em breve",
|
|
34
|
+
"random.ai.soon.hint": "Uma conversa com assistência de IA está a caminho. Enquanto isso, experimente o chat aleatório com pessoas reais.",
|
|
35
|
+
"random.soon.back": "Voltar aos Randoms",
|
|
36
|
+
"random.thread.anonymousName": "Alguém",
|
|
37
|
+
"random.thread.match": "Match",
|
|
38
|
+
"random.thread.skip": "Próximo",
|
|
39
|
+
"random.thread.matchPending": "Aguardando o Match da outra pessoa…",
|
|
40
|
+
"random.thread.mutualTitle": "Deu Match!",
|
|
41
|
+
"random.thread.mutualBody": "Agora vocês podem ver o perfil um do outro no chat.",
|
|
42
|
+
"random.thread.skipConfirmTitle": "Encerrar conversa?",
|
|
43
|
+
"random.thread.skipConfirmBody": "Você pode entrar na fila de novo e falar com outra pessoa.",
|
|
44
|
+
"random.error.enqueue": "Não foi possível entrar na fila. Tente de novo.",
|
|
45
|
+
"random.error.generic": "Algo deu errado. Tente de novo."
|
|
46
|
+
}
|
|
@@ -454,6 +454,7 @@
|
|
|
454
454
|
"shell.surface.vibesTitle": "Vibes",
|
|
455
455
|
"shell.tab.chat": "Chat",
|
|
456
456
|
"shell.tab.discover": "Caçar",
|
|
457
|
+
"shell.tab.randoms": "Randoms",
|
|
457
458
|
"shell.tab.vibes": "Vibes",
|
|
458
459
|
"shell.tabs.bodyHint": "Configuração remota da tab bar (badges, ordem, labels).",
|
|
459
460
|
"shell.tabs.title": "Tab bar",
|