@tribe-nest/forge 3.59.0 → 3.61.0

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.
Files changed (266) hide show
  1. package/package.json +2 -1
  2. package/src/_tests/testCommunity.tsx +28 -0
  3. package/src/contexts/CartContext.tsx +34 -1
  4. package/src/contexts/CommunityContext.tsx +192 -0
  5. package/src/contexts/PublicAuthContext.tsx +15 -3
  6. package/src/data/queries/_tests/metaSignals.spec.tsx +130 -0
  7. package/src/data/queries/useAccount.ts +33 -2
  8. package/src/data/queries/useAnalytics.ts +6 -6
  9. package/src/data/queries/useCallChat.ts +2 -2
  10. package/src/data/queries/useChat.ts +52 -40
  11. package/src/data/queries/useCheckouts.ts +2 -1
  12. package/src/data/queries/useCoachingAvailability.ts +10 -1
  13. package/src/data/queries/useCommunities.ts +345 -0
  14. package/src/data/queries/useCommunity.ts +450 -102
  15. package/src/data/queries/useCommunityAgent.ts +247 -0
  16. package/src/data/queries/useCommunityCalendar.ts +150 -0
  17. package/src/data/queries/useCommunityClassroom.ts +75 -0
  18. package/src/data/queries/useCommunityMembers.ts +108 -0
  19. package/src/data/queries/useCommunityModeration.ts +327 -0
  20. package/src/data/queries/useCommunityWiki.ts +137 -0
  21. package/src/data/queries/useCourses.ts +2 -0
  22. package/src/data/queries/useEmailSignIn.ts +79 -0
  23. package/src/data/queries/useEvents.ts +6 -1
  24. package/src/data/queries/useForms.ts +5 -1
  25. package/src/data/queries/useLeadMagnet.ts +6 -2
  26. package/src/data/queries/useMembership.ts +32 -7
  27. package/src/data/queries/useMembershipCalls.ts +116 -7
  28. package/src/data/queries/useMyBookings.ts +24 -1
  29. package/src/data/queries/useMyTickets.ts +24 -1
  30. package/src/data/queries/useNotifications.ts +6 -2
  31. package/src/data/queries/useOrders.ts +2 -1
  32. package/src/data/queries/usePWA.ts +111 -35
  33. package/src/data/queries/usePostCollections.ts +28 -16
  34. package/src/data/queries/usePosts.ts +16 -14
  35. package/src/data/queries/useSiteApp.ts +130 -0
  36. package/src/data/queries/useSubscriptions.ts +28 -9
  37. package/src/i18n/de.json +891 -2
  38. package/src/i18n/en.json +891 -2
  39. package/src/index.ts +36 -7
  40. package/src/runtime/pages.spec.ts +36 -0
  41. package/src/runtime/pages.ts +52 -27
  42. package/src/server/_tests/buildWebManifest.spec.ts +1 -1
  43. package/src/server/_tests/forgeServiceWorkerScript.spec.ts +4 -4
  44. package/src/types/models.ts +11 -0
  45. package/src/ui/analytics/ForgeAnalytics.tsx +64 -34
  46. package/src/ui/analytics/PageMetaPixel.tsx +23 -8
  47. package/src/ui/analytics/_tests/ForgeAnalytics.meta.spec.tsx +129 -0
  48. package/src/ui/analytics/_tests/metaCommerceEvents.spec.tsx +159 -0
  49. package/src/ui/analytics/useMetaEvents.ts +78 -0
  50. package/src/ui/format/_tests/membershipGate.spec.ts +6 -6
  51. package/src/ui/format/membershipGate.ts +19 -15
  52. package/src/ui/headless/_tests/communityAgent.spec.tsx +519 -0
  53. package/src/ui/headless/_tests/communityCalendar.spec.tsx +195 -0
  54. package/src/ui/headless/_tests/communityClassroom.spec.tsx +120 -0
  55. package/src/ui/headless/_tests/communityGate.spec.tsx +80 -0
  56. package/src/ui/headless/_tests/communityHarness.tsx +212 -0
  57. package/src/ui/headless/_tests/communityMembers.spec.tsx +316 -0
  58. package/src/ui/headless/_tests/communityPoll.spec.tsx +389 -0
  59. package/src/ui/headless/_tests/communityProvider.spec.tsx +151 -0
  60. package/src/ui/headless/_tests/memberHomeBar.spec.ts +84 -0
  61. package/src/ui/headless/_tests/siteAppBar.spec.ts +83 -0
  62. package/src/ui/headless/_tests/siteAppHarness.ts +19 -0
  63. package/src/ui/headless/_tests/siteAppHome.spec.ts +226 -0
  64. package/src/ui/headless/_tests/siteAppPrompts.spec.ts +185 -0
  65. package/src/ui/headless/_tests/useCommunityInvite.spec.tsx +104 -0
  66. package/src/ui/headless/_tests/useCommunityJoin.spec.tsx +596 -0
  67. package/src/ui/headless/_tests/useCommunityMembership.spec.tsx +179 -0
  68. package/src/ui/headless/_tests/useCommunityModeration.spec.tsx +420 -0
  69. package/src/ui/headless/_tests/useCommunityReads.spec.tsx +295 -0
  70. package/src/ui/headless/_tests/useCommunityUpgrade.spec.tsx +157 -0
  71. package/src/ui/headless/_tests/useCommunityWiki.spec.tsx +224 -0
  72. package/src/ui/headless/_tests/useSiteApp.spec.tsx +52 -0
  73. package/src/ui/headless/_tests/wikiMediaImage.spec.tsx +132 -0
  74. package/src/ui/headless/auth/useEmailCodeSignIn.ts +186 -0
  75. package/src/ui/headless/auth/useSignupForm.ts +30 -3
  76. package/src/ui/headless/chat/useChatAttachmentUpload.ts +9 -6
  77. package/src/ui/headless/chat/useChatRoom.ts +35 -1
  78. package/src/ui/headless/communities/CommunityGate.tsx +67 -0
  79. package/src/ui/headless/communities/index.ts +96 -0
  80. package/src/ui/headless/communities/paths.ts +36 -0
  81. package/src/ui/headless/communities/useCommunity.ts +140 -0
  82. package/src/ui/headless/communities/useCommunityAbout.ts +71 -0
  83. package/src/ui/headless/communities/useCommunityCalendar.ts +156 -0
  84. package/src/ui/headless/communities/useCommunityClassroom.ts +84 -0
  85. package/src/ui/headless/communities/useCommunityHome.ts +91 -0
  86. package/src/ui/headless/communities/useCommunityInvite.ts +116 -0
  87. package/src/ui/headless/communities/useCommunityJoin.ts +494 -0
  88. package/src/ui/headless/communities/useCommunityMembership.ts +182 -0
  89. package/src/ui/headless/communities/useCommunityUpgrade.ts +213 -0
  90. package/src/ui/headless/communities/useCommunityWiki.ts +266 -0
  91. package/src/ui/headless/communities/useMyMemberships.ts +59 -0
  92. package/src/ui/headless/community/communityPoll.ts +297 -0
  93. package/src/ui/headless/community/countries.ts +123 -0
  94. package/src/ui/headless/community/index.ts +81 -1
  95. package/src/ui/headless/community/linkPreview.ts +71 -0
  96. package/src/ui/headless/community/richLexical.ts +27 -2
  97. package/src/ui/headless/community/useCommunityAgent.ts +285 -0
  98. package/src/ui/headless/community/useCommunityAttachmentUpload.ts +7 -3
  99. package/src/ui/headless/community/useCommunityMembers.ts +175 -0
  100. package/src/ui/headless/community/useCommunityModeration.ts +300 -0
  101. package/src/ui/headless/community/useCommunitySpaceFeed.ts +22 -4
  102. package/src/ui/headless/community/useCommunityThread.ts +16 -3
  103. package/src/ui/headless/community/useMentionComposer.ts +17 -9
  104. package/src/ui/headless/community/useRichMentionComposer.ts +21 -5
  105. package/src/ui/headless/downloads/index.ts +8 -0
  106. package/src/ui/headless/downloads/useDownloadPage.ts +134 -0
  107. package/src/ui/headless/index.ts +21 -4
  108. package/src/ui/headless/memberHome/index.ts +11 -1
  109. package/src/ui/headless/memberHome/memberHomeBar.ts +91 -0
  110. package/src/ui/headless/memberHome/useMemberHomeNav.ts +84 -44
  111. package/src/ui/headless/membership/_tests/membershipCheckoutRefetch.spec.tsx +8 -0
  112. package/src/ui/headless/membership/_tests/useMembershipCheckoutApplication.spec.tsx +5 -4
  113. package/src/ui/headless/membership/_tests/useMembershipCheckoutQuestionnaire.spec.tsx +1 -1
  114. package/src/ui/headless/membership/_tests/useMembershipCheckoutTrial.spec.tsx +1 -1
  115. package/src/ui/headless/membership/useMembershipCheckout.ts +89 -22
  116. package/src/ui/headless/membership/useMembershipGateNotice.ts +25 -7
  117. package/src/ui/headless/portal/index.ts +57 -0
  118. package/src/ui/headless/portal/usePortal.ts +274 -0
  119. package/src/ui/headless/portal/usePortalFiles.ts +68 -0
  120. package/src/ui/headless/portal/usePortalMessages.ts +189 -0
  121. package/src/ui/headless/portal/usePortalPreview.ts +142 -0
  122. package/src/ui/headless/posts/upsell.ts +54 -8
  123. package/src/ui/headless/posts/useMemberPostsFeed.ts +6 -5
  124. package/src/ui/headless/posts/usePostCollectionDetail.ts +7 -4
  125. package/src/ui/headless/posts/usePostCollectionsList.ts +6 -5
  126. package/src/ui/headless/posts/usePostItem.ts +6 -5
  127. package/src/ui/headless/siteApp/appBar.ts +102 -0
  128. package/src/ui/headless/siteApp/appHome.ts +344 -0
  129. package/src/ui/headless/siteApp/appPrompts.ts +229 -0
  130. package/src/ui/headless/siteApp/index.ts +58 -0
  131. package/src/ui/headless/siteApp/useAppHome.ts +210 -0
  132. package/src/ui/headless/siteApp/useAppInstallRequest.ts +16 -0
  133. package/src/ui/headless/work/index.ts +2 -0
  134. package/src/ui/headless/work/useWorkPortal.ts +37 -26
  135. package/src/ui/index.ts +28 -12
  136. package/src/ui/styled/AccountDashboard.tsx +754 -602
  137. package/src/ui/styled/AiAgentWidget.tsx +13 -1
  138. package/src/ui/styled/ChatRoom.tsx +126 -16
  139. package/src/ui/styled/Checkout.tsx +8 -0
  140. package/src/ui/styled/CheckoutConfirmation.tsx +8 -0
  141. package/src/ui/styled/CoachingConfirmation.tsx +8 -0
  142. package/src/ui/styled/CoachingDetail.tsx +2 -0
  143. package/src/ui/styled/CourseConfirmation.tsx +5 -0
  144. package/src/ui/styled/CourseDetail.tsx +2 -0
  145. package/src/ui/styled/DownloadPage.tsx +263 -0
  146. package/src/ui/styled/EventConfirmation.tsx +10 -0
  147. package/src/ui/styled/EventDetail.tsx +10 -0
  148. package/src/ui/styled/FilmLibrary.tsx +22 -9
  149. package/src/ui/styled/MembershipCheckout.tsx +37 -17
  150. package/src/ui/styled/MembershipTierCallout.tsx +20 -1
  151. package/src/ui/styled/MembershipTiers.tsx +49 -11
  152. package/src/ui/styled/MusicLinkPage.tsx +5 -5
  153. package/src/ui/styled/Paywall.tsx +1 -1
  154. package/src/ui/styled/ProductDetail.tsx +12 -0
  155. package/src/ui/styled/PwaRegistration.tsx +5 -1
  156. package/src/ui/styled/SignupForm.tsx +18 -3
  157. package/src/ui/styled/_tests/AccountDashboardBookingCall.spec.tsx +6 -6
  158. package/src/ui/styled/_tests/AccountDashboardMemberships.spec.tsx +151 -0
  159. package/src/ui/styled/_tests/AccountDashboardRentals.spec.tsx +1 -1
  160. package/src/ui/styled/_tests/AccountNotifications.spec.tsx +135 -0
  161. package/src/ui/styled/_tests/CourseCallsSection.spec.tsx +7 -1
  162. package/src/ui/styled/_tests/DownloadPage.spec.tsx +68 -0
  163. package/src/ui/styled/_tests/MembershipCheckout.spec.tsx +54 -11
  164. package/src/ui/styled/_tests/membershipTierCallout.spec.tsx +1 -1
  165. package/src/ui/styled/_tests/membershipTiersCuratedAccess.spec.tsx +1 -1
  166. package/src/ui/styled/app/AppBar.tsx +298 -0
  167. package/src/ui/styled/app/AppHome.tsx +1139 -0
  168. package/src/ui/styled/app/AppHomeMark.tsx +66 -0
  169. package/src/ui/styled/app/AppPrompts.tsx +464 -0
  170. package/src/ui/styled/app/_tests/AppBar.spec.tsx +96 -0
  171. package/src/ui/styled/app/_tests/AppHome.spec.tsx +209 -0
  172. package/src/ui/styled/app/_tests/AppPrompts.spec.tsx +232 -0
  173. package/src/ui/styled/app/index.ts +7 -0
  174. package/src/ui/styled/chat/ChatThreadPanel.tsx +29 -4
  175. package/src/ui/styled/chat/MessageBubble.tsx +43 -6
  176. package/src/ui/styled/communities/CommunitiesList.tsx +88 -0
  177. package/src/ui/styled/communities/CommunityAbout.tsx +145 -0
  178. package/src/ui/styled/communities/CommunityCalendar.tsx +484 -0
  179. package/src/ui/styled/communities/CommunityClassroom.tsx +302 -0
  180. package/src/ui/styled/communities/CommunityHome.tsx +298 -0
  181. package/src/ui/styled/communities/CommunityJoinSheet.tsx +544 -0
  182. package/src/ui/styled/communities/CommunityMembershipMenu.tsx +249 -0
  183. package/src/ui/styled/communities/CommunityPending.tsx +49 -0
  184. package/src/ui/styled/communities/CommunityPublicWiki.tsx +75 -0
  185. package/src/ui/styled/communities/CommunityUpgradeSheet.tsx +137 -0
  186. package/src/ui/styled/communities/CommunityWiki.tsx +289 -0
  187. package/src/ui/styled/communities/MyMembershipsList.tsx +115 -0
  188. package/src/ui/styled/communities/_tests/CommunityAppHome.spec.tsx +92 -0
  189. package/src/ui/styled/communities/_tests/CommunityClassroomCalendar.spec.tsx +453 -0
  190. package/src/ui/styled/communities/_tests/CommunityMobile.spec.tsx +399 -0
  191. package/src/ui/styled/communities/_tests/CommunityPages.spec.tsx +102 -0
  192. package/src/ui/styled/communities/_tests/CommunityWiki.spec.tsx +223 -0
  193. package/src/ui/styled/communities/index.ts +19 -0
  194. package/src/ui/styled/communities/shared.tsx +177 -0
  195. package/src/ui/styled/community/CommunityAgent.tsx +286 -0
  196. package/src/ui/styled/community/CommunityComposer.tsx +266 -15
  197. package/src/ui/styled/community/CommunityFeed.tsx +50 -1
  198. package/src/ui/styled/community/CommunityLinkPreview.tsx +159 -0
  199. package/src/ui/styled/community/CommunityMemberGlobe.tsx +171 -0
  200. package/src/ui/styled/community/CommunityMemberProfile.tsx +137 -4
  201. package/src/ui/styled/community/CommunityMembers.tsx +387 -0
  202. package/src/ui/styled/community/CommunityModeration.tsx +587 -0
  203. package/src/ui/styled/community/CommunityModerationState.tsx +127 -0
  204. package/src/ui/styled/community/CommunityModeratorMenu.tsx +317 -0
  205. package/src/ui/styled/community/CommunityNotifications.tsx +52 -6
  206. package/src/ui/styled/community/CommunityPollCard.tsx +250 -0
  207. package/src/ui/styled/community/CommunityPostCard.tsx +110 -34
  208. package/src/ui/styled/community/CommunityPostDetail.tsx +157 -71
  209. package/src/ui/styled/community/CommunityRichText.tsx +177 -32
  210. package/src/ui/styled/community/CommunitySpaces.tsx +49 -14
  211. package/src/ui/styled/community/_tests/CommunityAgent.spec.tsx +571 -0
  212. package/src/ui/styled/community/_tests/CommunityComposer.spec.tsx +4 -1
  213. package/src/ui/styled/community/_tests/CommunityLinkPreview.spec.tsx +167 -0
  214. package/src/ui/styled/community/_tests/CommunityMembers.spec.tsx +137 -0
  215. package/src/ui/styled/community/_tests/CommunityModeration.spec.tsx +291 -0
  216. package/src/ui/styled/community/_tests/CommunityPoll.spec.tsx +386 -0
  217. package/src/ui/styled/community/_tests/CommunityPostDetail.spec.tsx +4 -1
  218. package/src/ui/styled/community/index.ts +37 -2
  219. package/src/ui/styled/forge-utilities.css +253 -0
  220. package/src/ui/styled/members/CallRecordingActions.tsx +182 -0
  221. package/src/ui/styled/members/CallTranscriptViewer.tsx +424 -0
  222. package/src/ui/styled/members/MemberCallsCalendar.tsx +41 -54
  223. package/src/ui/styled/members/MemberHomeLayout.tsx +327 -29
  224. package/src/ui/styled/members/MemberPostCard.tsx +9 -5
  225. package/src/ui/styled/members/MemberPostsFeed.tsx +3 -2
  226. package/src/ui/styled/members/PostCollectionDetail.tsx +18 -10
  227. package/src/ui/styled/members/PostCollectionsGrid.tsx +24 -10
  228. package/src/ui/styled/members/_tests/MemberCallsCalendar.spec.tsx +167 -8
  229. package/src/ui/styled/members/callTranscriptText.ts +67 -0
  230. package/src/ui/styled/members/index.ts +8 -0
  231. package/src/ui/styled/portal/PortalAccountSection.tsx +61 -0
  232. package/src/ui/styled/portal/PortalActivity.tsx +167 -0
  233. package/src/ui/styled/portal/PortalBilling.tsx +197 -0
  234. package/src/ui/styled/portal/PortalFiles.tsx +279 -0
  235. package/src/ui/styled/portal/PortalHome.tsx +401 -0
  236. package/src/ui/styled/portal/PortalMessages.tsx +300 -0
  237. package/src/ui/styled/portal/PortalPreviewBanner.tsx +75 -0
  238. package/src/ui/styled/portal/PortalProjects.tsx +407 -0
  239. package/src/ui/styled/portal/PortalShell.tsx +397 -0
  240. package/src/ui/styled/portal/_tests/PortalAppHome.spec.tsx +90 -0
  241. package/src/ui/styled/portal/_tests/PortalFiles.spec.tsx +159 -0
  242. package/src/ui/styled/portal/_tests/PortalHome.spec.tsx +148 -0
  243. package/src/ui/styled/portal/_tests/PortalMessages.spec.tsx +168 -0
  244. package/src/ui/styled/portal/_tests/PortalPreviewBanner.spec.tsx +132 -0
  245. package/src/ui/styled/portal/_tests/portalNav.spec.ts +123 -0
  246. package/src/ui/styled/portal/index.ts +13 -0
  247. package/src/ui/styled/portal/portalNav.ts +260 -0
  248. package/src/ui/styled/portal/shared.tsx +206 -0
  249. package/src/ui/styled/work/WorkInviteAccept.tsx +228 -168
  250. package/src/ui/styled/work/WorkPortalProjects.tsx +68 -120
  251. package/src/ui/styled/work/WorkProjectDocuments.tsx +99 -128
  252. package/src/ui/styled/work/WorkProjectInvoices.tsx +91 -86
  253. package/src/ui/styled/work/WorkProjectReport.tsx +11 -17
  254. package/src/ui/styled/work/WorkReportBody.tsx +223 -248
  255. package/src/ui/styled/work/WorkTaskAttachments.tsx +23 -29
  256. package/src/ui/styled/work/WorkTaskComments.tsx +75 -102
  257. package/src/ui/styled/work/WorkTaskDetail.tsx +48 -59
  258. package/src/ui/styled/work/WorkTokenReport.tsx +8 -16
  259. package/src/ui/styled/work/index.ts +1 -1
  260. package/src/utils/_tests/metaEvents.spec.ts +264 -0
  261. package/src/utils/_tests/safeRedirect.spec.ts +2 -2
  262. package/src/utils/landing.ts +19 -6
  263. package/src/utils/metaEvents.ts +302 -0
  264. package/src/ui/headless/membership/MembershipGate.tsx +0 -44
  265. package/src/ui/styled/_tests/AccountDashboardCommunity.spec.tsx +0 -149
  266. package/src/ui/styled/_tests/AccountDashboardTrial.spec.tsx +0 -105
