@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.
@@ -3,6 +3,7 @@
3
3
  "alerts.attention": "Attention",
4
4
  "alerts.block": "Block",
5
5
  "alerts.camera": "Camera error",
6
+ "alerts.common.ok": "OK",
6
7
  "alerts.couldNotAddTrip": "Couldn’t add the trip.",
7
8
  "alerts.couldNotComplete": "Couldn’t complete",
8
9
  "alerts.couldNotRemove": "Couldn’t remove.",
@@ -10,6 +11,20 @@
10
11
  "alerts.couldNotSave": "Couldn’t save.",
11
12
  "alerts.couldNotSaveNetworks": "Couldn’t save social links.",
12
13
  "alerts.crop": "Couldn’t crop",
14
+ "alerts.dataExport.createJobFailed": "Couldn’t create the export job",
15
+ "alerts.dataExport.jobNotFound": "Export job not found",
16
+ "alerts.dataExport.processFailed": "Couldn’t process the export",
17
+ "alerts.dataExport.serverTimeout": "Timed out waiting for the server export",
18
+ "alerts.dataExport.shareDialogTitle": "Export local data",
19
+ "alerts.dataExport.sharingUnavailable": "Sharing is unavailable on this device",
20
+ "alerts.devicePermission.location": "location",
21
+ "alerts.devicePermission.notifications": "notifications",
22
+ "alerts.devicePermission.pairFormat": "{first} and {second}",
23
+ "alerts.devicePermission.sound": "sound",
24
+ "alerts.devicePermission.tripleFormat": "{first}, {second} and {third}",
25
+ "alerts.diagnostics.connectionFailed": "Connection failed",
26
+ "alerts.diagnostics.locationFailed": "Couldn’t get location",
27
+ "alerts.diagnostics.permissionDenied": "Permission denied",
13
28
  "alerts.displayNameRequired": "Enter a display name.",
14
29
  "alerts.empty": "Empty",
15
30
  "alerts.error": "Error",
@@ -23,9 +38,69 @@
23
38
  "alerts.location": "Location",
24
39
  "alerts.mic": "Microphone",
25
40
  "alerts.ops": "Oops",
41
+ "alerts.permission.cameraBlocked": "Camera blocked. Enable it in device settings.",
42
+ "alerts.permission.cameraDenied": "Camera permission denied. Enable it in device settings.",
43
+ "alerts.permission.locationBlocked": "Location blocked. Enable it in device settings.",
44
+ "alerts.permission.locationDenied": "Location permission denied. Enable it in settings to use Discover near you.",
45
+ "alerts.permission.mediaLibraryBlocked": "Photo library blocked. Enable it in device settings.",
46
+ "alerts.permission.mediaLibraryDenied": "Photo library permission denied. Enable it in settings to pick photos and videos.",
47
+ "alerts.permission.microphoneBlocked": "Microphone blocked. Enable it in device settings.",
48
+ "alerts.permission.microphoneDenied": "Microphone permission denied. Enable it in settings to record audio and video.",
49
+ "alerts.permission.notificationsBlocked": "Notifications blocked. Enable them in device settings.",
50
+ "alerts.permission.notificationsDenied": "Notification permission denied. Enable it in device settings.",
26
51
  "alerts.photoPick": "Couldn’t pick photo",
27
52
  "alerts.photoUpload": "Couldn’t upload photo",
28
53
  "alerts.pinInvalid": "Invalid PIN. Use at least 4 digits.",
