You've already forked AstralRinth
forked from didirus/AstralRinth
make default layout translatable (#4378)
* make default layout translatable * intl:extract * fix lint
This commit is contained in:
@@ -93,7 +93,12 @@
|
|||||||
{{ formatMessage(stagingBannerMessages.description) }}
|
{{ formatMessage(stagingBannerMessages.description) }}
|
||||||
</template>
|
</template>
|
||||||
<template #actions_right>
|
<template #actions_right>
|
||||||
<Button transparent icon-only aria-label="Close" @click="hideStagingBanner">
|
<Button
|
||||||
|
transparent
|
||||||
|
icon-only
|
||||||
|
:aria-label="formatMessage(messages.close)"
|
||||||
|
@click="hideStagingBanner"
|
||||||
|
>
|
||||||
<XIcon aria-hidden="true" />
|
<XIcon aria-hidden="true" />
|
||||||
</Button>
|
</Button>
|
||||||
</template>
|
</template>
|
||||||
@@ -115,7 +120,7 @@
|
|||||||
class="experimental-styles-within desktop-only relative z-[5] mx-auto grid max-w-[1280px] grid-cols-[1fr_auto] items-center gap-2 px-6 py-4 lg:grid-cols-[auto_1fr_auto]"
|
class="experimental-styles-within desktop-only relative z-[5] mx-auto grid max-w-[1280px] grid-cols-[1fr_auto] items-center gap-2 px-6 py-4 lg:grid-cols-[auto_1fr_auto]"
|
||||||
>
|
>
|
||||||
<div>
|
<div>
|
||||||
<NuxtLink to="/" aria-label="Modrinth home page">
|
<NuxtLink to="/" :aria-label="formatMessage(messages.modrinthHomePage)">
|
||||||
<TextLogo aria-hidden="true" class="h-7 w-auto text-contrast" />
|
<TextLogo aria-hidden="true" class="h-7 w-auto text-contrast" />
|
||||||
</NuxtLink>
|
</NuxtLink>
|
||||||
</div>
|
</div>
|
||||||
@@ -130,7 +135,10 @@
|
|||||||
route.name === 'search-mods' ? 'main-nav-primary' : 'main-nav-secondary'
|
route.name === 'search-mods' ? 'main-nav-primary' : 'main-nav-secondary'
|
||||||
"
|
"
|
||||||
>
|
>
|
||||||
<nuxt-link to="/mods"> <BoxIcon aria-hidden="true" /> Mods </nuxt-link>
|
<nuxt-link to="/mods">
|
||||||
|
<BoxIcon aria-hidden="true" />
|
||||||
|
{{ formatMessage(commonProjectTypeCategoryMessages.mod) }}
|
||||||
|
</nuxt-link>
|
||||||
</ButtonStyled>
|
</ButtonStyled>
|
||||||
<ButtonStyled
|
<ButtonStyled
|
||||||
type="transparent"
|
type="transparent"
|
||||||
@@ -142,7 +150,8 @@
|
|||||||
"
|
"
|
||||||
>
|
>
|
||||||
<nuxt-link to="/resourcepacks">
|
<nuxt-link to="/resourcepacks">
|
||||||
<PaintbrushIcon aria-hidden="true" /> Resource Packs
|
<PaintbrushIcon aria-hidden="true" />
|
||||||
|
{{ formatMessage(commonProjectTypeCategoryMessages.resourcepack) }}
|
||||||
</nuxt-link>
|
</nuxt-link>
|
||||||
</ButtonStyled>
|
</ButtonStyled>
|
||||||
<ButtonStyled
|
<ButtonStyled
|
||||||
@@ -152,7 +161,10 @@
|
|||||||
route.name === 'search-datapacks' ? 'main-nav-primary' : 'main-nav-secondary'
|
route.name === 'search-datapacks' ? 'main-nav-primary' : 'main-nav-secondary'
|
||||||
"
|
"
|
||||||
>
|
>
|
||||||
<nuxt-link to="/datapacks"> <BracesIcon aria-hidden="true" /> Data Packs </nuxt-link>
|
<nuxt-link to="/datapacks">
|
||||||
|
<BracesIcon aria-hidden="true" />
|
||||||
|
{{ formatMessage(commonProjectTypeCategoryMessages.datapack) }}
|
||||||
|
</nuxt-link>
|
||||||
</ButtonStyled>
|
</ButtonStyled>
|
||||||
<ButtonStyled
|
<ButtonStyled
|
||||||
type="transparent"
|
type="transparent"
|
||||||
@@ -161,7 +173,10 @@
|
|||||||
route.name === 'search-modpacks' ? 'main-nav-primary' : 'main-nav-secondary'
|
route.name === 'search-modpacks' ? 'main-nav-primary' : 'main-nav-secondary'
|
||||||
"
|
"
|
||||||
>
|
>
|
||||||
<nuxt-link to="/modpacks"> <PackageOpenIcon aria-hidden="true" /> Modpacks </nuxt-link>
|
<nuxt-link to="/modpacks">
|
||||||
|
<PackageOpenIcon aria-hidden="true" />
|
||||||
|
{{ formatMessage(commonProjectTypeCategoryMessages.modpack) }}
|
||||||
|
</nuxt-link>
|
||||||
</ButtonStyled>
|
</ButtonStyled>
|
||||||
<ButtonStyled
|
<ButtonStyled
|
||||||
type="transparent"
|
type="transparent"
|
||||||
@@ -170,7 +185,10 @@
|
|||||||
route.name === 'search-shaders' ? 'main-nav-primary' : 'main-nav-secondary'
|
route.name === 'search-shaders' ? 'main-nav-primary' : 'main-nav-secondary'
|
||||||
"
|
"
|
||||||
>
|
>
|
||||||
<nuxt-link to="/shaders"> <GlassesIcon aria-hidden="true" /> Shaders </nuxt-link>
|
<nuxt-link to="/shaders">
|
||||||
|
<GlassesIcon aria-hidden="true" />
|
||||||
|
{{ formatMessage(commonProjectTypeCategoryMessages.shader) }}
|
||||||
|
</nuxt-link>
|
||||||
</ButtonStyled>
|
</ButtonStyled>
|
||||||
<ButtonStyled
|
<ButtonStyled
|
||||||
type="transparent"
|
type="transparent"
|
||||||
@@ -179,7 +197,10 @@
|
|||||||
route.name === 'search-plugins' ? 'main-nav-primary' : 'main-nav-secondary'
|
route.name === 'search-plugins' ? 'main-nav-primary' : 'main-nav-secondary'
|
||||||
"
|
"
|
||||||
>
|
>
|
||||||
<nuxt-link to="/plugins"> <PlugIcon aria-hidden="true" /> Plugins </nuxt-link>
|
<nuxt-link to="/plugins">
|
||||||
|
<PlugIcon aria-hidden="true" />
|
||||||
|
{{ formatMessage(commonProjectTypeCategoryMessages.plugin) }}
|
||||||
|
</nuxt-link>
|
||||||
</ButtonStyled>
|
</ButtonStyled>
|
||||||
</template>
|
</template>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
@@ -244,18 +265,36 @@
|
|||||||
aria-hidden="true"
|
aria-hidden="true"
|
||||||
/>
|
/>
|
||||||
<CompassIcon v-else aria-hidden="true" />
|
<CompassIcon v-else aria-hidden="true" />
|
||||||
<span class="hidden md:contents">Discover content</span>
|
<span class="hidden md:contents">{{
|
||||||
<span class="contents md:hidden">Discover</span>
|
formatMessage(navMenuMessages.discoverContent)
|
||||||
|
}}</span>
|
||||||
|
<span class="contents md:hidden">{{ formatMessage(navMenuMessages.discover) }}</span>
|
||||||
<DropdownIcon aria-hidden="true" class="h-5 w-5 text-secondary" />
|
<DropdownIcon aria-hidden="true" class="h-5 w-5 text-secondary" />
|
||||||
|
|
||||||
<template #mods> <BoxIcon aria-hidden="true" /> Mods </template>
|
<template #mods>
|
||||||
<template #resourcepacks>
|
<BoxIcon aria-hidden="true" />
|
||||||
<PaintbrushIcon aria-hidden="true" /> Resource Packs
|
{{ formatMessage(commonProjectTypeCategoryMessages.mod) }}
|
||||||
|
</template>
|
||||||
|
<template #resourcepacks>
|
||||||
|
<PaintbrushIcon aria-hidden="true" />
|
||||||
|
{{ formatMessage(commonProjectTypeCategoryMessages.resourcepack) }}
|
||||||
|
</template>
|
||||||
|
<template #datapacks>
|
||||||
|
<BracesIcon aria-hidden="true" />
|
||||||
|
{{ formatMessage(commonProjectTypeCategoryMessages.datapack) }}
|
||||||
|
</template>
|
||||||
|
<template #plugins>
|
||||||
|
<PlugIcon aria-hidden="true" />
|
||||||
|
{{ formatMessage(commonProjectTypeCategoryMessages.plugin) }}
|
||||||
|
</template>
|
||||||
|
<template #shaders>
|
||||||
|
<GlassesIcon aria-hidden="true" />
|
||||||
|
{{ formatMessage(commonProjectTypeCategoryMessages.shader) }}
|
||||||
|
</template>
|
||||||
|
<template #modpacks>
|
||||||
|
<PackageOpenIcon aria-hidden="true" />
|
||||||
|
{{ formatMessage(commonProjectTypeCategoryMessages.modpack) }}
|
||||||
</template>
|
</template>
|
||||||
<template #datapacks> <BracesIcon aria-hidden="true" /> Data Packs </template>
|
|
||||||
<template #plugins> <PlugIcon aria-hidden="true" /> Plugins </template>
|
|
||||||
<template #shaders> <GlassesIcon aria-hidden="true" /> Shaders </template>
|
|
||||||
<template #modpacks> <PackageOpenIcon aria-hidden="true" /> Modpacks </template>
|
|
||||||
</TeleportOverflowMenu>
|
</TeleportOverflowMenu>
|
||||||
</ButtonStyled>
|
</ButtonStyled>
|
||||||
<ButtonStyled
|
<ButtonStyled
|
||||||
@@ -270,14 +309,18 @@
|
|||||||
>
|
>
|
||||||
<nuxt-link to="/servers">
|
<nuxt-link to="/servers">
|
||||||
<ServerIcon aria-hidden="true" />
|
<ServerIcon aria-hidden="true" />
|
||||||
Host a server
|
{{ formatMessage(navMenuMessages.hostAServer) }}
|
||||||
</nuxt-link>
|
</nuxt-link>
|
||||||
</ButtonStyled>
|
</ButtonStyled>
|
||||||
<ButtonStyled type="transparent" :highlighted="route.name === 'app'">
|
<ButtonStyled type="transparent" :highlighted="route.name === 'app'">
|
||||||
<nuxt-link to="/app">
|
<nuxt-link to="/app">
|
||||||
<DownloadIcon aria-hidden="true" />
|
<DownloadIcon aria-hidden="true" />
|
||||||
<span class="hidden md:contents">Get Modrinth App</span>
|
<span class="hidden md:contents">{{
|
||||||
<span class="contents md:hidden">Modrinth App</span>
|
formatMessage(navMenuMessages.getModrinthApp)
|
||||||
|
}}</span>
|
||||||
|
<span class="contents md:hidden">{{
|
||||||
|
formatMessage(navMenuMessages.modrinthApp)
|
||||||
|
}}</span>
|
||||||
</nuxt-link>
|
</nuxt-link>
|
||||||
</ButtonStyled>
|
</ButtonStyled>
|
||||||
</template>
|
</template>
|
||||||
@@ -290,7 +333,7 @@
|
|||||||
position="bottom"
|
position="bottom"
|
||||||
direction="left"
|
direction="left"
|
||||||
:dropdown-id="`${basePopoutId}-staff`"
|
:dropdown-id="`${basePopoutId}-staff`"
|
||||||
aria-label="Create new..."
|
:aria-label="formatMessage(messages.createNew)"
|
||||||
:options="[
|
:options="[
|
||||||
{
|
{
|
||||||
id: 'review-projects',
|
id: 'review-projects',
|
||||||
@@ -329,12 +372,20 @@
|
|||||||
>
|
>
|
||||||
<ModrinthIcon aria-hidden="true" />
|
<ModrinthIcon aria-hidden="true" />
|
||||||
<DropdownIcon aria-hidden="true" class="h-5 w-5 text-secondary" />
|
<DropdownIcon aria-hidden="true" class="h-5 w-5 text-secondary" />
|
||||||
<template #review-projects> <ScaleIcon aria-hidden="true" /> Review projects </template>
|
<template #review-projects>
|
||||||
<template #review-reports> <ReportIcon aria-hidden="true" /> Reports </template>
|
<ScaleIcon aria-hidden="true" /> {{ formatMessage(messages.reviewProjects) }}
|
||||||
<template #user-lookup> <UserIcon aria-hidden="true" /> Lookup by email </template>
|
</template>
|
||||||
<template #file-lookup> <FileIcon aria-hidden="true" /> File lookup </template>
|
<template #review-reports>
|
||||||
|
<ReportIcon aria-hidden="true" /> {{ formatMessage(messages.reports) }}
|
||||||
|
</template>
|
||||||
|
<template #user-lookup>
|
||||||
|
<UserIcon aria-hidden="true" /> {{ formatMessage(messages.lookupByEmail) }}
|
||||||
|
</template>
|
||||||
|
<template #file-lookup>
|
||||||
|
<FileIcon aria-hidden="true" /> {{ formatMessage(messages.fileLookup) }}
|
||||||
|
</template>
|
||||||
<template #servers-notices>
|
<template #servers-notices>
|
||||||
<IssuesIcon aria-hidden="true" /> Manage server notices
|
<IssuesIcon aria-hidden="true" /> {{ formatMessage(messages.manageServerNotices) }}
|
||||||
</template>
|
</template>
|
||||||
</OverflowMenu>
|
</OverflowMenu>
|
||||||
</ButtonStyled>
|
</ButtonStyled>
|
||||||
@@ -345,7 +396,7 @@
|
|||||||
position="bottom"
|
position="bottom"
|
||||||
direction="left"
|
direction="left"
|
||||||
:dropdown-id="`${basePopoutId}-create`"
|
:dropdown-id="`${basePopoutId}-create`"
|
||||||
aria-label="Create new..."
|
:aria-label="formatMessage(messages.createNew)"
|
||||||
:options="[
|
:options="[
|
||||||
{
|
{
|
||||||
id: 'new-project',
|
id: 'new-project',
|
||||||
@@ -364,13 +415,15 @@
|
|||||||
>
|
>
|
||||||
<PlusIcon aria-hidden="true" />
|
<PlusIcon aria-hidden="true" />
|
||||||
<DropdownIcon aria-hidden="true" class="h-5 w-5 text-secondary" />
|
<DropdownIcon aria-hidden="true" class="h-5 w-5 text-secondary" />
|
||||||
<template #new-project> <BoxIcon aria-hidden="true" /> New project </template>
|
<template #new-project>
|
||||||
|
<BoxIcon aria-hidden="true" /> {{ formatMessage(messages.newProject) }}
|
||||||
|
</template>
|
||||||
<!-- <template #import-project> <BoxImportIcon /> Import project </template>-->
|
<!-- <template #import-project> <BoxImportIcon /> Import project </template>-->
|
||||||
<template #new-collection>
|
<template #new-collection>
|
||||||
<CollectionIcon aria-hidden="true" /> New collection
|
<CollectionIcon aria-hidden="true" /> {{ formatMessage(messages.newCollection) }}
|
||||||
</template>
|
</template>
|
||||||
<template #new-organization>
|
<template #new-organization>
|
||||||
<OrganizationIcon aria-hidden="true" /> New organization
|
<OrganizationIcon aria-hidden="true" /> {{ formatMessage(messages.newOrganization) }}
|
||||||
</template>
|
</template>
|
||||||
</OverflowMenu>
|
</OverflowMenu>
|
||||||
</ButtonStyled>
|
</ButtonStyled>
|
||||||
@@ -382,34 +435,57 @@
|
|||||||
>
|
>
|
||||||
<Avatar :src="auth.user.avatar_url" aria-hidden="true" circle />
|
<Avatar :src="auth.user.avatar_url" aria-hidden="true" circle />
|
||||||
<DropdownIcon class="h-5 w-5 text-secondary" />
|
<DropdownIcon class="h-5 w-5 text-secondary" />
|
||||||
<template #profile> <UserIcon aria-hidden="true" /> Profile </template>
|
<template #profile>
|
||||||
<template #notifications> <BellIcon aria-hidden="true" /> Notifications </template>
|
<UserIcon aria-hidden="true" /> {{ formatMessage(messages.profile) }}
|
||||||
<template #saved> <BookmarkIcon aria-hidden="true" /> Saved projects </template>
|
</template>
|
||||||
<template #servers> <ServerIcon aria-hidden="true" /> My servers </template>
|
<template #notifications>
|
||||||
|
<BellIcon aria-hidden="true" /> {{ formatMessage(commonMessages.notificationsLabel) }}
|
||||||
|
</template>
|
||||||
|
<template #saved>
|
||||||
|
<BookmarkIcon aria-hidden="true" /> {{ formatMessage(messages.savedProjects) }}
|
||||||
|
</template>
|
||||||
|
<template #servers>
|
||||||
|
<ServerIcon aria-hidden="true" /> {{ formatMessage(commonMessages.serversLabel) }}
|
||||||
|
</template>
|
||||||
<template #plus>
|
<template #plus>
|
||||||
<ArrowBigUpDashIcon aria-hidden="true" /> Upgrade to Modrinth+
|
<ArrowBigUpDashIcon aria-hidden="true" />
|
||||||
|
{{ formatMessage(messages.upgradeToModrinthPlus) }}
|
||||||
|
</template>
|
||||||
|
<template #settings>
|
||||||
|
<SettingsIcon aria-hidden="true" /> {{ formatMessage(commonMessages.settingsLabel) }}
|
||||||
|
</template>
|
||||||
|
<template #flags>
|
||||||
|
<ReportIcon aria-hidden="true" /> {{ formatMessage(messages.featureFlags) }}
|
||||||
|
</template>
|
||||||
|
<template #projects>
|
||||||
|
<BoxIcon aria-hidden="true" /> {{ formatMessage(messages.projects) }}
|
||||||
</template>
|
</template>
|
||||||
<template #settings> <SettingsIcon aria-hidden="true" /> Settings </template>
|
|
||||||
<template #flags> <ReportIcon aria-hidden="true" /> Feature flags </template>
|
|
||||||
<template #projects> <BoxIcon aria-hidden="true" /> Projects </template>
|
|
||||||
<template #organizations>
|
<template #organizations>
|
||||||
<OrganizationIcon aria-hidden="true" /> Organizations
|
<OrganizationIcon aria-hidden="true" /> {{ formatMessage(messages.organizations) }}
|
||||||
|
</template>
|
||||||
|
<template #revenue>
|
||||||
|
<CurrencyIcon aria-hidden="true" /> {{ formatMessage(messages.revenue) }}
|
||||||
|
</template>
|
||||||
|
<template #analytics>
|
||||||
|
<ChartIcon aria-hidden="true" /> {{ formatMessage(messages.analytics) }}
|
||||||
|
</template>
|
||||||
|
<template #moderation>
|
||||||
|
<ScaleIcon aria-hidden="true" /> {{ formatMessage(commonMessages.moderationLabel) }}
|
||||||
|
</template>
|
||||||
|
<template #sign-out>
|
||||||
|
<LogOutIcon aria-hidden="true" /> {{ formatMessage(commonMessages.signOutButton) }}
|
||||||
</template>
|
</template>
|
||||||
<template #revenue> <CurrencyIcon aria-hidden="true" /> Revenue </template>
|
|
||||||
<template #analytics> <ChartIcon aria-hidden="true" /> Analytics </template>
|
|
||||||
<template #moderation> <ScaleIcon aria-hidden="true" /> Moderation </template>
|
|
||||||
<template #sign-out> <LogOutIcon aria-hidden="true" /> Sign out </template>
|
|
||||||
</OverflowMenu>
|
</OverflowMenu>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<ButtonStyled color="brand">
|
<ButtonStyled color="brand">
|
||||||
<nuxt-link to="/auth/sign-in">
|
<nuxt-link to="/auth/sign-in">
|
||||||
<LogInIcon aria-hidden="true" />
|
<LogInIcon aria-hidden="true" />
|
||||||
Sign in
|
{{ formatMessage(commonMessages.signInButton) }}
|
||||||
</nuxt-link>
|
</nuxt-link>
|
||||||
</ButtonStyled>
|
</ButtonStyled>
|
||||||
<ButtonStyled circular>
|
<ButtonStyled circular>
|
||||||
<nuxt-link v-tooltip="'Settings'" to="/settings">
|
<nuxt-link :v-tooltip="formatMessage(commonMessages.settingsLabel)" to="/settings">
|
||||||
<SettingsIcon aria-label="Settings" />
|
<SettingsIcon :aria-label="formatMessage(commonMessages.settingsLabel)" />
|
||||||
</nuxt-link>
|
</nuxt-link>
|
||||||
</ButtonStyled>
|
</ButtonStyled>
|
||||||
</template>
|
</template>
|
||||||
@@ -489,7 +565,7 @@
|
|||||||
</NuxtLink>
|
</NuxtLink>
|
||||||
<NuxtLink v-if="flags.developerMode" class="iconified-button" to="/flags">
|
<NuxtLink v-if="flags.developerMode" class="iconified-button" to="/flags">
|
||||||
<ReportIcon aria-hidden="true" />
|
<ReportIcon aria-hidden="true" />
|
||||||
Feature flags
|
{{ formatMessage(messages.featureFlags) }}
|
||||||
</NuxtLink>
|
</NuxtLink>
|
||||||
</template>
|
</template>
|
||||||
<NuxtLink class="iconified-button" to="/settings">
|
<NuxtLink class="iconified-button" to="/settings">
|
||||||
@@ -510,7 +586,7 @@
|
|||||||
to="/"
|
to="/"
|
||||||
class="tab button-animation"
|
class="tab button-animation"
|
||||||
:title="formatMessage(navMenuMessages.home)"
|
:title="formatMessage(navMenuMessages.home)"
|
||||||
aria-label="Home"
|
:aria-label="formatMessage(navMenuMessages.home)"
|
||||||
>
|
>
|
||||||
<HomeIcon aria-hidden="true" />
|
<HomeIcon aria-hidden="true" />
|
||||||
</NuxtLink>
|
</NuxtLink>
|
||||||
@@ -518,7 +594,7 @@
|
|||||||
class="tab button-animation"
|
class="tab button-animation"
|
||||||
:class="{ 'router-link-exact-active': isBrowseMenuOpen }"
|
:class="{ 'router-link-exact-active': isBrowseMenuOpen }"
|
||||||
:title="formatMessage(navMenuMessages.search)"
|
:title="formatMessage(navMenuMessages.search)"
|
||||||
aria-label="Search"
|
:aria-label="formatMessage(navMenuMessages.search)"
|
||||||
@click="toggleBrowseMenu()"
|
@click="toggleBrowseMenu()"
|
||||||
>
|
>
|
||||||
<template v-if="auth.user">
|
<template v-if="auth.user">
|
||||||
@@ -533,7 +609,7 @@
|
|||||||
<NuxtLink
|
<NuxtLink
|
||||||
to="/dashboard/notifications"
|
to="/dashboard/notifications"
|
||||||
class="tab button-animation"
|
class="tab button-animation"
|
||||||
aria-label="Notifications"
|
:aria-label="formatMessage(commonMessages.notificationsLabel)"
|
||||||
:class="{
|
:class="{
|
||||||
'no-active': isMobileMenuOpen || isBrowseMenuOpen,
|
'no-active': isMobileMenuOpen || isBrowseMenuOpen,
|
||||||
}"
|
}"
|
||||||
@@ -550,7 +626,7 @@
|
|||||||
<NuxtLink
|
<NuxtLink
|
||||||
to="/dashboard"
|
to="/dashboard"
|
||||||
class="tab button-animation"
|
class="tab button-animation"
|
||||||
aria-label="Dashboard"
|
:aria-label="formatMessage(commonMessages.dashboardLabel)"
|
||||||
:title="formatMessage(commonMessages.dashboardLabel)"
|
:title="formatMessage(commonMessages.dashboardLabel)"
|
||||||
>
|
>
|
||||||
<ChartIcon aria-hidden="true" />
|
<ChartIcon aria-hidden="true" />
|
||||||
@@ -595,7 +671,7 @@
|
|||||||
<div
|
<div
|
||||||
class="flex flex-col items-center gap-3 md:items-start"
|
class="flex flex-col items-center gap-3 md:items-start"
|
||||||
role="region"
|
role="region"
|
||||||
aria-label="Modrinth information"
|
:aria-label="formatMessage(messages.modrinthInformation)"
|
||||||
>
|
>
|
||||||
<TextLogo
|
<TextLogo
|
||||||
aria-hidden="true"
|
aria-hidden="true"
|
||||||
@@ -719,6 +795,7 @@ import {
|
|||||||
Button,
|
Button,
|
||||||
ButtonStyled,
|
ButtonStyled,
|
||||||
commonMessages,
|
commonMessages,
|
||||||
|
commonProjectTypeCategoryMessages,
|
||||||
injectNotificationManager,
|
injectNotificationManager,
|
||||||
OverflowMenu,
|
OverflowMenu,
|
||||||
PagewideBanner,
|
PagewideBanner,
|
||||||
@@ -848,6 +925,26 @@ const navMenuMessages = defineMessages({
|
|||||||
id: 'layout.nav.search',
|
id: 'layout.nav.search',
|
||||||
defaultMessage: 'Search',
|
defaultMessage: 'Search',
|
||||||
},
|
},
|
||||||
|
discoverContent: {
|
||||||
|
id: 'layout.nav.discover-content',
|
||||||
|
defaultMessage: 'Discover content',
|
||||||
|
},
|
||||||
|
discover: {
|
||||||
|
id: 'layout.nav.discover',
|
||||||
|
defaultMessage: 'Discover',
|
||||||
|
},
|
||||||
|
hostAServer: {
|
||||||
|
id: 'layout.nav.host-a-server',
|
||||||
|
defaultMessage: 'Host a server',
|
||||||
|
},
|
||||||
|
getModrinthApp: {
|
||||||
|
id: 'layout.nav.get-modrinth-app',
|
||||||
|
defaultMessage: 'Get Modrinth App',
|
||||||
|
},
|
||||||
|
modrinthApp: {
|
||||||
|
id: 'layout.nav.modrinth-app',
|
||||||
|
defaultMessage: 'Modrinth App',
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
const messages = defineMessages({
|
const messages = defineMessages({
|
||||||
@@ -859,14 +956,90 @@ const messages = defineMessages({
|
|||||||
id: 'layout.avatar.alt',
|
id: 'layout.avatar.alt',
|
||||||
defaultMessage: 'Your avatar',
|
defaultMessage: 'Your avatar',
|
||||||
},
|
},
|
||||||
getModrinthApp: {
|
|
||||||
id: 'layout.action.get-modrinth-app',
|
|
||||||
defaultMessage: 'Get Modrinth App',
|
|
||||||
},
|
|
||||||
changeTheme: {
|
changeTheme: {
|
||||||
id: 'layout.action.change-theme',
|
id: 'layout.action.change-theme',
|
||||||
defaultMessage: 'Change theme',
|
defaultMessage: 'Change theme',
|
||||||
},
|
},
|
||||||
|
close: {
|
||||||
|
id: 'layout.action.close-banner',
|
||||||
|
defaultMessage: 'Close',
|
||||||
|
},
|
||||||
|
modrinthHomePage: {
|
||||||
|
id: 'layout.nav.modrinth-home-page',
|
||||||
|
defaultMessage: 'Modrinth home page',
|
||||||
|
},
|
||||||
|
modrinthInformation: {
|
||||||
|
id: 'layout.footer.modrinth-information',
|
||||||
|
defaultMessage: 'Modrinth information',
|
||||||
|
},
|
||||||
|
createNew: {
|
||||||
|
id: 'layout.action.create-new',
|
||||||
|
defaultMessage: 'Create new...',
|
||||||
|
},
|
||||||
|
reviewProjects: {
|
||||||
|
id: 'layout.action.review-projects',
|
||||||
|
defaultMessage: 'Review projects',
|
||||||
|
},
|
||||||
|
reports: {
|
||||||
|
id: 'layout.action.reports',
|
||||||
|
defaultMessage: 'Reports',
|
||||||
|
},
|
||||||
|
lookupByEmail: {
|
||||||
|
id: 'layout.action.lookup-by-email',
|
||||||
|
defaultMessage: 'Lookup by email',
|
||||||
|
},
|
||||||
|
fileLookup: {
|
||||||
|
id: 'layout.action.file-lookup',
|
||||||
|
defaultMessage: 'File lookup',
|
||||||
|
},
|
||||||
|
manageServerNotices: {
|
||||||
|
id: 'layout.action.manage-server-notices',
|
||||||
|
defaultMessage: 'Manage server notices',
|
||||||
|
},
|
||||||
|
newProject: {
|
||||||
|
id: 'layout.action.new-project',
|
||||||
|
defaultMessage: 'New project',
|
||||||
|
},
|
||||||
|
newCollection: {
|
||||||
|
id: 'layout.action.new-collection',
|
||||||
|
defaultMessage: 'New collection',
|
||||||
|
},
|
||||||
|
newOrganization: {
|
||||||
|
id: 'layout.action.new-organization',
|
||||||
|
defaultMessage: 'New organization',
|
||||||
|
},
|
||||||
|
profile: {
|
||||||
|
id: 'layout.nav.profile',
|
||||||
|
defaultMessage: 'Profile',
|
||||||
|
},
|
||||||
|
savedProjects: {
|
||||||
|
id: 'layout.nav.saved-projects',
|
||||||
|
defaultMessage: 'Saved projects',
|
||||||
|
},
|
||||||
|
upgradeToModrinthPlus: {
|
||||||
|
id: 'layout.nav.upgrade-to-modrinth-plus',
|
||||||
|
defaultMessage: 'Upgrade to Modrinth+',
|
||||||
|
},
|
||||||
|
featureFlags: {
|
||||||
|
id: 'layout.nav.feature-flags',
|
||||||
|
defaultMessage: 'Feature flags',
|
||||||
|
},
|
||||||
|
projects: {
|
||||||
|
id: 'layout.nav.projects',
|
||||||
|
defaultMessage: 'Projects',
|
||||||
|
},
|
||||||
|
organizations: {
|
||||||
|
id: 'layout.nav.organizations',
|
||||||
|
defaultMessage: 'Organizations',
|
||||||
|
},
|
||||||
|
revenue: {
|
||||||
|
id: 'layout.nav.revenue',
|
||||||
|
defaultMessage: 'Revenue',
|
||||||
|
},
|
||||||
|
analytics: {
|
||||||
|
id: 'layout.nav.analytics',
|
||||||
|
defaultMessage: 'Analytics',
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
const footerMessages = defineMessages({
|
const footerMessages = defineMessages({
|
||||||
|
|||||||
@@ -665,8 +665,35 @@
|
|||||||
"layout.action.change-theme": {
|
"layout.action.change-theme": {
|
||||||
"message": "Change theme"
|
"message": "Change theme"
|
||||||
},
|
},
|
||||||
"layout.action.get-modrinth-app": {
|
"layout.action.close-banner": {
|
||||||
"message": "Get Modrinth App"
|
"message": "Close"
|
||||||
|
},
|
||||||
|
"layout.action.create-new": {
|
||||||
|
"message": "Create new..."
|
||||||
|
},
|
||||||
|
"layout.action.file-lookup": {
|
||||||
|
"message": "File lookup"
|
||||||
|
},
|
||||||
|
"layout.action.lookup-by-email": {
|
||||||
|
"message": "Lookup by email"
|
||||||
|
},
|
||||||
|
"layout.action.manage-server-notices": {
|
||||||
|
"message": "Manage server notices"
|
||||||
|
},
|
||||||
|
"layout.action.new-collection": {
|
||||||
|
"message": "New collection"
|
||||||
|
},
|
||||||
|
"layout.action.new-organization": {
|
||||||
|
"message": "New organization"
|
||||||
|
},
|
||||||
|
"layout.action.new-project": {
|
||||||
|
"message": "New project"
|
||||||
|
},
|
||||||
|
"layout.action.reports": {
|
||||||
|
"message": "Reports"
|
||||||
|
},
|
||||||
|
"layout.action.review-projects": {
|
||||||
|
"message": "Review projects"
|
||||||
},
|
},
|
||||||
"layout.avatar.alt": {
|
"layout.avatar.alt": {
|
||||||
"message": "Your avatar"
|
"message": "Your avatar"
|
||||||
@@ -746,6 +773,9 @@
|
|||||||
"layout.footer.legal.terms-of-use": {
|
"layout.footer.legal.terms-of-use": {
|
||||||
"message": "Terms of Use"
|
"message": "Terms of Use"
|
||||||
},
|
},
|
||||||
|
"layout.footer.modrinth-information": {
|
||||||
|
"message": "Modrinth information"
|
||||||
|
},
|
||||||
"layout.footer.open-source": {
|
"layout.footer.open-source": {
|
||||||
"message": "Modrinth is <github-link>open source</github-link>."
|
"message": "Modrinth is <github-link>open source</github-link>."
|
||||||
},
|
},
|
||||||
@@ -800,12 +830,54 @@
|
|||||||
"layout.meta.og-description": {
|
"layout.meta.og-description": {
|
||||||
"message": "Discover and publish Minecraft content!"
|
"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": {
|
"layout.nav.home": {
|
||||||
"message": "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": {
|
"layout.nav.search": {
|
||||||
"message": "Search"
|
"message": "Search"
|
||||||
},
|
},
|
||||||
|
"layout.nav.upgrade-to-modrinth-plus": {
|
||||||
|
"message": "Upgrade to Modrinth+"
|
||||||
|
},
|
||||||
"moderation.filter.by": {
|
"moderation.filter.by": {
|
||||||
"message": "Filter by"
|
"message": "Filter by"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -328,6 +328,7 @@ import {
|
|||||||
Button,
|
Button,
|
||||||
ButtonStyled,
|
ButtonStyled,
|
||||||
Checkbox,
|
Checkbox,
|
||||||
|
commonProjectTypeCategoryMessages,
|
||||||
DropdownSelect,
|
DropdownSelect,
|
||||||
NewProjectCard,
|
NewProjectCard,
|
||||||
Pagination,
|
Pagination,
|
||||||
@@ -635,12 +636,15 @@ function setClosestMaxResults() {
|
|||||||
|
|
||||||
const selectableProjectTypes = computed(() => {
|
const selectableProjectTypes = computed(() => {
|
||||||
return [
|
return [
|
||||||
{ label: 'Mods', href: `/mods` },
|
{ label: formatMessage(commonProjectTypeCategoryMessages.mod), href: `/mods` },
|
||||||
{ label: 'Resource Packs', href: `/resourcepacks` },
|
{
|
||||||
{ label: 'Data Packs', href: `/datapacks` },
|
label: formatMessage(commonProjectTypeCategoryMessages.resourcepack),
|
||||||
{ label: 'Shaders', href: `/shaders` },
|
href: `/resourcepacks`,
|
||||||
{ label: 'Modpacks', href: `/modpacks` },
|
},
|
||||||
{ label: 'Plugins', href: `/plugins` },
|
{ label: formatMessage(commonProjectTypeCategoryMessages.datapack), href: `/datapacks` },
|
||||||
|
{ label: formatMessage(commonProjectTypeCategoryMessages.shader), href: `/shaders` },
|
||||||
|
{ label: formatMessage(commonProjectTypeCategoryMessages.modpack), href: `/modpacks` },
|
||||||
|
{ label: formatMessage(commonProjectTypeCategoryMessages.plugin), href: `/plugins` },
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -359,6 +359,60 @@
|
|||||||
"project-type.all": {
|
"project-type.all": {
|
||||||
"defaultMessage": "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": {
|
"project.about.compatibility.environments": {
|
||||||
"defaultMessage": "Supported environments"
|
"defaultMessage": "Supported environments"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -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({
|
export const commonSettingsMessages = defineMessages({
|
||||||
account: {
|
account: {
|
||||||
id: 'settings.account.title',
|
id: 'settings.account.title',
|
||||||
|
|||||||
Reference in New Issue
Block a user