package/src/i18n/en.json CHANGED
@@ -39,6 +39,9 @@
39
39
  "forge.account_dashboard.cancelling": "Cancelling…",
40
40
  "forge.account_dashboard.close": "Close",
41
41
  "forge.account_dashboard.confirm_password": "Confirm new password",
42
+ "forge.account_dashboard.course_open_continue": "Continue",
43
+ "forge.account_dashboard.course_open_review": "Review",
44
+ "forge.account_dashboard.course_open_start": "Start course",
42
45
  "forge.account_dashboard.courses_completed": "Completed",
43
46
  "forge.account_dashboard.courses_continue": "Continue where you left off",
44
47
  "forge.account_dashboard.courses_empty": "Nothing here yet. Courses you buy appear on this page.",
@@ -58,6 +61,7 @@
58
61
  "forge.account_dashboard.first_name": "First name",
59
62
  "forge.account_dashboard.last_name": "Last name",
60
63
  "forge.account_dashboard.leave_waitlist": "Leave waitlist",
64
+ "forge.account_dashboard.loading_more": "Loading",
61
65
  "forge.account_dashboard.log_out": "Log out",
62
66
  "forge.account_dashboard.member_area": "Member Area",
63
67
  "forge.account_dashboard.membership_cancel_error": "We couldn't cancel your membership. Please try again or contact us.",
@@ -73,10 +77,41 @@
73
77
  "forge.account_dashboard.membership_trial_until": "Free trial until {date}",
74
78
  "forge.account_dashboard.new_password": "New password",
75
79
  "forge.account_dashboard.notifications_title": "Notification Types",
80
+ "forge.account_dashboard.notify_channel_email": "Email",
81
+ "forge.account_dashboard.notify_channel_inapp": "In-app",
82
+ "forge.account_dashboard.notify_channel_push": "Push",
76
83
  "forge.account_dashboard.notify_chat_description": "Get notified when new chat messages arrive",
77
84
  "forge.account_dashboard.notify_chat_title": "Chat Messages",
85
+ "forge.account_dashboard.notify_digest_daily": "Daily",
86
+ "forge.account_dashboard.notify_digest_help": "Replies, reactions and new posts are collected into one email instead of one each. Direct messages, mentions and reminders always arrive straight away.",
87
+ "forge.account_dashboard.notify_digest_help_label": "What goes in the email summary?",
88
+ "forge.account_dashboard.notify_digest_hourly": "Hourly",
89
+ "forge.account_dashboard.notify_digest_inapp_only": "In the app only",
90
+ "forge.account_dashboard.notify_digest_off": "Off",
91
+ "forge.account_dashboard.notify_digest_title": "Email summary",
92
+ "forge.account_dashboard.notify_group_community": "Community",
93
+ "forge.account_dashboard.notify_group_events": "Events and live",
94
+ "forge.account_dashboard.notify_group_messages": "Messages",
78
95
  "forge.account_dashboard.notify_new_posts_description": "Get notified when new posts are published",
