diff --git a/apps/frontend/nuxt.config.ts b/apps/frontend/nuxt.config.ts index 354bff294..e84ae0c0f 100644 --- a/apps/frontend/nuxt.config.ts +++ b/apps/frontend/nuxt.config.ts @@ -34,7 +34,7 @@ const enabledLocales: string[] = []; /** * Overrides for the categories of the certain locales. */ -const localesCategoriesOverrides: Partial> = { +const localesCategoriesOverrides: Partial = { "en-x-pirate": "fun", "en-x-updown": "fun", "en-x-lolcat": "fun", @@ -260,21 +260,28 @@ export default defineNuxtConfig({ const omorphiaLocales: string[] = []; const omorphiaLocaleSets = new Map(); - for await (const localeDir of globIterate("node_modules/@modrinth/ui/src/locales/*", { - posix: true, - })) { - const tag = basename(localeDir); - omorphiaLocales.push(tag); + const externalLocales = [ + "node_modules/@modrinth/ui/src/locales/en-US", + "node_modules/@modrinth/moderation/locales/en-US", + ]; - const localeFiles: { from: string; format?: string }[] = []; + for (const localePath of externalLocales) { + for await (const localeDir of globIterate(localePath, { + posix: true, + })) { + const tag = basename(localeDir); + omorphiaLocales.push(tag); - omorphiaLocaleSets.set(tag, { files: localeFiles }); + const localeFiles: { from: string; format?: string }[] = []; - for await (const localeFile of globIterate(`${localeDir}/*`, { posix: true })) { - localeFiles.push({ - from: pathToFileURL(localeFile).toString(), - format: "default", - }); + omorphiaLocaleSets.set(tag, { files: localeFiles }); + + for await (const localeFile of globIterate(`${localeDir}/*`, { posix: true })) { + localeFiles.push({ + from: pathToFileURL(localeFile).toString(), + format: "default", + }); + } } } @@ -301,7 +308,7 @@ export default defineNuxtConfig({ format: "crowdin", }); } else if (fileName === "meta.json") { - const meta: Record = await fs + const meta: Record = await fs .readFile(localeFile, "utf8") .then((date) => JSON.parse(date)); const localeMeta = (locale.meta ??= {}); diff --git a/apps/frontend/src/components/ui/ProjectMemberHeader.vue b/apps/frontend/src/components/ui/ProjectMemberHeader.vue index 9bef20859..9afe2d16d 100644 --- a/apps/frontend/src/components/ui/ProjectMemberHeader.vue +++ b/apps/frontend/src/components/ui/ProjectMemberHeader.vue @@ -1,510 +1,442 @@ - diff --git a/apps/frontend/src/locales/en-US/index.json b/apps/frontend/src/locales/en-US/index.json index e6a708f7b..bf910c1e9 100644 --- a/apps/frontend/src/locales/en-US/index.json +++ b/apps/frontend/src/locales/en-US/index.json @@ -533,6 +533,69 @@ "profile.user-id": { "message": "User ID: {id}" }, + "project-member-header.accept": { + "message": "Accept" + }, + "project-member-header.decline": { + "message": "Decline" + }, + "project-member-header.error": { + "message": "Error" + }, + "project-member-header.error-decline": { + "message": "Failed to decline team invitation" + }, + "project-member-header.error-join": { + "message": "Failed to accept team invitation" + }, + "project-member-header.invitation-no-role": { + "message": "You've been invited to join this project. Please accept or decline the invitation." + }, + "project-member-header.invitation-title": { + "message": "Invitation to join project" + }, + "project-member-header.invitation-with-role": { + "message": "You've been invited be a member of this project with the role of '{role}'." + }, + "project-member-header.publishing-checklist": { + "message": "Publishing checklist" + }, + "project-member-header.required": { + "message": "Required" + }, + "project-member-header.resubmit-for-review": { + "message": "Resubmit for review" + }, + "project-member-header.resubmit-for-review-desc": { + "message": "Your project has been {status} by Modrinth's staff. In most cases, you can resubmit for review after addressing the staff's message." + }, + "project-member-header.submit-checklist-tooltip": { + "message": "You must complete the required steps in the publishing checklist!" + }, + "project-member-header.submit-for-review": { + "message": "Submit for review" + }, + "project-member-header.submit-for-review-desc": { + "message": "Your project is only viewable by members of the project. It must be reviewed by moderators in order to be published." + }, + "project-member-header.success": { + "message": "Success" + }, + "project-member-header.success-decline": { + "message": "You have declined the team invitation" + }, + "project-member-header.success-join": { + "message": "You have joined the project team" + }, + "project-member-header.suggestion": { + "message": "Suggestion" + }, + "project-member-header.visit-moderation-page": { + "message": "Visit moderation page" + }, + "project-member-header.warning": { + "message": "Warning" + }, "project-type.collection.plural": { "message": "Collections" }, diff --git a/apps/frontend/src/pages/[type]/[id]/settings/description.vue b/apps/frontend/src/pages/[type]/[id]/settings/description.vue index 174d4bc9c..45f0a8eb8 100644 --- a/apps/frontend/src/pages/[type]/[id]/settings/description.vue +++ b/apps/frontend/src/pages/[type]/[id]/settings/description.vue @@ -22,6 +22,10 @@ " :on-image-upload="onUploadHandler" /> +
+ + {{ descriptionWarning }} +