@bettertogether/community-engine-vue 0.1.7 → 0.2.2

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 (230) hide show
  1. package/README.md +140 -1
  2. package/dist/assets/BBadge.vue_vue_type_script_setup_true_lang-IIZ8QpjG-Z9WDKHqT.js +1 -0
  3. package/dist/assets/BCardText.vue_vue_type_script_setup_true_lang-Be6CD36N-B5JCTdmm.js +3 -0
  4. package/dist/assets/BFormSelect.vue_vue_type_script_setup_true_lang-BigptVap-B_HbOOZR.js +1 -0
  5. package/dist/assets/BRow.vue_vue_type_script_setup_true_lang-69TY75-8-DJdEdyx7.js +1 -0
  6. package/dist/assets/Communities-Cx4tT-bx.js +1 -0
  7. package/dist/assets/Communities-n33ssuUH.css +1 -0
  8. package/dist/assets/CommunityConversation-bBkYBs2k.css +1 -0
  9. package/dist/assets/CommunityConversation-jHAnv_Ps.js +1 -0
  10. package/dist/assets/CommunityConversations-rEDGS7To.js +1 -0
  11. package/dist/assets/CommunityEvent-CUdT0aT4.js +1 -0
  12. package/dist/assets/CommunityEvents-rsOgcxQr.js +1 -0
  13. package/dist/assets/CommunityHome-ChuTE2Nz.js +1 -0
  14. package/dist/assets/CommunityJoaTu-CpLIY_83.js +1 -0
  15. package/dist/assets/CommunityMembers-C3UtzQGp.css +1 -0
  16. package/dist/assets/CommunityMembers-DKf74ltl.js +1 -0
  17. package/dist/assets/CommunityPage-C5x23iQl.css +1 -0
  18. package/dist/assets/CommunityPage-CRYg9-rW.js +1 -0
  19. package/dist/assets/CommunityPages-IsLTNFC3.js +1 -0
  20. package/dist/assets/CommunityPost-BOnqqxVs.js +1 -0
  21. package/dist/assets/CommunityPost-BRYtkDSY.css +1 -0
  22. package/dist/assets/CommunityPosts-DY1olmcU.js +1 -0
  23. package/dist/assets/Error404-D10VQARe.js +1 -0
  24. package/dist/assets/EventCard-vfutXTdg.js +1 -0
  25. package/dist/assets/EventList-ChtehYcJ.js +1 -0
  26. package/dist/assets/ExtensionSlot-DJKbrq4c.js +1 -0
  27. package/dist/assets/PostList-BuHrBBqX.css +1 -0
  28. package/dist/assets/PostList-DYFgxlE8.js +1 -0
  29. package/dist/assets/SyncBadge-B1JBsdUk.js +1 -0
  30. package/dist/assets/SyncBadge-FNO-QLuu.css +1 -0
  31. package/dist/assets/UserPasswordNew-D_Djldm9.css +1 -0
  32. package/dist/assets/UserPasswordNew-al9bNBTZ.js +1 -0
  33. package/dist/assets/UserPasswordReset-42zs98RW.js +1 -0
  34. package/dist/assets/UserPasswordReset-D_6OQDZY.css +1 -0
  35. package/dist/assets/UserResendConfirmation-CGavYB81.js +1 -0
  36. package/dist/assets/UserResendConfirmation-DNTHcaar.css +1 -0
  37. package/dist/assets/UserSignIn-BIRb0HkV.js +1 -0
  38. package/dist/assets/UserSignIn-C-Pol8OD.css +1 -0
  39. package/dist/assets/UserSignUp-ChkKQAd2.css +1 -0
  40. package/dist/assets/UserSignUp-Df6o3vlO.js +1 -0
  41. package/dist/assets/better-together-logo-61cxo5d5.png +0 -0
  42. package/dist/assets/index-BFt-JKVh.css +5 -0
  43. package/dist/assets/index-COo3Jb7v.js +1088 -0
  44. package/dist/assets/nodefs-Bfyh92qg.js +1 -0
  45. package/dist/assets/opfs-ahp-BLzlXf6u.js +3 -0
  46. package/dist/assets/pglite-BdRI_ZYT.wasm +0 -0
  47. package/dist/assets/pglite-COscPi1Y.data +0 -0
  48. package/dist/assets/usePages-DDjDQRCy.js +1 -0
  49. package/dist/assets/usePosts-Bf2Ccwr4.js +1 -0
  50. package/{public → dist}/index.html +9 -19
  51. package/package.json +57 -45
  52. package/src/BtApp.vue +34 -43
  53. package/src/components/BtBrandingLogo.vue +10 -18
  54. package/src/components/BtHeader.vue +31 -89
  55. package/src/components/BtMainContent.vue +12 -43
  56. package/src/components/BtNavBar.vue +25 -38
  57. package/src/components/BtNavItem.vue +25 -58
  58. package/src/components/BtNavUser.vue +65 -86
  59. package/src/components/BtProfileForm.vue +48 -39
  60. package/src/components/BtUserNewPasswordForm.vue +52 -74
  61. package/src/components/BtUserResendConfirmationForm.vue +45 -83
  62. package/src/components/BtUserResetPasswordForm.vue +45 -77
  63. package/src/components/BtUserSignInForm.vue +59 -75
  64. package/src/components/BtUserSignUpForm.vue +90 -103
  65. package/src/components/CommunityForm.vue +47 -39
  66. package/src/components/community/CommunityCard.vue +113 -0
  67. package/src/components/community/CommunityHeader.vue +91 -0
  68. package/src/components/community/CommunityList.vue +59 -0
  69. package/src/components/community/MemberRoleRow.vue +107 -0
  70. package/src/components/conversation/ConversationCard.vue +49 -0
  71. package/src/components/conversation/ConversationDetail.vue +53 -0
  72. package/src/components/conversation/ConversationList.vue +51 -0
  73. package/src/components/conversation/MessageForm.vue +45 -0
  74. package/src/components/conversation/MessageItem.vue +43 -0
  75. package/src/components/conversation/MessageList.vue +39 -0
  76. package/src/components/event/EventCard.vue +82 -0
  77. package/src/components/event/EventForm.vue +99 -0
  78. package/src/components/event/EventList.vue +47 -0
  79. package/src/components/invitation/InvitationCard.vue +56 -0
  80. package/src/components/invitation/InvitationForm.vue +70 -0
  81. package/src/components/invitation/InvitationList.vue +51 -0
  82. package/src/components/joatu/AgreementCard.vue +57 -0
  83. package/src/components/joatu/AgreementList.vue +51 -0
  84. package/src/components/joatu/OfferCard.vue +65 -0
  85. package/src/components/joatu/OfferForm.vue +82 -0
  86. package/src/components/joatu/OfferList.vue +51 -0
  87. package/src/components/joatu/RequestCard.vue +65 -0
  88. package/src/components/joatu/RequestForm.vue +82 -0
  89. package/src/components/joatu/RequestList.vue +51 -0
  90. package/src/components/page/PageCard.vue +55 -0
  91. package/src/components/page/PageDetail.vue +35 -0
  92. package/src/components/page/PageList.vue +51 -0
  93. package/src/components/person/MemberList.vue +61 -0
  94. package/src/components/person/PersonAvatar.vue +54 -0
  95. package/src/components/person/PersonCard.vue +47 -0
  96. package/src/components/post/PostCard.vue +105 -0
  97. package/src/components/post/PostDetail.vue +98 -0
  98. package/src/components/post/PostForm.vue +84 -0
  99. package/src/components/post/PostList.vue +53 -0
  100. package/src/components/role/BlockButton.vue +44 -0
  101. package/src/components/role/RoleBadge.vue +19 -0
  102. package/src/components/role/RoleGate.vue +62 -0
  103. package/src/components/role/RoleSelector.vue +29 -0
  104. package/src/components/shared/ExtensionSlot.vue +27 -0
  105. package/src/components/sync/OfflineBanner.vue +49 -0
  106. package/src/components/sync/SyncBadge.vue +108 -0
  107. package/src/components/sync/SyncStatusBar.vue +121 -0
  108. package/src/composables/useCommunities.js +19 -0
  109. package/src/composables/useConversations.js +5 -0
  110. package/src/composables/useEvents.js +28 -0
  111. package/src/composables/useInvitations.js +10 -0
  112. package/src/composables/useJoaTuAgreements.js +11 -0
  113. package/src/composables/useJoaTuOffers.js +10 -0
  114. package/src/composables/useJoaTuRequests.js +10 -0
  115. package/src/composables/useMembers.js +30 -0
  116. package/src/composables/useMessages.js +5 -0
  117. package/src/composables/useNotifications.js +5 -0
  118. package/src/composables/usePages.js +6 -0
  119. package/src/composables/usePersonBlocks.js +65 -0
  120. package/src/composables/usePosts.js +27 -0
  121. package/src/composables/useResource.js +137 -0
  122. package/src/composables/useRoles.js +94 -0
  123. package/src/composables/useSyncStatus.js +22 -0
  124. package/src/composables/useToaster.js +20 -0
  125. package/src/context.js +18 -0
  126. package/src/db/client.js +343 -0
  127. package/src/db/migrations/001_initial.sql +131 -0
  128. package/src/db/migrations/003_conversations_invitations_pages_joatu.sql +76 -0
  129. package/src/db/sync.js +276 -0
  130. package/src/endpoints/BtApiAuth.js +1 -1
  131. package/src/endpoints/BtApiV1.js +1 -1
  132. package/src/extension.js +45 -0
  133. package/src/i18n/index.js +103 -0
  134. package/src/i18n/locales/en.json +275 -0
  135. package/src/i18n/locales/es.json +275 -0
  136. package/src/i18n/locales/fr.json +223 -0
  137. package/src/i18n/locales/uk.json +275 -0
  138. package/src/index.js +168 -22
  139. package/src/layouts/CommunityLayout.vue +89 -0
  140. package/src/main.js +16 -12
  141. package/src/mixins/error-handling.js +6 -15
  142. package/src/mixins/toaster.js +15 -10
  143. package/src/pages/Communities.vue +59 -0
  144. package/src/pages/Error404.vue +10 -14
  145. package/src/pages/Home.vue +11 -18
  146. package/src/pages/Me.vue +39 -59
  147. package/src/pages/UserPasswordNew.vue +12 -68
  148. package/src/pages/UserPasswordReset.vue +15 -64
  149. package/src/pages/UserResendConfirmation.vue +39 -113
  150. package/src/pages/UserSignIn.vue +18 -67
  151. package/src/pages/UserSignUp.vue +15 -64
  152. package/src/pages/community/CommunityConversation.vue +31 -0
  153. package/src/pages/community/CommunityConversations.vue +18 -0
  154. package/src/pages/community/CommunityEvent.vue +39 -0
  155. package/src/pages/community/CommunityEvents.vue +58 -0
  156. package/src/pages/community/CommunityHome.vue +49 -0
  157. package/src/pages/community/CommunityJoaTu.vue +115 -0
  158. package/src/pages/community/CommunityMembers.vue +23 -0
  159. package/src/pages/community/CommunityPage.vue +31 -0
  160. package/src/pages/community/CommunityPages.vue +25 -0
  161. package/src/pages/community/CommunityPost.vue +28 -0
  162. package/src/pages/community/CommunityPosts.vue +58 -0
  163. package/src/pages/community/CommunitySettingsPage.vue +117 -0
  164. package/src/pages/community/RoleManagerPage.vue +93 -0
  165. package/src/plugins/bootstrap-vue.js +5 -5
  166. package/src/plugins/font-awesome.js +3 -2
  167. package/src/plugins/index.js +9 -4
  168. package/src/plugins/progress.js +16 -0
  169. package/src/pwa/index.js +156 -0
  170. package/src/pwa/sw-helpers.js +130 -0
  171. package/src/router/communityRoutes.js +78 -0
  172. package/src/router/index.js +30 -144
  173. package/src/slot-registry.js +15 -0
  174. package/src/stores/auth.js +134 -0
  175. package/src/stores/communities.js +59 -0
  176. package/src/stores/index.js +5 -0
  177. package/src/stores/menus.js +14 -0
  178. package/src/stores/people.js +48 -0
  179. package/src/stores/sync.js +93 -0
  180. package/src/stylesheets/sync-indicators.scss +34 -0
  181. package/.env.sample +0 -1
  182. package/.eslintrc.js +0 -51
  183. package/.gitlab-ci.yml +0 -14
  184. package/.travis/.rbenv-gemsets +0 -1
  185. package/.travis/.ruby-version +0 -1
  186. package/.travis.yml +0 -31
  187. package/babel.config.js +0 -5
  188. package/cypress.json +0 -3
  189. package/deploy/build.sh +0 -8
  190. package/eslint.config.js +0 -16
  191. package/postcss.config.js +0 -5
  192. package/src/eslint.config.js +0 -16
  193. package/src/forms/BtProfileFormSchema.js +0 -19
  194. package/src/forms/BtUserConfirmationFormSchema.js +0 -20
  195. package/src/forms/BtUserNewPasswordFormSchema.js +0 -29
  196. package/src/forms/BtUserResetPasswordFormSchema.js +0 -20
  197. package/src/forms/BtUserSignInFormSchema.js +0 -29
  198. package/src/forms/BtUserSignUpFormSchema.js +0 -63
  199. package/src/forms/CommunityFormSchema.js +0 -19
  200. package/src/plugins/vue-form-generator.js +0 -4
  201. package/src/plugins/vue-loading.js +0 -10
  202. package/src/registerServiceWorker.js +0 -32
  203. package/src/store/index.js +0 -32
  204. package/src/store/modules/authentication.js +0 -170
  205. package/src/store/modules/communities.js +0 -98
  206. package/src/store/modules/community-engine.js +0 -14
  207. package/src/store/modules/menus.js +0 -52
  208. package/src/store/modules/people.js +0 -88
  209. package/src/vue.config.js +0 -0
  210. package/tests/e2e/.eslintrc.js +0 -12
  211. package/tests/e2e/plugins/index.js +0 -26
  212. package/tests/e2e/specs/home.js +0 -8
  213. package/tests/e2e/support/commands.js +0 -25
  214. package/tests/e2e/support/index.js +0 -20
  215. package/tests/unit/.eslintrc.js +0 -5
  216. package/tests/unit/example.spec.js +0 -13
  217. package/vue.config.js +0 -11
  218. package/webpack.config.js +0 -28
  219. /package/{public → dist}/_redirects +0 -0
  220. /package/{public → dist}/favicon.ico +0 -0
  221. /package/{public → dist}/img/favicon.ico +0 -0
  222. /package/{public → dist}/img/icons/android-chrome-192x192.png +0 -0
  223. /package/{public → dist}/img/icons/android-chrome-384x384.png +0 -0
  224. /package/{public → dist}/img/icons/apple-touch-icon.png +0 -0
  225. /package/{public → dist}/img/icons/favicon-16x16.png +0 -0
  226. /package/{public → dist}/img/icons/favicon-32x32.png +0 -0
  227. /package/{public → dist}/img/icons/favicon.ico +0 -0
  228. /package/{public → dist}/img/icons/mstile-150x150.png +0 -0
  229. /package/{public → dist}/img/icons/safari-pinned-tab.svg +0 -0
  230. /package/{public → dist}/robots.txt +0 -0