79
96
  "forge.account_dashboard.notify_new_posts_title": "New Posts",
97
+ "forge.account_dashboard.notify_push_device_off": "Off. Turn it on to get any push notifications here.",
98
+ "forge.account_dashboard.notify_push_device_on": "On. The push choices below reach this device.",
99
+ "forge.account_dashboard.notify_push_device_title": "Push on this device",
100
+ "forge.account_dashboard.notify_push_device_turn_off": "Turn off",
101
+ "forge.account_dashboard.notify_push_device_turn_on": "Turn on",
102
+ "forge.account_dashboard.notify_save_error": "Your change wasn't saved. Try again.",
103
+ "forge.account_dashboard.notify_toggle_label": "{type}: {channel}",
104
+ "forge.account_dashboard.notify_type_chat_message": "Chat messages",
105
+ "forge.account_dashboard.notify_type_client_message": "Replies from the team",
106
+ "forge.account_dashboard.notify_type_dm": "Direct messages",
107
+ "forge.account_dashboard.notify_type_event_reminder": "Event reminders",
108
+ "forge.account_dashboard.notify_type_mention": "Mentions",
109
+ "forge.account_dashboard.notify_type_mod": "Moderation updates",
110
+ "forge.account_dashboard.notify_type_new_community_post": "New posts in your spaces",
111
+ "forge.account_dashboard.notify_type_new_post": "New posts",
112
+ "forge.account_dashboard.notify_type_reaction": "Reactions to your posts",
113
+ "forge.account_dashboard.notify_type_reply": "Replies to you",
114
+ "forge.account_dashboard.notify_type_stream_live": "Live now",
80
115
  "forge.account_dashboard.order_line": "{title} × {quantity}",
81
116
  "forge.account_dashboard.order_number": "Order #{order_id}",
82
117
  "forge.account_dashboard.orders_empty": "You haven't placed any orders yet.",
@@ -111,6 +146,7 @@
111
146
  "forge.account_dashboard.session_window_zoned": "{day}, {start} to {end} ({timezone})",
112
147
  "forge.account_dashboard.sessions_empty": "You have no sessions booked.",
113
148
  "forge.account_dashboard.sessions_title": "My Sessions",
149
+ "forge.account_dashboard.show_more": "Show more",
114
150
  "forge.account_dashboard.tab_account": "Account",
115
151
  "forge.account_dashboard.tab_bookings": "Bookings",
116
152
  "forge.account_dashboard.tab_courses": "Courses",
@@ -124,6 +160,7 @@
124
160
  "forge.account_dashboard.ticket_cancel_error": "We could not cancel this ticket. Please try again.",
125
161
  "forge.account_dashboard.ticket_fallback_title": "Ticket",
126
162
  "forge.account_dashboard.ticket_line": "{title} × {quantity}",
163
+ "forge.account_dashboard.ticket_transfer_toggle": "Send a ticket to someone ({count})",
127
164
  "forge.account_dashboard.ticket_transferred": "Sent to you",
128
165
  "forge.account_dashboard.tickets_empty": "You have no tickets yet.",
129
166
  "forge.account_dashboard.tickets_title": "My Tickets",
@@ -153,6 +190,116 @@
153
190
  "forge.ai_agent_widget.default_title": "Assistant",
154
191
  "forge.ai_agent_widget.input_placeholder": "Type a message…",
155
192
  "forge.ai_agent_widget.send": "Send",
193
+ "forge.app_bar.aria_close": "Close",
194
+ "forge.app_bar.communities": "Communities",
195
+ "forge.app_bar.courses": "Courses",
196
+ "forge.app_bar.events": "Events",
197
+ "forge.app_bar.home": "Home",
198
+ "forge.app_bar.inbox": "Inbox",
199
+ "forge.app_bar.more": "More",
200
+ "forge.app_bar.more_title": "More",
201
+ "forge.app_bar.nav_label": "App",
202
+ "forge.app_bar.portal": "Portal",
203
+ "forge.app_bar.shop": "Shop",
204
+ "forge.app_home.accept_terms": "I accept the Terms and Privacy Policy",
205
+ "forge.app_home.action_pay": "Pay",
206
+ "forge.app_home.action_reply": "Reply",
207
+ "forge.app_home.action_review": "Review",
208
+ "forge.app_home.action_update": "Update",
209
+ "forge.app_home.all": "All",
210
+ "forge.app_home.all_courses": "All courses",
211
+ "forge.app_home.all_events": "All events",
212
+ "forge.app_home.apply_community": "Apply",
213
+ "forge.app_home.aria_account": "Your account",
214
+ "forge.app_home.aria_course_progress": "Course progress",
215
+ "forge.app_home.aria_notifications": "Notifications",
216
+ "forge.app_home.attention_approval": "Review {milestone}",
217
+ "forge.app_home.attention_invoice": "Invoice {number}",
218
+ "forge.app_home.attention_message_many": "{count} new messages",
219
+ "forge.app_home.attention_message_one": "1 new message",
220
+ "forge.app_home.attention_payment_failed": "Update your card for {community}",
221
+ "forge.app_home.code": "Code",
222
+ "forge.app_home.code_resent": "We sent a new code.",
223
+ "forge.app_home.code_sent": "We emailed a 6-digit code to {email}.",
224
+ "forge.app_home.coming_up": "Coming up",
225
+ "forge.app_home.community_details": "Details",
226
+ "forge.app_home.continue": "Continue",
227
+ "forge.app_home.continue_learning": "Continue learning",
228
+ "forge.app_home.courses": "Courses",
229
+ "forge.app_home.details": "Details",
230
+ "forge.app_home.different_email": "Use a different email",
231
+ "forge.app_home.email": "Email",
232
+ "forge.app_home.email_placeholder": "you@example.com",
233
+ "forge.app_home.explore_communities": "Explore communities",
234
+ "forge.app_home.explore_link_communities": "Communities",
235
+ "forge.app_home.explore_link_courses": "Courses",
236
+ "forge.app_home.explore_link_events": "Events",
237
+ "forge.app_home.explore_link_shop": "Shop",
238
+ "forge.app_home.first_name": "First name",
239
+ "forge.app_home.free": "Free",
240
+ "forge.app_home.from_the_shop": "From the shop",
241
+ "forge.app_home.greeting_afternoon": "Good afternoon",
242
+ "forge.app_home.greeting_afternoon_name": "Good afternoon, {name}",
243
+ "forge.app_home.greeting_evening": "Good evening",
244
+ "forge.app_home.greeting_evening_name": "Good evening, {name}",
245
+ "forge.app_home.greeting_morning": "Good morning",
246
+ "forge.app_home.greeting_morning_name": "Good morning, {name}",
247
+ "forge.app_home.join": "Join",
248
+ "forge.app_home.join_community": "Join",
249
+ "forge.app_home.last_name": "Last name",
250
+ "forge.app_home.lead_many": "{count} things are waiting for you.",
251
+ "forge.app_home.lead_one": "One thing is waiting for you.",
252
+ "forge.app_home.lessons_done": "{done} of {total} lessons done",
253
+ "forge.app_home.look_around": "or have a look around",
254
+ "forge.app_home.mark_label": "Home",
255
+ "forge.app_home.members": "{count} members",
256
+ "forge.app_home.needs_you": "Needs you",
257
+ "forge.app_home.new_count": "{count} new",
258
+ "forge.app_home.new_here": "New here? Tell us your name to finish signing up as {email}.",
259
+ "forge.app_home.open": "Open",
260
+ "forge.app_home.portal": "Your portal",
261
+ "forge.app_home.resend": "Send a new code",
262
+ "forge.app_home.see_all": "See all",
263
+ "forge.app_home.shop": "Shop",
264
+ "forge.app_home.start_again": "Start again",
265
+ "forge.app_home.tickets_many": "{count} tickets",
266
+ "forge.app_home.tickets_one": "1 ticket",
267
+ "forge.app_home.tile_bookings": "Bookings",
268
+ "forge.app_home.tile_courses": "Courses",
269
+ "forge.app_home.tile_documents": "Documents",
270
+ "forge.app_home.tile_invoices": "Invoices",
271
+ "forge.app_home.tile_orders": "Orders",
272
+ "forge.app_home.tile_projects": "Projects",
273
+ "forge.app_home.tile_saved": "Saved",
274
+ "forge.app_home.tile_settings": "Settings",
275
+ "forge.app_home.tile_tickets": "Tickets",
276
+ "forge.app_home.upcoming_events": "Upcoming events",
277
+ "forge.app_home.verify": "Sign in",
278
+ "forge.app_home.view_ticket": "Ticket",
279
+ "forge.app_home.your_communities": "Your communities",
280
+ "forge.app_prompts.aria_close": "Close",
281
+ "forge.app_prompts.benefit_notifications": "Replies and reminders as notifications",
282
+ "forge.app_prompts.benefit_one_place": "Everything you have here in one place",
283
+ "forge.app_prompts.benefit_one_tap": "Opens in one tap from your home screen",
284
+ "forge.app_prompts.install_accept": "Add to home screen",
285
+ "forge.app_prompts.install_lead": "Add {app} to your home screen.",
286
+ "forge.app_prompts.install_title_booking": "Booked. Keep your sessions one tap away.",
287
+ "forge.app_prompts.install_title_invite": "You're in. Keep your projects one tap away.",
288
+ "forge.app_prompts.install_title_joined": "You're in. Keep it one tap away.",
289
+ "forge.app_prompts.install_title_purchase": "Thank you. Keep your orders one tap away.",
290
+ "forge.app_prompts.ios_lead": "Two steps in Safari.",
291
+ "forge.app_prompts.ios_step_add": "Choose Add to Home Screen",
292
+ "forge.app_prompts.ios_step_share": "Tap Share in the toolbar",
293
+ "forge.app_prompts.not_now": "Not now",
294
+ "forge.app_prompts.push_accept": "Turn on notifications",
295
+ "forge.app_prompts.push_category_community": "New posts in your communities",
296
+ "forge.app_prompts.push_category_events": "Event reminders and live streams",
297
+ "forge.app_prompts.push_category_messages": "Messages, replies and mentions",
298
+ "forge.app_prompts.push_later": "Maybe later",
299
+ "forge.app_prompts.push_lead_categories": "Pick what {app} can tell you about.",
300
+ "forge.app_prompts.push_lead_single": "Let {app} tell you when something needs you.",
301
+ "forge.app_prompts.push_title": "Don't miss what matters",
302
+ "forge.app_prompts.this_app": "this app",
156
303
  "forge.audio_player.aria_close": "Close player",
157
304
  "forge.audio_player.next": "Next",
158
305
  "forge.audio_player.nothing_playing": "Nothing playing",
@@ -237,6 +384,15 @@
237
384
  "forge.bundle_confirmation.tickets_emailed": "Tickets emailed to you",
238
385
  "forge.bundle_confirmation.title": "You're all set",
239
386
  "forge.bundle_confirmation.view_orders": "View your orders",
387
+ "forge.call_recording_actions.download": "Download",
388
+ "forge.call_recording_actions.processing": "Recording is processing",
389
+ "forge.call_recording_actions.read_transcript": "Read transcript",
390
+ "forge.call_recording_actions.summary": "Summary",
391
+ "forge.call_recording_actions.transcript": "Transcript",
392
+ "forge.call_recording_actions.transcript_processing": "The transcript is being prepared",
393
+ "forge.call_recording_actions.transcript_ready": "The transcript is ready.",
394
+ "forge.call_recording_actions.watch": "Watch recording",
395
+ "forge.call_recording_actions.watch_minutes": "Watch recording · {minutes} min",
240
396
  "forge.call_stage.breakouts.assign_auto": "Automatically",
241
397
  "forge.call_stage.breakouts.assign_label": "Assign people",
242
398
  "forge.call_stage.breakouts.assign_manual": "I will assign them",
@@ -398,6 +554,7 @@
398
554
  "forge.cart.ticket_line": "{ticket_title} × {quantity}",
399
555
  "forge.cart.title": "My Cart",
400
556
  "forge.cart.total": "Total:",
