diff --git a/apps/app-frontend/src/components/ui/instance_settings/InstallationSettings.vue b/apps/app-frontend/src/components/ui/instance_settings/InstallationSettings.vue index 93cf9bc553..3e6915c365 100644 --- a/apps/app-frontend/src/components/ui/instance_settings/InstallationSettings.vue +++ b/apps/app-frontend/src/components/ui/instance_settings/InstallationSettings.vue @@ -435,7 +435,7 @@ const messages = defineMessages({ unlinkInstanceConfirmDescription: { id: 'instance.settings.tabs.installation.unlink.confirm.description', defaultMessage: - 'If you proceed, you will not be able to re-link it without creating an entirely new instance. You will no longer receive modpack updates and it will become a normal.', + 'If you proceed, you will not be able to re-link it without creating an entirely new instance. You will no longer receive modpack updates and it will become a normal instance.', }, reinstallModpackConfirmTitle: { id: 'instance.settings.tabs.installation.reinstall.confirm.title', diff --git a/apps/app-frontend/src/locales/en-US/index.json b/apps/app-frontend/src/locales/en-US/index.json index d621401151..b76a26a3e7 100644 --- a/apps/app-frontend/src/locales/en-US/index.json +++ b/apps/app-frontend/src/locales/en-US/index.json @@ -468,7 +468,7 @@ "message": "Unlink instance" }, "instance.settings.tabs.installation.unlink.confirm.description": { - "message": "If you proceed, you will not be able to re-link it without creating an entirely new instance. You will no longer receive modpack updates and it will become a normal." + "message": "If you proceed, you will not be able to re-link it without creating an entirely new instance. You will no longer receive modpack updates and it will become a normal instance." }, "instance.settings.tabs.installation.unlink.confirm.title": { "message": "Are you sure you want to unlink this instance?" diff --git a/apps/frontend/src/components/ui/dashboard/withdraw-stages/MuralpayKycStage.vue b/apps/frontend/src/components/ui/dashboard/withdraw-stages/MuralpayKycStage.vue index f5d7321354..ae2ea27871 100644 --- a/apps/frontend/src/components/ui/dashboard/withdraw-stages/MuralpayKycStage.vue +++ b/apps/frontend/src/components/ui/dashboard/withdraw-stages/MuralpayKycStage.vue @@ -345,7 +345,7 @@ watch( const messages = defineMessages({ entityQuestion: { id: 'dashboard.creator-withdraw-modal.kyc.entity-question', - defaultMessage: 'Are you a withdrawing as an individual or business?', + defaultMessage: 'Are you withdrawing as an individual or a business?', }, entityDescription: { id: 'dashboard.creator-withdraw-modal.kyc.entity-description', diff --git a/apps/frontend/src/components/ui/servers/marketing/MedalPlanPromotion.vue b/apps/frontend/src/components/ui/servers/marketing/MedalPlanPromotion.vue index 2381c3c6fc..1c233781d4 100644 --- a/apps/frontend/src/components/ui/servers/marketing/MedalPlanPromotion.vue +++ b/apps/frontend/src/components/ui/servers/marketing/MedalPlanPromotion.vue @@ -49,7 +49,7 @@ const messages = defineMessages({ info: { id: 'hosting-marketing.medal.info', defaultMessage: - 'Try a free 3GB server for 5 days powered by Medal', + 'Try a free 3 GB server for 5 days powered by Medal', }, textSecondary: { id: 'hosting-marketing.medal.text-secondary', diff --git a/apps/frontend/src/components/ui/servers/marketing/ServerPlanSelector.vue b/apps/frontend/src/components/ui/servers/marketing/ServerPlanSelector.vue index acddaf0eed..aaab0a63dc 100644 --- a/apps/frontend/src/components/ui/servers/marketing/ServerPlanSelector.vue +++ b/apps/frontend/src/components/ui/servers/marketing/ServerPlanSelector.vue @@ -133,7 +133,6 @@ const billingMonths = computed(() => { {{ formatPrice(locale, price / billingMonths, currency, true) }} - {{ isUsa ? '' : currency }} / month diff --git a/apps/frontend/src/composables/auth/scopes.ts b/apps/frontend/src/composables/auth/scopes.ts index 39f1a0211c..15e78f7da2 100644 --- a/apps/frontend/src/composables/auth/scopes.ts +++ b/apps/frontend/src/composables/auth/scopes.ts @@ -319,7 +319,7 @@ export const scopeMessages = defineMessages({ }, sessionAccessDescription: { id: 'scopes.sessionAccess.description', - defaultMessage: 'Access modrinth-issued sessions', + defaultMessage: 'Access Modrinth-issued sessions', }, }) diff --git a/apps/frontend/src/locales/en-US/index.json b/apps/frontend/src/locales/en-US/index.json index 58d79aa6be..7a1353cb1e 100644 --- a/apps/frontend/src/locales/en-US/index.json +++ b/apps/frontend/src/locales/en-US/index.json @@ -39,7 +39,7 @@ "message": "Download options" }, "app-marketing.download.terms": { - "message": "By downloading Modrinth App you agree to our Terms and Privacy Policy." + "message": "By downloading Modrinth App, you agree to our Terms and Privacy Policy." }, "app-marketing.download.title": { "message": "Download Modrinth App (Beta)" @@ -108,7 +108,7 @@ "message": "% CPU" }, "app-marketing.features.performance.description": { - "message": "Modrinth App performs better than many of the leading mod managers, using just 150mb of RAM!" + "message": "Modrinth App performs better than many of the leading mod managers, using just 150 MB of RAM!" }, "app-marketing.features.performance.discord": { "message": "Discord" @@ -633,7 +633,7 @@ "message": "A business entity refers to a registered organization such as a corporation, partnership, or LLC." }, "dashboard.creator-withdraw-modal.kyc.entity-question": { - "message": "Are you a withdrawing as an individual or business?" + "message": "Are you withdrawing as an individual or a business?" }, "dashboard.creator-withdraw-modal.kyc.private-individual": { "message": "Private individual" @@ -1107,7 +1107,7 @@ "message": "Do Modrinth Hosting servers have DDoS protection?" }, "hosting-marketing.faq.ddos-protection.answer": { - "message": "Yes. All Modrinth Hosting servers come with DDoS protection, with up to 17Tbps capacity in some locations." + "message": "Yes. All Modrinth Hosting servers come with DDoS protection, with up to 17 Tbps capacity in some locations." }, "hosting-marketing.faq.heading": { "message": "Frequently Asked Questions" @@ -1215,7 +1215,7 @@ "message": "Know exactly what you need?" }, "hosting-marketing.medal.info": { - "message": "Try a free 3GB server for 5 days powered by Medal" + "message": "Try a free 3 GB server for 5 days powered by Medal" }, "hosting-marketing.medal.learn-more": { "message": "Learn more" @@ -2631,7 +2631,7 @@ "message": "Write reports" }, "scopes.sessionAccess.description": { - "message": "Access modrinth-issued sessions" + "message": "Access Modrinth-issued sessions" }, "scopes.sessionAccess.label": { "message": "Access sessions" @@ -2784,7 +2784,7 @@ "message": "Add more" }, "settings.applications.button.add-redirect-uri": { - "message": "Add a redirect uri" + "message": "Add a redirect URI" }, "settings.applications.button.cancel": { "message": "Cancel" @@ -2847,7 +2847,7 @@ "message": "https://example.com/auth/callback" }, "settings.applications.field.redirect-uris": { - "message": "Redirect uris" + "message": "Redirect URIs" }, "settings.applications.field.scopes": { "message": "Scopes" @@ -3006,7 +3006,7 @@ "message": "Create a PAT" }, "settings.pats.description": { - "message": "PATs can be used to access Modrinth's API. For more information, see Modrinth's API documentation. They can be created and revoked at any time." + "message": "PATs can be used to access Modrinth's API. They can be created and revoked at any time. For more information, see Modrinth's API documentation." }, "settings.pats.modal.create.action": { "message": "Create PAT" diff --git a/apps/frontend/src/pages/app.vue b/apps/frontend/src/pages/app.vue index d089377a3c..316d75d310 100644 --- a/apps/frontend/src/pages/app.vue +++ b/apps/frontend/src/pages/app.vue @@ -380,7 +380,7 @@ const messages = defineMessages({ performantDescription: { id: 'app-marketing.features.performance.description', defaultMessage: - 'Modrinth App performs better than many of the leading mod managers, using just 150mb of RAM!', + 'Modrinth App performs better than many of the leading mod managers, using just 150 MB of RAM!', }, websiteIntegration: { id: 'app-marketing.features.website.title', @@ -485,7 +485,7 @@ const messages = defineMessages({ downloadTerms: { id: 'app-marketing.download.terms', defaultMessage: - 'By downloading Modrinth App you agree to our Terms and Privacy Policy.', + 'By downloading Modrinth App, you agree to our Terms and Privacy Policy.', }, linuxDisclaimer: { id: 'app-marketing.download.linux-disclaimer', diff --git a/apps/frontend/src/pages/hosting/index.vue b/apps/frontend/src/pages/hosting/index.vue index bab6725db7..6407de5a0b 100644 --- a/apps/frontend/src/pages/hosting/index.vue +++ b/apps/frontend/src/pages/hosting/index.vue @@ -860,7 +860,7 @@ const messages = defineMessages({ faqDDOSProtectionAnswer: { id: 'hosting-marketing.faq.ddos-protection.answer', defaultMessage: - 'Yes. All Modrinth Hosting servers come with DDoS protection, with up to 17Tbps capacity in some locations.', + 'Yes. All Modrinth Hosting servers come with DDoS protection, with up to 17 Tbps capacity in some locations.', }, faqLocation: { id: 'hosting-marketing.faq.location', diff --git a/apps/frontend/src/pages/settings/applications.vue b/apps/frontend/src/pages/settings/applications.vue index 048f63a29f..7dc341651b 100644 --- a/apps/frontend/src/pages/settings/applications.vue +++ b/apps/frontend/src/pages/settings/applications.vue @@ -337,7 +337,7 @@ const messages = defineMessages({ }, redirectUrisLabel: { id: 'settings.applications.field.redirect-uris', - defaultMessage: 'Redirect uris', + defaultMessage: 'Redirect URIs', }, redirectUriPlaceholder: { id: 'settings.applications.field.redirect-uri.placeholder', @@ -349,7 +349,7 @@ const messages = defineMessages({ }, addRedirectUri: { id: 'settings.applications.button.add-redirect-uri', - defaultMessage: 'Add a redirect uri', + defaultMessage: 'Add a redirect URI', }, cancel: { id: 'settings.applications.button.cancel', diff --git a/apps/frontend/src/pages/settings/pats.vue b/apps/frontend/src/pages/settings/pats.vue index 7b2614b3a5..c015c7fa0d 100644 --- a/apps/frontend/src/pages/settings/pats.vue +++ b/apps/frontend/src/pages/settings/pats.vue @@ -287,7 +287,7 @@ const messages = defineMessages({ description: { id: 'settings.pats.description', defaultMessage: - "PATs can be used to access Modrinth's API. For more information, see Modrinth's API documentation. They can be created and revoked at any time.", + "PATs can be used to access Modrinth's API. They can be created and revoked at any time. For more information, see Modrinth's API documentation.", }, create: { id: 'settings.pats.action.create', diff --git a/packages/assets/generated-icons.ts b/packages/assets/generated-icons.ts index 22569d9b31..d960a5f4da 100644 --- a/packages/assets/generated-icons.ts +++ b/packages/assets/generated-icons.ts @@ -3,8 +3,6 @@ import type { FunctionalComponent, SVGAttributes } from 'vue' -export type IconComponent = FunctionalComponent - import _AffiliateIcon from './icons/affiliate.svg?component' import _AlignLeftIcon from './icons/align-left.svg?component' import _ArchiveIcon from './icons/archive.svg?component' @@ -327,6 +325,8 @@ import _XCircleIcon from './icons/x-circle.svg?component' import _ZoomInIcon from './icons/zoom-in.svg?component' import _ZoomOutIcon from './icons/zoom-out.svg?component' +export type IconComponent = FunctionalComponent + export const AffiliateIcon = _AffiliateIcon export const AlignLeftIcon = _AlignLeftIcon export const ArchiveIcon = _ArchiveIcon diff --git a/packages/ui/src/components/project/settings/environment/environments.ts b/packages/ui/src/components/project/settings/environment/environments.ts index 4c34ebcaea..585ee060ef 100644 --- a/packages/ui/src/components/project/settings/environment/environments.ts +++ b/packages/ui/src/components/project/settings/environment/environments.ts @@ -30,7 +30,7 @@ export const ENVIRONMENTS_COPY: Record< description: defineMessage({ id: 'project.environment.server-only.description', defaultMessage: - 'All functionality is done server-side and is compatible with vanilla clients.', + 'All functionality is done server-side and is compatible with vanilla clients. Also works on the internal server in singleplayer.', }), }, singleplayer_only: { @@ -52,7 +52,7 @@ export const ENVIRONMENTS_COPY: Record< description: defineMessage({ id: 'project.environment.dedicated-server-only.description', defaultMessage: - 'All functionality is done server-side and is compatible with vanilla clients.', + 'All functionality is done server-side and is compatible with vanilla clients. Only works on dedicated servers.', }), }, client_and_server: { @@ -62,8 +62,7 @@ export const ENVIRONMENTS_COPY: Record< }), description: defineMessage({ id: 'project.environment.client-and-server.description', - defaultMessage: - 'Has some functionality on both the client and server, even if only partially.', + defaultMessage: 'Required on both the client and server.', }), }, client_only_server_optional: { @@ -74,7 +73,7 @@ export const ENVIRONMENTS_COPY: Record< description: defineMessage({ id: 'project.environment.client-only-server-optional.description', defaultMessage: - 'Has some functionality on both the client and server, even if only partially.', + 'Most functionality is client-side, but installing it on the server enables enhanced functionality.', }), }, server_only_client_optional: { @@ -85,7 +84,7 @@ export const ENVIRONMENTS_COPY: Record< description: defineMessage({ id: 'project.environment.server-only-client-optional.description', defaultMessage: - 'Has some functionality on both the client and server, even if only partially.', + 'Most functionality is server-side, but installing it on the client enables enhanced functionality.', }), }, client_or_server: { @@ -107,7 +106,7 @@ export const ENVIRONMENTS_COPY: Record< description: defineMessage({ id: 'project.environment.client-or-server-prefers-both.description', defaultMessage: - 'Has some functionality on both the client and server, even if only partially.', + 'Has some functionality on both the client and server, even if only partially. Installing it on both leads to the best experience.', }), }, unknown: { diff --git a/packages/ui/src/locales/en-US/index.json b/packages/ui/src/locales/en-US/index.json index 37502c870d..79cdfe6ba7 100644 --- a/packages/ui/src/locales/en-US/index.json +++ b/packages/ui/src/locales/en-US/index.json @@ -258,7 +258,7 @@ "defaultMessage": "Performance impact" }, "header.category.resolutions": { - "defaultMessage": "Resolutions" + "defaultMessage": "Resolution" }, "hosting.specs.burst": { "defaultMessage": "Bursts up to {cpus} CPUs" @@ -429,7 +429,7 @@ "defaultMessage": "Password" }, "label.played": { - "defaultMessage": "Played {time}" + "defaultMessage": "Played {ago}" }, "label.project": { "defaultMessage": "Project" @@ -825,13 +825,13 @@ "defaultMessage": "{count} {count, plural, one {download} other {downloads}}" }, "project.environment.client-and-server.description": { - "defaultMessage": "Has some functionality on both the client and server, even if only partially." + "defaultMessage": "Required on both the client and server." }, "project.environment.client-and-server.title": { "defaultMessage": "Client and server, required on both" }, "project.environment.client-only-server-optional.description": { - "defaultMessage": "Has some functionality on both the client and server, even if only partially." + "defaultMessage": "Most functionality is client-side, but installing it on the server enables enhanced functionality." }, "project.environment.client-only-server-optional.title": { "defaultMessage": "Client and server, optional on server" @@ -843,7 +843,7 @@ "defaultMessage": "Client-side only" }, "project.environment.client-or-server-prefers-both.description": { - "defaultMessage": "Has some functionality on both the client and server, even if only partially." + "defaultMessage": "Has some functionality on both the client and server, even if only partially. Installing it on both leads to the best experience." }, "project.environment.client-or-server-prefers-both.title": { "defaultMessage": "Client and server, best when installed on both" @@ -855,19 +855,19 @@ "defaultMessage": "Client and server, optional on both" }, "project.environment.dedicated-server-only.description": { - "defaultMessage": "All functionality is done server-side and is compatible with vanilla clients." + "defaultMessage": "All functionality is done server-side and is compatible with vanilla clients. Only works on dedicated servers." }, "project.environment.dedicated-server-only.title": { "defaultMessage": "Server-side only" }, "project.environment.server-only-client-optional.description": { - "defaultMessage": "Has some functionality on both the client and server, even if only partially." + "defaultMessage": "Most functionality is server-side, but installing it on the client enables enhanced functionality." }, "project.environment.server-only-client-optional.title": { "defaultMessage": "Client and server, optional on client" }, "project.environment.server-only.description": { - "defaultMessage": "All functionality is done server-side and is compatible with vanilla clients." + "defaultMessage": "All functionality is done server-side and is compatible with vanilla clients. Also works on the internal server in singleplayer." }, "project.environment.server-only.title": { "defaultMessage": "Server-side only, works in singleplayer too" @@ -891,7 +891,7 @@ "defaultMessage": "Unknown environment" }, "project.follower-count-tooltip": { - "defaultMessage": "{count} {count, plural, one {followers} other {followers}}" + "defaultMessage": "{count} {count, plural, one {follower} other {followers}}" }, "project.settings.analytics.title": { "defaultMessage": "Analytics" diff --git a/packages/ui/src/utils/common-messages.ts b/packages/ui/src/utils/common-messages.ts index e2c1db7914..cc47caff61 100644 --- a/packages/ui/src/utils/common-messages.ts +++ b/packages/ui/src/utils/common-messages.ts @@ -199,7 +199,7 @@ export const commonMessages = defineMessages({ }, playedLabel: { id: 'label.played', - defaultMessage: 'Played {time}', + defaultMessage: 'Played {ago}', }, privateLabel: { id: 'collections.label.private', @@ -391,7 +391,7 @@ export const commonMessages = defineMessages({ }, projectFollowers: { id: 'project.follower-count-tooltip', - defaultMessage: '{count} {count, plural, one {followers} other {followers}}', + defaultMessage: '{count} {count, plural, one {follower} other {followers}}', }, }) diff --git a/packages/ui/src/utils/tag-messages.ts b/packages/ui/src/utils/tag-messages.ts index 964278a2c1..d82bfd5a01 100644 --- a/packages/ui/src/utils/tag-messages.ts +++ b/packages/ui/src/utils/tag-messages.ts @@ -414,7 +414,7 @@ export function sortTagsForDisplay(tags: string[]): string[] { export const categoryHeaderMessages = defineMessages({ resolutions: { id: 'header.category.resolutions', - defaultMessage: 'Resolutions', + defaultMessage: 'Resolution', }, categories: { id: 'header.category.category',