memi-board 0.44.1 → 0.45.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.
- package/README.md +54 -3
- package/dist/ar-BCQdRw_S.js +622 -0
- package/dist/ar-BCQdRw_S.js.map +1 -0
- package/dist/composables/fetchPublicSeo.d.ts +4 -1
- package/dist/composables/useMemiBoardAutoTranslate.d.ts +33 -0
- package/dist/composables/useMemiBoardModeration.d.ts +5 -1
- package/dist/composables/useMemiBoardReports.d.ts +6 -1
- package/dist/composables/useMemiBoardSections.d.ts +2 -1
- package/dist/composables/useMemiBoardUsers.d.ts +4 -0
- package/dist/composables/useMemiBoardWritingAssistant.d.ts +9 -1
- package/dist/config.d.ts +5 -0
- package/dist/de-ddWQNaqs.js +622 -0
- package/dist/de-ddWQNaqs.js.map +1 -0
- package/dist/en-BVUBLkxc.js +648 -0
- package/dist/en-BVUBLkxc.js.map +1 -0
- package/dist/es-7JHjGVlM.js +622 -0
- package/dist/es-7JHjGVlM.js.map +1 -0
- package/dist/fr-C3NCMNoy.js +622 -0
- package/dist/fr-C3NCMNoy.js.map +1 -0
- package/dist/id-C8hCAMPJ.js +622 -0
- package/dist/id-C8hCAMPJ.js.map +1 -0
- package/dist/index.d.ts +9 -1
- package/dist/index.js +1201 -1496
- package/dist/index.js.map +1 -1
- package/dist/ja-oTWri4hY.js +622 -0
- package/dist/ja-oTWri4hY.js.map +1 -0
- package/dist/module.mjs +55 -31
- package/dist/module.mjs.map +1 -1
- package/dist/pt-B9EH4scA.js +622 -0
- package/dist/pt-B9EH4scA.js.map +1 -0
- package/dist/runtime/components/Attachments.vue +4 -2
- package/dist/runtime/components/AuthorMenu.vue +14 -12
- package/dist/runtime/components/AvatarCropModal.vue +8 -5
- package/dist/runtime/components/CategorySettings.vue +65 -43
- package/dist/runtime/components/CommentFeed.vue +9 -7
- package/dist/runtime/components/CommentForm.vue +12 -10
- package/dist/runtime/components/CommentItem.vue +21 -26
- package/dist/runtime/components/CommentList.vue +7 -4
- package/dist/runtime/components/CommentThread.vue +7 -5
- package/dist/runtime/components/Detail.vue +20 -15
- package/dist/runtime/components/Editor.vue +141 -135
- package/dist/runtime/components/Footer.vue +14 -13
- package/dist/runtime/components/List.vue +31 -29
- package/dist/runtime/components/ListDefault.vue +4 -3
- package/dist/runtime/components/ListDense.vue +6 -5
- package/dist/runtime/components/ListImage.vue +4 -2
- package/dist/runtime/components/ListVideo.vue +3 -2
- package/dist/runtime/components/ListViewSwitch.vue +10 -6
- package/dist/runtime/components/MiniCard.vue +3 -2
- package/dist/runtime/components/MiniComments.vue +5 -4
- package/dist/runtime/components/MiniList.vue +3 -2
- package/dist/runtime/components/MiniPicker.vue +10 -9
- package/dist/runtime/components/MiniPost.vue +3 -2
- package/dist/runtime/components/MiniPosts.vue +5 -4
- package/dist/runtime/components/Profile.vue +12 -7
- package/dist/runtime/components/ProfileEditModal.vue +14 -13
- package/dist/runtime/components/ReportButton.vue +16 -10
- package/dist/runtime/components/ReportList.vue +11 -10
- package/dist/runtime/components/Section.vue +3 -2
- package/dist/runtime/components/Settings.vue +84 -62
- package/dist/runtime/components/ShareButton.vue +3 -1
- package/dist/runtime/components/SignIn.vue +10 -8
- package/dist/runtime/components/SwipeHint.vue +5 -3
- package/dist/runtime/components/UserCommentList.vue +8 -6
- package/dist/runtime/components/UserPostList.vue +6 -4
- package/dist/runtime/components/Users.vue +16 -10
- package/dist/runtime/composables/useMemiBoardSeo.ts +16 -10
- package/dist/slugify-6bG6GSO_.js +942 -0
- package/dist/slugify-6bG6GSO_.js.map +1 -0
- package/dist/storage.js +72 -71
- package/dist/storage.js.map +1 -1
- package/dist/types.d.ts +4 -0
- package/dist/utils/boardSeo.d.ts +5 -5
- package/dist/utils/compressImage.d.ts +2 -1
- package/dist/utils/formatDate.d.ts +6 -4
- package/dist/utils/moderation-prompt.d.ts +18 -1
- package/dist/utils/moderation-strike.d.ts +2 -1
- package/dist/utils/section.d.ts +15 -2
- package/dist/zh-D5rDYV6E.js +622 -0
- package/dist/zh-D5rDYV6E.js.map +1 -0
- package/package.json +2 -3
- package/dist/slugify-Cm_pi2al.js +0 -124
- package/dist/slugify-Cm_pi2al.js.map +0 -1
|
@@ -0,0 +1,648 @@
|
|
|
1
|
+
//#endregion
|
|
2
|
+
//#region src/i18n/messages/en/index.ts
|
|
3
|
+
var e = {
|
|
4
|
+
attachments: {
|
|
5
|
+
attach: "Attach files ({count} / {max})",
|
|
6
|
+
maxFiles: "You can attach up to {max} files."
|
|
7
|
+
},
|
|
8
|
+
auth: {
|
|
9
|
+
writeRestricted: "Posting and commenting are temporarily restricted due to repeated content warnings.",
|
|
10
|
+
writeRestrictedUntil: "Posting and commenting are temporarily restricted due to repeated content warnings. ({until})",
|
|
11
|
+
strikeSuffix: " (Warning {count}/{threshold})",
|
|
12
|
+
strikeRestrictedUntil: " You have reached {count} warnings, so posting and commenting are restricted ({until}).",
|
|
13
|
+
strikeRestricted: " You have reached {count} warnings, so posting and commenting are restricted.",
|
|
14
|
+
notInitialized: "[memi-board] Firebase Auth is not initialized."
|
|
15
|
+
},
|
|
16
|
+
authorMemo: { tooLong: "Memos can be up to {max} characters." },
|
|
17
|
+
authorMenu: {
|
|
18
|
+
viewProfile: "View profile",
|
|
19
|
+
viewPosts: "View posts",
|
|
20
|
+
viewComments: "View comments",
|
|
21
|
+
memoAriaLabel: "Note about this author",
|
|
22
|
+
memoTitle: "Private note",
|
|
23
|
+
memoPlaceholder: "Jot something down about this author…",
|
|
24
|
+
bad: "Bad",
|
|
25
|
+
good: "Good"
|
|
26
|
+
},
|
|
27
|
+
avatarCropModal: {
|
|
28
|
+
title: "Crop profile photo",
|
|
29
|
+
description: "Shown as a square (1:1). Adjust the area to fit.",
|
|
30
|
+
hint: "Drag to move and zoom · Saved as a {size}×{size} square JPEG",
|
|
31
|
+
confirm: "Crop and upload"
|
|
32
|
+
},
|
|
33
|
+
boardSettings: {
|
|
34
|
+
signInRequired: "Please sign in.",
|
|
35
|
+
idAndNameRequired: "Please enter a board ID and name.",
|
|
36
|
+
deleteIdRequired: "A board ID is required to delete.",
|
|
37
|
+
nameRequired: "Please enter a board name."
|
|
38
|
+
},
|
|
39
|
+
boardUsers: {
|
|
40
|
+
unsupportedRole: "Unsupported role.",
|
|
41
|
+
roleDescription: {
|
|
42
|
+
admin: "Manages user roles, board settings, and all content.",
|
|
43
|
+
staff: "Manages all posts and comments, but can’t change user roles or board settings.",
|
|
44
|
+
user: "Can write posts and comments, and edit or delete only their own content."
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
commentFeed: {
|
|
48
|
+
empty: "No comments yet.",
|
|
49
|
+
emptyLiked: "No liked comments yet.",
|
|
50
|
+
loadFailed: "Couldn’t load the list: {error}",
|
|
51
|
+
blinded: "This comment was hidden by an admin."
|
|
52
|
+
},
|
|
53
|
+
commentForm: {
|
|
54
|
+
hiddenBoardDenied: "Only assigned staff can comment on hidden boards.",
|
|
55
|
+
denied: "You don’t have permission to comment on this board.",
|
|
56
|
+
signInRequired: "Please sign in.",
|
|
57
|
+
writeRestricted: "Posting is temporarily restricted due to repeated content warnings.",
|
|
58
|
+
moderationBlocked: "This contains content that can’t be posted.",
|
|
59
|
+
replyTo: "Reply to {name}",
|
|
60
|
+
placeholder: "Write a comment",
|
|
61
|
+
submitReply: "Reply",
|
|
62
|
+
submit: "Comment",
|
|
63
|
+
signInToComment: "Sign in to leave a comment."
|
|
64
|
+
},
|
|
65
|
+
commentItem: {
|
|
66
|
+
editRestricted: "Editing comments is temporarily restricted.",
|
|
67
|
+
moderationBlocked: "This contains content that can’t be posted.",
|
|
68
|
+
editFailed: "Couldn’t update the comment.",
|
|
69
|
+
blindConfirm: "Hiding this comment shows a notice to everyone instead of its text. The original isn’t deleted and you can unhide it later.\n\nHide this comment?",
|
|
70
|
+
unblindConfirm: "Unhiding shows the original comment to everyone again.\n\nUnhide this comment?",
|
|
71
|
+
blindFailed: "Couldn’t change the hidden state.",
|
|
72
|
+
likeFailed: "Couldn’t process the like.",
|
|
73
|
+
blinded: "This comment was hidden by an admin.",
|
|
74
|
+
edit: "Edit comment",
|
|
75
|
+
blind: "Hide comment",
|
|
76
|
+
unblind: "Unhide comment",
|
|
77
|
+
delete: "Delete comment"
|
|
78
|
+
},
|
|
79
|
+
commentList: {
|
|
80
|
+
loading: "Loading comments",
|
|
81
|
+
empty: "No comments yet.",
|
|
82
|
+
loadMore: "More comments",
|
|
83
|
+
loadingMore: "Loading more comments"
|
|
84
|
+
},
|
|
85
|
+
commentThread: {
|
|
86
|
+
deleteConfirm: "Delete this comment?",
|
|
87
|
+
deleteFailed: "Couldn’t delete the comment.",
|
|
88
|
+
hideReplies: "Hide replies",
|
|
89
|
+
showReplies: "{count} replies",
|
|
90
|
+
loadMoreReplies: "More replies"
|
|
91
|
+
},
|
|
92
|
+
comments: {
|
|
93
|
+
bodyRequired: "Please enter a comment.",
|
|
94
|
+
bodyTooLong: "Comments can be up to {max} characters.",
|
|
95
|
+
replyTargetNotFound: "The comment you are replying to could not be found.",
|
|
96
|
+
threadNotFound: "The comment thread could not be found.",
|
|
97
|
+
hasRepliesCannotDelete: "Comments with replies cannot be deleted right now."
|
|
98
|
+
},
|
|
99
|
+
common: {
|
|
100
|
+
action: {
|
|
101
|
+
cancel: "Cancel",
|
|
102
|
+
save: "Save",
|
|
103
|
+
saved: "Saved",
|
|
104
|
+
edit: "Edit",
|
|
105
|
+
delete: "Delete",
|
|
106
|
+
confirm: "OK",
|
|
107
|
+
close: "Close",
|
|
108
|
+
add: "Add",
|
|
109
|
+
more: "More",
|
|
110
|
+
prev: "Previous",
|
|
111
|
+
next: "Next",
|
|
112
|
+
retry: "Retry",
|
|
113
|
+
reply: "Reply",
|
|
114
|
+
like: "Like",
|
|
115
|
+
unlike: "Unlike",
|
|
116
|
+
share: "Share",
|
|
117
|
+
report: "Report",
|
|
118
|
+
signIn: "Sign in",
|
|
119
|
+
signOut: "Sign out",
|
|
120
|
+
write: "Write",
|
|
121
|
+
toTop: "Top"
|
|
122
|
+
},
|
|
123
|
+
label: {
|
|
124
|
+
anonymous: "Anonymous",
|
|
125
|
+
user: "User",
|
|
126
|
+
image: "Image",
|
|
127
|
+
draft: "Draft",
|
|
128
|
+
loading: "Loading…"
|
|
129
|
+
},
|
|
130
|
+
role: {
|
|
131
|
+
admin: "Admin",
|
|
132
|
+
staff: "Staff",
|
|
133
|
+
user: "User"
|
|
134
|
+
},
|
|
135
|
+
date: {
|
|
136
|
+
justNow: "Just now",
|
|
137
|
+
fewSecondsAgo: "A few seconds ago",
|
|
138
|
+
checking: "Checking time",
|
|
139
|
+
createdAt: "Created: {time}",
|
|
140
|
+
updatedAt: "Updated: {time}"
|
|
141
|
+
}
|
|
142
|
+
},
|
|
143
|
+
detail: {
|
|
144
|
+
deleteConfirm: "Delete this post? This can’t be undone.",
|
|
145
|
+
notFound: "Post not found.",
|
|
146
|
+
draftPreview: "Unpublished preview",
|
|
147
|
+
draftNotice: "This post isn’t published yet. Only you can see it until you publish.",
|
|
148
|
+
publish: "Publish",
|
|
149
|
+
backToList: "Back to list",
|
|
150
|
+
postNav: "Post navigation",
|
|
151
|
+
list: "List",
|
|
152
|
+
comments: "Comments"
|
|
153
|
+
},
|
|
154
|
+
editor: {
|
|
155
|
+
titlePlaceholder: "Title",
|
|
156
|
+
contentPlaceholder: "Write something… Type / to open the block menu.",
|
|
157
|
+
imageContentPlaceholder: "Write something…",
|
|
158
|
+
tagsPlaceholder: "Type a tag and press Enter",
|
|
159
|
+
skipModeration: "Skip profanity filter (admin)",
|
|
160
|
+
submitEdit: "Save changes",
|
|
161
|
+
submitNext: "Next: Preview",
|
|
162
|
+
apply: "Apply",
|
|
163
|
+
imageOptimizing: "Optimizing and uploading image…",
|
|
164
|
+
cover: {
|
|
165
|
+
hint: "Photos {count}/{max} · Pick a cover · Drag to reorder · Drop or paste files to add",
|
|
166
|
+
imageLink: "Image link",
|
|
167
|
+
addPhoto: "Add photos",
|
|
168
|
+
alt: "Photo {n}",
|
|
169
|
+
representative: "Cover",
|
|
170
|
+
setRepresentative: "Set cover",
|
|
171
|
+
setRepresentativeAria: "Set photo {n} as cover",
|
|
172
|
+
remove: "Remove photo",
|
|
173
|
+
add: "Add",
|
|
174
|
+
uploading: "Uploading…",
|
|
175
|
+
dropOrClick: "Drop photos or click to add",
|
|
176
|
+
emptyHint: "Select multiple · Pick a cover after upload · Drag to reorder",
|
|
177
|
+
uploadTitle: "Upload"
|
|
178
|
+
},
|
|
179
|
+
uploadFailed: "Upload failed",
|
|
180
|
+
aiAssistant: "AI writing assistant",
|
|
181
|
+
insertBlock: "Insert block",
|
|
182
|
+
blockMenu: "Block menu",
|
|
183
|
+
imageDialog: {
|
|
184
|
+
title: "Add image",
|
|
185
|
+
chooseFile: "Choose image from device",
|
|
186
|
+
orLink: "or image link",
|
|
187
|
+
urlLabel: "Image URL",
|
|
188
|
+
urlHelp: "Only HTTPS URLs are allowed. If the image is removed from the source site, it won’t display here either.",
|
|
189
|
+
previewAlt: "External image preview",
|
|
190
|
+
addLink: "Add link"
|
|
191
|
+
},
|
|
192
|
+
customDialog: {
|
|
193
|
+
title: "Rewrite in a custom style",
|
|
194
|
+
label: "How should it be rewritten?",
|
|
195
|
+
help: "e.g. in a casual tone / in formal written style / as concise bullet points",
|
|
196
|
+
placeholder: "In a casual tone"
|
|
197
|
+
},
|
|
198
|
+
aiPreview: {
|
|
199
|
+
title: "Review AI result",
|
|
200
|
+
currentTitle: "Current title",
|
|
201
|
+
newTitle: "New title",
|
|
202
|
+
currentContent: "Current content",
|
|
203
|
+
appendedContent: "Content to add",
|
|
204
|
+
before: "Before",
|
|
205
|
+
after: "After"
|
|
206
|
+
},
|
|
207
|
+
menu: {
|
|
208
|
+
ai: "AI",
|
|
209
|
+
aiContinue: "Continue with AI",
|
|
210
|
+
style: "Style",
|
|
211
|
+
insert: "Insert",
|
|
212
|
+
paragraph: "Paragraph",
|
|
213
|
+
heading1: "Heading 1",
|
|
214
|
+
heading2: "Heading 2",
|
|
215
|
+
heading3: "Heading 3",
|
|
216
|
+
bulletList: "Bulleted list",
|
|
217
|
+
orderedList: "Numbered list",
|
|
218
|
+
blockquote: "Quote",
|
|
219
|
+
codeBlock: "Code block",
|
|
220
|
+
horizontalRule: "Divider",
|
|
221
|
+
image: "Image",
|
|
222
|
+
turnInto: "Turn into",
|
|
223
|
+
resetFormatting: "Reset formatting",
|
|
224
|
+
duplicate: "Duplicate",
|
|
225
|
+
moveUp: "Move up",
|
|
226
|
+
moveDown: "Move down",
|
|
227
|
+
delete: "Delete"
|
|
228
|
+
},
|
|
229
|
+
toolbar: {
|
|
230
|
+
link: "Link",
|
|
231
|
+
image: "Image",
|
|
232
|
+
format: "Format",
|
|
233
|
+
bold: "Bold",
|
|
234
|
+
italic: "Italic",
|
|
235
|
+
underline: "Underline",
|
|
236
|
+
strike: "Strikethrough",
|
|
237
|
+
title: "Title",
|
|
238
|
+
heading: "Heading",
|
|
239
|
+
subheading: "Subheading",
|
|
240
|
+
body: "Body",
|
|
241
|
+
mono: "Monospace",
|
|
242
|
+
bulletList: "Bulleted list",
|
|
243
|
+
orderedList: "Numbered list",
|
|
244
|
+
blockquote: "Block quote",
|
|
245
|
+
codeBlock: "Code block",
|
|
246
|
+
horizontalRule: "Divider",
|
|
247
|
+
clearFormatting: "Clear formatting",
|
|
248
|
+
undo: "Undo",
|
|
249
|
+
redo: "Redo"
|
|
250
|
+
},
|
|
251
|
+
ai: {
|
|
252
|
+
proofread: "Check spelling",
|
|
253
|
+
polish: "Polish writing",
|
|
254
|
+
continue: "Continue writing",
|
|
255
|
+
summarize: "Summarize briefly",
|
|
256
|
+
translateEn: "Translate to English",
|
|
257
|
+
translateKo: "Translate to Korean",
|
|
258
|
+
title: "Generate title from body",
|
|
259
|
+
custom: "Rewrite in a custom style…",
|
|
260
|
+
failed: "The AI task failed. Please try again."
|
|
261
|
+
},
|
|
262
|
+
youtubePrompt: "Enter a YouTube link.",
|
|
263
|
+
errors: {
|
|
264
|
+
coverMax: "You can upload up to {max} photos.",
|
|
265
|
+
imageUrlRequired: "Enter an image URL.",
|
|
266
|
+
imageUrlInvalid: "Enter a valid image URL.",
|
|
267
|
+
imageUrlHttps: "Only HTTPS image URLs are allowed.",
|
|
268
|
+
imageUrlCredentials: "URLs containing login credentials aren’t allowed.",
|
|
269
|
+
imageTimeout: "The image is taking too long to load.",
|
|
270
|
+
imageNotDisplayable: "This image can’t be displayed.",
|
|
271
|
+
imageLoadFailed: "Couldn’t load the image. Check the URL or whether the site allows external linking.",
|
|
272
|
+
editorNotReady: "The editor isn’t ready. Please try again.",
|
|
273
|
+
imageLinkFailed: "Couldn’t add the image link.",
|
|
274
|
+
imageOnly: "Only image files can be uploaded.",
|
|
275
|
+
imageTooLarge: "Original images must be {mb}MB or smaller.",
|
|
276
|
+
imageUploadFailed: "Image upload failed.",
|
|
277
|
+
pasteAsFile: "Paste or drag photos as files into the area above.",
|
|
278
|
+
postNotFound: "Post not found.",
|
|
279
|
+
loadPermission: "You don’t have permission to load this post. Check that you’re signed in.",
|
|
280
|
+
loadFailed: "Couldn’t load the post: {message}",
|
|
281
|
+
editPermission: "You don’t have permission to edit. Make sure it’s your post and you’re still signed in.",
|
|
282
|
+
titleRequired: "Enter a title.",
|
|
283
|
+
photoRequired: "Upload at least one photo.",
|
|
284
|
+
bodyRequired: "Write some text or attach an image.",
|
|
285
|
+
signInRequired: "Sign-in required.",
|
|
286
|
+
boardMissing: "No board was specified.",
|
|
287
|
+
writeRestricted: "Posting and commenting are temporarily restricted due to repeated content warnings.",
|
|
288
|
+
moderationBlocked: "This contains content that can’t be posted."
|
|
289
|
+
},
|
|
290
|
+
hint: {
|
|
291
|
+
reviewing: "Reviewing content…",
|
|
292
|
+
saving: "Saving…"
|
|
293
|
+
}
|
|
294
|
+
},
|
|
295
|
+
footer: {
|
|
296
|
+
introduction: "A board built on Nuxt 4, Vue 3 and TypeScript, using Nuxt UI and Firebase to keep posts and comments flowing smoothly.",
|
|
297
|
+
info: {
|
|
298
|
+
title: "Board info",
|
|
299
|
+
about: "About this board",
|
|
300
|
+
history: "Version history"
|
|
301
|
+
},
|
|
302
|
+
stack: {
|
|
303
|
+
ui: "Interface & experience",
|
|
304
|
+
data: "Data & sign-in",
|
|
305
|
+
writing: "Writing & convenience"
|
|
306
|
+
}
|
|
307
|
+
},
|
|
308
|
+
likes: {
|
|
309
|
+
signInRequired: "Please sign in.",
|
|
310
|
+
commentNotFound: "Comment not found."
|
|
311
|
+
},
|
|
312
|
+
list: {
|
|
313
|
+
introduction: "This board is built on Nuxt 4, Vue 3 and TypeScript. Nuxt UI and Tailwind CSS shape a comfortable interface, while Firebase Firestore, Auth, Storage and nuxt-vuefire keep posts and comments flowing smoothly.",
|
|
314
|
+
settings: "Settings",
|
|
315
|
+
loadFailed: "Couldn’t load the list: {error}",
|
|
316
|
+
empty: "No posts yet.",
|
|
317
|
+
photo: "Photo",
|
|
318
|
+
likeCount: "Likes {count}",
|
|
319
|
+
info: {
|
|
320
|
+
title: "Board info",
|
|
321
|
+
about: "About this board",
|
|
322
|
+
history: "Version history"
|
|
323
|
+
},
|
|
324
|
+
stack: {
|
|
325
|
+
framework: "Framework & language",
|
|
326
|
+
ui: "UI & styling",
|
|
327
|
+
backend: "Backend & data"
|
|
328
|
+
},
|
|
329
|
+
tech: {
|
|
330
|
+
nuxt: "Vue-based SSR framework",
|
|
331
|
+
vue: "Composition API · script setup",
|
|
332
|
+
typescript: "Type-safe data and components",
|
|
333
|
+
nuxtUi: "Board, form and modal UI",
|
|
334
|
+
tailwind: "Responsive · light/dark styles",
|
|
335
|
+
lucide: "Lightweight, consistent icons",
|
|
336
|
+
dayjs: "Readable dates and relative times",
|
|
337
|
+
firestore: "Real-time DB for posts and comments",
|
|
338
|
+
auth: "Secure sign-in and permissions",
|
|
339
|
+
storage: "Image and attachment storage",
|
|
340
|
+
vuefire: "Real-time Nuxt–Firebase binding"
|
|
341
|
+
}
|
|
342
|
+
},
|
|
343
|
+
listViewSwitch: {
|
|
344
|
+
default: "Default",
|
|
345
|
+
dense: "Compact",
|
|
346
|
+
video: "Video"
|
|
347
|
+
},
|
|
348
|
+
miniComments: {
|
|
349
|
+
empty: "No comments yet.",
|
|
350
|
+
blinded: "This comment was hidden by an admin."
|
|
351
|
+
},
|
|
352
|
+
miniList: { empty: "No posts yet." },
|
|
353
|
+
miniPicker: {
|
|
354
|
+
selectedCount: "Selected {count} / {max}",
|
|
355
|
+
layoutHint: "2+ show as a carousel, 4 as a grid",
|
|
356
|
+
searchPlaceholder: "Search titles",
|
|
357
|
+
loading: "Loading posts…",
|
|
358
|
+
noMore: "No more posts to pick."
|
|
359
|
+
},
|
|
360
|
+
miniPost: { empty: "No posts selected." },
|
|
361
|
+
moderation: {
|
|
362
|
+
reviewFailed: "We could not review your content, so it cannot be posted. Please try again shortly.",
|
|
363
|
+
writeRestricted: "Posting and commenting are temporarily restricted due to repeated content warnings."
|
|
364
|
+
},
|
|
365
|
+
moderationPrompt: {
|
|
366
|
+
localHit: "Expressions like “{hit}” aren’t allowed. Please rephrase.",
|
|
367
|
+
localGeneric: "This contains profanity, so it can’t be posted. Please rephrase.",
|
|
368
|
+
categoryBlocked: "This contains {category}, so it can’t be posted. Please edit it.",
|
|
369
|
+
genericBlocked: "This contains content that can’t be posted. Please edit it.",
|
|
370
|
+
categories: {
|
|
371
|
+
abuse: "profanity or insults",
|
|
372
|
+
spam: "spam or advertising",
|
|
373
|
+
adult: "sexual or adult content",
|
|
374
|
+
violence: "violence or threats",
|
|
375
|
+
other: "inappropriate content"
|
|
376
|
+
}
|
|
377
|
+
},
|
|
378
|
+
moderationStrike: {
|
|
379
|
+
liftSoon: "lifts soon",
|
|
380
|
+
liftInHours: "lifts in about {hours}h",
|
|
381
|
+
liftInDays: "lifts in about {days}d",
|
|
382
|
+
liftInDaysHours: "lifts in about {days}d {hours}h"
|
|
383
|
+
},
|
|
384
|
+
posts: {
|
|
385
|
+
boardIdRequired: "[memi-board] boardId is required.",
|
|
386
|
+
photoRequired: "Please add a photo.",
|
|
387
|
+
bodyRequired: "Please enter some text or attach an image.",
|
|
388
|
+
titleRequired: "Please enter a title."
|
|
389
|
+
},
|
|
390
|
+
profile: {
|
|
391
|
+
notFound: "User not found.",
|
|
392
|
+
noName: "No name",
|
|
393
|
+
joined: "Joined {time}",
|
|
394
|
+
lastVisit: "Last seen {time}"
|
|
395
|
+
},
|
|
396
|
+
profileEditModal: {
|
|
397
|
+
imageOnly: "Only image files can be selected.",
|
|
398
|
+
nameRequired: "Please enter a name.",
|
|
399
|
+
saveFailed: "Couldn’t save the profile.",
|
|
400
|
+
title: "Edit profile",
|
|
401
|
+
changePhoto: "Change photo",
|
|
402
|
+
name: "Name",
|
|
403
|
+
bio: "Bio",
|
|
404
|
+
bioPlaceholder: "Tell people about yourself"
|
|
405
|
+
},
|
|
406
|
+
reportButton: {
|
|
407
|
+
failed: "Couldn’t submit the report.",
|
|
408
|
+
reported: "Reported",
|
|
409
|
+
title: "Report post",
|
|
410
|
+
done: "Report received. Staff will review it.",
|
|
411
|
+
reason: "Reason",
|
|
412
|
+
detailPlaceholder: "Details (optional)",
|
|
413
|
+
submit: "Report"
|
|
414
|
+
},
|
|
415
|
+
reportList: {
|
|
416
|
+
staffOnly: "Only staff can view reports.",
|
|
417
|
+
loadFailed: "Couldn’t load the list: {error}",
|
|
418
|
+
empty: "No pending reports.",
|
|
419
|
+
untitled: "Untitled post",
|
|
420
|
+
author: "by {name}",
|
|
421
|
+
dismiss: "Dismiss",
|
|
422
|
+
confirm: "Resolve"
|
|
423
|
+
},
|
|
424
|
+
reports: {
|
|
425
|
+
reason: {
|
|
426
|
+
spam: "Spam / advertising",
|
|
427
|
+
abuse: "Abuse / hate / harassment",
|
|
428
|
+
adult: "Sexual content",
|
|
429
|
+
illegal: "Illegal content",
|
|
430
|
+
other: "Other"
|
|
431
|
+
},
|
|
432
|
+
fallbackLabel: "Report",
|
|
433
|
+
signInRequired: "Please sign in.",
|
|
434
|
+
cannotReportOwn: "You cannot report your own post.",
|
|
435
|
+
reasonRequired: "Please select a reason.",
|
|
436
|
+
detailTooLong: "Details can be up to {max} characters."
|
|
437
|
+
},
|
|
438
|
+
sectionUtil: {
|
|
439
|
+
kind: {
|
|
440
|
+
list: "Post list",
|
|
441
|
+
post: "Posts",
|
|
442
|
+
comments: "Comments"
|
|
443
|
+
},
|
|
444
|
+
sort: {
|
|
445
|
+
latest: "Latest",
|
|
446
|
+
likes: "Most liked"
|
|
447
|
+
},
|
|
448
|
+
untitledPost: "Post",
|
|
449
|
+
view: {
|
|
450
|
+
media: "Media",
|
|
451
|
+
list: "List"
|
|
452
|
+
}
|
|
453
|
+
},
|
|
454
|
+
sections: { defaultTitle: "Section {n}" },
|
|
455
|
+
seo: {
|
|
456
|
+
allCategory: "All",
|
|
457
|
+
boardDescription: "{name} board",
|
|
458
|
+
allDescription: "Board — announcements and community news.",
|
|
459
|
+
postFallbackTitle: "Post | {site}",
|
|
460
|
+
postFallbackDescription: "Board",
|
|
461
|
+
photo: "Photo",
|
|
462
|
+
postDescriptionFallback: "Board post",
|
|
463
|
+
listTitle: "{name} | {site}",
|
|
464
|
+
listTitleAll: "Board | {site}",
|
|
465
|
+
listDescription: "{name} — catch up on the latest posts.",
|
|
466
|
+
listDescriptionAll: "Board — announcements and stories."
|
|
467
|
+
},
|
|
468
|
+
settings: {
|
|
469
|
+
loading: "Loading settings…",
|
|
470
|
+
noAccess: "You don’t have access",
|
|
471
|
+
notFound: {
|
|
472
|
+
title: "Board not found",
|
|
473
|
+
checkAddress: "Please check the address.",
|
|
474
|
+
checkBoardAddress: "Please check the board address."
|
|
475
|
+
},
|
|
476
|
+
newBoard: {
|
|
477
|
+
title: "This board doesn’t exist yet",
|
|
478
|
+
description: "Fill in the details below and save to create it with this ID."
|
|
479
|
+
},
|
|
480
|
+
noLabel: "No label",
|
|
481
|
+
option: { default: "Standard" },
|
|
482
|
+
id: {
|
|
483
|
+
label: "Category ID",
|
|
484
|
+
help: "Used in the URL and data"
|
|
485
|
+
},
|
|
486
|
+
writeRole: {
|
|
487
|
+
label: "Who can post",
|
|
488
|
+
help: "Minimum role required to post in this category",
|
|
489
|
+
helpShort: "Minimum role required to post",
|
|
490
|
+
options: {
|
|
491
|
+
user: "Users and up",
|
|
492
|
+
staff: "Staff and up",
|
|
493
|
+
admin: "Admins only"
|
|
494
|
+
}
|
|
495
|
+
},
|
|
496
|
+
commentWriteRole: {
|
|
497
|
+
label: "Who can comment",
|
|
498
|
+
help: "Minimum role required to comment in this category",
|
|
499
|
+
helpShort: "Minimum role required to comment",
|
|
500
|
+
hiddenHelp: "Comments on hidden boards don’t appear in the public feed, and only assigned staff can write them",
|
|
501
|
+
hiddenFixed: "Assigned staff only (fixed for hidden boards)"
|
|
502
|
+
},
|
|
503
|
+
staff: {
|
|
504
|
+
label: "Assigned staff",
|
|
505
|
+
help: "Only the selected staff can configure and manage this board. Leave empty for admins only",
|
|
506
|
+
placeholder: "Admins only (no staff assigned)"
|
|
507
|
+
},
|
|
508
|
+
label: {
|
|
509
|
+
label: "Display name",
|
|
510
|
+
help: "The name users see"
|
|
511
|
+
},
|
|
512
|
+
description: {
|
|
513
|
+
label: "Description",
|
|
514
|
+
help: "Shown at the top of the board and elsewhere",
|
|
515
|
+
placeholder: "A short description of this board (optional)"
|
|
516
|
+
},
|
|
517
|
+
visibility: {
|
|
518
|
+
label: "Visibility",
|
|
519
|
+
help: "Hidden boards don’t appear in the all-boards filter, and posts can only be read by admins, assigned staff, and their authors. Only assigned staff can comment",
|
|
520
|
+
options: {
|
|
521
|
+
public: {
|
|
522
|
+
label: "Visible",
|
|
523
|
+
description: "Shown in the full list and filters"
|
|
524
|
+
},
|
|
525
|
+
hidden: {
|
|
526
|
+
label: "Hidden",
|
|
527
|
+
description: "Journal or private. Only assigned staff can comment"
|
|
528
|
+
}
|
|
529
|
+
}
|
|
530
|
+
},
|
|
531
|
+
listView: {
|
|
532
|
+
label: "List view",
|
|
533
|
+
help: "How the post list is displayed",
|
|
534
|
+
options: {
|
|
535
|
+
dense: "Compact",
|
|
536
|
+
video: "Video"
|
|
537
|
+
}
|
|
538
|
+
},
|
|
539
|
+
editorType: {
|
|
540
|
+
label: "Post form",
|
|
541
|
+
help: "How posts are written",
|
|
542
|
+
options: {
|
|
543
|
+
default: "Write a title and body",
|
|
544
|
+
image: "Add multiple photos and a cover photo"
|
|
545
|
+
}
|
|
546
|
+
},
|
|
547
|
+
locale: {
|
|
548
|
+
label: "Board language",
|
|
549
|
+
help: "Leave empty to follow the site language. If set, this board always appears in that language.",
|
|
550
|
+
auto: "Auto (follow site language)"
|
|
551
|
+
},
|
|
552
|
+
action: {
|
|
553
|
+
moveDown: "Down",
|
|
554
|
+
goToBoard: "Go to board",
|
|
555
|
+
deleteBoard: "Delete board",
|
|
556
|
+
create: "Create"
|
|
557
|
+
},
|
|
558
|
+
newCategoryPlaceholder: "New category name",
|
|
559
|
+
deleteConfirm: "Delete the “{label}” board?\n\nAll posts, comments, replies, inline images, and attachments on this board will be permanently deleted. This can’t be undone.",
|
|
560
|
+
savedCategory: "Saved the “{label}” category.",
|
|
561
|
+
savedSettings: "Board settings saved.",
|
|
562
|
+
created: "Board created.",
|
|
563
|
+
error: {
|
|
564
|
+
orderFailed: "Couldn’t save the category order.",
|
|
565
|
+
deleteFailed: "Couldn’t delete the board and its data.",
|
|
566
|
+
saveFailed: "Couldn’t save the board settings.",
|
|
567
|
+
deleteAllFailed: "Couldn’t delete the board data."
|
|
568
|
+
},
|
|
569
|
+
danger: {
|
|
570
|
+
title: "Danger zone",
|
|
571
|
+
description: "Permanently deletes all posts, comments, attachments, and category settings. Board users and admin roles are kept.",
|
|
572
|
+
confirmLabel: "Type “{phrase}” to confirm",
|
|
573
|
+
phrase: "delete board data",
|
|
574
|
+
button: "Delete all data",
|
|
575
|
+
done: "All board data has been deleted."
|
|
576
|
+
}
|
|
577
|
+
},
|
|
578
|
+
shareButton: { copied: "Link copied" },
|
|
579
|
+
signIn: {
|
|
580
|
+
withGoogle: "Sign in with Google",
|
|
581
|
+
withApple: "Sign in with Apple",
|
|
582
|
+
or: "or",
|
|
583
|
+
name: "Name",
|
|
584
|
+
email: "Email",
|
|
585
|
+
password: "Password",
|
|
586
|
+
signUp: "Sign up",
|
|
587
|
+
toSignUp: "Don’t have an account? Sign up",
|
|
588
|
+
toSignIn: "Already have an account? Sign in"
|
|
589
|
+
},
|
|
590
|
+
storage: {
|
|
591
|
+
tooLargeAfterCompress: "The image is still larger than 5MB after compression. Please choose a smaller image.",
|
|
592
|
+
sourceTooLarge: "The original image must be {max}MB or smaller.",
|
|
593
|
+
heicUnsupported: "HEIC photos cannot be uploaded directly. Pick it from the Photos app or convert it to JPG, PNG, or WebP.",
|
|
594
|
+
cannotOptimize: "This image format cannot be optimized in the browser. Please convert it to JPG, PNG, or WebP.",
|
|
595
|
+
imageOnly: "Only image files can be uploaded.",
|
|
596
|
+
canvasUnavailable: "Canvas is not available",
|
|
597
|
+
compressFailed: "Compression failed",
|
|
598
|
+
loadFailed: "Failed to load image"
|
|
599
|
+
},
|
|
600
|
+
swipeHint: {
|
|
601
|
+
title: "Try swiping left or right",
|
|
602
|
+
description: "Swipe left for the next post, right for the previous one."
|
|
603
|
+
},
|
|
604
|
+
userCommentList: {
|
|
605
|
+
loadFailed: "Couldn’t load the list: {error}",
|
|
606
|
+
empty: "No comments yet.",
|
|
607
|
+
blinded: "This comment was hidden by an admin.",
|
|
608
|
+
likes: "{count} likes"
|
|
609
|
+
},
|
|
610
|
+
userPostList: {
|
|
611
|
+
loadFailed: "Couldn’t load the list: {error}",
|
|
612
|
+
empty: "No posts yet."
|
|
613
|
+
},
|
|
614
|
+
users: {
|
|
615
|
+
changeRoleFailed: "Couldn’t change the role.",
|
|
616
|
+
loading: "Loading users…",
|
|
617
|
+
noPermission: {
|
|
618
|
+
title: "No permission",
|
|
619
|
+
description: "Only board admins can manage user roles."
|
|
620
|
+
},
|
|
621
|
+
empty: "No users have signed in to the board yet.",
|
|
622
|
+
noName: "No name",
|
|
623
|
+
moderationWarnings: "{count} content warnings"
|
|
624
|
+
},
|
|
625
|
+
writingAssistant: {
|
|
626
|
+
loginRequired: "Sign in to use the AI writing assistant.",
|
|
627
|
+
userMissing: "Couldn’t verify your user info. Please try again.",
|
|
628
|
+
dailyLimit: "The AI writing assistant can be used up to {limit} times a day. Please try again in about {hours} hour(s).",
|
|
629
|
+
contentRequired: "Enter some content for the AI to work on first.",
|
|
630
|
+
customRequired: "Enter an instruction for how to rewrite it.",
|
|
631
|
+
emptyResult: "The AI couldn’t produce a result. Please try again.",
|
|
632
|
+
failed: "The AI task failed. Please try again.",
|
|
633
|
+
actions: {
|
|
634
|
+
proofread: "Check spelling",
|
|
635
|
+
polish: "Polish sentences",
|
|
636
|
+
continue: "Continue writing",
|
|
637
|
+
summarize: "Summarize",
|
|
638
|
+
translateEn: "Translate to English",
|
|
639
|
+
translateKo: "Translate to Korean",
|
|
640
|
+
title: "Generate title from body",
|
|
641
|
+
custom: "Rewrite in a custom style…"
|
|
642
|
+
}
|
|
643
|
+
}
|
|
644
|
+
};
|
|
645
|
+
//#endregion
|
|
646
|
+
export { e as default };
|
|
647
|
+
|
|
648
|
+
//# sourceMappingURL=en-BVUBLkxc.js.map
|