557
+ "forge.chat_room.agent_dm_failed": "We couldn't open this conversation. Please try again.",
401
558
  "forge.chat_room.channel_fallback": "channel",
402
559
  "forge.chat_room.channels_title": "Channels",
403
560
  "forge.chat_room.dm_fallback": "Direct message",
@@ -406,6 +563,7 @@
406
563
  "forge.chat_room.group_private": "Private channels",
407
564
  "forge.chat_room.group_public": "Public",
408
565
  "forge.chat_room.load_earlier": "Load earlier",
566
+ "forge.chat_room.message_agent": "Message {agent_name}",
409
567
  "forge.chat_room.new_message": "New message",
410
568
  "forge.chat_room.select_channel": "Select a channel to start chatting",
411
569
  "forge.chat_room.typing": "{users} typing…",
@@ -655,6 +813,409 @@
655
813
  "forge.cohort_page.date_range": "{start} to {end}",
656
814
  "forge.cohort_page.date_tbd": "TBD",
657
815
  "forge.cohort_page.not_found": "Cohort not found.",
816
+ "forge.communities_list.empty": "There are no communities to join yet.",
817
+ "forge.communities_list.heading": "Communities",
818
+ "forge.communities_list.member_count": "{count} members",
819
+ "forge.community_about.apply": "Apply to join",
820
+ "forge.community_about.current_tier": "Your current tier",
821
+ "forge.community_about.go_inside": "Go to the community",
822
+ "forge.community_about.join": "Join",
823
+ "forge.community_about.join_free": "Join free",
824
+ "forge.community_about.join_from": "Join from {amount}/mo",
825
+ "forge.community_about.join_from_yearly": "Join from {amount}/yr",
826
+ "forge.community_about.join_tier": "Join",
827
+ "forge.community_about.member_count": "{count} members",
828
+ "forge.community_about.not_found": "This community could not be found.",
829
+ "forge.community_about.pending": "Your application is being reviewed.",
830
+ "forge.community_about.tiers_title": "Membership tiers",
831
+ "forge.community_about.view_application": "View your application",
832
+ "forge.community_agent.badge": "AI",
833
+ "forge.community_agent.badge_title": "Written by AI",
834
+ "forge.community_agent.catch_up": "Catch me up",
835
+ "forge.community_agent.catch_up_daily_limit": "You have reached today's limit for the assistant. Try again tomorrow.",
836
+ "forge.community_agent.catch_up_dismiss": "Dismiss summary",
837
+ "forge.community_agent.catch_up_failed": "Something went wrong. Please try again.",
838
+ "forge.community_agent.catch_up_panel_label": "Summary by {agent_name}",
839
+ "forge.community_agent.catch_up_pending": "Catching you up…",
840
+ "forge.community_agent.catch_up_private": "AI summary, only you can see it",
841
+ "forge.community_agent.catch_up_unavailable": "We can't summarise this thread right now.",
842
+ "forge.community_agent.feedback_down": "Not helpful",
843
+ "forge.community_agent.feedback_up": "Helpful answer",
844
+ "forge.community_agent.thinking": "{agent_name} is thinking…",
845
+ "forge.community_agent.thinking_unnamed": "The assistant is thinking…",
846
+ "forge.community_calendar.add_to_calendar": "Add to calendar",
847
+ "forge.community_calendar.call_label": "Video call, {time}",
848
+ "forge.community_calendar.cancelled": "Cancelled",
849
+ "forge.community_calendar.details": "Details",
850
+ "forge.community_calendar.empty": "Nothing on the calendar this month. Use the arrows to look at another month.",
851
+ "forge.community_calendar.error": "We couldn't load the calendar. Please try again.",
852
+ "forge.community_calendar.event_label": "Event, {time}",
853
+ "forge.community_calendar.forbidden": "The calendar is for members of this community.",
854
+ "forge.community_calendar.going_count": "Going ({count})",
855
+ "forge.community_calendar.help": "Going and Not going tell us who to expect. They don't reserve a place: every member can join a call while its room is open. Add to calendar puts the call or event in your own calendar app. Once a recorded call is over, you can watch it again here.",
856
+ "forge.community_calendar.help_label": "What does Going do?",
857
+ "forge.community_calendar.join": "Join call",
858
+ "forge.community_calendar.live_now": "Open now",
859
+ "forge.community_calendar.next_month": "Next month",
860
+ "forge.community_calendar.not_going_count": "Not going ({count})",
861
+ "forge.community_calendar.online": "Online",
862
+ "forge.community_calendar.past_heading": "Already happened",
863
+ "forge.community_calendar.previous_month": "Previous month",
864
+ "forge.community_calendar.rsvp_closed": "This call has ended or was cancelled, so we're no longer taking answers for it.",
865
+ "forge.community_calendar.rsvp_failed": "We couldn't save your answer. Please try again.",
866
+ "forge.community_calendar.rsvp_not_found": "We couldn't find this call any more.",
867
+ "forge.community_calendar.this_month": "This month",
868
+ "forge.community_calendar.time_range": "{start} to {end}",
869
+ "forge.community_calendar.today": "Today, {date}",
870
+ "forge.community_calendar.view_event": "View event",
871
+ "forge.community_classroom.completed": "Completed",
872
+ "forge.community_classroom.empty": "There are no courses here yet.",
873
+ "forge.community_classroom.error": "We couldn't load the classroom. Please try again.",
874
+ "forge.community_classroom.forbidden": "The classroom is for members of this community.",
875
+ "forge.community_classroom.included_in": "Included in {tiers}",
876
+ "forge.community_classroom.locked_label": "Locked",
877
+ "forge.community_classroom.locked_no_tier": "Not open to you yet",
878
+ "forge.community_classroom.progress": "{completed} of {total} lessons",
879
+ "forge.community_classroom.progress_label": "Your progress in {title}",
880
+ "forge.community_classroom.start": "Start the course",
881
+ "forge.community_classroom.title": "Classroom",
882
+ "forge.community_classroom.unlocks_at_level": "Unlocks at level {level}",
883
+ "forge.community_classroom.upgrade": "Upgrade",
884
+ "forge.community_composer.mention_hint": "Use @ to mention members",
885
+ "forge.community_composer.mention_hint_agent": "Use @ to mention members or ask {agent_name}",
886
+ "forge.community_composer.poll_add_option": "Add option",
887
+ "forge.community_composer.poll_closes_in_past": "The closing time must be in the future.",
888
+ "forge.community_composer.poll_closes_invalid": "Enter a valid closing time.",
889
+ "forge.community_composer.poll_closes_label": "Closes (optional)",
890
+ "forge.community_composer.poll_closes_required": "Set a closing time, or nobody will ever see the results.",
891
+ "forge.community_composer.poll_multiple_choice": "Allow more than one answer",
892
+ "forge.community_composer.poll_option_duplicate": "This option repeats another one.",
893
+ "forge.community_composer.poll_option_empty": "Fill in this option or remove it.",
894
+ "forge.community_composer.poll_option_label": "Option {number}",
895
+ "forge.community_composer.poll_option_placeholder": "Option {number}",
896
+ "forge.community_composer.poll_option_too_long": "Keep each option to 120 characters.",
897
+ "forge.community_composer.poll_options_legend": "Options",
898
+ "forge.community_composer.poll_options_too_few": "A poll needs at least 2 options.",
899
+ "forge.community_composer.poll_options_too_many": "A poll takes at most 10 options.",
900
+ "forge.community_composer.poll_question_label": "Poll question",
901
+ "forge.community_composer.poll_question_placeholder": "Ask a question",
902
+ "forge.community_composer.poll_question_required": "Add a question. It becomes the post title.",
903
+ "forge.community_composer.poll_question_too_long": "Keep the question to 200 characters.",
904
+ "forge.community_composer.poll_remove_option": "Remove option {number}",
905
+ "forge.community_composer.poll_toggle": "Poll",
906
+ "forge.community_composer.poll_visibility_after_close": "When the poll closes",
907
+ "forge.community_composer.poll_visibility_after_vote": "After they vote",
908
+ "forge.community_composer.poll_visibility_always": "Always",
909
+ "forge.community_composer.poll_visibility_help": "Always: everyone sees the counts from the start. After they vote: a member sees them once they have voted. When the poll closes: members see them only after the closing time. Moderators and the author always see them.",
910
+ "forge.community_composer.poll_visibility_help_label": "When do members see the results?",
911
+ "forge.community_composer.poll_visibility_invalid": "Choose when the results are shown.",
912
+ "forge.community_composer.poll_visibility_label": "Show results",
913
+ "forge.community_feed.back_to_spaces": "Back to spaces",
914
+ "forge.community_feed.unlocks_at_level": "Unlocks at level {level}",
915
+ "forge.community_home.confirming": "Confirming your membership...",
916
+ "forge.community_home.dismiss": "Dismiss",
917
+ "forge.community_home.join": "Join",
918
+ "forge.community_home.membership": "Membership",
919
+ "forge.community_home.not_found": "This community could not be found.",
920
+ "forge.community_home.open_membership": "Your membership: {tier_name}",
921
+ "forge.community_home.upgrade": "Upgrade",
922
+ "forge.community_home.welcome": "Welcome to {community_name}!",
923
+ "forge.community_join_sheet.accept_terms": "I accept the Terms and Privacy Policy",
924
+ "forge.community_join_sheet.already_member": "You are already a member.",
925
+ "forge.community_join_sheet.amount_below_minimum": "The minimum is {minimum}.",
926
+ "forge.community_join_sheet.amount_label": "Choose your amount (minimum {minimum})",
927
+ "forge.community_join_sheet.amount_not_positive": "Enter an amount above zero.",
928
+ "forge.community_join_sheet.answer_required": "Please answer: {question}",
929
+ "forge.community_join_sheet.apply": "Apply to join",
930
+ "forge.community_join_sheet.aria_close": "Close",
931
+ "forge.community_join_sheet.back": "Back",
932
+ "forge.community_join_sheet.billing_cycle": "Billing cycle",
933
+ "forge.community_join_sheet.card_application": "Add a card for your application",
934
+ "forge.community_join_sheet.card_application_help": "Your card is saved, not charged. You are charged only if your application is approved.",
935
+ "forge.community_join_sheet.card_application_help_label": "When is my card charged?",
936
+ "forge.community_join_sheet.card_payment": "Pay {amount}",
937
+ "forge.community_join_sheet.card_trial": "Add a card to start your free trial",
938
+ "forge.community_join_sheet.change_tier": "Change tier",
939
+ "forge.community_join_sheet.choose_tier": "Choose a tier",
940
+ "forge.community_join_sheet.code": "6-digit code",
941
+ "forge.community_join_sheet.code_resent": "We sent a new code.",
942
+ "forge.community_join_sheet.code_sent": "We emailed a 6-digit code to {email}.",
943
+ "forge.community_join_sheet.continue": "Continue",
944
+ "forge.community_join_sheet.different_email": "Use a different email",
945
+ "forge.community_join_sheet.email": "Email",
946
+ "forge.community_join_sheet.email_mismatch": "This invite is for {email}. You are signed in as {signed_in_email}.",
947
+ "forge.community_join_sheet.first_name": "First name",
948
+ "forge.community_join_sheet.invite_expired": "This invite has expired. You can still join below.",
949
+ "forge.community_join_sheet.invite_not_found": "This invite link is not valid. You can still join below.",
950
+ "forge.community_join_sheet.invite_revoked": "This invite was withdrawn. You can still join below.",
951
+ "forge.community_join_sheet.invite_used": "This invite has already been used. You can still join below.",
952
+ "forge.community_join_sheet.invite_used_up": "This invite link has no places left. You can still join below.",
953
+ "forge.community_join_sheet.join_for": "Join for {amount}",
954
+ "forge.community_join_sheet.join_free": "Join free",
955
+ "forge.community_join_sheet.joined_title": "You're in!",
956
+ "forge.community_join_sheet.joining": "Joining...",
957
+ "forge.community_join_sheet.last_name": "Last name",
958
+ "forge.community_join_sheet.mode_signin": "Sign in",
959
+ "forge.community_join_sheet.mode_signup": "Create account",
960
+ "forge.community_join_sheet.monthly": "Monthly",
961
+ "forge.community_join_sheet.monthly_price": "Monthly, {amount}",
962
+ "forge.community_join_sheet.new_here": "Welcome. Tell us your name to finish setting up {email}.",
963
+ "forge.community_join_sheet.password": "Password",
964
+ "forge.community_join_sheet.pay": "Pay {amount}",
965
+ "forge.community_join_sheet.pending_body": "Your application is being reviewed. We'll let you know when it is decided.",
966
+ "forge.community_join_sheet.pending_title": "Application sent",
967
+ "forge.community_join_sheet.resend": "Resend code",
968
+ "forge.community_join_sheet.select_placeholder": "Select...",
969
+ "forge.community_join_sheet.sign_in_as": "Sign in as {email}",
970
+ "forge.community_join_sheet.start_again": "Start again",
971
+ "forge.community_join_sheet.start_trial": "Start free trial",
972
+ "forge.community_join_sheet.taking_you_inside": "Taking you inside...",
973
+ "forge.community_join_sheet.title": "Join {community_name}",
974
+ "forge.community_join_sheet.title_plain": "Join",
975
+ "forge.community_join_sheet.trial_line": "{days}-day free trial, first charge on {date}",
976
+ "forge.community_join_sheet.use_code": "Use an email code instead",
977
+ "forge.community_join_sheet.use_password": "Use your password instead",
978
+ "forge.community_join_sheet.verify": "Verify",
979
+ "forge.community_join_sheet.working": "Please wait...",
980
+ "forge.community_join_sheet.yearly": "Yearly",
981
+ "forge.community_join_sheet.yearly_price": "Yearly, {amount}",
982
+ "forge.community_link_preview.new_tab": "(opens in a new tab)",
983
+ "forge.community_link_preview.play": "Play video",
984
+ "forge.community_link_preview.play_title": "Play {title}",
985
+ "forge.community_link_preview.video_frame": "Video",
986
+ "forge.community_member_profile.city": "City",
987
+ "forge.community_member_profile.city_help": "Next to your name in the member directory, as you type it. It is never used to place you on the map.",
988
+ "forge.community_member_profile.city_help_label": "Where does my city appear?",
989
+ "forge.community_member_profile.country": "Country",
990
+ "forge.community_member_profile.country_none": "Not set",
991
+ "forge.community_member_profile.directory_legend": "Member directory",
992
+ "forge.community_member_profile.save_error": "We couldn't save your settings. Please try again.",
993
+ "forge.community_member_profile.show_in_directory": "Show me in the member directory",
994
+ "forge.community_member_profile.show_in_directory_help": "Only members of this community. They see your name, picture, level, bio and the city and country you add here, never your email. Switch it off to be left out of the list.",
995
+ "forge.community_member_profile.show_in_directory_help_label": "Who sees the member directory?",
996
+ "forge.community_member_profile.show_on_map": "Show me on the member map",
997
+ "forge.community_member_profile.show_on_map_help": "Only the country you pick below, counted with everyone else there. The map never shows your city or anything more precise than your country.",
998
+ "forge.community_member_profile.show_on_map_help_label": "What does the member map show?",
999
+ "forge.community_members.empty": "No members to show yet.",
1000
+ "forge.community_members.empty_filtered": "No members match these filters.",
1001
+ "forge.community_members.error": "We couldn't load the members. Please try again.",
1002
+ "forge.community_members.forbidden": "The member directory is for members of this community.",
1003
+ "forge.community_members.globe_label": "A globe with a dot for each country members are in",
1004
+ "forge.community_members.level_any": "Any level",
1005
+ "forge.community_members.level_label": "Level",
1006
+ "forge.community_members.level_min": "Level {level} and up",
1007
+ "forge.community_members.map_empty": "No members have added themselves to the map yet.",
1008
+ "forge.community_members.map_error": "We couldn't load the map. Please try again.",
1009
+ "forge.community_members.map_help": "Members choose whether to appear on the map, and only ever share a country, so we never show where anyone lives. Members who haven't switched it on aren't counted.",
1010
+ "forge.community_members.map_help_label": "Why does the map only show countries?",
1011
+ "forge.community_members.map_summary": "{members} members in {countries} countries",
1012
+ "forge.community_members.next": "Next",
1013
+ "forge.community_members.page": "Page {page}",
1014
+ "forge.community_members.previous": "Previous",
1015
+ "forge.community_members.role_any": "All roles",
1016
+ "forge.community_members.role_badge_moderator": "Moderator",
1017
+ "forge.community_members.role_label": "Role",
1018
+ "forge.community_members.role_member": "Members",
1019
+ "forge.community_members.role_moderator": "Moderators",
1020
+ "forge.community_members.search_label": "Search members",
1021
+ "forge.community_members.search_placeholder": "Search by name",
1022
+ "forge.community_members.sort_active": "Most active",
1023
+ "forge.community_members.sort_label": "Sort by",
1024
+ "forge.community_members.sort_name": "Name",
1025
+ "forge.community_members.sort_newest": "Newest",
1026
+ "forge.community_members.sort_points": "Most points",
1027
+ "forge.community_members.title": "Members",
1028
+ "forge.community_members.view_label": "How to show members",
1029
+ "forge.community_members.view_list": "List",
1030
+ "forge.community_members.view_map": "Map",
1031
+ "forge.community_membership_menu.aria_close": "Close",
1032
+ "forge.community_membership_menu.cancel": "Cancel membership",
1033
+ "forge.community_membership_menu.cancel_confirm": "Cancel membership",
1034
+ "forge.community_membership_menu.cancel_confirm_now": "Your membership ends now.",
1035
+ "forge.community_membership_menu.cancel_confirm_title": "Cancel your membership?",
1036
+ "forge.community_membership_menu.cancel_confirm_until": "You keep access until {date}. It will not renew.",
1037
+ "forge.community_membership_menu.cancel_keep": "Keep membership",
1038
+ "forge.community_membership_menu.downgrade_to": "Switch to {tier_name} at renewal",
1039
+ "forge.community_membership_menu.ending": "Ending",
1040
+ "forge.community_membership_menu.ends_on": "Ends on {date}",
1041
+ "forge.community_membership_menu.free": "Free",
1042
+ "forge.community_membership_menu.leave": "Leave community",
1043
+ "forge.community_membership_menu.leave_confirm": "Leave community",
1044
+ "forge.community_membership_menu.leave_confirm_now": "You lose access now. You can join again at any time.",
1045
+ "forge.community_membership_menu.leave_confirm_title": "Leave this community?",
1046
+ "forge.community_membership_menu.leave_keep": "Stay",
1047
+ "forge.community_membership_menu.payment_failed": "Payment failed",
1048
+ "forge.community_membership_menu.pending_downgrade": "Switching to {tier_name} on {date}.",
1049
+ "forge.community_membership_menu.price_month": "{amount} per month",
1050
+ "forge.community_membership_menu.price_year": "{amount} per year",
1051
+ "forge.community_membership_menu.renews_on": "Renews on {date}",
1052
+ "forge.community_membership_menu.title": "Your membership",
1053
+ "forge.community_membership_menu.trigger": "Membership",
1054
+ "forge.community_membership_menu.undo_downgrade": "Keep my current tier",
1055
+ "forge.community_membership_menu.update_card": "Update payment method",
1056
+ "forge.community_membership_menu.upgrade": "Upgrade",
1057
+ "forge.community_moderation.action_adjust_points": "Adjusted points",
1058
+ "forge.community_moderation.action_approve": "Approved",
1059
+ "forge.community_moderation.action_ban": "Banned",
1060
+ "forge.community_moderation.action_hold": "Held for approval",
1061
+ "forge.community_moderation.action_lock": "Locked",
1062
+ "forge.community_moderation.action_mute": "Muted",
1063
+ "forge.community_moderation.action_other": "Moderation action",
1064
+ "forge.community_moderation.action_pin": "Pinned",
1065
+ "forge.community_moderation.action_reject": "Rejected",
1066
+ "forge.community_moderation.action_remove": "Removed",
1067
+ "forge.community_moderation.action_report_dismissed": "Dismissed a report",
1068
+ "forge.community_moderation.action_report_resolved": "Resolved a report",
1069
+ "forge.community_moderation.action_report_resolved_hidden": "Resolved a report and hid the content",
1070
+ "forge.community_moderation.action_restore": "Restored",
1071
+ "forge.community_moderation.action_role_member": "Made a member",
1072
+ "forge.community_moderation.action_role_moderator": "Made a moderator",
1073
+ "forge.community_moderation.action_unban": "Unbanned",
1074
+ "forge.community_moderation.action_unlock": "Unlocked",
1075
+ "forge.community_moderation.action_unmute": "Unmuted",
1076
+ "forge.community_moderation.action_unpin": "Unpinned",
1077
+ "forge.community_moderation.approve": "Approve",
1078
+ "forge.community_moderation.by_author": "By {name}",
1079
+ "forge.community_moderation.cancel": "Cancel",
1080
+ "forge.community_moderation.content_hidden": "Already hidden",
1081
+ "forge.community_moderation.dismiss": "Dismiss",
1082
+ "forge.community_moderation.error": "That didn't work. Please try again.",
1083
+ "forge.community_moderation.held_empty": "Nothing is waiting for approval.",
1084
+ "forge.community_moderation.held_help": "The community's approval setting, or a blocked word, held these back. Nobody but their author can see them until you approve. Rejecting tells the author, with your reason if you give one.",
1085
+ "forge.community_moderation.held_help_label": "Why are these held?",
1086
+ "forge.community_moderation.held_kind_post": "Post in {space}",
1087
+ "forge.community_moderation.held_kind_reply": "Reply to {post}",
1088
+ "forge.community_moderation.held_title": "Waiting for approval ({count})",
1089
+ "forge.community_moderation.held_untitled": "a post",
1090
+ "forge.community_moderation.help": "Reports from members, posts and replies held for approval, and a record of every moderation action in this community.",
1091
+ "forge.community_moderation.help_label": "What is on this page?",
1092
+ "forge.community_moderation.log_actor_system": "Automatic",
1093
+ "forge.community_moderation.log_empty": "No moderation actions yet.",
1094
+ "forge.community_moderation.log_kind_post": "Post",
1095
+ "forge.community_moderation.log_kind_reply": "Reply",
1096
+ "forge.community_moderation.log_reason": "Reason: {reason}",
1097
+ "forge.community_moderation.log_target": "Member: {name}",
1098
+ "forge.community_moderation.log_title": "Moderation log",
1099
+ "forge.community_moderation.next": "Next",
1100
+ "forge.community_moderation.not_moderator": "This page is for the community's moderators.",
1101
+ "forge.community_moderation.open_post": "Open post",
1102
+ "forge.community_moderation.page": "Page {page}",
1103
+ "forge.community_moderation.previous": "Previous",
1104
+ "forge.community_moderation.queue_error": "We couldn't load the moderation queue. Please try again.",
1105
+ "forge.community_moderation.reason_all_posts": "All posts need approval",
1106
+ "forge.community_moderation.reason_keyword": "Blocked word: {word}",
1107
+ "forge.community_moderation.reason_new_member": "New member",
1108
+ "forge.community_moderation.reject": "Reject",
1109
+ "forge.community_moderation.reject_confirm": "Reject",
1110
+ "forge.community_moderation.reject_reason_label": "Reason (optional)",
1111
+ "forge.community_moderation.report_kind_post": "Reported post",
1112
+ "forge.community_moderation.report_kind_reply": "Reported reply",
1113
+ "forge.community_moderation.report_reason": "Reason: {reason}",
1114
+ "forge.community_moderation.reported_by": "Reported by {name}",
1115
+ "forge.community_moderation.reports_empty": "No open reports.",
1116
+ "forge.community_moderation.reports_help": "Resolve closes the report and leaves the content up. Resolve and hide also removes the content, which you can restore from the log below. Dismiss closes the report without acting on it.",
1117
+ "forge.community_moderation.reports_help_label": "What do the report actions do?",
1118
+ "forge.community_moderation.reports_title": "Open reports ({count})",
1119
+ "forge.community_moderation.resolve": "Resolve",
1120
+ "forge.community_moderation.resolve_hide": "Resolve and hide",
1121
+ "forge.community_moderation.restore": "Restore",
1122
+ "forge.community_moderation.title": "Moderation",
1123
+ "forge.community_moderation.unknown_member": "A member",
1124
+ "forge.community_moderation_state.error": "That didn't work. Please try again.",
1125
+ "forge.community_moderation_state.pending": "Waiting for approval",
1126
+ "forge.community_moderation_state.pending_help": "We review this before it goes up. Until then only you can see it, and nobody can reply to it or react to it.",
1127
+ "forge.community_moderation_state.pending_help_label": "What does waiting for approval mean?",
1128
+ "forge.community_moderation_state.rejected": "Not approved",
1129
+ "forge.community_moderation_state.removed_post": "Post removed",
1130
+ "forge.community_moderation_state.removed_reply": "Reply removed",
1131
+ "forge.community_moderation_state.restore": "Restore",
1132
+ "forge.community_moderator_menu.aria_trigger": "Moderator actions",
1133
+ "forge.community_moderator_menu.back": "Back",
1134
+ "forge.community_moderator_menu.error": "That didn't work. Please try again.",
1135
+ "forge.community_moderator_menu.lock": "Lock replies",
1136
+ "forge.community_moderator_menu.mute_1": "1 day",
1137
+ "forge.community_moderator_menu.mute_30": "30 days",
1138
+ "forge.community_moderator_menu.mute_7": "7 days",
1139
+ "forge.community_moderator_menu.mute_author": "Mute author",
1140
+ "forge.community_moderator_menu.mute_for": "Mute the author for",
1141
+ "forge.community_moderator_menu.mute_help": "A muted member can still read, but cannot take part in this community until the mute ends. We let them know.",
1142
+ "forge.community_moderator_menu.mute_help_label": "What does muting do?",
1143
+ "forge.community_moderator_menu.muted": "Author muted",
1144
+ "forge.community_moderator_menu.pin": "Pin",
1145
+ "forge.community_moderator_menu.remove_confirm": "Remove",
1146
+ "forge.community_moderator_menu.remove_post": "Remove post",
1147
+ "forge.community_moderator_menu.remove_reason_help": "It is kept in this community's moderation log, so the rest of the team can see why it was removed.",
1148
+ "forge.community_moderator_menu.remove_reason_help_label": "Who sees the reason?",
1149
+ "forge.community_moderator_menu.remove_reason_label": "Reason (optional)",
1150
+ "forge.community_moderator_menu.remove_reply": "Remove reply",
1151
+ "forge.community_moderator_menu.unlock": "Unlock replies",
1152
+ "forge.community_moderator_menu.unpin": "Unpin",
1153
+ "forge.community_notifications.level_up": "You reached level {level}",
1154
+ "forge.community_notifications.level_up_no_level": "You reached a new level",
1155
+ "forge.community_notifications.post_approved": "Your post was approved",
1156
+ "forge.community_notifications.post_rejected": "Your post wasn't approved",
1157
+ "forge.community_notifications.post_rejected_reason": "Your post wasn't approved: {reason}",
1158
+ "forge.community_notifications.reply_approved": "Your reply was approved",
1159
+ "forge.community_notifications.reply_rejected": "Your reply wasn't approved",
1160
+ "forge.community_notifications.reply_rejected_reason": "Your reply wasn't approved: {reason}",
1161
+ "forge.community_pending.body": "Your application is being reviewed. You'll get access as soon as it is approved.",
1162
+ "forge.community_pending.body_since": "You applied on {date}. You'll get access as soon as it is approved.",
1163
+ "forge.community_pending.title": "Your application is being reviewed",
1164
+ "forge.community_poll_card.cancel": "Cancel",
1165
+ "forge.community_poll_card.change_vote": "Change vote",
1166
+ "forge.community_poll_card.closed": "Poll closed",
1167
+ "forge.community_poll_card.closes_at": "Closes {date}",
1168
+ "forge.community_poll_card.error_closed": "This poll has closed.",
1169
+ "forge.community_poll_card.error_forbidden": "You can't vote in this poll right now.",
1170
+ "forge.community_poll_card.error_generic": "We couldn't save your vote. Please try again.",
1171
+ "forge.community_poll_card.error_invalid": "That answer doesn't fit this poll. Please pick again.",
1172
+ "forge.community_poll_card.label": "Poll",
1173
+ "forge.community_poll_card.pick_several": "Pick one or more",
1174
+ "forge.community_poll_card.results_after_close": "Results when the poll closes",
1175
+ "forge.community_poll_card.results_after_vote": "Results after you vote",
1176
+ "forge.community_poll_card.sending": "Saving...",
1177
+ "forge.community_poll_card.untitled": "Poll",
1178
+ "forge.community_poll_card.update_vote": "Update vote",
1179
+ "forge.community_poll_card.vote": "Vote",
1180
+ "forge.community_poll_card.voters_one": "1 voter",
1181
+ "forge.community_poll_card.voters_other": "{count} voters",
1182
+ "forge.community_poll_card.withdraw": "Withdraw vote",
1183
+ "forge.community_poll_card.your_vote": "(your vote)",
1184
+ "forge.community_post_card.has_link": "Link",
1185
+ "forge.community_post_card.has_poll": "Poll",
1186
+ "forge.community_public_wiki.title": "Before you join",
1187
+ "forge.community_spaces.unlocks_at_level": "Unlocks at level {level}",
1188
+ "forge.community_upgrade_sheet.aria_close": "Close",
1189
+ "forge.community_upgrade_sheet.back": "Back",
1190
+ "forge.community_upgrade_sheet.charge_now": "You pay {amount} now.",
1191
+ "forge.community_upgrade_sheet.charge_prorated": "You pay {amount} now for the rest of this period.",
1192
+ "forge.community_upgrade_sheet.confirm": "Upgrade now",
1193
+ "forge.community_upgrade_sheet.continue_to_card": "Continue to card",
1194
+ "forge.community_upgrade_sheet.current": "You are on {tier_name}.",
1195
+ "forge.community_upgrade_sheet.done": "Upgraded!",
1196
+ "forge.community_upgrade_sheet.none": "You are already on the highest tier.",
1197
+ "forge.community_upgrade_sheet.pay": "Pay and upgrade",
1198
+ "forge.community_upgrade_sheet.price_monthly": "{amount}/mo",
1199
+ "forge.community_upgrade_sheet.price_yearly": "{amount}/yr",
1200
+ "forge.community_upgrade_sheet.requires_card": "Upgrading asks for your card again and replaces your current subscription.",
1201
+ "forge.community_upgrade_sheet.title": "Upgrade",
1202
+ "forge.community_upgrade_sheet.unlock_with": "Unlock with {tier_name}",
1203
+ "forge.community_wiki.all_locked": "Every page here is part of another membership tier.",
1204
+ "forge.community_wiki.empty": "Nothing in our wiki yet.",
1205
+ "forge.community_wiki.error": "We couldn't load the wiki. Please try again.",
1206
+ "forge.community_wiki.image_loading": "Loading image",
1207
+ "forge.community_wiki.image_unavailable": "Image unavailable",
1208
+ "forge.community_wiki.locked_label": "Locked",
1209
+ "forge.community_wiki.locked_no_tier": "This page is part of another membership tier.",
1210
+ "forge.community_wiki.nav_label": "Wiki pages",
1211
+ "forge.community_wiki.page_unavailable": "This page isn't available to you.",
1212
+ "forge.community_wiki.title": "Wiki",
1213
+ "forge.community_wiki.toc_label": "On this page",
1214
+ "forge.community_wiki.toc_title": "On this page",
1215
+ "forge.community_wiki.unlocks_at_level": "Unlocks at level {level}.",
1216
+ "forge.community_wiki.unlocks_at_level_with": "Unlocks at level {level}. This page is part of {tiers}.",
1217
+ "forge.community_wiki.unlocks_with": "This page is part of {tiers}.",
1218
+ "forge.community_wiki.upgrade": "Upgrade",
658
1219
  "forge.confirm_subscription.back_to_site": "Back to site",
