diff --git a/_typos.toml b/_typos.toml index 7775afa964..9eac179cb5 100644 --- a/_typos.toml +++ b/_typos.toml @@ -9,6 +9,8 @@ extend-exclude = [ # contains licenses like `CC-BY-ND-4.0` "packages/moderation/src/data/stages/license.ts", "packages/moderation/src/utils.ts", + # contains profanity word lists with deliberate misspellings + "packages/moderation/src/validators/profanity/", # contains payment card IDs like `IY1VMST1MOXS` which are flagged "apps/labrinth/src/queue/payouts/mod.rs", # contains domain names with deliberate typos diff --git a/apps/frontend/src/locales/en-US/index.json b/apps/frontend/src/locales/en-US/index.json index 6f3e4b030d..02373f1e3f 100644 --- a/apps/frontend/src/locales/en-US/index.json +++ b/apps/frontend/src/locales/en-US/index.json @@ -4040,6 +4040,12 @@ "project.settings.head-title": { "message": "⚙️ {section} - {project}" }, + "project.settings.links.donation.duplicate-type": { + "message": "You already have another {platform} link." + }, + "project.settings.links.donation.no-type": { + "message": "Please select a platform for this Donation link." + }, "project.settings.monetization.description": { "message": "Projects on Modrinth are automatically enrolled in the Rewards Program. If you don't want to (or can't for legal reasons) earn revenue from this project, you can turn it off here." }, @@ -4244,6 +4250,15 @@ "project.settings.tags.upload-version-first.heading": { "message": "Upload versions before adding tags" }, + "project.text-validation.non-standard-text": { + "message": "Non-standard text characters are not allowed." + }, + "project.text-validation.profanity": { + "message": "Profanity is not allowed." + }, + "project.text-validation.slur": { + "message": "Slurs are not allowed." + }, "project.versions.copy-id-option": { "message": "Copy ID" }, diff --git a/apps/frontend/src/pages/[type]/[project]/settings/links.vue b/apps/frontend/src/pages/[type]/[project]/settings/links.vue index 2d760d1c70..6827726d2c 100644 --- a/apps/frontend/src/pages/[type]/[project]/settings/links.vue +++ b/apps/frontend/src/pages/[type]/[project]/settings/links.vue @@ -202,9 +202,9 @@ import { } from '@modrinth/moderation' import { Combobox, + commonProjectSettingsMessages, ConfirmLeaveModal, defineMessage, - commonProjectSettingsMessages, injectModrinthClient, injectNotificationManager, injectProjectPageContext, diff --git a/packages/moderation/src/locales/en-US/index.json b/packages/moderation/src/locales/en-US/index.json index 8edd45c4a0..80597a398a 100644 --- a/packages/moderation/src/locales/en-US/index.json +++ b/packages/moderation/src/locales/en-US/index.json @@ -119,6 +119,60 @@ "nags.link-shortener-usage.title": { "defaultMessage": "Don't use link shorteners" }, + "nags.link.discord.channel": { + "defaultMessage": "This is a link to a Discord channel, not a server invite." + }, + "nags.link.discord.invite.expires": { + "defaultMessage": "This Discord invite is set to expire" + }, + "nags.link.discord.invite.invalid": { + "defaultMessage": "This Discord invite is invalid or has expired." + }, + "nags.link.discord.invite.not-guild": { + "defaultMessage": "This Discord invite does not lead to a server." + }, + "nags.link.discord.user": { + "defaultMessage": "This is a link to a Discord user, not a server invite." + }, + "nags.link.expected-type": { + "defaultMessage": "This isn't a valid {label} link." + }, + "nags.link.git.archived": { + "defaultMessage": "This repository is archived, which disables issues." + }, + "nags.link.git.empty": { + "defaultMessage": "This repository appears to be empty." + }, + "nags.link.git.issues-disabled": { + "defaultMessage": "Issues are disabled on this repository." + }, + "nags.link.git.not-found": { + "defaultMessage": "This repository could not be found (it may be private or deleted)." + }, + "nags.link.git.wiki-disabled": { + "defaultMessage": "The wiki is disabled on this repository." + }, + "nags.link.invalid-url": { + "defaultMessage": "This is not a valid URL." + }, + "nags.link.license.url-mismatch": { + "defaultMessage": "This link points to the {detected} license, but your project is set to {selected}." + }, + "nags.link.license.url-redundant": { + "defaultMessage": "You don't need to link to a generic license page for a supported license — consider linking to your repository's own license file instead, or leaving this blank." + }, + "nags.link.never-valid": { + "defaultMessage": "{label} links aren't allowed here." + }, + "nags.link.unverifiable-redirect": { + "defaultMessage": "This doesn't look like a {platform} link." + }, + "nags.link.wrong-field": { + "defaultMessage": "{label} links aren't valid for this field." + }, + "nags.link.youtube.unrecognized": { + "defaultMessage": "This doesn't look like a YouTube donation link." + }, "nags.long-headers.description": { "defaultMessage": "{count, plural, one {# header} other {# headers}} in your description {count, plural, one {is} other {are}} too long. Headers should be concise and act as section titles, not full sentences." },