54
+ "alerts.push.blockedWebMessage": "Allow Proulr notifications in your browser to get messages like WhatsApp Web.",
55
+ "alerts.push.blockedWebTitle": "Notifications blocked",
56
+ "alerts.push.deniedMessage": "Enable Proulr notifications in your phone settings to receive alerts.",
57
+ "alerts.push.deniedTitle": "Notifications disabled",
58
+ "alerts.push.enableMessage": "Tap below to allow message and flash alerts.",
59
+ "alerts.push.enableTitle": "Turn on notifications",
60
+ "alerts.push.expoGoMessage": "On Android, tray notifications require a native build. Expo Go doesn’t deliver push.",
61
+ "alerts.push.expoGoTitle": "Expo Go doesn’t support push",
62
+ "alerts.push.flashSentBody": "{name} sent you a Flash",
63
+ "alerts.push.groupFallbackTitle": "Group",
64
+ "alerts.push.groupInviteBody": "{name} added you to the group",
65
+ "alerts.push.groupMessageBody": "{name}: Message",
66
+ "alerts.push.messageBody": "Message",
67
+ "alerts.push.missingProjectIdMessage": "Set extra.eas.projectId in app.json to register push.",
68
+ "alerts.push.missingProjectIdTitle": "EAS project not configured",
69
+ "alerts.push.nativeActiveMessage": "You’ll get alerts in your phone tray even with the app closed.",
70
+ "alerts.push.nativeActiveTitle": "Notifications active",
71
+ "alerts.push.newFlashTitle": "New Flash!",
72
+ "alerts.push.newReactionTitle": "New reaction!",
73
+ "alerts.push.reactionBody": "{name} {message} {emoji}",
74
+ "alerts.push.simulatorMessage": "Push doesn’t work in an emulator. Install the app on a real device.",
75
+ "alerts.push.simulatorTitle": "Use a physical phone",
76
+ "alerts.push.someoneFallback": "Someone",
77
+ "alerts.push.unavailableEnvMessage": "Install a native build to receive messages with the app closed.",
78
+ "alerts.push.unavailableEnvTitle": "Push unavailable in this environment",
79
+ "alerts.push.webActiveMessage": "You’ll get desktop alerts even with the tab in the background or closed.",
80
+ "alerts.push.webActiveTitle": "Web notifications active",
81
+ "alerts.push.webEnableMessage": "Get messages and Flashes on your desktop, like WhatsApp Web.",
82
+ "alerts.push.webEnableTitle": "Turn on web notifications",
83
+ "alerts.push.webMissingVapidMessage": "Set EXPO_PUBLIC_WEB_PUSH_VAPID_PUBLIC_KEY in .env and restart the web server.",
84
+ "alerts.push.webMissingVapidTitle": "Web Push not configured",
85
+ "alerts.pushDiag.browserPermissionDenied": "Notification permission denied by the browser.",
86
+ "alerts.pushDiag.expoGoUnsupported": "Environment without push support (Expo Go on Android).",
87
+ "alerts.pushDiag.moduleUnavailable": "expo-notifications could not be loaded.",
88
+ "alerts.pushDiag.physicalDeviceRequired": "Remote push requires a physical device (not an emulator).",
89
+ "alerts.pushDiag.projectIdMissing": "extra.eas.projectId missing in app.json.",
90
+ "alerts.pushDiag.systemPermissionDenied": "Notification permission denied by the system.",
91
+ "alerts.pushDiag.vapidKeyMissing": "EXPO_PUBLIC_WEB_PUSH_VAPID_PUBLIC_KEY missing.",
92
+ "alerts.pushTest.acceptedByExpo": "Push accepted by Expo.",
93
+ "alerts.pushTest.expoApiError": "Expo API error.",
94
+ "alerts.pushTest.localBody": "If you saw this, permission and channel are OK on this device.",
95
+ "alerts.pushTest.localScheduled": "Local notification scheduled.",
96
+ "alerts.pushTest.localTitle": "Local test 🔔",
97
+ "alerts.pushTest.moduleUnavailable": "expo-notifications unavailable in this environment.",
98
+ "alerts.pushTest.permissionDenied": "Notification permission denied.",
99
+ "alerts.pushTest.remoteBody": "Remote push via Expo reached this device.",
100
+ "alerts.pushTest.remoteTitle": "Remote test 🚀",
101
+ "alerts.pushTest.sendError": "Send error.",
102
+ "alerts.pushTest.ticketFormat": "Ticket {id}",
103
+ "alerts.pushTest.tokenUnavailable": "Push token unavailable.",
29
104
  "alerts.report": "Report",
30
105
  "alerts.report.already": "You already reported this profile in the last 24 hours.",
31
106
  "alerts.report.chooseReason": "Choose a report reason.",
@@ -33,8 +108,18 @@
33
108
  "alerts.report.writeSummary": "Write a short summary of what happened.",
34
109
  "alerts.soon": "Coming soon",
35
110
  "alerts.soonFeature": "{feature} isn’t available yet.",
111
+ "alerts.systemNotif.browserLabel": "Set up in browser",
112
+ "alerts.systemNotif.browserSubtitle": "Open Proulr site permissions in this browser",
113
+ "alerts.systemNotif.deviceLabel": "Set up on device",
114
+ "alerts.systemNotif.deviceSubtitle": "Open the system notification settings",
36
115
  "alerts.tryAgain": "Try again.",
37
116
  "alerts.unavailable": "Unavailable",
38
117
  "alerts.wait": "Please wait",
118
+ "alerts.webNotif.chromiumSteps": "In {browser}: tap the padlock (or ⓘ icon) to the left of the URL {origin} → Site settings → Notifications → Allow.",
119
+ "alerts.webNotif.firefoxSteps": "In Firefox: tap the padlock to the left of the URL {origin} → Secure connection → More information → Permissions → Notifications → Allow.",
120
+ "alerts.webNotif.genericSteps": "Open the site permissions for {origin} in your browser (icon next to the URL) and allow Notifications for Proulr.",
121
+ "alerts.webNotif.gotIt": "Got it",
122
+ "alerts.webNotif.safariSteps": "In Safari: open Settings (or Safari → Settings on Mac) → Websites → Notifications → find {origin} and choose Allow.",
123
+ "alerts.webNotif.title": "Site permissions",
39
124
  "alerts.yourHandle": "Your @"
40
125
  }