659
1220
  "forge.confirm_subscription.expired_body": "This confirmation link is no longer valid. Try subscribing again.",
660
1221
  "forge.confirm_subscription.expired_title": "Link expired",
@@ -790,6 +1351,25 @@
790
1351
  "forge.donation_button.total": "Total",
791
1352
  "forge.donation_page.subtitle": "Your contribution keeps this going. Thank you.",
792
1353
  "forge.donation_page.title": "Support the work",
1354
+ "forge.download_page.code_digit": "Digit {n}",
1355
+ "forge.download_page.code_label": "Download code",
1356
+ "forge.download_page.code_sent": "Enter the code we sent to {email}.",
1357
+ "forge.download_page.download": "Download",
1358
+ "forge.download_page.download_failed": "That download didn't start. Try again.",
1359
+ "forge.download_page.gate_body": "We'll email a 6-digit code to {email}.",
1360
+ "forge.download_page.gate_title": "Confirm it's you",
1361
+ "forge.download_page.locked": "Locked until you confirm your email",
1362
+ "forge.download_page.missing_body": "Open the link from your email again, or sign in to your account to find your purchases.",
1363
+ "forge.download_page.missing_title": "We couldn't find this download",
1364
+ "forge.download_page.resend": "Send a new code",
1365
+ "forge.download_page.send_code": "Email me a code",
1366
+ "forge.download_page.sending": "Sending…",
1367
+ "forge.download_page.sign_in": "Sign in instead",
1368
+ "forge.download_page.subtitle": "Your files are ready.",
1369
+ "forge.download_page.subtitle_gift": "A gift for you. Your files are ready.",
1370
+ "forge.download_page.title": "Your downloads",
1371
+ "forge.download_page.unlock": "Unlock downloads",
1372
+ "forge.download_page.unlocking": "Checking…",
793
1373
  "forge.email_list_form.confirm_required": "Almost there: check your email to confirm.",