@@ -0,0 +1,275 @@
1
+ {
2
+ "bt": {
3
+ "app": {
4
+ "name": "Better Together",
5
+ "home_heading": "Connect with your communities",
6
+ "home_tagline": "The Community Engine platform allows you to connect with others like never before"
7
+ },
8
+ "actions": {
9
+ "view": "View",
10
+ "edit": "Edit",
11
+ "delete": "Delete",
12
+ "remove": "Remove",
13
+ "save": "Save",
14
+ "cancel": "Cancel",
15
+ "send": "Send",
16
+ "create": "Create",
17
+ "close": "Close",
18
+ "open": "Open",
19
+ "back": "Back",
20
+ "submit": "Submit",
21
+ "confirm": "Confirm",
22
+ "learn_more": "Learn more",
23
+ "read_more": "Read more"
24
+ },
25
+ "sync": {
26
+ "status": {
27
+ "local": "Saved locally",
28
+ "local_title": "Saved locally — will sync when online",
29
+ "syncing": "Syncing…",
30
+ "synced": "Synced",
31
+ "needs_auth": "Sign in to sync",
32
+ "needs_auth_title": "Sign in to sync this item",
33
+ "conflict": "Conflict"
34
+ },
35
+ "offline_banner": "You're offline. Changes will sync when you reconnect.",
36
+ "pending_count": "0 pending | 1 pending | {count} pending",
37
+ "pending_label": "Pending sync",
38
+ "status_bar_online": "Online",
39
+ "status_bar_offline": "Offline"
40
+ },
41
+ "auth": {
42
+ "sign_in": "Sign In",
43
+ "sign_out": "Sign Out",
44
+ "sign_up": "Sign Up",
45
+ "email": "Email",
46
+ "password": "Password",
47
+ "password_confirmation": "Password confirmation",
48
+ "forgot_password": "Forgot password?",
49
+ "reset_password": "Reset password",
50
+ "new_password": "New password",
51
+ "resend_confirmation": "Resend confirmation",
52
+ "sign_in_failed": "Sign in failed. Please check your credentials.",
53
+ "sign_up_failed": "Sign up failed. Please try again.",
54
+ "login_info": "Login Info",
55
+ "personal_info": "Personal Info",
56
+ "password_hint": "Minimum 12 characters.",
57
+ "change_password": "Change Password",
58
+ "send_reset_email": "Send password reset email",
59
+ "send_confirmation_email": "Send confirmation email",
60
+ "heading_sign_in": "Sign In",
61
+ "heading_sign_up": "Sign Up",
62
+ "heading_password_new": "Create a New Password",
63
+ "heading_password_reset": "Reset Your Password",
64
+ "heading_resend_confirmation": "Resend your confirmation email",
65
+ "prompt_sign_up": "Don't have an account? Sign up!",
66
+ "prompt_sign_in": "Already have an account? Sign in!",
67
+ "prompt_forgot_password": "Forgot your password? Reset it!",
68
+ "prompt_resend": "Didn't receive confirmation email? Resend it!",
69
+ "prompt_resend_full": "Didn't receive your account confirmation email? Resend it!",
70
+ "prompt_remembered_password": "Remembered your password? Sign in!",
71
+ "prompt_confirmed": "Already confirmed? Sign in!",
72
+ "errors": {
73
+ "invalid_credentials": "Invalid email or password.",
74
+ "confirmation_mismatch": "Password confirmation does not match.",
75
+ "network": "Could not connect to the server. Please try again."
76
+ }
77
+ },
78
+ "navigation": {
79
+ "home": "Home",
80
+ "communities": "Communities",
81
+ "profile": "Profile",
82
+ "settings": "Settings",
83
+ "me": "Me",
84
+ "posts": "Posts",
85
+ "events": "Events",
86
+ "members": "Members",
87
+ "conversations": "Conversations",
88
+ "about": "About"
89
+ },
90
+ "errors": {
91
+ "not_found": "Not found.",
92
+ "load_failed": "Failed to load. Please try again.",
93
+ "save_failed": "Failed to save. Please try again.",
94
+ "network": "Network error. Please check your connection.",
95
+ "unexpected": "An unexpected error occurred.",
96
+ "not_found_heading": "This is not the page you are looking for",
97
+ "not_found_message": "Looks like the address that you entered doesn't match a page on our site. Perhaps the page has moved to a new address. Please try again.",
98
+ "visit_home": "Visit Landing Page"
99
+ },
100
+ "communities": {
101
+ "list_empty": "No communities found.",
102
+ "loading": "Loading communities…",
103
+ "view": "View Community",
104
+ "create": "Create Community",
105
+ "edit": "Edit Community",
106
+ "members_count": "0 members | 1 member | {count} members",
107
+ "name_label": "Name",
108
+ "description_label": "Description",
109
+ "not_found": "Community not found.",
110
+ "new": "New Community",
111
+ "save": "Save Community"
112
+ },
113
+ "posts": {
114
+ "list_empty": "No posts yet.",
115
+ "loading": "Loading posts…",
116
+ "read_more": "Read more",
117
+ "save": "Save Post",
118
+ "saving": "Saving…",
119
+ "title_label": "Title",
120
+ "content_label": "Content",
121
+ "privacy_label": "Privacy",
122
+ "create": "New Post",
123
+ "recent": "Recent Posts"
124
+ },
125
+ "events": {
126
+ "list_empty": "No upcoming events.",
127
+ "loading": "Loading events…",
128
+ "view": "View Event",
129
+ "save": "Save Event",
130
+ "name_label": "Event name",
131
+ "description_label": "Description",
132
+ "starts_at_label": "Starts at",
133
+ "ends_at_label": "Ends at",
134
+ "create": "New Event",
135
+ "upcoming": "Upcoming Events",
136
+ "not_found": "Event not found."
137
+ },
138
+ "conversations": {
139
+ "list_empty": "No conversations yet.",
140
+ "loading": "Loading conversations…",
141
+ "open": "Open",
142
+ "no_subject": "No subject",
143
+ "participants": "0 participants | 1 participant | {count} participants",
144
+ "not_found": "Conversation not found.",
145
+ "coming_soon": "Conversations are coming in Phase 5."
146
+ },
147
+ "messages": {
148
+ "list_empty": "No messages yet. Start the conversation!",
149
+ "loading": "Loading messages…",
150
+ "placeholder": "Type a message…",
151
+ "send": "Send",
152
+ "author_unknown": "Unknown"
153
+ },
154
+ "invitations": {
155
+ "list_empty": "No invitations yet.",
156
+ "loading": "Loading invitations…",
157
+ "email_label": "Email address",
158
+ "name_label": "Name (optional)",
159
+ "message_label": "Personal message (optional)",
160
+ "email_placeholder": "person@example.com",
161
+ "name_placeholder": "Their name",
162
+ "message_placeholder": "Add a personal message…",
163
+ "send": "Send Invitation",
164
+ "cancel": "Cancel",
165
+ "status": {
166
+ "pending": "Pending",
167
+ "accepted": "Accepted",
168
+ "expired": "Expired"
169
+ },
170
+ "expires": "Expires {date}"
171
+ },
172
+ "pages": {
173
+ "list_empty": "No pages yet.",
174
+ "loading": "Loading…",
175
+ "not_found": "Page not found.",
176
+ "read": "Read",
177
+ "heading": "Pages"
178
+ },
179
+ "person": {
180
+ "members_empty": "No members found.",
181
+ "loading": "Loading members…",
182
+ "profile": "Profile",
183
+ "unknown": "Unknown",
184
+ "name_label": "Name",
185
+ "description_label": "Description",
186
+ "fill_profile": "Fill out your profile",
187
+ "my_profile": "My Profile",
188
+ "fill_profile_details": "Fill out your profile details",
189
+ "unsaved_changes": "changed",
190
+ "block": "Block",
191
+ "unblock": "Unblock"
192
+ },
193
+ "roles": {
194
+ "title": "Role Manager",
195
+ "assign": "Assign Role",
196
+ "revoke": "Revoke",
197
+ "no_roles": "No roles assigned",
198
+ "grant_success": "Role granted",
199
+ "revoke_success": "Role revoked"
200
+ },
201
+ "community": {
202
+ "settings": {
203
+ "title": "Community Settings",
204
+ "general": "General",
205
+ "members": "Members",
206
+ "danger_zone": "Danger Zone",
207
+ "leave": "Leave Community",
208
+ "leave_confirm": "Are you sure you want to leave this community?"
209
+ }
210
+ },
211
+ "joatu": {
212
+ "heading": "Time Banking",
213
+ "tagline": "1 time credit = 1 hour. All labor equally valued.",
214
+ "tabs": {
215
+ "offers": "Offers",
216
+ "requests": "Requests",
217
+ "agreements": "Agreements"
218
+ },
219
+ "offers": {
220
+ "list_empty": "No offers yet.",
221
+ "loading": "Loading offers…",
222
+ "add": "+ Add Offer",
223
+ "view": "View Offer",
224
+ "title_label": "What are you offering?",
225
+ "title_placeholder": "e.g. Web design help, Gardening, Guitar lessons",
226
+ "description_label": "Description",
227
+ "description_placeholder": "Describe what you can offer in more detail…",
228
+ "category_label": "Category",
229
+ "category_placeholder": "e.g. Skills, Labour, Knowledge, Goods",
230
+ "credits_label": "Time credits",
231
+ "credits_hint": "1 time credit = 1 hour. All labor is equally valued.",
232
+ "submit": "Add Offer",
233
+ "status": {
234
+ "open": "Open",
235
+ "fulfilled": "Fulfilled",
236
+ "withdrawn": "Withdrawn"
237
+ },
238
+ "credits_display": "0 time credits | 1 time credit | {count} time credits"
239
+ },
240
+ "requests": {
241
+ "list_empty": "No requests yet.",
242
+ "loading": "Loading requests…",
243
+ "add": "+ Add Request",
244
+ "view": "View Request",
245
+ "fulfill": "Fulfill Request",
246
+ "title_label": "What do you need?",
247
+ "title_placeholder": "e.g. Help moving, Childcare, Computer repair",
248
+ "description_label": "Description",
249
+ "description_placeholder": "Describe what you need in more detail…",
250
+ "category_label": "Category",
251
+ "credits_label": "Time credits",
252
+ "credits_hint": "1 time credit = 1 hour. All labor is equally valued.",
253
+ "submit": "Add Request",
254
+ "seeking": "Seeking:",
255
+ "status": {
256
+ "open": "Open",
257
+ "fulfilled": "Fulfilled",
258
+ "withdrawn": "Withdrawn"
259
+ }
260
+ },
261
+ "agreements": {
262
+ "list_empty": "No agreements yet.",
263
+ "loading": "Loading agreements…",
264
+ "agreed_on": "Agreed {date}",
265
+ "status": {
266
+ "pending": "Pending",
267
+ "active": "Active",
268
+ "completed": "Completed",
269
+ "disputed": "Disputed"
270
+ },
271
+ "credits_display": "0 time credits | 1 time credit | {count} time credits"
272
+ }
273
+ }
274
+ }
275
+ }
@@ -0,0 +1,275 @@
1
+ {
2
+ "bt": {
3
+ "app": {
4
+ "name": "Better Together",
5
+ "home_heading": "Conéctate con tus comunidades",
6
+ "home_tagline": "La plataforma Community Engine te permite conectarte con otras personas como nunca antes"
7
+ },
8
+ "actions": {
9
+ "view": "Ver",
10
+ "edit": "Editar",
11
+ "delete": "Eliminar",
12
+ "remove": "Quitar",
13
+ "save": "Guardar",
14
+ "cancel": "Cancelar",
15
+ "send": "Enviar",
16
+ "create": "Crear",
17
+ "close": "Cerrar",
18
+ "open": "Abrir",
19
+ "back": "Volver",
20
+ "submit": "Enviar",
21
+ "confirm": "Confirmar",
22
+ "learn_more": "Más información",
23
+ "read_more": "Leer más"
24
+ },
25
+ "sync": {
26
+ "status": {
27
+ "local": "Guardado localmente",
28
+ "local_title": "Guardado localmente — se sincronizará cuando estés en línea",
29
+ "syncing": "Sincronizando…",
30
+ "synced": "Sincronizado",
31
+ "needs_auth": "Inicia sesión para sincronizar",
32
+ "needs_auth_title": "Inicia sesión para sincronizar este elemento",
33
+ "conflict": "Conflicto"
34
+ },
35
+ "offline_banner": "Estás sin conexión. Los cambios se sincronizarán cuando te vuelvas a conectar.",
36
+ "pending_count": "0 pendiente | 1 pendiente | {count} pendientes",
37
+ "pending_label": "Sincronización pendiente",
38
+ "status_bar_online": "En línea",
39
+ "status_bar_offline": "Sin conexión"
40
+ },
41
+ "auth": {
42
+ "sign_in": "Iniciar sesión",
43
+ "sign_out": "Cerrar sesión",
44
+ "sign_up": "Registrarse",
45
+ "email": "Correo electrónico",
46
+ "password": "Contraseña",
47
+ "password_confirmation": "Confirmación de contraseña",
48
+ "forgot_password": "¿Olvidaste tu contraseña?",
49
+ "reset_password": "Restablecer contraseña",
50
+ "new_password": "Nueva contraseña",
51
+ "resend_confirmation": "Reenviar confirmación",
52
+ "sign_in_failed": "Error al iniciar sesión. Verifica tus credenciales.",
53
+ "sign_up_failed": "Error al registrarse. Inténtalo de nuevo.",
54
+ "login_info": "Información de inicio de sesión",
55
+ "personal_info": "Información personal",
56
+ "password_hint": "Mínimo 12 caracteres.",
57
+ "change_password": "Cambiar contraseña",
58
+ "send_reset_email": "Enviar correo para restablecer contraseña",
59
+ "send_confirmation_email": "Enviar correo de confirmación",
60
+ "heading_sign_in": "Iniciar sesión",
61
+ "heading_sign_up": "Registrarse",
62
+ "heading_password_new": "Crear una nueva contraseña",
63
+ "heading_password_reset": "Restablecer tu contraseña",
64
+ "heading_resend_confirmation": "Reenviar tu correo de confirmación",
65
+ "prompt_sign_up": "¿No tienes una cuenta? ¡Regístrate!",
66
+ "prompt_sign_in": "¿Ya tienes una cuenta? ¡Inicia sesión!",
67
+ "prompt_forgot_password": "¿Olvidaste tu contraseña? ¡Restablécela!",
68
+ "prompt_resend": "¿No recibiste el correo de confirmación? ¡Reenvíalo!",
69
+ "prompt_resend_full": "¿No recibiste el correo de confirmación de tu cuenta? ¡Reenvíalo!",
70
+ "prompt_remembered_password": "¿Recordaste tu contraseña? ¡Inicia sesión!",
71
+ "prompt_confirmed": "¿Ya confirmaste? ¡Inicia sesión!",
72
+ "errors": {
73
+ "invalid_credentials": "Correo electrónico o contraseña inválidos.",
74
+ "confirmation_mismatch": "La confirmación de contraseña no coincide.",
75
+ "network": "No se pudo conectar al servidor. Inténtalo de nuevo."
76
+ }
77
+ },
78
+ "navigation": {
79
+ "home": "Inicio",
80
+ "communities": "Comunidades",
81
+ "profile": "Perfil",
82
+ "settings": "Configuración",
83
+ "me": "Yo",
84
+ "posts": "Publicaciones",
85
+ "events": "Eventos",
86
+ "members": "Miembros",
87
+ "conversations": "Conversaciones",
88
+ "about": "Acerca de"
89
+ },
90
+ "errors": {
91
+ "not_found": "No encontrado.",
92
+ "load_failed": "Error al cargar. Inténtalo de nuevo.",
93
+ "save_failed": "Error al guardar. Inténtalo de nuevo.",
94
+ "network": "Error de red. Verifica tu conexión.",
95
+ "unexpected": "Ocurrió un error inesperado.",
96
+ "not_found_heading": "Esta no es la página que buscas",
97
+ "not_found_message": "Parece que la dirección que ingresaste no corresponde a ninguna página de nuestro sitio. Quizás la página se ha movido a una nueva dirección. Por favor, inténtalo de nuevo.",
98
+ "visit_home": "Visitar la página de inicio"
99
+ },
100
+ "communities": {
101
+ "list_empty": "No se encontraron comunidades.",
102
+ "loading": "Cargando comunidades…",
103
+ "view": "Ver comunidad",
104
+ "create": "Crear comunidad",
105
+ "edit": "Editar comunidad",
106
+ "members_count": "0 miembros | 1 miembro | {count} miembros",
107
+ "name_label": "Nombre",
108
+ "description_label": "Descripción",
109
+ "not_found": "Comunidad no encontrada.",
110
+ "new": "Nueva comunidad",
111
+ "save": "Guardar comunidad"
112
+ },
113
+ "posts": {
114
+ "list_empty": "Aún no hay publicaciones.",
115
+ "loading": "Cargando publicaciones…",
116
+ "read_more": "Leer más",
117
+ "save": "Guardar publicación",
118
+ "saving": "Guardando…",
119
+ "title_label": "Título",
120
+ "content_label": "Contenido",
121
+ "privacy_label": "Privacidad",
122
+ "create": "Nueva publicación",
123
+ "recent": "Publicaciones recientes"
124
+ },
125
+ "events": {
126
+ "list_empty": "No hay eventos próximos.",
127
+ "loading": "Cargando eventos…",
128
+ "view": "Ver evento",
129
+ "save": "Guardar evento",
130
+ "name_label": "Nombre del evento",
131
+ "description_label": "Descripción",
132
+ "starts_at_label": "Comienza a las",
133
+ "ends_at_label": "Termina a las",
134
+ "create": "Nuevo evento",
135
+ "upcoming": "Próximos eventos",
136
+ "not_found": "Evento no encontrado."
137
+ },
138
+ "conversations": {
139
+ "list_empty": "Aún no hay conversaciones.",
140
+ "loading": "Cargando conversaciones…",
141
+ "open": "Abrir",
142
+ "no_subject": "Sin asunto",
143
+ "participants": "0 participantes | 1 participante | {count} participantes",
144
+ "not_found": "Conversación no encontrada.",
145
+ "coming_soon": "Las conversaciones llegarán en la Fase 5."
146
+ },
147
+ "messages": {
148
+ "list_empty": "Aún no hay mensajes. ¡Inicia la conversación!",
149
+ "loading": "Cargando mensajes…",
150
+ "placeholder": "Escribe un mensaje…",
151
+ "send": "Enviar",
152
+ "author_unknown": "Desconocido"
153
+ },
154
+ "invitations": {
155
+ "list_empty": "Aún no hay invitaciones.",
156
+ "loading": "Cargando invitaciones…",
157
+ "email_label": "Dirección de correo electrónico",
158
+ "name_label": "Nombre (opcional)",
159
+ "message_label": "Mensaje personal (opcional)",
160
+ "email_placeholder": "persona@ejemplo.com",
161
+ "name_placeholder": "Su nombre",
162
+ "message_placeholder": "Añade un mensaje personal…",
163
+ "send": "Enviar invitación",
164
+ "cancel": "Cancelar",
165
+ "status": {
166
+ "pending": "Pendiente",
167
+ "accepted": "Aceptada",
168
+ "expired": "Vencida"
169
+ },
170
+ "expires": "Vence el {date}"
171
+ },
172
+ "pages": {
173
+ "list_empty": "Aún no hay páginas.",
174
+ "loading": "Cargando…",
175
+ "not_found": "Página no encontrada.",
176
+ "read": "Leer",
177
+ "heading": "Páginas"
178
+ },
179
+ "person": {
180
+ "members_empty": "No se encontraron miembros.",
181
+ "loading": "Cargando miembros…",
182
+ "profile": "Perfil",
183
+ "unknown": "Desconocido",
184
+ "name_label": "Nombre",
185
+ "description_label": "Descripción",
186
+ "fill_profile": "Completa tu perfil",
187
+ "my_profile": "Mi perfil",
188
+ "fill_profile_details": "Completa los detalles de tu perfil",
189
+ "unsaved_changes": "modificado",
190
+ "block": "Bloquear",
191
+ "unblock": "Desbloquear"
192
+ },
193
+ "roles": {
194
+ "title": "Gestor de roles",
195
+ "assign": "Asignar rol",
196
+ "revoke": "Revocar",
197
+ "no_roles": "Sin roles asignados",
198
+ "grant_success": "Rol asignado",
199
+ "revoke_success": "Rol revocado"
200
+ },
201
+ "community": {
202
+ "settings": {
203
+ "title": "Configuración de la comunidad",
204
+ "general": "General",
205
+ "members": "Miembros",
206
+ "danger_zone": "Zona de peligro",
207
+ "leave": "Salir de la comunidad",
208
+ "leave_confirm": "¿Estás seguro de que quieres salir de esta comunidad?"
209
+ }
210
+ },
211
+ "joatu": {
212
+ "heading": "Banco de tiempo",
213
+ "tagline": "1 crédito de tiempo = 1 hora. Todo el trabajo tiene el mismo valor.",
214
+ "tabs": {
215
+ "offers": "Ofertas",
216
+ "requests": "Solicitudes",
217
+ "agreements": "Acuerdos"
218
+ },
219
+ "offers": {
220
+ "list_empty": "Aún no hay ofertas.",
221
+ "loading": "Cargando ofertas…",
222
+ "add": "+ Agregar oferta",
223
+ "view": "Ver oferta",
224
+ "title_label": "¿Qué ofreces?",
225
+ "title_placeholder": "p. ej. Ayuda con diseño web, Jardinería, Clases de guitarra",
226
+ "description_label": "Descripción",
227
+ "description_placeholder": "Describe lo que puedes ofrecer con más detalle…",
228
+ "category_label": "Categoría",
229
+ "category_placeholder": "p. ej. Habilidades, Trabajo, Conocimientos, Bienes",
230
+ "credits_label": "Créditos de tiempo",
231
+ "credits_hint": "1 crédito de tiempo = 1 hora. Todo el trabajo tiene el mismo valor.",
232
+ "submit": "Agregar oferta",
233
+ "status": {
234
+ "open": "Disponible",
235
+ "fulfilled": "Cumplida",
236
+ "withdrawn": "Retirada"
237
+ },
238
+ "credits_display": "0 créditos de tiempo | 1 crédito de tiempo | {count} créditos de tiempo"
239
+ },
240
+ "requests": {
241
+ "list_empty": "Aún no hay solicitudes.",
242
+ "loading": "Cargando solicitudes…",
243
+ "add": "+ Agregar solicitud",
244
+ "view": "Ver solicitud",
245
+ "fulfill": "Atender solicitud",
246
+ "title_label": "¿Qué necesitas?",
247
+ "title_placeholder": "p. ej. Ayuda para mudarse, Cuidado de niños, Reparación de computadora",
248
+ "description_label": "Descripción",
249
+ "description_placeholder": "Describe lo que necesitas con más detalle…",
250
+ "category_label": "Categoría",
251
+ "credits_label": "Créditos de tiempo",
252
+ "credits_hint": "1 crédito de tiempo = 1 hora. Todo el trabajo tiene el mismo valor.",
253
+ "submit": "Agregar solicitud",
254
+ "seeking": "Buscando:",
255
+ "status": {
256
+ "open": "Disponible",
257
+ "fulfilled": "Cumplida",
258
+ "withdrawn": "Retirada"
259
+ }
260
+ },
261
+ "agreements": {
262
+ "list_empty": "Aún no hay acuerdos.",
263
+ "loading": "Cargando acuerdos…",
264
+ "agreed_on": "Acordado el {date}",
265
+ "status": {
266
+ "pending": "Pendiente",
267
+ "active": "Activo",
268
+ "completed": "Completado",
269
+ "disputed": "En disputa"
270
+ },
271
+ "credits_display": "0 créditos de tiempo | 1 crédito de tiempo | {count} créditos de tiempo"
272
+ }
273
+ }
274
+ }
275
+ }