@@ -1,5 +1,18 @@
1
1
  {
2
2
  "auth.common.back": "Back",
3
+ "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.",
4
+ "auth.googleError.generic": "Couldn’t complete Google sign-in.",
5
+ "auth.googleError.inProgress": "Google sign-in is already in progress.",
6
+ "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).",
7
+ "auth.googleError.playServicesUnavailable": "Google Play Services unavailable on this device.",
8
+ "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",
9
+ "auth.googleError.redirectNotAllowed": "OAuth redirect URL not allowed on the server. Run npm run configure:google-oauth to sync the redirects on the VPS.",
10
+ "auth.googleError.startFail": "Couldn’t start Google sign-in.",
11
+ "auth.googleError.tokenMissing": "Google token unavailable.",
12
+ "auth.googleError.webClientIdMissing": "EXPO_PUBLIC_GOOGLE_WEB_CLIENT_ID is not set.",
13
+ "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.",
14
+ "auth.googleInfo.missingWebClientId": "Set EXPO_PUBLIC_GOOGLE_WEB_CLIENT_ID in .env to sign in with Google.",
15
+ "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.",
3
16
  "auth.locale.changeA11y": "Change language",
4
17
  "auth.locale.currentA11y": "Current language: {label}",
5
18
  "auth.login.createAccount": "Create account",
@@ -56,5 +69,9 @@
56
69
  "auth.ageGate.manualReviewHint": "If automatic validation fails, we review it manually — you won’t lose your signup.",
57
70
  "auth.ageGate.processingTitle": "Verifying age",
58
71
  "auth.ageGate.processingSubtitle": "Analyzing your video. It usually takes a few seconds.",
59
- "auth.ageGate.errorTitle": "Verification error"
72
+ "auth.ageGate.errorTitle": "Verification error",
73
+ "auth.ageGate.cameraNotReady": "The camera isn’t ready yet. Give it a moment.",
74
+ "auth.ageGate.captureFaceFail": "Couldn’t capture your face.",
75
+ "auth.ageGate.captureFaceVideoFail": "Couldn’t capture your face in the video.",
76
+ "auth.ageGate.recordVideoFail": "Video recording failed."
60
77
  }