794
1374
  "forge.email_list_form.email_placeholder": "Email address",
795
1375
  "forge.email_list_form.name_placeholder": "Your name",
@@ -1167,6 +1747,31 @@
1167
1747
  "forge.login_form.verify_submit": "Verify & Sign In",
1168
1748
  "forge.login_form.verify_title": "Verify your email",
1169
1749
  "forge.login_form.verifying": "Verifying…",
1750
+ "forge.member_home_layout.aria_close": "Close",
1751
+ "forge.member_home_layout.bar_alerts": "Alerts",
1752
+ "forge.member_home_layout.bar_feed": "Feed",
1753
+ "forge.member_home_layout.group_community": "Community",
1754
+ "forge.member_home_layout.group_you": "You",
1755
+ "forge.member_home_layout.more": "More",
1756
+ "forge.member_home_layout.more_title": "More",
1757
+ "forge.member_home_layout.nav_label": "Community",
1758
+ "forge.member_home_layout.tab_calendar": "Calendar",
1759
+ "forge.member_home_layout.tab_chat": "Chat",
1760
+ "forge.member_home_layout.tab_classroom": "Classroom",
1761
+ "forge.member_home_layout.tab_collections": "Collections",
1762
+ "forge.member_home_layout.tab_leaderboard": "Leaderboard",
1763
+ "forge.member_home_layout.tab_members": "Members",
1764
+ "forge.member_home_layout.tab_moderation": "Moderation",
1765
+ "forge.member_home_layout.tab_notifications": "Notifications",
1766
+ "forge.member_home_layout.tab_posts": "Posts",
1767
+ "forge.member_home_layout.tab_spaces": "Spaces",
1768
+ "forge.member_home_layout.tab_wiki": "Wiki",
1769
+ "forge.member_home_layout.your_membership": "Your membership",
1770
+ "forge.member_post_card.locked_body": "Join to access this content",
1771
+ "forge.member_post_card.locked_body_tier": "Unlock with {tier_name} to access this content",
1772
+ "forge.member_post_card.locked_title": "Content locked",
1773
+ "forge.member_post_card.unlock": "Unlock",
1774
+ "forge.member_post_card.unlock_with": "Unlock with {tier_name}",
1170
1775
  "forge.membership_checkout.accept_invite": "Accept invite",
