@moshevents/copy 0.8.11 → 0.9.1
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/lib/copy.d.ts +635 -0
- package/lib/copy.js +449 -0
- package/package.json +1 -1
package/lib/copy.d.ts
CHANGED
|
@@ -126,6 +126,14 @@ export declare const copy: {
|
|
|
126
126
|
readonly manage: "Manage";
|
|
127
127
|
readonly guestList: "Guest list";
|
|
128
128
|
readonly myList: "My list";
|
|
129
|
+
readonly galleryGateSeeAll: (p: {
|
|
130
|
+
count: string | number;
|
|
131
|
+
}) => string;
|
|
132
|
+
readonly galleryGateTitle: "See the full gallery";
|
|
133
|
+
readonly galleryGateDesc: "Log in to view, save and share photos from the night.";
|
|
134
|
+
readonly galleryGetApp: "Get the app";
|
|
135
|
+
readonly galleryLoginTitle: "Log in to see the photos";
|
|
136
|
+
readonly galleryLoginDesc: "This gallery is for guests of the event.";
|
|
129
137
|
};
|
|
130
138
|
readonly guestsPage: {
|
|
131
139
|
readonly title: "Guest list";
|
|
@@ -545,6 +553,13 @@ export declare const copy: {
|
|
|
545
553
|
};
|
|
546
554
|
readonly settings: {
|
|
547
555
|
readonly title: "Settings";
|
|
556
|
+
readonly tapToPay: {
|
|
557
|
+
readonly locationDeniedTitle: "Turn on Location to take cards";
|
|
558
|
+
readonly locationDeniedMessage: "Apple and Stripe need this iPhone's location to process a Tap to Pay payment. Allow Location for Mosh in Settings, then try again.";
|
|
559
|
+
readonly openSettings: "Open Settings";
|
|
560
|
+
readonly howToTapTitle: "How to tap";
|
|
561
|
+
readonly howToTapSubtitle: "Accept contactless cards and Apple Pay with this iPhone";
|
|
562
|
+
};
|
|
548
563
|
readonly sections: {
|
|
549
564
|
readonly general: "General";
|
|
550
565
|
readonly support: "Support";
|
|
@@ -700,6 +715,19 @@ export declare const copy: {
|
|
|
700
715
|
readonly current: "Current";
|
|
701
716
|
};
|
|
702
717
|
readonly venueMode: {
|
|
718
|
+
readonly payouts: {
|
|
719
|
+
readonly eyebrow: "Payouts";
|
|
720
|
+
readonly titleNotSetUp: "Set up payouts";
|
|
721
|
+
readonly bodyNotSetUp: "Add your bank account so cover and ticket revenue can be paid out to you. About five minutes with Stripe, right here.";
|
|
722
|
+
readonly cta: "Set up payouts";
|
|
723
|
+
readonly chipNotSetUp: "Not set up";
|
|
724
|
+
readonly chipVerifying: "Verifying";
|
|
725
|
+
readonly titleVerifying: "Stripe is verifying your details";
|
|
726
|
+
readonly bodyVerifying: "This usually takes a few minutes and updates here on its own. Stripe may ask for something more — check the link you were sent.";
|
|
727
|
+
readonly refresh: "Refresh";
|
|
728
|
+
readonly continueCta: "Continue setup";
|
|
729
|
+
readonly openFailed: "Couldn't open Stripe. Check your connection and try again.";
|
|
730
|
+
};
|
|
703
731
|
readonly eventsTitle: "Events";
|
|
704
732
|
readonly eventsEmptyTitle: "No upcoming events";
|
|
705
733
|
readonly eventsEmptySubtitle: "Create an event to get started.";
|
|
@@ -936,5 +964,612 @@ export declare const copy: {
|
|
|
936
964
|
readonly subtitle: "Show this at the door";
|
|
937
965
|
};
|
|
938
966
|
};
|
|
967
|
+
readonly door: {
|
|
968
|
+
readonly scanner: {
|
|
969
|
+
readonly title: "Scan QR or ID";
|
|
970
|
+
readonly back: "Back";
|
|
971
|
+
readonly hint: "Guest QR, ticket, or the barcode on the back of an ID";
|
|
972
|
+
readonly noEventTonight: "No event tonight";
|
|
973
|
+
readonly collectCover: (p: {
|
|
974
|
+
amount: string | number;
|
|
975
|
+
}) => string;
|
|
976
|
+
readonly torch: "Torch";
|
|
977
|
+
readonly queuedToSync: (p: {
|
|
978
|
+
count: number;
|
|
979
|
+
}) => string;
|
|
980
|
+
};
|
|
981
|
+
readonly idScan: {
|
|
982
|
+
readonly ofAge: (p: {
|
|
983
|
+
age: string | number;
|
|
984
|
+
}) => string;
|
|
985
|
+
readonly underage: (p: {
|
|
986
|
+
minimumAge: string | number;
|
|
987
|
+
}) => string;
|
|
988
|
+
readonly expired: "ID expired";
|
|
989
|
+
readonly unreadable: "Couldn't read this ID";
|
|
990
|
+
readonly unreadableDetail: "The barcode scanned but the birth date wasn't in it. Check the ID by hand.";
|
|
991
|
+
readonly notAnId: "That barcode isn't a driver license or state ID.";
|
|
992
|
+
readonly ageYears: (p: {
|
|
993
|
+
age: string | number;
|
|
994
|
+
}) => string;
|
|
995
|
+
readonly birthdayToday: "Birthday today";
|
|
996
|
+
readonly expiredOn: (p: {
|
|
997
|
+
date: string | number;
|
|
998
|
+
}) => string;
|
|
999
|
+
readonly expiresOn: (p: {
|
|
1000
|
+
date: string | number;
|
|
1001
|
+
}) => string;
|
|
1002
|
+
readonly dobLabel: "Born";
|
|
1003
|
+
readonly issuedBy: (p: {
|
|
1004
|
+
jurisdiction: string | number;
|
|
1005
|
+
}) => string;
|
|
1006
|
+
readonly minimumAgeLabel: (p: {
|
|
1007
|
+
minimumAge: string | number;
|
|
1008
|
+
}) => string;
|
|
1009
|
+
readonly privacyNote: "Reads the barcode only, on this phone. It can't tell a good fake from a real card, and nothing is saved.";
|
|
1010
|
+
readonly done: "Next guest";
|
|
1011
|
+
readonly checkByHand: "Check this ID by hand";
|
|
1012
|
+
readonly flagIssuerMismatch: (p: {
|
|
1013
|
+
issuer: string | number;
|
|
1014
|
+
jurisdiction: string | number;
|
|
1015
|
+
}) => string;
|
|
1016
|
+
readonly flagUnknownIssuer: "Issuer code isn't a known DMV";
|
|
1017
|
+
readonly flagVersionTooNew: "Barcode format is newer than the issue date";
|
|
1018
|
+
readonly flagDatesInconsistent: "Dates on the card don't add up";
|
|
1019
|
+
readonly flagMissingFields: "Barcode is missing standard fields";
|
|
1020
|
+
};
|
|
1021
|
+
readonly lookup: {
|
|
1022
|
+
readonly placeholder: "Search name";
|
|
1023
|
+
readonly tabGuestList: "Guest list";
|
|
1024
|
+
readonly tabAllResults: "All results";
|
|
1025
|
+
readonly tabCheckedIn: "Checked in";
|
|
1026
|
+
readonly groupGuestList: (p: {
|
|
1027
|
+
count: string | number;
|
|
1028
|
+
}) => string;
|
|
1029
|
+
readonly groupMembersVIPs: (p: {
|
|
1030
|
+
count: string | number;
|
|
1031
|
+
}) => string;
|
|
1032
|
+
readonly emptyVenueOnlyTitle: "No check-ins yet";
|
|
1033
|
+
readonly emptyVenueOnly: "Scan a guest's QR code or search for a guest by name.";
|
|
1034
|
+
readonly noResultsHint: "Check the spelling, or collect walk-up cover below.";
|
|
1035
|
+
readonly noResults: (p: {
|
|
1036
|
+
query: string | number;
|
|
1037
|
+
}) => string;
|
|
1038
|
+
readonly notFound: "Not who you're looking for?";
|
|
1039
|
+
readonly collectWalkUp: "Collect walk-up cover";
|
|
1040
|
+
readonly cancel: "Cancel";
|
|
1041
|
+
readonly inAt: (p: {
|
|
1042
|
+
time: string | number;
|
|
1043
|
+
}) => string;
|
|
1044
|
+
readonly guestOf: (p: {
|
|
1045
|
+
host: string | number;
|
|
1046
|
+
}) => string;
|
|
1047
|
+
readonly openOf: (p: {
|
|
1048
|
+
open: string | number;
|
|
1049
|
+
allowed: string | number;
|
|
1050
|
+
}) => string;
|
|
1051
|
+
readonly partyFilled: (p: {
|
|
1052
|
+
time: string | number;
|
|
1053
|
+
}) => string;
|
|
1054
|
+
readonly vip: "VIP";
|
|
1055
|
+
readonly member: "Member";
|
|
1056
|
+
readonly guestList: "Guest list";
|
|
1057
|
+
readonly team: "Team";
|
|
1058
|
+
readonly lineup: "Lineup";
|
|
1059
|
+
readonly crew: "Crew";
|
|
1060
|
+
readonly blacklisted: "Blacklisted";
|
|
1061
|
+
readonly bumpedChip: "Came off list";
|
|
1062
|
+
};
|
|
1063
|
+
readonly activity: {
|
|
1064
|
+
readonly tab: "Activity";
|
|
1065
|
+
readonly walkUp: "Walk-up";
|
|
1066
|
+
readonly coverOnly: "Cover only";
|
|
1067
|
+
readonly refunded: "Refunded";
|
|
1068
|
+
readonly comp: "Comp";
|
|
1069
|
+
readonly quantity: (p: {
|
|
1070
|
+
count: string | number;
|
|
1071
|
+
}) => string;
|
|
1072
|
+
readonly byStaff: (p: {
|
|
1073
|
+
name: string | number;
|
|
1074
|
+
}) => string;
|
|
1075
|
+
readonly emptyTitle: "No activity yet";
|
|
1076
|
+
readonly emptySubtitle: "Admits and cover payments show up here as they happen, newest first.";
|
|
1077
|
+
readonly unavailableTitle: "Couldn't load activity";
|
|
1078
|
+
readonly unavailableSubtitle: "Check the connection. It refreshes with the next check-in.";
|
|
1079
|
+
readonly coverRow: (p: {
|
|
1080
|
+
amount: string | number;
|
|
1081
|
+
}) => string;
|
|
1082
|
+
readonly receiptSent: "receipt sent";
|
|
1083
|
+
};
|
|
1084
|
+
readonly sheet: {
|
|
1085
|
+
readonly verdictAdmit: "Admit";
|
|
1086
|
+
readonly verdictCollect: (p: {
|
|
1087
|
+
amount: string | number;
|
|
1088
|
+
}) => string;
|
|
1089
|
+
readonly verdictStop: "Stop";
|
|
1090
|
+
readonly verdictAlreadyIn: "Already in";
|
|
1091
|
+
readonly verdictUnverified: "Can't verify";
|
|
1092
|
+
readonly verdictLastSpot: "Last spot";
|
|
1093
|
+
readonly captionScan: (p: {
|
|
1094
|
+
time: string | number;
|
|
1095
|
+
}) => string;
|
|
1096
|
+
readonly captionLookup: (p: {
|
|
1097
|
+
time: string | number;
|
|
1098
|
+
}) => string;
|
|
1099
|
+
readonly captionList: (p: {
|
|
1100
|
+
time: string | number;
|
|
1101
|
+
}) => string;
|
|
1102
|
+
readonly captionPaid: (p: {
|
|
1103
|
+
time: string | number;
|
|
1104
|
+
}) => string;
|
|
1105
|
+
readonly captionGuestOf: (p: {
|
|
1106
|
+
n: string | number;
|
|
1107
|
+
allowed: string | number;
|
|
1108
|
+
}) => string;
|
|
1109
|
+
readonly visits: (p: {
|
|
1110
|
+
count: number;
|
|
1111
|
+
}) => string;
|
|
1112
|
+
readonly labelEntry: "Entry";
|
|
1113
|
+
readonly labelCover: "Cover";
|
|
1114
|
+
readonly labelNote: "Note";
|
|
1115
|
+
readonly labelGuests: "Guests";
|
|
1116
|
+
readonly entryPriority: "Priority";
|
|
1117
|
+
readonly entryRegular: "Regular";
|
|
1118
|
+
readonly entryStop: "Stop";
|
|
1119
|
+
readonly entryRegularSource: "walk-up";
|
|
1120
|
+
readonly sourceList: "list";
|
|
1121
|
+
readonly sourceMember: "member";
|
|
1122
|
+
readonly sourceVIP: "VIP";
|
|
1123
|
+
readonly sourceTeam: "team";
|
|
1124
|
+
readonly sourceLineup: "lineup";
|
|
1125
|
+
readonly sourceCrew: "crew";
|
|
1126
|
+
readonly coverFree: "Free";
|
|
1127
|
+
readonly coverPaid: "Paid";
|
|
1128
|
+
readonly coverDueSource: "cover";
|
|
1129
|
+
readonly coverListSource: "on the list";
|
|
1130
|
+
readonly coverVIPSource: "VIP comp";
|
|
1131
|
+
readonly coverMemberSource: (p: {
|
|
1132
|
+
tier: string | number;
|
|
1133
|
+
}) => string;
|
|
1134
|
+
readonly coverMemberSourceNoTier: "member";
|
|
1135
|
+
readonly coverDiscountSource: "member discount";
|
|
1136
|
+
readonly coverFreeNowSource: "free right now";
|
|
1137
|
+
readonly coverPaidSource: (p: {
|
|
1138
|
+
method: string | number;
|
|
1139
|
+
time: string | number;
|
|
1140
|
+
}) => string;
|
|
1141
|
+
readonly guestsOpen: (p: {
|
|
1142
|
+
open: string | number;
|
|
1143
|
+
}) => string;
|
|
1144
|
+
readonly guestsOfAllowed: (p: {
|
|
1145
|
+
allowed: string | number;
|
|
1146
|
+
}) => string;
|
|
1147
|
+
readonly guestsSource: (p: {
|
|
1148
|
+
allowed: string | number;
|
|
1149
|
+
source: string | number;
|
|
1150
|
+
}) => string;
|
|
1151
|
+
readonly guestsSourceGuestList: "guest list";
|
|
1152
|
+
readonly guestsSourceMember: "member";
|
|
1153
|
+
readonly guestsSourceLineup: "lineup";
|
|
1154
|
+
readonly guestsSourceCrew: "crew";
|
|
1155
|
+
readonly guestsJustThem: "—";
|
|
1156
|
+
readonly guestsGuestOf: (p: {
|
|
1157
|
+
host: string | number;
|
|
1158
|
+
}) => string;
|
|
1159
|
+
readonly guestsPartyCount: (p: {
|
|
1160
|
+
inCount: string | number;
|
|
1161
|
+
allowed: string | number;
|
|
1162
|
+
}) => string;
|
|
1163
|
+
readonly guestsIn: "In";
|
|
1164
|
+
readonly guestsInCount: (p: {
|
|
1165
|
+
count: number;
|
|
1166
|
+
}) => string;
|
|
1167
|
+
readonly guestsExpected: "Expected";
|
|
1168
|
+
readonly startParty: (p: {
|
|
1169
|
+
firstName: string | number;
|
|
1170
|
+
}) => string;
|
|
1171
|
+
readonly startPartyAlreadyIn: (p: {
|
|
1172
|
+
firstName: string | number;
|
|
1173
|
+
}) => string;
|
|
1174
|
+
readonly checkInName: (p: {
|
|
1175
|
+
firstName: string | number;
|
|
1176
|
+
}) => string;
|
|
1177
|
+
readonly checkIn: "Check in";
|
|
1178
|
+
readonly admitAnyway: "Admit anyway";
|
|
1179
|
+
readonly cancel: "Cancel";
|
|
1180
|
+
readonly undo: "Undo check-in";
|
|
1181
|
+
readonly tapToPay: (p: {
|
|
1182
|
+
amount: string | number;
|
|
1183
|
+
}) => string;
|
|
1184
|
+
readonly cash: (p: {
|
|
1185
|
+
amount: string | number;
|
|
1186
|
+
}) => string;
|
|
1187
|
+
readonly comp: "Comp";
|
|
1188
|
+
readonly processingFees: "Processing fees · card only";
|
|
1189
|
+
readonly compReasonTitle: "Comp cover";
|
|
1190
|
+
readonly compReasonPrompt: "Why is this cover waived?";
|
|
1191
|
+
readonly blacklisted: (p: {
|
|
1192
|
+
reason: string | number;
|
|
1193
|
+
}) => string;
|
|
1194
|
+
readonly blacklistedNoReason: "Blacklisted";
|
|
1195
|
+
readonly bumped: (p: {
|
|
1196
|
+
host: string | number;
|
|
1197
|
+
time: string | number;
|
|
1198
|
+
}) => string;
|
|
1199
|
+
readonly memberPastDue: "Payment issue on membership";
|
|
1200
|
+
readonly degradedOnList: "Couldn't verify status — using the saved door list";
|
|
1201
|
+
readonly degradedOffList: "Couldn't verify status — not on the saved door list";
|
|
1202
|
+
readonly manualEntry: "Manual entry";
|
|
1203
|
+
readonly errorTitle: "Error";
|
|
1204
|
+
readonly ok: "OK";
|
|
1205
|
+
readonly captionIn: (p: {
|
|
1206
|
+
time: string | number;
|
|
1207
|
+
}) => string;
|
|
1208
|
+
readonly notNow: "Not now";
|
|
1209
|
+
readonly receipt: "Receipt";
|
|
1210
|
+
readonly coverPaidAmount: (p: {
|
|
1211
|
+
amount: string | number;
|
|
1212
|
+
}) => string;
|
|
1213
|
+
readonly coverPaidCard: (p: {
|
|
1214
|
+
last4: string | number;
|
|
1215
|
+
}) => string;
|
|
1216
|
+
};
|
|
1217
|
+
readonly party: {
|
|
1218
|
+
readonly headerLabel: "Party session";
|
|
1219
|
+
readonly headerName: (p: {
|
|
1220
|
+
host: string | number;
|
|
1221
|
+
}) => string;
|
|
1222
|
+
readonly countOf: (p: {
|
|
1223
|
+
allowed: string | number;
|
|
1224
|
+
}) => string;
|
|
1225
|
+
readonly done: "Done";
|
|
1226
|
+
readonly full: "Full";
|
|
1227
|
+
readonly scanNext: (p: {
|
|
1228
|
+
firstName: string | number;
|
|
1229
|
+
}) => string;
|
|
1230
|
+
readonly markOffList: "No QR? Mark off list";
|
|
1231
|
+
readonly timeoutHint: (p: {
|
|
1232
|
+
minutes: string | number;
|
|
1233
|
+
}) => string;
|
|
1234
|
+
readonly cardIn: "In";
|
|
1235
|
+
readonly cardPaid: (p: {
|
|
1236
|
+
amount: string | number;
|
|
1237
|
+
method: string | number;
|
|
1238
|
+
}) => string;
|
|
1239
|
+
readonly cardComped: "comped";
|
|
1240
|
+
readonly cardFree: "cover waived";
|
|
1241
|
+
readonly cardWasExpected: "was expected";
|
|
1242
|
+
readonly cardFirstVisit: "first visit";
|
|
1243
|
+
readonly cardByName: "by name";
|
|
1244
|
+
readonly cardOwnStanding: "own standing · no spot used";
|
|
1245
|
+
readonly cardOtherHost: "on another list · no spot used";
|
|
1246
|
+
readonly cardAlreadyIn: "Already in tonight · no spot used";
|
|
1247
|
+
readonly cardUnnamed: "Unnamed guest";
|
|
1248
|
+
readonly cardSpotUsed: "spot used";
|
|
1249
|
+
readonly cardQueued: "queued · will sync";
|
|
1250
|
+
readonly undo: "Undo";
|
|
1251
|
+
readonly collectSubline: (p: {
|
|
1252
|
+
visits: string | number;
|
|
1253
|
+
}) => string;
|
|
1254
|
+
readonly collectSublineExpected: (p: {
|
|
1255
|
+
visits: string | number;
|
|
1256
|
+
}) => string;
|
|
1257
|
+
readonly collectNote: "List isn't comped tonight. Each guest pays their own.";
|
|
1258
|
+
readonly collectCoverLine: "Cover";
|
|
1259
|
+
readonly notWithHost: (p: {
|
|
1260
|
+
firstName: string | number;
|
|
1261
|
+
}) => string;
|
|
1262
|
+
readonly skip: "Skip";
|
|
1263
|
+
readonly approved: "Approved";
|
|
1264
|
+
readonly received: "Received";
|
|
1265
|
+
readonly fillTitle: "Last spot";
|
|
1266
|
+
readonly fillSubline: (p: {
|
|
1267
|
+
n: string | number;
|
|
1268
|
+
allowed: string | number;
|
|
1269
|
+
cover: string | number;
|
|
1270
|
+
}) => string;
|
|
1271
|
+
readonly fillWarning: (p: {
|
|
1272
|
+
count: number;
|
|
1273
|
+
names: string | number;
|
|
1274
|
+
host: string | number;
|
|
1275
|
+
}) => string;
|
|
1276
|
+
readonly fillWarningDetail: "They're still going. At the door they'll be a walk-up: regular line, cover due.";
|
|
1277
|
+
readonly fillConfirmCollect: (p: {
|
|
1278
|
+
amount: string | number;
|
|
1279
|
+
}) => string;
|
|
1280
|
+
readonly fillConfirm: "Fill party";
|
|
1281
|
+
readonly fillWait: (p: {
|
|
1282
|
+
firstName: string | number;
|
|
1283
|
+
}) => string;
|
|
1284
|
+
readonly fillWaitMany: "Wait for them";
|
|
1285
|
+
readonly markOffTitle: (p: {
|
|
1286
|
+
firstName: string | number;
|
|
1287
|
+
}) => string;
|
|
1288
|
+
readonly markOffSubtitle: "Check the face before you tick.";
|
|
1289
|
+
readonly claimedAt: (p: {
|
|
1290
|
+
time: string | number;
|
|
1291
|
+
}) => string;
|
|
1292
|
+
readonly unnamedGuest: "Unnamed guest";
|
|
1293
|
+
readonly unnamedGuestDetail: "Not on the list · uses 1 open spot";
|
|
1294
|
+
readonly useSpot: "+ Use spot";
|
|
1295
|
+
readonly markOffCheckIn: (p: {
|
|
1296
|
+
firstName: string | number;
|
|
1297
|
+
}) => string;
|
|
1298
|
+
readonly markOffCheckInCollect: (p: {
|
|
1299
|
+
firstName: string | number;
|
|
1300
|
+
amount: string | number;
|
|
1301
|
+
}) => string;
|
|
1302
|
+
readonly markOffCheckInMany: (p: {
|
|
1303
|
+
count: string | number;
|
|
1304
|
+
}) => string;
|
|
1305
|
+
readonly markOffCheckInManyCollect: (p: {
|
|
1306
|
+
count: string | number;
|
|
1307
|
+
amount: string | number;
|
|
1308
|
+
}) => string;
|
|
1309
|
+
readonly markOffEmpty: "No one else is expected. Use a spot for a guest without a QR.";
|
|
1310
|
+
readonly backToScanning: "Back to scanning";
|
|
1311
|
+
readonly partyFull: "Party is full — the next scan is a walk-up.";
|
|
1312
|
+
readonly stopPaused: "Session paused";
|
|
1313
|
+
};
|
|
1314
|
+
readonly tapToPaySetup: {
|
|
1315
|
+
readonly eyebrow: "Tap to Pay on iPhone";
|
|
1316
|
+
readonly title: "Set up Tap to Pay";
|
|
1317
|
+
readonly body: "Take contactless cards and phones on this iPhone — no reader needed. Three quick steps, once per phone.";
|
|
1318
|
+
readonly stepLocation: "Allow location";
|
|
1319
|
+
readonly stepLocationHint: "Stripe needs it to accept payments.";
|
|
1320
|
+
readonly stepLocationCta: "Allow";
|
|
1321
|
+
readonly stepTerms: "Accept Apple's terms";
|
|
1322
|
+
readonly stepTermsHint: "Links this iPhone to your venue for contactless payments.";
|
|
1323
|
+
readonly stepTermsCta: "Accept";
|
|
1324
|
+
readonly stepGuide: "See how to tap";
|
|
1325
|
+
readonly stepGuideHint: "Apple's 30-second guide to taking a card.";
|
|
1326
|
+
readonly stepGuideCta: "View";
|
|
1327
|
+
readonly notNow: "Not now";
|
|
1328
|
+
readonly askAdminTitle: "Ask a venue admin";
|
|
1329
|
+
readonly askAdminBody: "Tap to Pay on iPhone has to be set up on this iPhone by a venue owner or admin — they accept Apple's terms for the venue. Once that's done, anyone on the door can take cards. Cash and comp work in the meantime.";
|
|
1330
|
+
readonly askAdminCta: "Got it";
|
|
1331
|
+
};
|
|
1332
|
+
readonly tapToPayAnnounce: {
|
|
1333
|
+
readonly eyebrow: "New";
|
|
1334
|
+
readonly title: "Accept payments with Tap to Pay";
|
|
1335
|
+
readonly body: "Take contactless payments for cover charges, tickets, private bookings and more, all from your phone.";
|
|
1336
|
+
readonly setUp: "Set up Tap to Pay";
|
|
1337
|
+
readonly notNow: "Not now";
|
|
1338
|
+
};
|
|
1339
|
+
readonly summary: {
|
|
1340
|
+
readonly labelComplete: "Party complete";
|
|
1341
|
+
readonly labelPartial: "Party summary";
|
|
1342
|
+
readonly statFull: "Full";
|
|
1343
|
+
readonly statOpen: (p: {
|
|
1344
|
+
count: number;
|
|
1345
|
+
}) => string;
|
|
1346
|
+
readonly statCollected: (p: {
|
|
1347
|
+
amount: string | number;
|
|
1348
|
+
}) => string;
|
|
1349
|
+
readonly statFirstVisits: (p: {
|
|
1350
|
+
count: number;
|
|
1351
|
+
}) => string;
|
|
1352
|
+
readonly cameIn: "Came in";
|
|
1353
|
+
readonly cameOff: "Came off the list";
|
|
1354
|
+
readonly stillExpected: "Still expected";
|
|
1355
|
+
readonly arrivedFirst: (p: {
|
|
1356
|
+
time: string | number;
|
|
1357
|
+
}) => string;
|
|
1358
|
+
readonly wasExpected: (p: {
|
|
1359
|
+
time: string | number;
|
|
1360
|
+
}) => string;
|
|
1361
|
+
readonly firstVisit: (p: {
|
|
1362
|
+
time: string | number;
|
|
1363
|
+
}) => string;
|
|
1364
|
+
readonly scanned: (p: {
|
|
1365
|
+
time: string | number;
|
|
1366
|
+
}) => string;
|
|
1367
|
+
readonly byName: (p: {
|
|
1368
|
+
time: string | number;
|
|
1369
|
+
}) => string;
|
|
1370
|
+
readonly ownStanding: (p: {
|
|
1371
|
+
time: string | number;
|
|
1372
|
+
}) => string;
|
|
1373
|
+
readonly noQRSpotUsed: (p: {
|
|
1374
|
+
time: string | number;
|
|
1375
|
+
}) => string;
|
|
1376
|
+
readonly hadntArrived: "Hadn't arrived · back on if a spot reopens";
|
|
1377
|
+
readonly hasntArrived: "Hasn't arrived · spot not held";
|
|
1378
|
+
readonly payCash: "cash";
|
|
1379
|
+
readonly payCard: "card";
|
|
1380
|
+
readonly payComp: "comp";
|
|
1381
|
+
readonly payFree: "free";
|
|
1382
|
+
readonly undo: "Undo";
|
|
1383
|
+
readonly backToScanning: "Back to scanning";
|
|
1384
|
+
};
|
|
1385
|
+
readonly toast: {
|
|
1386
|
+
readonly paid: (p: {
|
|
1387
|
+
amount: string | number;
|
|
1388
|
+
}) => string;
|
|
1389
|
+
readonly received: (p: {
|
|
1390
|
+
amount: string | number;
|
|
1391
|
+
}) => string;
|
|
1392
|
+
readonly comped: "Comped";
|
|
1393
|
+
readonly card: (p: {
|
|
1394
|
+
brand: string | number;
|
|
1395
|
+
last4: string | number;
|
|
1396
|
+
}) => string;
|
|
1397
|
+
readonly cardNoDetails: "Card";
|
|
1398
|
+
readonly cash: "Cash";
|
|
1399
|
+
readonly comp: "Comp";
|
|
1400
|
+
readonly coverOnly: "cover only";
|
|
1401
|
+
readonly isIn: (p: {
|
|
1402
|
+
name: string | number;
|
|
1403
|
+
}) => string;
|
|
1404
|
+
readonly receipt: "Receipt";
|
|
1405
|
+
readonly declined: (p: {
|
|
1406
|
+
amount: string | number;
|
|
1407
|
+
}) => string;
|
|
1408
|
+
readonly noCharge: "no charge";
|
|
1409
|
+
readonly timedOut: "Timed out";
|
|
1410
|
+
readonly noCardPresented: "no card presented";
|
|
1411
|
+
};
|
|
1412
|
+
readonly receipt: {
|
|
1413
|
+
readonly paid: "Paid";
|
|
1414
|
+
readonly refunded: "Refunded";
|
|
1415
|
+
readonly comped: "Comped";
|
|
1416
|
+
readonly declined: "Declined";
|
|
1417
|
+
readonly venueNight: "Venue night";
|
|
1418
|
+
readonly labelCover: "Cover";
|
|
1419
|
+
readonly labelFees: "Fees";
|
|
1420
|
+
readonly labelCard: "Card";
|
|
1421
|
+
readonly labelPaid: "Paid";
|
|
1422
|
+
readonly labelComp: "Comp";
|
|
1423
|
+
readonly labelGuest: "Guest";
|
|
1424
|
+
readonly labelRef: "Ref";
|
|
1425
|
+
readonly labelOutcome: "Outcome";
|
|
1426
|
+
readonly coverSource: "cover";
|
|
1427
|
+
readonly coverSourceQuantity: (p: {
|
|
1428
|
+
count: string | number;
|
|
1429
|
+
}) => string;
|
|
1430
|
+
readonly feesSource: "card only";
|
|
1431
|
+
readonly cardSource: (p: {
|
|
1432
|
+
brand: string | number;
|
|
1433
|
+
}) => string;
|
|
1434
|
+
readonly cardValue: (p: {
|
|
1435
|
+
last4: string | number;
|
|
1436
|
+
}) => string;
|
|
1437
|
+
readonly guestCheckedIn: "checked in";
|
|
1438
|
+
readonly guestNotCheckedIn: "Not checked in";
|
|
1439
|
+
readonly noCharge: "No charge was made.";
|
|
1440
|
+
readonly done: "Done";
|
|
1441
|
+
readonly emailReceipt: "Email receipt";
|
|
1442
|
+
readonly share: "Share";
|
|
1443
|
+
readonly emailPromptTitle: "Email receipt";
|
|
1444
|
+
readonly emailPromptMessage: (p: {
|
|
1445
|
+
venue: string | number;
|
|
1446
|
+
}) => string;
|
|
1447
|
+
readonly emailPlaceholder: "name@example.com";
|
|
1448
|
+
readonly send: "Send";
|
|
1449
|
+
readonly sentTo: (p: {
|
|
1450
|
+
email: string | number;
|
|
1451
|
+
time: string | number;
|
|
1452
|
+
}) => string;
|
|
1453
|
+
readonly notFound: "Receipt not found";
|
|
1454
|
+
readonly shareTitle: (p: {
|
|
1455
|
+
number: string | number;
|
|
1456
|
+
venue: string | number;
|
|
1457
|
+
}) => string;
|
|
1458
|
+
readonly shareDeclinedTitle: (p: {
|
|
1459
|
+
venue: string | number;
|
|
1460
|
+
}) => string;
|
|
1461
|
+
readonly shareLine: (p: {
|
|
1462
|
+
label: string | number;
|
|
1463
|
+
value: string | number;
|
|
1464
|
+
}) => string;
|
|
1465
|
+
readonly shareCardReceipt: (p: {
|
|
1466
|
+
url: string | number;
|
|
1467
|
+
}) => string;
|
|
1468
|
+
};
|
|
1469
|
+
readonly link: {
|
|
1470
|
+
readonly pill: "Link";
|
|
1471
|
+
readonly scanPrompt: "Scan guest's QR to link";
|
|
1472
|
+
readonly title: (p: {
|
|
1473
|
+
amount: string | number;
|
|
1474
|
+
}) => string;
|
|
1475
|
+
readonly subtitle: (p: {
|
|
1476
|
+
card: string | number;
|
|
1477
|
+
time: string | number;
|
|
1478
|
+
}) => string;
|
|
1479
|
+
readonly placeholder: "Name or @username";
|
|
1480
|
+
readonly link: "Link";
|
|
1481
|
+
readonly notCheckedIn: "not checked in";
|
|
1482
|
+
readonly alreadyPaid: (p: {
|
|
1483
|
+
time: string | number;
|
|
1484
|
+
}) => string;
|
|
1485
|
+
readonly alreadyIn: (p: {
|
|
1486
|
+
time: string | number;
|
|
1487
|
+
}) => string;
|
|
1488
|
+
readonly noResults: (p: {
|
|
1489
|
+
query: string | number;
|
|
1490
|
+
}) => string;
|
|
1491
|
+
readonly cancel: "Cancel";
|
|
1492
|
+
};
|
|
1493
|
+
};
|
|
1494
|
+
readonly venueApp: {
|
|
1495
|
+
readonly menu: {
|
|
1496
|
+
readonly verified: "Verified";
|
|
1497
|
+
readonly notVerified: "Not verified";
|
|
1498
|
+
readonly switchVenue: "Switch venue";
|
|
1499
|
+
readonly search: "Search";
|
|
1500
|
+
readonly audience: "Audience";
|
|
1501
|
+
readonly editProfile: "Edit profile";
|
|
1502
|
+
readonly publicPage: "Public page";
|
|
1503
|
+
readonly team: "Team";
|
|
1504
|
+
readonly settings: "Settings";
|
|
1505
|
+
};
|
|
1506
|
+
readonly audience: {
|
|
1507
|
+
readonly title: "Audience";
|
|
1508
|
+
readonly back: "Venue";
|
|
1509
|
+
readonly searchPlaceholder: "Search visitors";
|
|
1510
|
+
readonly tabAll: (p: {
|
|
1511
|
+
count: string | number;
|
|
1512
|
+
}) => string;
|
|
1513
|
+
readonly tabVips: (p: {
|
|
1514
|
+
count: string | number;
|
|
1515
|
+
}) => string;
|
|
1516
|
+
readonly tabBlacklist: (p: {
|
|
1517
|
+
count: string | number;
|
|
1518
|
+
}) => string;
|
|
1519
|
+
readonly visitorCount: (p: {
|
|
1520
|
+
count: number;
|
|
1521
|
+
}) => string;
|
|
1522
|
+
readonly visits: (p: {
|
|
1523
|
+
count: number;
|
|
1524
|
+
}) => string;
|
|
1525
|
+
readonly lastSeen: (p: {
|
|
1526
|
+
date: string | number;
|
|
1527
|
+
}) => string;
|
|
1528
|
+
readonly sort: "Sort";
|
|
1529
|
+
readonly sortLastSeen: "Last seen";
|
|
1530
|
+
readonly sortMostVisits: "Most visits";
|
|
1531
|
+
readonly vip: "VIP";
|
|
1532
|
+
readonly emptyAll: "No visitors yet";
|
|
1533
|
+
readonly emptyVips: "No VIPs yet";
|
|
1534
|
+
readonly emptyBlacklist: "Nobody is blacklisted";
|
|
1535
|
+
readonly noMatches: (p: {
|
|
1536
|
+
query: string | number;
|
|
1537
|
+
}) => string;
|
|
1538
|
+
};
|
|
1539
|
+
readonly bookingStatus: {
|
|
1540
|
+
readonly inquiry: "Inquiry";
|
|
1541
|
+
readonly quoted: "Quote sent";
|
|
1542
|
+
readonly pendingApproval: "Awaiting approval";
|
|
1543
|
+
readonly pendingPayment: "Awaiting deposit";
|
|
1544
|
+
readonly confirmed: "Confirmed";
|
|
1545
|
+
readonly completed: "Completed";
|
|
1546
|
+
readonly canceled: "Cancelled";
|
|
1547
|
+
readonly declined: "Declined";
|
|
1548
|
+
readonly expired: "Expired";
|
|
1549
|
+
readonly withdrawn: "Withdrawn";
|
|
1550
|
+
};
|
|
1551
|
+
readonly search: {
|
|
1552
|
+
readonly placeholder: (p: {
|
|
1553
|
+
venue: string | number;
|
|
1554
|
+
}) => string;
|
|
1555
|
+
readonly cancel: "Cancel";
|
|
1556
|
+
readonly scopeAll: "All";
|
|
1557
|
+
readonly scopeGuests: "Guests";
|
|
1558
|
+
readonly scopeBookings: "Bookings";
|
|
1559
|
+
readonly scopeEvents: "Events";
|
|
1560
|
+
readonly scopeSpaces: "Spaces";
|
|
1561
|
+
readonly prompt: "Search guests, bookings, events and spaces.";
|
|
1562
|
+
readonly noMatchesIn: (p: {
|
|
1563
|
+
scope: string | number;
|
|
1564
|
+
query: string | number;
|
|
1565
|
+
}) => string;
|
|
1566
|
+
readonly noMatches: (p: {
|
|
1567
|
+
query: string | number;
|
|
1568
|
+
}) => string;
|
|
1569
|
+
readonly spaceCapacity: (p: {
|
|
1570
|
+
count: string | number;
|
|
1571
|
+
}) => string;
|
|
1572
|
+
};
|
|
1573
|
+
};
|
|
939
1574
|
};
|
|
940
1575
|
export type Copy = typeof copy;
|
package/lib/copy.js
CHANGED
|
@@ -117,6 +117,12 @@ export const copy = {
|
|
|
117
117
|
manage: "Manage",
|
|
118
118
|
guestList: "Guest list",
|
|
119
119
|
myList: "My list",
|
|
120
|
+
galleryGateSeeAll: (p) => `See all ${p.count} photos`,
|
|
121
|
+
galleryGateTitle: "See the full gallery",
|
|
122
|
+
galleryGateDesc: "Log in to view, save and share photos from the night.",
|
|
123
|
+
galleryGetApp: "Get the app",
|
|
124
|
+
galleryLoginTitle: "Log in to see the photos",
|
|
125
|
+
galleryLoginDesc: "This gallery is for guests of the event.",
|
|
120
126
|
},
|
|
121
127
|
guestsPage: {
|
|
122
128
|
title: "Guest list",
|
|
@@ -498,6 +504,13 @@ export const copy = {
|
|
|
498
504
|
},
|
|
499
505
|
settings: {
|
|
500
506
|
title: "Settings",
|
|
507
|
+
tapToPay: {
|
|
508
|
+
locationDeniedTitle: "Turn on Location to take cards",
|
|
509
|
+
locationDeniedMessage: "Apple and Stripe need this iPhone's location to process a Tap to Pay payment. Allow Location for Mosh in Settings, then try again.",
|
|
510
|
+
openSettings: "Open Settings",
|
|
511
|
+
howToTapTitle: "How to tap",
|
|
512
|
+
howToTapSubtitle: "Accept contactless cards and Apple Pay with this iPhone",
|
|
513
|
+
},
|
|
501
514
|
sections: {
|
|
502
515
|
general: "General",
|
|
503
516
|
support: "Support",
|
|
@@ -641,6 +654,19 @@ export const copy = {
|
|
|
641
654
|
current: "Current",
|
|
642
655
|
},
|
|
643
656
|
venueMode: {
|
|
657
|
+
payouts: {
|
|
658
|
+
eyebrow: "Payouts",
|
|
659
|
+
titleNotSetUp: "Set up payouts",
|
|
660
|
+
bodyNotSetUp: "Add your bank account so cover and ticket revenue can be paid out to you. About five minutes with Stripe, right here.",
|
|
661
|
+
cta: "Set up payouts",
|
|
662
|
+
chipNotSetUp: "Not set up",
|
|
663
|
+
chipVerifying: "Verifying",
|
|
664
|
+
titleVerifying: "Stripe is verifying your details",
|
|
665
|
+
bodyVerifying: "This usually takes a few minutes and updates here on its own. Stripe may ask for something more — check the link you were sent.",
|
|
666
|
+
refresh: "Refresh",
|
|
667
|
+
continueCta: "Continue setup",
|
|
668
|
+
openFailed: "Couldn't open Stripe. Check your connection and try again.",
|
|
669
|
+
},
|
|
644
670
|
eventsTitle: "Events",
|
|
645
671
|
eventsEmptyTitle: "No upcoming events",
|
|
646
672
|
eventsEmptySubtitle: "Create an event to get started.",
|
|
@@ -831,4 +857,427 @@ export const copy = {
|
|
|
831
857
|
subtitle: "Show this at the door",
|
|
832
858
|
},
|
|
833
859
|
},
|
|
860
|
+
door: {
|
|
861
|
+
scanner: {
|
|
862
|
+
title: "Scan QR or ID",
|
|
863
|
+
back: "Back",
|
|
864
|
+
hint: "Guest QR, ticket, or the barcode on the back of an ID",
|
|
865
|
+
noEventTonight: "No event tonight",
|
|
866
|
+
collectCover: (p) => `Collect cover · ${p.amount}`,
|
|
867
|
+
torch: "Torch",
|
|
868
|
+
queuedToSync: (p) => {
|
|
869
|
+
const n = Number(p.count);
|
|
870
|
+
if (n === 1)
|
|
871
|
+
return `${p.count} queued to sync`;
|
|
872
|
+
return `${p.count} queued to sync`;
|
|
873
|
+
},
|
|
874
|
+
},
|
|
875
|
+
idScan: {
|
|
876
|
+
ofAge: (p) => `${p.age} · OK`,
|
|
877
|
+
underage: (p) => `Under ${p.minimumAge}`,
|
|
878
|
+
expired: "ID expired",
|
|
879
|
+
unreadable: "Couldn't read this ID",
|
|
880
|
+
unreadableDetail: "The barcode scanned but the birth date wasn't in it. Check the ID by hand.",
|
|
881
|
+
notAnId: "That barcode isn't a driver license or state ID.",
|
|
882
|
+
ageYears: (p) => `${p.age} years old`,
|
|
883
|
+
birthdayToday: "Birthday today",
|
|
884
|
+
expiredOn: (p) => `Expired ${p.date}`,
|
|
885
|
+
expiresOn: (p) => `Expires ${p.date}`,
|
|
886
|
+
dobLabel: "Born",
|
|
887
|
+
issuedBy: (p) => `${p.jurisdiction} license`,
|
|
888
|
+
minimumAgeLabel: (p) => `Checking ${p.minimumAge}+`,
|
|
889
|
+
privacyNote: "Reads the barcode only, on this phone. It can't tell a good fake from a real card, and nothing is saved.",
|
|
890
|
+
done: "Next guest",
|
|
891
|
+
checkByHand: "Check this ID by hand",
|
|
892
|
+
flagIssuerMismatch: (p) => `Barcode issuer code is ${p.issuer}, card says ${p.jurisdiction}`,
|
|
893
|
+
flagUnknownIssuer: "Issuer code isn't a known DMV",
|
|
894
|
+
flagVersionTooNew: "Barcode format is newer than the issue date",
|
|
895
|
+
flagDatesInconsistent: "Dates on the card don't add up",
|
|
896
|
+
flagMissingFields: "Barcode is missing standard fields",
|
|
897
|
+
},
|
|
898
|
+
lookup: {
|
|
899
|
+
placeholder: "Search name",
|
|
900
|
+
tabGuestList: "Guest list",
|
|
901
|
+
tabAllResults: "All results",
|
|
902
|
+
tabCheckedIn: "Checked in",
|
|
903
|
+
groupGuestList: (p) => `Guest list · ${p.count}`,
|
|
904
|
+
groupMembersVIPs: (p) => `Members & VIPs · ${p.count}`,
|
|
905
|
+
emptyVenueOnlyTitle: "No check-ins yet",
|
|
906
|
+
emptyVenueOnly: "Scan a guest's QR code or search for a guest by name.",
|
|
907
|
+
noResultsHint: "Check the spelling, or collect walk-up cover below.",
|
|
908
|
+
noResults: (p) => `No one named “${p.query}”`,
|
|
909
|
+
notFound: "Not who you're looking for?",
|
|
910
|
+
collectWalkUp: "Collect walk-up cover",
|
|
911
|
+
cancel: "Cancel",
|
|
912
|
+
inAt: (p) => `In · ${p.time}`,
|
|
913
|
+
guestOf: (p) => `Guest of ${p.host}`,
|
|
914
|
+
openOf: (p) => `${p.open} of ${p.allowed} open`,
|
|
915
|
+
partyFilled: (p) => `Party filled ${p.time}`,
|
|
916
|
+
vip: "VIP",
|
|
917
|
+
member: "Member",
|
|
918
|
+
guestList: "Guest list",
|
|
919
|
+
team: "Team",
|
|
920
|
+
lineup: "Lineup",
|
|
921
|
+
crew: "Crew",
|
|
922
|
+
blacklisted: "Blacklisted",
|
|
923
|
+
bumpedChip: "Came off list",
|
|
924
|
+
},
|
|
925
|
+
activity: {
|
|
926
|
+
tab: "Activity",
|
|
927
|
+
walkUp: "Walk-up",
|
|
928
|
+
coverOnly: "Cover only",
|
|
929
|
+
refunded: "Refunded",
|
|
930
|
+
comp: "Comp",
|
|
931
|
+
quantity: (p) => `×${p.count}`,
|
|
932
|
+
byStaff: (p) => `by ${p.name}`,
|
|
933
|
+
emptyTitle: "No activity yet",
|
|
934
|
+
emptySubtitle: "Admits and cover payments show up here as they happen, newest first.",
|
|
935
|
+
unavailableTitle: "Couldn't load activity",
|
|
936
|
+
unavailableSubtitle: "Check the connection. It refreshes with the next check-in.",
|
|
937
|
+
coverRow: (p) => `Cover · ${p.amount}`,
|
|
938
|
+
receiptSent: "receipt sent",
|
|
939
|
+
},
|
|
940
|
+
sheet: {
|
|
941
|
+
verdictAdmit: "Admit",
|
|
942
|
+
verdictCollect: (p) => `Collect ${p.amount}`,
|
|
943
|
+
verdictStop: "Stop",
|
|
944
|
+
verdictAlreadyIn: "Already in",
|
|
945
|
+
verdictUnverified: "Can't verify",
|
|
946
|
+
verdictLastSpot: "Last spot",
|
|
947
|
+
captionScan: (p) => `QR · ${p.time}`,
|
|
948
|
+
captionLookup: (p) => `lookup · ${p.time}`,
|
|
949
|
+
captionList: (p) => `list · ${p.time}`,
|
|
950
|
+
captionPaid: (p) => `paid · ${p.time}`,
|
|
951
|
+
captionGuestOf: (p) => `guest ${p.n} of ${p.allowed}`,
|
|
952
|
+
visits: (p) => {
|
|
953
|
+
const n = Number(p.count);
|
|
954
|
+
if (n === 0)
|
|
955
|
+
return `First visit`;
|
|
956
|
+
if (n === 1)
|
|
957
|
+
return `${p.count} visit`;
|
|
958
|
+
return `${p.count} visits`;
|
|
959
|
+
},
|
|
960
|
+
labelEntry: "Entry",
|
|
961
|
+
labelCover: "Cover",
|
|
962
|
+
labelNote: "Note",
|
|
963
|
+
labelGuests: "Guests",
|
|
964
|
+
entryPriority: "Priority",
|
|
965
|
+
entryRegular: "Regular",
|
|
966
|
+
entryStop: "Stop",
|
|
967
|
+
entryRegularSource: "walk-up",
|
|
968
|
+
sourceList: "list",
|
|
969
|
+
sourceMember: "member",
|
|
970
|
+
sourceVIP: "VIP",
|
|
971
|
+
sourceTeam: "team",
|
|
972
|
+
sourceLineup: "lineup",
|
|
973
|
+
sourceCrew: "crew",
|
|
974
|
+
coverFree: "Free",
|
|
975
|
+
coverPaid: "Paid",
|
|
976
|
+
coverDueSource: "cover",
|
|
977
|
+
coverListSource: "on the list",
|
|
978
|
+
coverVIPSource: "VIP comp",
|
|
979
|
+
coverMemberSource: (p) => `${p.tier} member`,
|
|
980
|
+
coverMemberSourceNoTier: "member",
|
|
981
|
+
coverDiscountSource: "member discount",
|
|
982
|
+
coverFreeNowSource: "free right now",
|
|
983
|
+
coverPaidSource: (p) => `${p.method} · ${p.time}`,
|
|
984
|
+
guestsOpen: (p) => `${p.open} open`,
|
|
985
|
+
guestsOfAllowed: (p) => ` of ${p.allowed}`,
|
|
986
|
+
guestsSource: (p) => `+${p.allowed} · ${p.source}`,
|
|
987
|
+
guestsSourceGuestList: "guest list",
|
|
988
|
+
guestsSourceMember: "member",
|
|
989
|
+
guestsSourceLineup: "lineup",
|
|
990
|
+
guestsSourceCrew: "crew",
|
|
991
|
+
guestsJustThem: "—",
|
|
992
|
+
guestsGuestOf: (p) => `On ${p.host}'s list`,
|
|
993
|
+
guestsPartyCount: (p) => `${p.inCount} of ${p.allowed} in`,
|
|
994
|
+
guestsIn: "In",
|
|
995
|
+
guestsInCount: (p) => {
|
|
996
|
+
const n = Number(p.count);
|
|
997
|
+
if (n === 1)
|
|
998
|
+
return `${p.count} in`;
|
|
999
|
+
return `${p.count} in`;
|
|
1000
|
+
},
|
|
1001
|
+
guestsExpected: "Expected",
|
|
1002
|
+
startParty: (p) => `Check in ${p.firstName} + guests`,
|
|
1003
|
+
startPartyAlreadyIn: (p) => `Scan in ${p.firstName}'s guests`,
|
|
1004
|
+
checkInName: (p) => `Check in ${p.firstName}`,
|
|
1005
|
+
checkIn: "Check in",
|
|
1006
|
+
admitAnyway: "Admit anyway",
|
|
1007
|
+
cancel: "Cancel",
|
|
1008
|
+
undo: "Undo check-in",
|
|
1009
|
+
tapToPay: (p) => `Tap to pay · ${p.amount}`,
|
|
1010
|
+
cash: (p) => `Cash · ${p.amount}`,
|
|
1011
|
+
comp: "Comp",
|
|
1012
|
+
processingFees: "Processing fees · card only",
|
|
1013
|
+
compReasonTitle: "Comp cover",
|
|
1014
|
+
compReasonPrompt: "Why is this cover waived?",
|
|
1015
|
+
blacklisted: (p) => `Blacklisted · ${p.reason}`,
|
|
1016
|
+
blacklistedNoReason: "Blacklisted",
|
|
1017
|
+
bumped: (p) => `Came off ${p.host}'s list at ${p.time} · walk-up tonight`,
|
|
1018
|
+
memberPastDue: "Payment issue on membership",
|
|
1019
|
+
degradedOnList: "Couldn't verify status — using the saved door list",
|
|
1020
|
+
degradedOffList: "Couldn't verify status — not on the saved door list",
|
|
1021
|
+
manualEntry: "Manual entry",
|
|
1022
|
+
errorTitle: "Error",
|
|
1023
|
+
ok: "OK",
|
|
1024
|
+
captionIn: (p) => `in · ${p.time}`,
|
|
1025
|
+
notNow: "Not now",
|
|
1026
|
+
receipt: "Receipt",
|
|
1027
|
+
coverPaidAmount: (p) => `Paid ${p.amount}`,
|
|
1028
|
+
coverPaidCard: (p) => `card •• ${p.last4}`,
|
|
1029
|
+
},
|
|
1030
|
+
party: {
|
|
1031
|
+
headerLabel: "Party session",
|
|
1032
|
+
headerName: (p) => `${p.host}'s party`,
|
|
1033
|
+
countOf: (p) => `of ${p.allowed}`,
|
|
1034
|
+
done: "Done",
|
|
1035
|
+
full: "Full",
|
|
1036
|
+
scanNext: (p) => `Scan ${p.firstName}'s next guest`,
|
|
1037
|
+
markOffList: "No QR? Mark off list",
|
|
1038
|
+
timeoutHint: (p) => `Session ends after ${p.minutes} min without a scan`,
|
|
1039
|
+
cardIn: "In",
|
|
1040
|
+
cardPaid: (p) => `paid ${p.amount} ${p.method}`,
|
|
1041
|
+
cardComped: "comped",
|
|
1042
|
+
cardFree: "cover waived",
|
|
1043
|
+
cardWasExpected: "was expected",
|
|
1044
|
+
cardFirstVisit: "first visit",
|
|
1045
|
+
cardByName: "by name",
|
|
1046
|
+
cardOwnStanding: "own standing · no spot used",
|
|
1047
|
+
cardOtherHost: "on another list · no spot used",
|
|
1048
|
+
cardAlreadyIn: "Already in tonight · no spot used",
|
|
1049
|
+
cardUnnamed: "Unnamed guest",
|
|
1050
|
+
cardSpotUsed: "spot used",
|
|
1051
|
+
cardQueued: "queued · will sync",
|
|
1052
|
+
undo: "Undo",
|
|
1053
|
+
collectSubline: (p) => `${p.visits} · takes an open spot`,
|
|
1054
|
+
collectSublineExpected: (p) => `${p.visits} · was expected`,
|
|
1055
|
+
collectNote: "List isn't comped tonight. Each guest pays their own.",
|
|
1056
|
+
collectCoverLine: "Cover",
|
|
1057
|
+
notWithHost: (p) => `Not with ${p.firstName}?`,
|
|
1058
|
+
skip: "Skip",
|
|
1059
|
+
approved: "Approved",
|
|
1060
|
+
received: "Received",
|
|
1061
|
+
fillTitle: "Last spot",
|
|
1062
|
+
fillSubline: (p) => `Guest ${p.n} of ${p.allowed} · ${p.cover} cover`,
|
|
1063
|
+
fillWarning: (p) => {
|
|
1064
|
+
const n = Number(p.count);
|
|
1065
|
+
if (n === 1)
|
|
1066
|
+
return `${p.names} hasn't arrived and will come off ${p.host}'s list.`;
|
|
1067
|
+
return `${p.names} haven't arrived and will come off ${p.host}'s list.`;
|
|
1068
|
+
},
|
|
1069
|
+
fillWarningDetail: "They're still going. At the door they'll be a walk-up: regular line, cover due.",
|
|
1070
|
+
fillConfirmCollect: (p) => `Fill party · collect ${p.amount}`,
|
|
1071
|
+
fillConfirm: "Fill party",
|
|
1072
|
+
fillWait: (p) => `Wait for ${p.firstName}`,
|
|
1073
|
+
fillWaitMany: "Wait for them",
|
|
1074
|
+
markOffTitle: (p) => `${p.firstName}'s expected guests`,
|
|
1075
|
+
markOffSubtitle: "Check the face before you tick.",
|
|
1076
|
+
claimedAt: (p) => `Claimed ${p.time}`,
|
|
1077
|
+
unnamedGuest: "Unnamed guest",
|
|
1078
|
+
unnamedGuestDetail: "Not on the list · uses 1 open spot",
|
|
1079
|
+
useSpot: "+ Use spot",
|
|
1080
|
+
markOffCheckIn: (p) => `Check in ${p.firstName}`,
|
|
1081
|
+
markOffCheckInCollect: (p) => `Check in ${p.firstName} · collect ${p.amount}`,
|
|
1082
|
+
markOffCheckInMany: (p) => `Check in ${p.count}`,
|
|
1083
|
+
markOffCheckInManyCollect: (p) => `Check in ${p.count} · collect ${p.amount}`,
|
|
1084
|
+
markOffEmpty: "No one else is expected. Use a spot for a guest without a QR.",
|
|
1085
|
+
backToScanning: "Back to scanning",
|
|
1086
|
+
partyFull: "Party is full — the next scan is a walk-up.",
|
|
1087
|
+
stopPaused: "Session paused",
|
|
1088
|
+
},
|
|
1089
|
+
tapToPaySetup: {
|
|
1090
|
+
eyebrow: "Tap to Pay on iPhone",
|
|
1091
|
+
title: "Set up Tap to Pay",
|
|
1092
|
+
body: "Take contactless cards and phones on this iPhone — no reader needed. Three quick steps, once per phone.",
|
|
1093
|
+
stepLocation: "Allow location",
|
|
1094
|
+
stepLocationHint: "Stripe needs it to accept payments.",
|
|
1095
|
+
stepLocationCta: "Allow",
|
|
1096
|
+
stepTerms: "Accept Apple's terms",
|
|
1097
|
+
stepTermsHint: "Links this iPhone to your venue for contactless payments.",
|
|
1098
|
+
stepTermsCta: "Accept",
|
|
1099
|
+
stepGuide: "See how to tap",
|
|
1100
|
+
stepGuideHint: "Apple's 30-second guide to taking a card.",
|
|
1101
|
+
stepGuideCta: "View",
|
|
1102
|
+
notNow: "Not now",
|
|
1103
|
+
askAdminTitle: "Ask a venue admin",
|
|
1104
|
+
askAdminBody: "Tap to Pay on iPhone has to be set up on this iPhone by a venue owner or admin — they accept Apple's terms for the venue. Once that's done, anyone on the door can take cards. Cash and comp work in the meantime.",
|
|
1105
|
+
askAdminCta: "Got it",
|
|
1106
|
+
},
|
|
1107
|
+
tapToPayAnnounce: {
|
|
1108
|
+
eyebrow: "New",
|
|
1109
|
+
title: "Accept payments with Tap to Pay",
|
|
1110
|
+
body: "Take contactless payments for cover charges, tickets, private bookings and more, all from your phone.",
|
|
1111
|
+
setUp: "Set up Tap to Pay",
|
|
1112
|
+
notNow: "Not now",
|
|
1113
|
+
},
|
|
1114
|
+
summary: {
|
|
1115
|
+
labelComplete: "Party complete",
|
|
1116
|
+
labelPartial: "Party summary",
|
|
1117
|
+
statFull: "Full",
|
|
1118
|
+
statOpen: (p) => {
|
|
1119
|
+
const n = Number(p.count);
|
|
1120
|
+
if (n === 1)
|
|
1121
|
+
return `${p.count} open`;
|
|
1122
|
+
return `${p.count} open`;
|
|
1123
|
+
},
|
|
1124
|
+
statCollected: (p) => `${p.amount} collected`,
|
|
1125
|
+
statFirstVisits: (p) => {
|
|
1126
|
+
const n = Number(p.count);
|
|
1127
|
+
if (n === 1)
|
|
1128
|
+
return `${p.count} first visit`;
|
|
1129
|
+
return `${p.count} first visits`;
|
|
1130
|
+
},
|
|
1131
|
+
cameIn: "Came in",
|
|
1132
|
+
cameOff: "Came off the list",
|
|
1133
|
+
stillExpected: "Still expected",
|
|
1134
|
+
arrivedFirst: (p) => `Arrived first · ${p.time}`,
|
|
1135
|
+
wasExpected: (p) => `Was expected · ${p.time}`,
|
|
1136
|
+
firstVisit: (p) => `First visit · ${p.time}`,
|
|
1137
|
+
scanned: (p) => `Scanned · ${p.time}`,
|
|
1138
|
+
byName: (p) => `Checked off by name · ${p.time}`,
|
|
1139
|
+
ownStanding: (p) => `Own standing · ${p.time}`,
|
|
1140
|
+
noQRSpotUsed: (p) => `No QR · spot used · ${p.time}`,
|
|
1141
|
+
hadntArrived: "Hadn't arrived · back on if a spot reopens",
|
|
1142
|
+
hasntArrived: "Hasn't arrived · spot not held",
|
|
1143
|
+
payCash: "cash",
|
|
1144
|
+
payCard: "card",
|
|
1145
|
+
payComp: "comp",
|
|
1146
|
+
payFree: "free",
|
|
1147
|
+
undo: "Undo",
|
|
1148
|
+
backToScanning: "Back to scanning",
|
|
1149
|
+
},
|
|
1150
|
+
toast: {
|
|
1151
|
+
paid: (p) => `Paid ${p.amount}`,
|
|
1152
|
+
received: (p) => `Received ${p.amount}`,
|
|
1153
|
+
comped: "Comped",
|
|
1154
|
+
card: (p) => `${p.brand} •• ${p.last4}`,
|
|
1155
|
+
cardNoDetails: "Card",
|
|
1156
|
+
cash: "Cash",
|
|
1157
|
+
comp: "Comp",
|
|
1158
|
+
coverOnly: "cover only",
|
|
1159
|
+
isIn: (p) => `${p.name} is in`,
|
|
1160
|
+
receipt: "Receipt",
|
|
1161
|
+
declined: (p) => `Declined ${p.amount}`,
|
|
1162
|
+
noCharge: "no charge",
|
|
1163
|
+
timedOut: "Timed out",
|
|
1164
|
+
noCardPresented: "no card presented",
|
|
1165
|
+
},
|
|
1166
|
+
receipt: {
|
|
1167
|
+
paid: "Paid",
|
|
1168
|
+
refunded: "Refunded",
|
|
1169
|
+
comped: "Comped",
|
|
1170
|
+
declined: "Declined",
|
|
1171
|
+
venueNight: "Venue night",
|
|
1172
|
+
labelCover: "Cover",
|
|
1173
|
+
labelFees: "Fees",
|
|
1174
|
+
labelCard: "Card",
|
|
1175
|
+
labelPaid: "Paid",
|
|
1176
|
+
labelComp: "Comp",
|
|
1177
|
+
labelGuest: "Guest",
|
|
1178
|
+
labelRef: "Ref",
|
|
1179
|
+
labelOutcome: "Outcome",
|
|
1180
|
+
coverSource: "cover",
|
|
1181
|
+
coverSourceQuantity: (p) => `×${p.count} · cover`,
|
|
1182
|
+
feesSource: "card only",
|
|
1183
|
+
cardSource: (p) => `${p.brand} · tap`,
|
|
1184
|
+
cardValue: (p) => `•• ${p.last4}`,
|
|
1185
|
+
guestCheckedIn: "checked in",
|
|
1186
|
+
guestNotCheckedIn: "Not checked in",
|
|
1187
|
+
noCharge: "No charge was made.",
|
|
1188
|
+
done: "Done",
|
|
1189
|
+
emailReceipt: "Email receipt",
|
|
1190
|
+
share: "Share",
|
|
1191
|
+
emailPromptTitle: "Email receipt",
|
|
1192
|
+
emailPromptMessage: (p) => `Sent from ${p.venue}. The guest gets the same receipt as this screen.`,
|
|
1193
|
+
emailPlaceholder: "name@example.com",
|
|
1194
|
+
send: "Send",
|
|
1195
|
+
sentTo: (p) => `Sent to ${p.email} · ${p.time}`,
|
|
1196
|
+
notFound: "Receipt not found",
|
|
1197
|
+
shareTitle: (p) => `Receipt #${p.number} — ${p.venue}`,
|
|
1198
|
+
shareDeclinedTitle: (p) => `Declined — ${p.venue}`,
|
|
1199
|
+
shareLine: (p) => `${p.label}: ${p.value}`,
|
|
1200
|
+
shareCardReceipt: (p) => `Card receipt: ${p.url}`,
|
|
1201
|
+
},
|
|
1202
|
+
link: {
|
|
1203
|
+
pill: "Link",
|
|
1204
|
+
scanPrompt: "Scan guest's QR to link",
|
|
1205
|
+
title: (p) => `Link ${p.amount} to a guest`,
|
|
1206
|
+
subtitle: (p) => `${p.card} · paid ${p.time}`,
|
|
1207
|
+
placeholder: "Name or @username",
|
|
1208
|
+
link: "Link",
|
|
1209
|
+
notCheckedIn: "not checked in",
|
|
1210
|
+
alreadyPaid: (p) => `already paid ${p.time}`,
|
|
1211
|
+
alreadyIn: (p) => `already in ${p.time}`,
|
|
1212
|
+
noResults: (p) => `No one named “${p.query}”`,
|
|
1213
|
+
cancel: "Cancel",
|
|
1214
|
+
},
|
|
1215
|
+
},
|
|
1216
|
+
venueApp: {
|
|
1217
|
+
menu: {
|
|
1218
|
+
verified: "Verified",
|
|
1219
|
+
notVerified: "Not verified",
|
|
1220
|
+
switchVenue: "Switch venue",
|
|
1221
|
+
search: "Search",
|
|
1222
|
+
audience: "Audience",
|
|
1223
|
+
editProfile: "Edit profile",
|
|
1224
|
+
publicPage: "Public page",
|
|
1225
|
+
team: "Team",
|
|
1226
|
+
settings: "Settings",
|
|
1227
|
+
},
|
|
1228
|
+
audience: {
|
|
1229
|
+
title: "Audience",
|
|
1230
|
+
back: "Venue",
|
|
1231
|
+
searchPlaceholder: "Search visitors",
|
|
1232
|
+
tabAll: (p) => `All · ${p.count}`,
|
|
1233
|
+
tabVips: (p) => `VIPs · ${p.count}`,
|
|
1234
|
+
tabBlacklist: (p) => `Blacklist · ${p.count}`,
|
|
1235
|
+
visitorCount: (p) => {
|
|
1236
|
+
const n = Number(p.count);
|
|
1237
|
+
if (n === 1)
|
|
1238
|
+
return `${p.count} visitor`;
|
|
1239
|
+
return `${p.count} visitors`;
|
|
1240
|
+
},
|
|
1241
|
+
visits: (p) => {
|
|
1242
|
+
const n = Number(p.count);
|
|
1243
|
+
if (n === 1)
|
|
1244
|
+
return `${p.count} visit`;
|
|
1245
|
+
return `${p.count} visits`;
|
|
1246
|
+
},
|
|
1247
|
+
lastSeen: (p) => `Last seen ${p.date}`,
|
|
1248
|
+
sort: "Sort",
|
|
1249
|
+
sortLastSeen: "Last seen",
|
|
1250
|
+
sortMostVisits: "Most visits",
|
|
1251
|
+
vip: "VIP",
|
|
1252
|
+
emptyAll: "No visitors yet",
|
|
1253
|
+
emptyVips: "No VIPs yet",
|
|
1254
|
+
emptyBlacklist: "Nobody is blacklisted",
|
|
1255
|
+
noMatches: (p) => `No visitors match “${p.query}”.`,
|
|
1256
|
+
},
|
|
1257
|
+
bookingStatus: {
|
|
1258
|
+
inquiry: "Inquiry",
|
|
1259
|
+
quoted: "Quote sent",
|
|
1260
|
+
pendingApproval: "Awaiting approval",
|
|
1261
|
+
pendingPayment: "Awaiting deposit",
|
|
1262
|
+
confirmed: "Confirmed",
|
|
1263
|
+
completed: "Completed",
|
|
1264
|
+
canceled: "Cancelled",
|
|
1265
|
+
declined: "Declined",
|
|
1266
|
+
expired: "Expired",
|
|
1267
|
+
withdrawn: "Withdrawn",
|
|
1268
|
+
},
|
|
1269
|
+
search: {
|
|
1270
|
+
placeholder: (p) => `Search ${p.venue}`,
|
|
1271
|
+
cancel: "Cancel",
|
|
1272
|
+
scopeAll: "All",
|
|
1273
|
+
scopeGuests: "Guests",
|
|
1274
|
+
scopeBookings: "Bookings",
|
|
1275
|
+
scopeEvents: "Events",
|
|
1276
|
+
scopeSpaces: "Spaces",
|
|
1277
|
+
prompt: "Search guests, bookings, events and spaces.",
|
|
1278
|
+
noMatchesIn: (p) => `No ${p.scope} match “${p.query}”.`,
|
|
1279
|
+
noMatches: (p) => `Nothing matches “${p.query}”.`,
|
|
1280
|
+
spaceCapacity: (p) => `Up to ${p.count} guests`,
|
|
1281
|
+
},
|
|
1282
|
+
},
|
|
834
1283
|
};
|
package/package.json
CHANGED