@@ -1,4 +1,10 @@
1
1
  {
2
+ "chat.audio.error.unavailable": "Audio file unavailable.",
3
+ "chat.common.listPair": "{a} and {b}",
4
+ "chat.common.someone": "Someone",
5
+ "chat.common.you": "You",
6
+ "chat.date.today": "Today",
7
+ "chat.date.yesterday": "Yesterday",
2
8
  "chat.empty.chats.title": "No conversations yet.",
3
9
  "chat.empty.flashes.hint": "Reactions and interest signals show up here.",
4
10
  "chat.empty.flashes.title": "No Flashes yet",
@@ -6,13 +12,69 @@
6
12
  "chat.empty.visits.title": "No one viewed your profile in the last 24h",
7
13
  "chat.fab.closed": "Create in Chat",
8
14
  "chat.fab.newGroup": "New group",
15
+ "chat.file.error.downloadFailed": "Couldn't download the file.",
16
+ "chat.file.error.notDownloaded": "File hasn't been downloaded yet.",
17
+ "chat.file.error.unavailable": "File unavailable.",
18
+ "chat.file.openDialogTitle": "Open file",
9
19
  "chat.filter.all": "All",
10
20
  "chat.filter.nearby": "Nearby",
11
21
  "chat.filter.online": "Online",
22
+ "chat.filter.received": "Received",
12
23
  "chat.filter.sent": "Sent",
13
24
  "chat.filter.unread": "Unread",
25
+ "chat.group.header.members": "{count} members",
26
+ "chat.group.header.onlineAndMembers": "{online} online · {count} members",
27
+ "chat.group.photo.error.mustBeImage": "The group photo must be an image.",
28
+ "chat.group.system.created": "Group was created",
29
+ "chat.group.system.createdTitled": "Group \"{title}\" was created",
30
+ "chat.group.system.memberJoined": "New member {name} joined the group",
31
+ "chat.group.system.memberLeft": "{name} left the group",
32
+ "chat.group.system.memberRemoved": "{name} was removed from the group",
33
+ "chat.group.system.memberRemovedUnknown": "A member was removed from the group",
34
+ "chat.group.system.membersJoined": "New members joined the group",
35
+ "chat.group.system.membersJoinedNamed": "New members {names} joined the group",
36
+ "chat.group.system.renamed": "The group was renamed to {title}",
37
+ "chat.group.system.renamedBy": "{name} changed the group name to {title}",
38
+ "chat.group.system.updated": "Group update",
39
+ "chat.groupInvite.shareMessage": "Join the group \"{title}\" on Proulr\n{url}",
40
+ "chat.inbox.distanceHidden": "Distance hidden",
41
+ "chat.inbox.distanceUnavailable": "Distance unavailable",
14
42
  "chat.invite.subtitle": "Joining the group",
15
43
  "chat.invite.title": "Invite",
44
+ "chat.media.albumRevokedNamed": "Album removed: {name}",
45
+ "chat.media.audio": "Audio",
46
+ "chat.media.error.readImage": "Couldn't read the image.",
47
+ "chat.media.error.readSelected": "Couldn't read the selected media.",
48
+ "chat.media.file": "File",
49
+ "chat.media.gif": "GIF",
50
+ "chat.media.location": "Location",
51
+ "chat.media.photo": "Photo",
52
+ "chat.media.video": "Video",
53
+ "chat.presence.offline": "Offline",
54
+ "chat.presence.online": "Online",
55
+ "chat.presence.recent": "Recently active",
56
+ "chat.preview.albumAccessRequest": "Album access request",
57
+ "chat.preview.albumNamed": "Album: {name}",
58
+ "chat.preview.albumRequest": "Requested album access",
59
+ "chat.preview.albumRequestMine": "Album request",
60
+ "chat.preview.albumRevoked": "Album removed",
61
+ "chat.preview.encrypted": "Encrypted message",
62
+ "chat.preview.fileNamed": "File: {name}",
63
+ "chat.preview.groupMessage": "Group message",
64
+ "chat.preview.message": "Message",
65
+ "chat.preview.openedMessage": "Message opened",
66
+ "chat.preview.poll": "Poll",
67
+ "chat.preview.pollNamed": "Poll: {question}",
68
+ "chat.preview.reaction": "{subject} reacted with {emoji} to: {preview}",
69
+ "chat.preview.senderPrefix": "{name}: ",
70
+ "chat.preview.storyReaction": "Reacted to the story",
71
+ "chat.preview.storyReply": "Story reply",
72
+ "chat.savedPhrases.grabDrink": "Wanna grab a drink?",
73
+ "chat.savedPhrases.greeting": "Hi! How are you?",
74
+ "chat.savedPhrases.letsTalk": "Hey, up for a chat?",
75
+ "chat.savedPhrases.likedProfile": "Loved your profile!",
76
+ "chat.savedPhrases.nearby": "I'm nearby, want to meet up?",
77
+ "chat.savedPhrases.whatTime": "What time works for you?",
16
78
  "chat.search.placeholder": "Search chats…",
17
79
  "chat.segment.chats": "Chats",
18
80
  "chat.segment.flashes": "Flashes",
@@ -1,7 +1,28 @@
1
1
  {
2
2
  "common.active": "Active",
3
+ "common.album.defaultName": "My album",
4
+ "common.album.expiry10m": "10 minutes",
5
+ "common.album.expiry1h": "1 hour",
6
+ "common.album.expiry24h": "24 hours",
7
+ "common.album.expiryNever": "No expiration",
8
+ "common.album.expiryViewOnce": "View once",
9
+ "common.album.invalidName": "Invalid name.",
10
+ "common.album.itemCountMany": "{count} items",
11
+ "common.album.itemCountOne": "1 item",
12
+ "common.album.maxAlbums": "You can have at most {max} albums.",
13
+ "common.album.maxPhotos": "Maximum of {max} photos per album.",
14
+ "common.album.maxVideos": "Maximum of {max} video per album.",
3
15
  "common.app": "App",
4
16
  "common.attention": "Attention",
17
+ "common.camera.notReady": "The camera isn’t ready yet. Give it a moment.",
18
+ "common.camera.photoSaveFail": "Couldn’t save the photo.",
19
+ "common.camera.streamUnavailable": "Camera stream unavailable in this browser.",
20
+ "common.camera.videoFileUnavailable": "Video file unavailable.",
21
+ "common.camera.videoRecordError": "Video recording failed.",
22
+ "common.camera.videoRecordFail": "Couldn’t record the video.",
23
+ "common.camera.videoRecordingUnsupported": "Video recording isn’t available in this browser. Use the mobile app.",
24
+ "common.camera.videoSaveFail": "Couldn’t save the video.",
25
+ "common.camera.webNotReadyToRecord": "Web camera isn’t ready to record yet.",
5
26
  "common.cancel": "Cancel",
6
27
  "common.chat": "Chat",
7
28
  "common.chats": "Chats",
@@ -12,10 +33,25 @@
12
33
  "common.huntConnectDiscover": "Hunt · Connect · Discover",
13
34
  "common.id": "ID",
14
35
  "common.media": "Media",
36
+ "common.media.readFail": "Couldn’t read the selected media.",
15
37
  "common.notifications": "Notifications",
16
38
  "common.ops": "Oops",
17
39
  "common.options": "Options",
18
40
  "common.privacy": "Privacy",
41
+ "common.purchase.cancelled": "Purchase canceled.",
42
+ "common.purchase.genericFail": "Couldn’t complete the purchase. Try again in a moment.",
43
+ "common.purchase.manageNativeOnly": "Subscription management is only available in the iOS/Android app.",
44
+ "common.purchase.productNotFound": "Product not found in RevenueCat. Check offerings and product IDs.",
45
+ "common.purchase.productUnavailable": "Product unavailable in the store right now.",
46
+ "common.purchase.proPlanDescription": "Stealth mode, read receipts, and more",
47
+ "common.purchase.proPlanTitle": "Proulr Pro",
48
+ "common.purchase.storeOffline": "No connection to the store. Check your internet and try again.",
49
+ "common.purchase.storeSettingsOpenFail": "Couldn’t open the store settings.",
50
+ "common.purchase.unavailableInstallSdk": "Install react-native-purchases and create a new native build to enable purchases.",
51
+ "common.purchase.unavailableKeysMissing": "In-app purchases coming soon — RevenueCat keys aren’t configured in this build yet.",
52
+ "common.purchase.unavailableNotConfigured": "In-app purchases unavailable — set EXPO_PUBLIC_REVENUECAT_* in this build.",
53
+ "common.purchase.unavailableRuntime": "In-app purchases are only available in the iOS/Android app (native build).",
54
+ "common.purchase.unavailableSdkMissing": "Purchases SDK not installed. Add react-native-purchases and create a new native build.",
19
55
  "common.save": "Save",
20
56
  "common.saved": "Saved",
21
57
  "common.security": "Security",
@@ -1,6 +1,13 @@
1
1
  {
2
+ "flash.cooldown.limitReached": "You already sent a reaction to this person in the last 24 hours.",
3
+ "flash.cooldown.retryInDays": "You can send another reaction in {days} day(s).",
4
+ "flash.cooldown.retryInHours": "You can send another reaction in {hours}h.",
2
5
  "flash.deprecated.subtitle": "Moved to chat-bff",
3
6
  "flash.deprecated.title": "Flashes",
7
+ "flash.inbox.actionReply": "Reply",
8
+ "flash.inbox.reactionLine": "{name} {message}",
9
+ "flash.inbox.sentYouFlash": "{name} sent you a Flash",
10
+ "flash.inbox.someone": "Someone",
4
11
  "flash.msg.chat": "wants to chat",
5
12
  "flash.msg.eyes": "has their eye on you",
6
13
  "flash.msg.fire": "thinks you’re hot",
@@ -1,4 +1,14 @@
1
1
  {
2
+ "hybrid.chatThread.fallbackTitle": "Conversation",
3
+ "hybrid.unavailable.album": "Album unavailable.",
4
+ "hybrid.unavailable.chatThread": "Conversation unavailable — go back and try again.",
5
+ "hybrid.unavailable.comments": "Comments unavailable.",
6
+ "hybrid.unavailable.group": "Group unavailable.",
7
+ "hybrid.unavailable.invite": "Invite unavailable.",
8
+ "hybrid.unavailable.profile": "Profile unavailable.",
9
+ "hybrid.unavailable.profileReport": "Profile unavailable for reporting.",
10
+ "hybrid.unavailable.settingsHome": "Update the app to see the settings.",
11
+ "hybrid.unavailable.socialProfile": "Social profile unavailable.",
2
12
  "report.harassment": "Harassment",
3
13
  "report.harassment.hint": "Threats, humiliation, or abusive behavior",
4
14
  "report.illegal": "Illegal content",
@@ -1,17 +1,61 @@
1
1
  {
2
+ "profile.ageGate.mail.accountSection": "--- Account details ---",
3
+ "profile.ageGate.mail.descriptionSection": "--- What happened ---",
4
+ "profile.ageGate.mail.email": "Email: {email}",
5
+ "profile.ageGate.mail.estimatedRange": "Estimated range: {min}–{max} years",
6
+ "profile.ageGate.mail.greeting": "Hi, Proulr team.",
7
+ "profile.ageGate.mail.name": "Name: {name}",
8
+ "profile.ageGate.mail.notProvided": "(not provided)",
9
+ "profile.ageGate.mail.reason": "Reason: {reason}",
10
+ "profile.ageGate.mail.reasonFallback": "not recognized as an adult",
11
+ "profile.ageGate.mail.request": "I'm requesting a manual review of my age verification.",
12
+ "profile.ageGate.mail.resultSection": "--- Automated result ---",
13
+ "profile.ageGate.mail.subject": "Age verification – manual review",
14
+ "profile.ageGate.mail.thanks": "Thank you.",
15
+ "profile.ageGate.mail.userId": "User ID: {id}",
16
+ "profile.ageGate.mail.vibesHandle": "Vibes @: {handle}",
17
+ "profile.ageVerify.genericError": "We couldn't complete age verification.",
18
+ "profile.ageVerify.imageTooSmall": "We couldn't analyze the video. Try again.",
19
+ "profile.ageVerify.lowConfidence": "The image wasn't sharp enough. Try again somewhere brighter.",
20
+ "profile.ageVerify.networkError": "Connection failed. Check your internet and try again.",
21
+ "profile.ageVerify.noFace": "We couldn't detect a face in the video. Try again with good lighting.",
22
+ "profile.ageVerify.notAdult": "We couldn't confirm that you're 18 or older.",
23
+ "profile.ageVerify.serviceUnavailable": "The verification service is overloaded or restarting. Wait a few seconds and try again.",
24
+ "profile.albums.fallbackName": "Album",
2
25
  "profile.albums.subtitle": "Private photo and video collections",
3
26
  "profile.albums.title": "My albums",
27
+ "profile.attribute.bodyHair": "Body hair",
28
+ "profile.attribute.bodyType": "Build",
29
+ "profile.attribute.ethnicity": "Ethnicity",
30
+ "profile.attribute.gender": "Gender",
31
+ "profile.attribute.height": "Height",
32
+ "profile.attribute.meetingPlace": "Meeting place",
33
+ "profile.attribute.partnership": "Partnership",
34
+ "profile.attribute.position": "Position",
35
+ "profile.attribute.pronouns": "Pronouns",
36
+ "profile.attribute.relationship": "Relationship",
37
+ "profile.attribute.residence": "Where I live",
38
+ "profile.attribute.weight": "Weight",
39
+ "profile.attribute.whatIDo": "What I do",
4
40
  "profile.completion.banner": "Complete your profile to show up more",
5
41
  "profile.completion.cta": "Complete profile",
42
+ "profile.completion.fieldBirthDate": "Birth date",
43
+ "profile.completion.fieldName": "Name",
6
44
  "profile.completion.gateLater": "Do it later and start using",
7
45
  "profile.completion.gateNow": "Complete now",
8
46
  "profile.completion.gateTitle": "Complete your profile for more reach",
9
47
  "profile.completion.reminderBody": "Complete profiles show up more in Hunt and get more Flashes.",
10
48
  "profile.completion.reminderTitle": "Complete your profile",
49
+ "profile.fallback.someone": "Someone",
11
50
  "profile.handle.invalidFormat": "Your @ must be 3–30 characters (lowercase letters, numbers, and _).",
12
51
  "profile.handle.rateLimited": "You can only change your @ every 30 days.",
13
52
  "profile.handle.reserved": "That @ is reserved and can’t be used.",
14
53
  "profile.handle.taken": "That @ is already taken.",
54
+ "profile.moderation.block": "Block profile",
55
+ "profile.moderation.hide": "Hide from grid",
56
+ "profile.moderation.mute": "Mute notifications",
57
+ "profile.moderation.report": "Report",
58
+ "profile.moderation.unmute": "Allow notifications",
15
59
  "profile.onboarding.corpo.interstitial": "Let’s talk about relationships.",
16
60
  "profile.onboarding.corpo.subtitle": "Height, weight, ethnicity, build, and body hair.",
17
61
  "profile.onboarding.corpo.title": "Your body",
@@ -36,20 +80,130 @@
36
80
  "profile.onboarding.relacionamento.interstitial": "Tell us about your interests.",
37
81
  "profile.onboarding.relacionamento.subtitle": "Status, partnership, and where you like to meet.",
38
82
  "profile.onboarding.relacionamento.title": "Relationship",
83
+ "profile.onboarding.resumeBody": "You're almost ready to start hunting. Open Proulr and finish your profile.",
84
+ "profile.onboarding.resumeTitle": "Continue your sign-up",
39
85
  "profile.onboarding.saude.interstitial": "Let’s add your social links.",
40
86
  "profile.onboarding.saude.subtitle": "HIV, precautions, vaccines, and practices.",
41
87
  "profile.onboarding.saude.title": "Health",
42
88
  "profile.onboarding.sobre.interstitial": "Next, a few details about your body.",
43
89
  "profile.onboarding.sobre.subtitle": "A short bio, what you do, and where you live.",
44
90
  "profile.onboarding.sobre.title": "About you",
91
+ "profile.options.bodyHair.hairy": "Hairy",
92
+ "profile.options.bodyHair.light": "Lightly hairy",
93
+ "profile.options.bodyHair.moderate": "Moderate",
94
+ "profile.options.bodyHair.none": "Smooth",
95
+ "profile.options.bodyHair.veryHairy": "Very hairy",
96
+ "profile.options.bodyType.athletic": "Athletic",
97
+ "profile.options.bodyType.average": "Average",
98
+ "profile.options.bodyType.muscular": "Muscular",
99
+ "profile.options.bodyType.overweight": "Overweight",
100
+ "profile.options.bodyType.slim": "Slim",
101
+ "profile.options.bodyType.stocky": "Stocky",
102
+ "profile.options.community.activism": "Activism",
103
+ "profile.options.community.art": "Art",
104
+ "profile.options.community.college": "College",
105
+ "profile.options.community.fitness": "Fitness",
106
+ "profile.options.community.gamer": "Gamer",
107
+ "profile.options.community.geek": "Geek",
108
+ "profile.options.community.music": "Music",
109
+ "profile.options.community.nerd": "Nerd",
110
+ "profile.options.community.pop": "Pop",
111
+ "profile.options.community.travel": "Travel",
112
+ "profile.options.ethnicity.asian": "Asian",
113
+ "profile.options.ethnicity.black": "Black",
114
+ "profile.options.ethnicity.indigenous": "Indigenous",
115
+ "profile.options.ethnicity.mixed": "Mixed",
116
+ "profile.options.ethnicity.white": "White",
117
+ "profile.options.explicitContent.always": "Always",
118
+ "profile.options.explicitContent.depends": "It depends",
119
+ "profile.options.explicitContent.never": "Never",
120
+ "profile.options.explicitContent.notSelected": "Not selected",
121
+ "profile.options.gender.cisMan": "Cis man",
122
+ "profile.options.gender.cisWoman": "Cis woman",
123
+ "profile.options.gender.nonBinary": "Non-binary",
124
+ "profile.options.gender.transMan": "Trans man",
125
+ "profile.options.gender.transWoman": "Trans woman",
126
+ "profile.options.hivStatus.negative": "Negative",
127
+ "profile.options.hivStatus.negativePrep": "Negative (on PrEP)",
128
+ "profile.options.hivStatus.positive": "Positive",
129
+ "profile.options.hivStatus.positiveUndetectable": "Positive (undetectable)",
130
+ "profile.options.lookingFor.chat": "Chat",
131
+ "profile.options.lookingFor.dates": "Dates",
132
+ "profile.options.lookingFor.friendship": "Friendship",
133
+ "profile.options.lookingFor.networking": "Networking",
134
+ "profile.options.lookingFor.relationship": "Relationship",
135
+ "profile.options.lookingFor.rightNow": "Right now",
136
+ "profile.options.meetingPlace.goOut": "Go out",
137
+ "profile.options.meetingPlace.myPlace": "My place",
138
+ "profile.options.meetingPlace.theirPlace": "His place",
139
+ "profile.options.meetingPlace.toArrange": "To be arranged",
140
+ "profile.options.other": "Other",
141
+ "profile.options.partnership.inRelationship": "In a relationship",
142
+ "profile.options.partnership.married": "Married",
143
+ "profile.options.partnership.open": "Open relationship",
144
+ "profile.options.partnership.polyamorous": "Polyamory",
145
+ "profile.options.partnership.single": "Single",
146
+ "profile.options.precaution.condom": "Condoms",
147
+ "profile.options.precaution.doxyPep": "DoxyPEP",
148
+ "profile.options.precaution.prep": "PrEP",
149
+ "profile.options.precaution.talkFirst": "We talk first",
150
+ "profile.options.precaution.undetectable": "Undetectable",
151
+ "profile.options.pronoun.any": "Any",
152
+ "profile.options.pronoun.heHim": "He/Him",
153
+ "profile.options.pronoun.sheHer": "She/Her",
154
+ "profile.options.pronoun.theyThem": "They/Them",
155
+ "profile.options.relationship.complicated": "It's complicated",
156
+ "profile.options.relationship.dating": "Dating",
157
+ "profile.options.relationship.married": "Married",
158
+ "profile.options.relationship.open": "Open relationship",
159
+ "profile.options.relationship.single": "Single",
160
+ "profile.options.sexPractice.fetish": "Fetish",
161
+ "profile.options.sexPractice.kissing": "Kissing",
162
+ "profile.options.sexPractice.massage": "Massage",
163
+ "profile.options.sexPractice.noPreference": "No preference",
164
+ "profile.options.sexPractice.oral": "Oral",
165
+ "profile.options.tribe.bear": "Bear",
166
+ "profile.options.tribe.daddy": "Daddy",
167
+ "profile.options.tribe.discreet": "Discreet",
168
+ "profile.options.tribe.geek": "Geek",
169
+ "profile.options.tribe.jock": "Jock",
170
+ "profile.options.tribe.leather": "Leather",
171
+ "profile.options.tribe.muscle": "Muscle",
172
+ "profile.options.tribe.otter": "Otter",
173
+ "profile.options.tribe.trans": "Trans",
174
+ "profile.options.tribe.twink": "Twink",
175
+ "profile.options.vaccine.covid19": "COVID-19",
176
+ "profile.options.vaccine.hepatitisA": "Hepatitis A",
177
+ "profile.options.vaccine.hepatitisB": "Hepatitis B",
178
+ "profile.options.vaccine.hpv": "HPV",
179
+ "profile.options.vaccine.meningitis": "Meningitis",
180
+ "profile.options.vaccine.mpox": "Mpox",
45
181
  "profile.photo.add": "Add photo",
46
182
  "profile.photo.addPromptBody": "Profiles with a photo get many more Flashes.",
47
183
  "profile.photo.addPromptTitle": "How about a photo?",
48
184
  "profile.photo.continueWithout": "Continue without a photo",
49
185
  "profile.photo.huntTitle": "Hunt photo",
186
+ "profile.photo.readError": "Couldn't read the image.",
187
+ "profile.photo.sourceCamera": "Camera",
188
+ "profile.photo.sourceMessage": "How would you like to add the image?",
189
+ "profile.photo.sourceTitle": "Profile photo",
50
190
  "profile.photo.vibesTitle": "Vibes photo",
191
+ "profile.social.placeholder.gamertag": "gamertag",
192
+ "profile.social.placeholder.handle": "@username",
193
+ "profile.social.placeholder.linkOrId": "link or ID",
194
+ "profile.social.placeholder.profileLink": "profile link",
195
+ "profile.social.placeholder.psnId": "PSN ID",
196
+ "profile.social.placeholder.username": "username",
197
+ "profile.social.placeholder.websiteUrl": "https://your-site.com",
198
+ "profile.social.website": "Website",
199
+ "profile.surface.hunt": "Hunt",
200
+ "profile.surface.vibes": "Vibes",
201
+ "profile.trip.destinationFallback": "Destination",
202
+ "profile.trip.fromDate": "From {date}",
203
+ "profile.trip.untilDate": "Until {date}",
51
204
  "profile.ui.customVibesHint": "The rest of your profile stays the same in both modes.",
52
205
  "profile.ui.customVibesToggle": "Use a different photo and name on Vibes",
206
+ "profile.ui.customVibesToggleHint": "The rest of your profile stays the same. Only the photo and display name change on Vibes posts.",
53
207
  "profile.ui.editTitle": "Edit profile",
54
208
  "profile.ui.handleLabel": "YOUR @",
55
209
  "profile.ui.modeHunt": "Hunt mode",
@@ -29,6 +29,10 @@
29
29
  "shell.about.section.social": "Social",
30
30
  "shell.about.section.terms": "Terms & policies",
31
31
  "shell.about.title": "About",
32
+ "shell.appIcon.defaultHint": "Main icon with the brand",
33
+ "shell.appIcon.defaultLabel": "Proulr",
34
+ "shell.appIcon.discreetHint": "Neutral calendar look on the home screen",
35
+ "shell.appIcon.discreetLabel": "Discreet",
32
36
  "shell.consent.ads": "Personalized ads",
33
37
  "shell.consent.ads.hint": "When we enable ads, we’ll honor this choice",
34
38
  "shell.consent.analytics": "Usage analytics",
@@ -136,6 +140,8 @@
136
140
  "shell.quality.adaptive": "Adaptive",
137
141
  "shell.quality.maximum": "Maximum",
138
142
  "shell.quality.thumbnail": "Thumbnail",
143
+ "shell.quietHours.defaultRange": "10 PM to 8 AM",
144
+ "shell.quietHours.rangeFormat": "{start} to {end}",
139
145
  "shell.safety.blockReport.subtitle": "How to block and report someone",
140
146
  "shell.safety.blockReport.title": "Blocking and reports",
141
147
  "shell.safety.community.subtitle": "Community rules on Proulr",
@@ -1,11 +1,42 @@
1
1
  {
2
+ "social.count.millionShort": "{value}M",
3
+ "social.count.thousandShort": "{value}K",
2
4
  "social.fab.photos": "Photos",
3
5
  "social.fab.publish": "Post",
4
6
  "social.fab.story": "Story",
5
7
  "social.feed.fab": "Create in Feed",
6
8
  "social.feed.subtitle": "Community posts",
7
9
  "social.feed.title": "Feed",
10
+ "social.media.readImageError": "Couldn't read the image.",
11
+ "social.notifyMode.all": "Everything",
12
+ "social.notifyMode.allHint": "Posts, media, and replies from this profile",
13
+ "social.notifyMode.media": "Media only",
14
+ "social.notifyMode.mediaHint": "Photos and videos only",
15
+ "social.notifyMode.off": "Turn off",
16
+ "social.notifyMode.offHint": "No notifications from this profile",
17
+ "social.notifyMode.replies": "Replies only",
18
+ "social.notifyMode.repliesHint": "When this person replies to posts",
19
+ "social.people.someone": "Someone",
20
+ "social.replyAudience.everyone": "Anyone",
21
+ "social.replyAudience.everyoneHint": "Everyone can reply to this post.",
22
+ "social.replyAudience.everyoneReply": "Anyone can reply",
23
+ "social.replyAudience.followers": "People who follow you",
24
+ "social.replyAudience.followersHint": "Only people who follow you can reply.",
25
+ "social.replyAudience.followersReply": "People who follow you can reply",
26
+ "social.replyAudience.mentioned": "Only people you mention",
27
+ "social.replyAudience.mentionedHint": "Only profiles mentioned in the post can reply.",
28
+ "social.replyAudience.mentionedReply": "Only people you mention can reply",
8
29
  "social.saved.title": "Saved items",
30
+ "social.story.captureImageError": "Couldn't generate the story image.",
31
+ "social.storyFont.bold": "Bold",
32
+ "social.storyFont.extrabold": "Impact",
33
+ "social.storyFont.medium": "Light",
34
+ "social.storyFont.regular": "Classic",
35
+ "social.storyFont.semibold": "Semi",
36
+ "social.time.daysShort": "{count}d",
37
+ "social.time.hoursShort": "{count}h",
38
+ "social.time.minutesShort": "{count}m",
39
+ "social.time.now": "now",
9
40
  "social.vibes.fab": "Create in Vibes",
10
41
  "social.vibes.subtitle": "What the community is saying",
11
42
  "social.vibes.title": "Vibes"