1171
1776
  "forge.membership_checkout.amount_below_minimum": "Enter {minimum} or more.",
1172
1777
  "forge.membership_checkout.amount_not_positive": "Enter an amount greater than zero.",
@@ -1203,7 +1808,7 @@
1203
1808
  "forge.membership_checkout.empty_title": "No memberships available",
1204
1809
  "forge.membership_checkout.field_required": "This field is required",
1205
1810
  "forge.membership_checkout.free": "Free",
1206
- "forge.membership_checkout.go_to_account": "Go to your account",
1811
+ "forge.membership_checkout.go_to_community": "Go to the community",
1207
1812
  "forge.membership_checkout.invite_dead_body": "It may have expired, been used already, or been replaced by a newer invite. Ask us for a new one.",
1208
1813
  "forge.membership_checkout.invite_dead_title": "This invite is no longer valid",
1209
1814
  "forge.membership_checkout.invite_email_mismatch": "You're signed in as {signed_in_email}. Sign in with {email} to accept this invite.",
@@ -1235,6 +1840,7 @@
1235
1840
  "forge.membership_tier_callout.invite_for_email": "This invite is for {email}. Sign in or create an account with that address.",
1236
1841
  "forge.membership_tier_callout.join_title": "Join {tier_name}",
1237
1842
  "forge.membership_tier_callout.more_benefits": "+{count} more benefits",
1843
+ "forge.membership_tier_callout.view_community": "Part of {community_name}",
1238
1844
  "forge.membership_tiers.accept_invite": "Accept invite",
1239
1845
  "forge.membership_tiers.application_approved": "Approved, finishing up",
1240
1846
  "forge.membership_tiers.application_declined": "Not approved",
@@ -1255,6 +1861,14 @@
1255
1861
  "forge.membership_tiers.withdraw": "Withdraw application",
1256
1862
  "forge.membership_tiers.withdraw_error": "We couldn't withdraw your application. Please try again.",
1257
1863
  "forge.membership_tiers.withdrawing": "Withdrawing…",
1864
+ "forge.my_memberships_list.cycle_month": "month",
1865
+ "forge.my_memberships_list.cycle_year": "year",
1866
+ "forge.my_memberships_list.empty": "You are not a member of any community yet.",
1867
+ "forge.my_memberships_list.ends_on": "Ends on {date}",
1868
+ "forge.my_memberships_list.open": "Open community",
1869
+ "forge.my_memberships_list.price": "{amount} per {cycle}",
1870
+ "forge.my_memberships_list.renews_on": "Renews on {date}",
1871
+ "forge.my_memberships_list.trial_until": "Free trial until {date}",
1258
1872
  "forge.offer_button.buy_now": "Buy now",
1259
1873
  "forge.offer_button.confirm_email": "Confirm email",
1260
1874
  "forge.offer_button.continue_to_payment": "Continue to payment",
@@ -1310,6 +1924,197 @@
1310
1924
  "forge.podcast_show.empty_title": "No episodes yet.",
1311
1925
  "forge.podcast_show.not_found": "Podcast not found.",
1312
1926
  "forge.podcast_show.now_playing": "Now playing",
1927
+ "forge.portal_account_section.bookings": "Sessions",
1928
+ "forge.portal_account_section.courses": "Courses",
1929
+ "forge.portal_account_section.films": "Films",
1930
+ "forge.portal_account_section.memberships": "Memberships",
1931
+ "forge.portal_account_section.notifications": "Notifications",
1932
+ "forge.portal_account_section.orders": "Orders",
1933
+ "forge.portal_account_section.saved": "Saved",
1934
+ "forge.portal_account_section.settings": "Settings",
1935
+ "forge.portal_account_section.tickets": "Tickets",
1936
+ "forge.portal_account_section.waitlist": "Waitlist",
1937
+ "forge.portal_activity.approval_approved": "You approved {title}",
1938
+ "forge.portal_activity.approval_changes": "You asked for changes to {title}",
1939
+ "forge.portal_activity.approval_requested": "Your approval was requested for {title}",
1940
+ "forge.portal_activity.booking_confirmed": "{title} is booked",
1941
+ "forge.portal_activity.comment_added": "New comment on {title}",
1942
+ "forge.portal_activity.document_sent": "{title} was sent to you to sign",
1943
+ "forge.portal_activity.document_signed": "{title} was signed",
1944
+ "forge.portal_activity.empty_body": "Invoices, documents, project updates and bookings will show up here as they happen.",
1945
+ "forge.portal_activity.empty_title": "Nothing has happened yet",
1946
+ "forge.portal_activity.invoice_issued": "Invoice {title} was sent to you",
1947
+ "forge.portal_activity.invoice_paid": "Invoice {title} was paid",
1948
+ "forge.portal_activity.load_more": "Show older activity",
1949
+ "forge.portal_activity.loading": "Loading",
1950
+ "forge.portal_activity.message_received": "{title} replied to you",
1951
+ "forge.portal_activity.milestone_completed": "{title} was completed",
1952
+ "forge.portal_activity.order_placed": "You placed order {title}",
1953
+ "forge.portal_activity.title": "Activity",
1954
+ "forge.portal_billing.documents_done": "Signed and closed",
1955
+ "forge.portal_billing.documents_empty_body": "Contracts and agreements sent to you for signature will appear here.",
1956
+ "forge.portal_billing.documents_empty_title": "No documents yet",
1957
+ "forge.portal_billing.documents_lead_waiting": "{count} waiting for your signature.",
1958
+ "forge.portal_billing.documents_title": "Documents",
1959
+ "forge.portal_billing.due_on": "Due {date}",
1960
+ "forge.portal_billing.expires_on": "Expires {date}",
1961
+ "forge.portal_billing.filter_all": "All ({count})",
1962
+ "forge.portal_billing.filter_label": "Show invoices",
1963
+ "forge.portal_billing.filter_open": "To pay ({count})",
1964
+ "forge.portal_billing.invoices_empty_body": "Invoices sent to you will appear here, ready to pay.",
1965
+ "forge.portal_billing.invoices_empty_title": "No invoices yet",
1966
+ "forge.portal_billing.invoices_lead_open": "{count} to pay.",
1967
+ "forge.portal_billing.invoices_lead_settled": "Everything is paid.",
1968
+ "forge.portal_billing.invoices_title": "Invoices",
1969
+ "forge.portal_billing.nothing_owed": "Nothing to pay",
1970
+ "forge.portal_billing.open": "Open",
1971
+ "forge.portal_billing.paid_on": "Paid {date}",
1972
+ "forge.portal_billing.pay": "Pay",
1973
+ "forge.portal_billing.review_and_sign": "Review and sign",
1974
+ "forge.portal_billing.sent_on": "Sent {date}",
1975
+ "forge.portal_billing.signed_on": "Signed {date}",
1976
+ "forge.portal_billing.status_cancelled": "Cancelled",
1977
+ "forge.portal_billing.status_failed": "Payment failed",
1978
+ "forge.portal_billing.status_overdue": "Overdue",
1979
+ "forge.portal_billing.status_paid": "Paid",
1980
+ "forge.portal_billing.status_processing": "Payment processing",
1981
+ "forge.portal_billing.status_refunded": "Refunded",
1982
+ "forge.portal_billing.status_sent": "Awaiting payment",
1983
+ "forge.portal_billing.view": "View",
1984
+ "forge.portal_files.download": "Download",
1985
+ "forge.portal_files.empty_body": "Files shared on your projects, signed documents and invoices will appear here.",
1986
+ "forge.portal_files.empty_title": "No files yet",
1987
+ "forge.portal_files.filter_all": "All",
1988
+ "forge.portal_files.filter_document": "Signed documents",
1989
+ "forge.portal_files.filter_empty": "Nothing here yet",
1990
+ "forge.portal_files.filter_invoice": "Invoices",
1991
+ "forge.portal_files.filter_label": "Show files",
1992
+ "forge.portal_files.filter_project": "Shared files",
1993
+ "forge.portal_files.filter_purchase": "Downloads",
1994
+ "forge.portal_files.filter_task": "Attachments",
1995
+ "forge.portal_files.invoice_title": "Invoice {number}",
1996
+ "forge.portal_files.open": "Open",
1997
+ "forge.portal_files.open_error": "We could not open this file. Please try again.",
1998
+ "forge.portal_files.show_more": "Show more",
1999
+ "forge.portal_files.title": "Files",
2000
+ "forge.portal_home.all_activity": "All activity",
2001
+ "forge.portal_home.all_projects": "All projects",
2002
+ "forge.portal_home.coming_up": "Coming up",
2003
+ "forge.portal_home.details": "Details",
2004
+ "forge.portal_home.due_on": "Due {date}",
2005
+ "forge.portal_home.expires_on": "Expires {date}",
2006
+ "forge.portal_home.greeting_afternoon": "Good afternoon",
2007
+ "forge.portal_home.greeting_afternoon_name": "Good afternoon, {name}",
2008
+ "forge.portal_home.greeting_evening": "Good evening",
2009
+ "forge.portal_home.greeting_evening_name": "Good evening, {name}",
2010
+ "forge.portal_home.greeting_morning": "Good morning",
2011
+ "forge.portal_home.greeting_morning_name": "Good morning, {name}",
2012
+ "forge.portal_home.join": "Join",
2013
+ "forge.portal_home.kind_event": "Event",
2014
+ "forge.portal_home.kind_session": "Session",
2015
+ "forge.portal_home.lead_clear": "You're all caught up.",
2016
+ "forge.portal_home.lead_many": "{count} things need you.",
2017
+ "forge.portal_home.lead_one": "One thing needs you.",
2018
+ "forge.portal_home.needs_you": "Needs you",
2019
+ "forge.portal_home.new_message_many": "You have {count} new messages",
2020
+ "forge.portal_home.new_message_one": "You have a new message",
2021
+ "forge.portal_home.overdue_since": "Overdue since {date}",
2022
+ "forge.portal_home.pay": "Pay",
2023
+ "forge.portal_home.pay_invoice": "Pay invoice {number}",
2024
+ "forge.portal_home.payment_failed": "Your last payment didn't go through.",
2025
+ "forge.portal_home.progress_label": "Progress on {name}",
2026
+ "forge.portal_home.projects": "Projects",
2027
+ "forge.portal_home.recent": "Recent activity",
2028
+ "forge.portal_home.reply": "Reply",
2029
+ "forge.portal_home.review": "Review",
2030
+ "forge.portal_home.review_and_sign": "Review and sign",
2031
+ "forge.portal_home.review_milestone": "Review {milestone}",
2032
+ "forge.portal_home.sent_on": "Sent {date}",
2033
+ "forge.portal_home.sign_document": "Sign {title}",
2034
+ "forge.portal_home.tasks_done": "{done} of {total} tasks done",
2035
+ "forge.portal_home.update": "Update card",
2036
+ "forge.portal_home.update_card": "Update your card for {community}",
2037
+ "forge.portal_home.view_ticket": "View ticket",
2038
+ "forge.portal_messages.attach": "Attach files",
2039
+ "forge.portal_messages.attachment_failed": "A file could not be added. Files can be up to 100 MB.",
2040
+ "forge.portal_messages.closed_body": "You can message {creator} here once you have a project, a booking or an invoice with them.",
2041
+ "forge.portal_messages.closed_title": "Messages are not open yet",
2042
+ "forge.portal_messages.conversation_label": "Your conversation with {creator}",
2043
+ "forge.portal_messages.empty_body": "Your messages and their replies will appear here.",
2044
+ "forge.portal_messages.empty_title": "Ask {creator} anything about your project, booking or order",
2045
+ "forge.portal_messages.load_earlier": "Load earlier messages",
2046
+ "forge.portal_messages.placeholder": "Write a message",
2047
+ "forge.portal_messages.remove_attachment": "Remove {name}",
2048
+ "forge.portal_messages.send": "Send",
2049
+ "forge.portal_messages.send_failed": "Your message could not be sent. Please try again.",
2050
+ "forge.portal_messages.sending": "Sending",
2051
+ "forge.portal_messages.title": "Messages",
2052
+ "forge.portal_messages.you": "You",
2053
+ "forge.portal_preview.banner": "Previewing as {name}. Read-only, ends {time}.",
2054
+ "forge.portal_preview.banner_no_time": "Previewing as {name}. Read-only.",
2055
+ "forge.portal_preview.exit": "Exit preview",
2056
+ "forge.portal_preview.exiting": "Exiting...",
2057
+ "forge.portal_projects.all_milestones_done": "Every milestone is complete.",
2058
+ "forge.portal_projects.approve": "Approve",
2059
+ "forge.portal_projects.approved": "Approved",
2060
+ "forge.portal_projects.awaiting_approval": "Waiting for your approval",
2061
+ "forge.portal_projects.awaiting_approval_other": "Awaiting approval",
2062
+ "forge.portal_projects.awaiting_you": "Waiting for your decision",
2063
+ "forge.portal_projects.back_to_projects": "Projects",
2064
+ "forge.portal_projects.cancel": "Cancel",
2065
+ "forge.portal_projects.changes_label": "What should change?",
2066
+ "forge.portal_projects.changes_requested": "Changes requested",
2067
+ "forge.portal_projects.decision_error": "Your decision wasn't saved. Try again.",
2068
+ "forge.portal_projects.decisions": "Your decisions",
2069
+ "forge.portal_projects.due_on": "Due {date}",
2070
+ "forge.portal_projects.history_approved": "approved by {name} on {date}",
2071
+ "forge.portal_projects.history_changes": "changes requested by {name} on {date}",
2072
+ "forge.portal_projects.milestones": "Milestones",
2073
+ "forge.portal_projects.next_milestone": "Next: {name}",
2074
+ "forge.portal_projects.next_milestone_due": "Next: {name}, due {date}",
2075
+ "forge.portal_projects.not_found_body": "It may have been archived, or it belongs to another account.",
2076
+ "forge.portal_projects.not_found_title": "We couldn't find this project",
2077
+ "forge.portal_projects.progress_label": "Progress on {name}",
2078
+ "forge.portal_projects.request_changes": "Request changes",
2079
+ "forge.portal_projects.requested_on": "Requested {date}",
2080
+ "forge.portal_projects.review_milestone": "Review {name}",
2081
+ "forge.portal_projects.send_changes": "Send request",
2082
+ "forge.portal_projects.tasks_done": "{done} of {total} tasks done",
2083
+ "forge.portal_shell.badge_label": "{count} need you",
2084
+ "forge.portal_shell.group_account": "Account",
2085
+ "forge.portal_shell.group_library": "Your library",
2086
+ "forge.portal_shell.group_work": "Your work",
2087
+ "forge.portal_shell.log_out": "Log out",
2088
+ "forge.portal_shell.more": "More",
2089
+ "forge.portal_shell.more_title": "Your account",
2090
+ "forge.portal_shell.nav_activity": "Activity",
2091
+ "forge.portal_shell.nav_bookings": "Sessions",
2092
+ "forge.portal_shell.nav_courses": "Courses",
2093
+ "forge.portal_shell.nav_documents": "Documents",
2094
+ "forge.portal_shell.nav_files": "Files",
2095
+ "forge.portal_shell.nav_films": "Films",
2096
+ "forge.portal_shell.nav_home": "Home",
2097
+ "forge.portal_shell.nav_invoices": "Invoices",
2098
+ "forge.portal_shell.nav_label": "Your account",
2099
+ "forge.portal_shell.nav_memberships": "Memberships",
2100
+ "forge.portal_shell.nav_messages": "Messages",
2101
+ "forge.portal_shell.nav_notifications": "Notifications",
2102
+ "forge.portal_shell.nav_orders": "Orders",
2103
+ "forge.portal_shell.nav_projects": "Projects",
2104
+ "forge.portal_shell.nav_saved": "Saved",
2105
+ "forge.portal_shell.nav_settings": "Settings",
2106
+ "forge.portal_shell.nav_tickets": "Tickets",
2107
+ "forge.portal_shell.nav_waitlist": "Waitlist",
2108
+ "forge.post_collection_detail.locked_body": "Join to access this content",
2109
+ "forge.post_collection_detail.locked_body_tier": "Unlock with {tier_name} to access this content",
2110
+ "forge.post_collection_detail.locked_title": "Content locked",
2111
+ "forge.post_collection_detail.unlock": "Unlock",
2112
+ "forge.post_collection_detail.unlock_with": "Unlock with {tier_name}",
2113
+ "forge.post_collections_grid.locked_body": "Join to access this content",
2114
+ "forge.post_collections_grid.locked_body_tier": "Unlock with {tier_name} to access this content",
2115
+ "forge.post_collections_grid.locked_title": "Content locked",
2116
+ "forge.post_collections_grid.unlock": "Unlock",
2117
+ "forge.post_collections_grid.unlock_with": "Unlock with {tier_name}",
1313
2118
  "forge.posts_feed.empty_body": "No posts yet.",
