@@ -595,7 +671,7 @@
open source."
},
@@ -800,12 +830,54 @@
"layout.meta.og-description": {
"message": "Discover and publish Minecraft content!"
},
+ "layout.nav.analytics": {
+ "message": "Analytics"
+ },
+ "layout.nav.discover": {
+ "message": "Discover"
+ },
+ "layout.nav.discover-content": {
+ "message": "Discover content"
+ },
+ "layout.nav.feature-flags": {
+ "message": "Feature flags"
+ },
+ "layout.nav.get-modrinth-app": {
+ "message": "Get Modrinth App"
+ },
"layout.nav.home": {
"message": "Home"
},
+ "layout.nav.host-a-server": {
+ "message": "Host a server"
+ },
+ "layout.nav.modrinth-app": {
+ "message": "Modrinth App"
+ },
+ "layout.nav.modrinth-home-page": {
+ "message": "Modrinth home page"
+ },
+ "layout.nav.organizations": {
+ "message": "Organizations"
+ },
+ "layout.nav.profile": {
+ "message": "Profile"
+ },
+ "layout.nav.projects": {
+ "message": "Projects"
+ },
+ "layout.nav.revenue": {
+ "message": "Revenue"
+ },
+ "layout.nav.saved-projects": {
+ "message": "Saved projects"
+ },
"layout.nav.search": {
"message": "Search"
},
+ "layout.nav.upgrade-to-modrinth-plus": {
+ "message": "Upgrade to Modrinth+"
+ },
"moderation.filter.by": {
"message": "Filter by"
},
diff --git a/apps/frontend/src/pages/search/[searchProjectType].vue b/apps/frontend/src/pages/search/[searchProjectType].vue
index bd9088014..e28ec20ed 100644
--- a/apps/frontend/src/pages/search/[searchProjectType].vue
+++ b/apps/frontend/src/pages/search/[searchProjectType].vue
@@ -328,6 +328,7 @@ import {
Button,
ButtonStyled,
Checkbox,
+ commonProjectTypeCategoryMessages,
DropdownSelect,
NewProjectCard,
Pagination,
@@ -635,12 +636,15 @@ function setClosestMaxResults() {
const selectableProjectTypes = computed(() => {
return [
- { label: 'Mods', href: `/mods` },
- { label: 'Resource Packs', href: `/resourcepacks` },
- { label: 'Data Packs', href: `/datapacks` },
- { label: 'Shaders', href: `/shaders` },
- { label: 'Modpacks', href: `/modpacks` },
- { label: 'Plugins', href: `/plugins` },
+ { label: formatMessage(commonProjectTypeCategoryMessages.mod), href: `/mods` },
+ {
+ label: formatMessage(commonProjectTypeCategoryMessages.resourcepack),
+ href: `/resourcepacks`,
+ },
+ { label: formatMessage(commonProjectTypeCategoryMessages.datapack), href: `/datapacks` },
+ { label: formatMessage(commonProjectTypeCategoryMessages.shader), href: `/shaders` },
+ { label: formatMessage(commonProjectTypeCategoryMessages.modpack), href: `/modpacks` },
+ { label: formatMessage(commonProjectTypeCategoryMessages.plugin), href: `/plugins` },
]
})
diff --git a/packages/ui/src/locales/en-US/index.json b/packages/ui/src/locales/en-US/index.json
index a097b23bc..d5ee652a3 100644
--- a/packages/ui/src/locales/en-US/index.json
+++ b/packages/ui/src/locales/en-US/index.json
@@ -359,6 +359,60 @@
"project-type.all": {
"defaultMessage": "All"
},
+ "project-type.datapack.capital": {
+ "defaultMessage": "{count, plural, one {Data Pack} other {Data Packs}}"
+ },
+ "project-type.datapack.category": {
+ "defaultMessage": "Data Packs"
+ },
+ "project-type.datapack.lowercase": {
+ "defaultMessage": "{count, plural, one {data pack} other {data packs}}"
+ },
+ "project-type.mod.capital": {
+ "defaultMessage": "{count, plural, one {Mod} other {Mods}}"
+ },
+ "project-type.mod.category": {
+ "defaultMessage": "Mods"
+ },
+ "project-type.mod.lowercase": {
+ "defaultMessage": "{count, plural, one {mod} other {mods}}"
+ },
+ "project-type.modpack.capital": {
+ "defaultMessage": "{count, plural, one {Modpack} other {Modpacks}}"
+ },
+ "project-type.modpack.category": {
+ "defaultMessage": "Modpacks"
+ },
+ "project-type.modpack.lowercase": {
+ "defaultMessage": "{count, plural, one {modpack} other {modpacks}}"
+ },
+ "project-type.plugin.capital": {
+ "defaultMessage": "{count, plural, one {Plugin} other {Plugins}}"
+ },
+ "project-type.plugin.category": {
+ "defaultMessage": "Plugins"
+ },
+ "project-type.plugin.lowercase": {
+ "defaultMessage": "{count, plural, one {plugin} other {plugins}}"
+ },
+ "project-type.resourcepack.capital": {
+ "defaultMessage": "{count, plural, one {Resource Pack} other {Resource Packs}}"
+ },
+ "project-type.resourcepack.category": {
+ "defaultMessage": "Resource Packs"
+ },
+ "project-type.resourcepack.lowercase": {
+ "defaultMessage": "{count, plural, one {resource pack} other {resource packs}}"
+ },
+ "project-type.shader.capital": {
+ "defaultMessage": "{count, plural, one {Shader} other {Shaders}}"
+ },
+ "project-type.shader.category": {
+ "defaultMessage": "Shaders"
+ },
+ "project-type.shader.lowercase": {
+ "defaultMessage": "{count, plural, one {shader} other {shaders}}"
+ },
"project.about.compatibility.environments": {
"defaultMessage": "Supported environments"
},
diff --git a/packages/ui/src/utils/common-messages.ts b/packages/ui/src/utils/common-messages.ts
index e357a820f..f65759666 100644
--- a/packages/ui/src/utils/common-messages.ts
+++ b/packages/ui/src/utils/common-messages.ts
@@ -271,6 +271,87 @@ export const commonMessages = defineMessages({
},
})
+export const commonProjectTypeCategoryMessages = defineMessages({
+ datapack: {
+ id: 'project-type.datapack.category',
+ defaultMessage: 'Data Packs',
+ },
+ mod: {
+ id: 'project-type.mod.category',
+ defaultMessage: 'Mods',
+ },
+ modpack: {
+ id: 'project-type.modpack.category',
+ defaultMessage: 'Modpacks',
+ },
+ plugin: {
+ id: 'project-type.plugin.category',
+ defaultMessage: 'Plugins',
+ },
+ resourcepack: {
+ id: 'project-type.resourcepack.category',
+ defaultMessage: 'Resource Packs',
+ },
+ shader: {
+ id: 'project-type.shader.category',
+ defaultMessage: 'Shaders',
+ },
+})
+
+export const commonProjectTypeTitleMessages = defineMessages({
+ datapack: {
+ id: 'project-type.datapack.capital',
+ defaultMessage: '{count, plural, one {Data Pack} other {Data Packs}}',
+ },
+ mod: {
+ id: 'project-type.mod.capital',
+ defaultMessage: '{count, plural, one {Mod} other {Mods}}',
+ },
+ modpack: {
+ id: 'project-type.modpack.capital',
+ defaultMessage: '{count, plural, one {Modpack} other {Modpacks}}',
+ },
+ plugin: {
+ id: 'project-type.plugin.capital',
+ defaultMessage: '{count, plural, one {Plugin} other {Plugins}}',
+ },
+ resourcepack: {
+ id: 'project-type.resourcepack.capital',
+ defaultMessage: '{count, plural, one {Resource Pack} other {Resource Packs}}',
+ },
+ shader: {
+ id: 'project-type.shader.capital',
+ defaultMessage: '{count, plural, one {Shader} other {Shaders}}',
+ },
+})
+
+export const commonProjectTypeSentenceMessages = defineMessages({
+ datapack: {
+ id: 'project-type.datapack.lowercase',
+ defaultMessage: '{count, plural, one {data pack} other {data packs}}',
+ },
+ mod: {
+ id: 'project-type.mod.lowercase',
+ defaultMessage: '{count, plural, one {mod} other {mods}}',
+ },
+ modpack: {
+ id: 'project-type.modpack.lowercase',
+ defaultMessage: '{count, plural, one {modpack} other {modpacks}}',
+ },
+ plugin: {
+ id: 'project-type.plugin.lowercase',
+ defaultMessage: '{count, plural, one {plugin} other {plugins}}',
+ },
+ resourcepack: {
+ id: 'project-type.resourcepack.lowercase',
+ defaultMessage: '{count, plural, one {resource pack} other {resource packs}}',
+ },
+ shader: {
+ id: 'project-type.shader.lowercase',
+ defaultMessage: '{count, plural, one {shader} other {shaders}}',
+ },
+})
+
export const commonSettingsMessages = defineMessages({
account: {
id: 'settings.account.title',