1314
2119
  "forge.presale_code.checking": "Checking…",
1315
2120
  "forge.presale_code.input_placeholder": "Enter code",
@@ -1486,5 +2291,89 @@
1486
2291
  "forge.user_menu.aria_trigger": "Account",
1487
2292
  "forge.user_menu.create_account": "Create account",
1488
2293
  "forge.user_menu.log_in": "Log in",
1489
- "forge.user_menu.log_out": "Log out"
2294
+ "forge.user_menu.log_out": "Log out",
2295
+ "forge.work_invite_accept.accepting": "Accepting…",
2296
+ "forge.work_invite_accept.create_account": "Create your account",
2297
+ "forge.work_invite_accept.create_account_intro": "Create an account for {email} to open your client portal. We'll email you a code to confirm the address, then bring you back here.",
2298
+ "forge.work_invite_accept.existing_account": "{email} already has an account. Sign in and the project will be waiting for you.",
2299
+ "forge.work_invite_accept.generic_error": "Something went wrong. Please try again.",
2300
+ "forge.work_invite_accept.go_to_sign_in": "Go to sign in",
2301
+ "forge.work_invite_accept.have_account": "Already have an account? Sign in",
2302
+ "forge.work_invite_accept.heading": "You're invited to {project_name}",
2303
+ "forge.work_invite_accept.missing_body": "This invite link is missing information. Please use the link from your email.",
2304
+ "forge.work_invite_accept.missing_title": "Invalid invite link",
2305
+ "forge.work_invite_accept.signed_in_as_invitee": "You're signed in as {email}.",
2306
+ "forge.work_invite_accept.signed_in_as_other": "You're signed in as {current_email}, but this invite is for {invited_email}. Sign in as {invited_email} to accept it.",
2307
+ "forge.work_invite_accept.switch_account": "Sign in as {email}",
2308
+ "forge.work_invite_accept.unavailable_body": "This invite is invalid or has expired. Ask your provider to send a new one.",
2309
+ "forge.work_invite_accept.unavailable_title": "Invite not available",
2310
+ "forge.work_invite_accept.view_project": "View project",
2311
+ "forge.work_portal_projects.due_on": "Due {date}",
2312
+ "forge.work_portal_projects.empty_title": "You don't have any projects yet.",
2313
+ "forge.work_portal_projects.percent_done": "{percent}%",
2314
+ "forge.work_portal_projects.progress_label": "Progress on {name}",
2315
+ "forge.work_portal_projects.tasks_done": "{done} / {total} tasks",
2316
+ "forge.work_portal_projects.title": "Your projects",
2317
+ "forge.work_project_documents.empty_body": "Upload a document to add it to this project.",
2318
+ "forge.work_project_documents.empty_shared_title": "Nothing has been shared with you yet.",
2319
+ "forge.work_project_documents.empty_title": "Nothing here yet.",
2320
+ "forge.work_project_documents.file_input_aria": "Choose documents to upload",
2321
+ "forge.work_project_documents.open": "Open",
2322
+ "forge.work_project_documents.open_aria": "Open {title}",
2323
+ "forge.work_project_documents.opening": "Opening…",
2324
+ "forge.work_project_documents.shared_on": "Shared {date}",
2325
+ "forge.work_project_documents.title": "Documents",
2326
+ "forge.work_project_documents.upload": "Upload a document",
2327
+ "forge.work_project_documents.upload_error": "The upload didn't go through. Please try again.",
2328
+ "forge.work_project_documents.upload_error_file": "{file_name}: {message}",
2329
+ "forge.work_project_documents.uploading": "Uploading…",
2330
+ "forge.work_project_invoices.due_on": "Due {date}",
2331
+ "forge.work_project_invoices.paid_on": "Paid {date}",
2332
+ "forge.work_project_invoices.pay": "Pay",
2333
+ "forge.work_project_invoices.pay_aria": "Pay invoice {number}",
2334
+ "forge.work_project_invoices.status_cancelled": "Cancelled",
2335
+ "forge.work_project_invoices.status_initiated_payment": "Payment started",
2336
+ "forge.work_project_invoices.status_overdue": "Overdue",
2337
+ "forge.work_project_invoices.status_paid": "Paid",
2338
+ "forge.work_project_invoices.status_payment_failed": "Payment failed",
2339
+ "forge.work_project_invoices.status_sent": "Awaiting payment",
2340
+ "forge.work_project_invoices.title": "Invoices",
2341
+ "forge.work_project_invoices.view": "View",
2342
+ "forge.work_project_invoices.view_aria": "View invoice {number}",
2343
+ "forge.work_project_report.not_found": "We couldn't find this project.",
2344
+ "forge.work_report_body.billable_time": "Billable time",
2345
+ "forge.work_report_body.billable_time_empty": "No billable time logged yet.",
2346
+ "forge.work_report_body.column_amount": "Amount",
2347
+ "forge.work_report_body.column_hours": "Hours",
2348
+ "forge.work_report_body.column_task": "Task",
2349
+ "forge.work_report_body.due_on": "Due {date}",
2350
+ "forge.work_report_body.milestones": "Milestones",
2351
+ "forge.work_report_body.milestones_empty": "No milestones yet.",
2352
+ "forge.work_report_body.status_active": "Active",
2353
+ "forge.work_report_body.status_archived": "Archived",
2354
+ "forge.work_report_body.status_completed": "Completed",
2355
+ "forge.work_report_body.status_in_progress": "In progress",
2356
+ "forge.work_report_body.status_on_hold": "On hold",
2357
+ "forge.work_report_body.status_pending": "Not started",
2358
+ "forge.work_report_body.status_planning": "Planning",
2359
+ "forge.work_report_body.task_done": "Done:",
2360
+ "forge.work_report_body.task_open": "To do:",
2361
+ "forge.work_report_body.tasks": "Tasks",
2362
+ "forge.work_report_body.tasks_empty": "No tasks yet.",
2363
+ "forge.work_report_body.total": "Total",
2364
+ "forge.work_task_attachments.fallback_name": "Attachment",
2365
+ "forge.work_task_attachments.title": "Attachments",
2366
+ "forge.work_task_comments.empty": "No comments yet. Start the conversation below.",
2367
+ "forge.work_task_comments.input_label": "Your comment",
2368
+ "forge.work_task_comments.load_error": "We couldn't load comments right now.",
2369
+ "forge.work_task_comments.placeholder": "Add a comment…",
2370
+ "forge.work_task_comments.posting": "Posting…",
2371
+ "forge.work_task_comments.submit": "Post comment",
2372
+ "forge.work_task_comments.title": "Comments",
2373
+ "forge.work_task_detail.back_to_project": "Back to project",
2374
+ "forge.work_task_detail.due_on": "Due {date}",
2375
+ "forge.work_task_detail.fallback_title": "Task",
2376
+ "forge.work_task_detail.status_done": "Done",
2377
+ "forge.work_task_detail.status_open": "To do",
2378
+ "forge.work_token_report.invalid_link": "This report link is invalid or has expired."
1490
2379
  }