From 58c1e225c83089272edfa0c8c2d844b86979b902 Mon Sep 17 00:00:00 2001 From: Jerozgen Date: Tue, 17 Mar 2026 22:56:01 +0300 Subject: [PATCH] Sort filters and add translations for servers (#5493) * Translate and sort server filters * Set team_members to unknown[] * Additional fixes after merge * Additional translations * Replace "IP" with "server address" * Prioritize English and user language --- .../ui/create/ProjectCreateModal.vue | 4 - apps/frontend/src/locales/en-US/index.json | 3 - .../src/pages/[type]/[id]/settings/server.vue | 35 +- .../src/components/modal/OpenInAppModal.vue | 7 +- .../project/ProjectSidebarCreators.vue | 6 +- .../project/ProjectSidebarServerInfo.vue | 87 ++--- .../components/project/ProjectSidebarTags.vue | 12 +- .../project/server/ServerModpackContent.vue | 12 +- .../server/ServerModpackContentCard.vue | 18 +- .../components/project/server/ServerPing.vue | 30 +- .../project/server/ServerRegion.vue | 27 +- packages/ui/src/composables/i18n.ts | 4 +- .../components/modals/ModpackContentModal.vue | 4 - packages/ui/src/locales/en-US/index.json | 317 ++++++++++++++++- packages/ui/src/utils/server-search.ts | 319 +++++++++++------- packages/ui/src/utils/tag-messages.ts | 8 +- packages/utils/utils.ts | 17 +- 17 files changed, 666 insertions(+), 244 deletions(-) diff --git a/apps/frontend/src/components/ui/create/ProjectCreateModal.vue b/apps/frontend/src/components/ui/create/ProjectCreateModal.vue index aca341aa1..77f51ac7b 100644 --- a/apps/frontend/src/components/ui/create/ProjectCreateModal.vue +++ b/apps/frontend/src/components/ui/create/ProjectCreateModal.vue @@ -229,10 +229,6 @@ const messages = defineMessages({ id: 'create.project.create-project', defaultMessage: 'Create project', }, - createServerProject: { - id: 'create.project.create-server-project', - defaultMessage: 'Create server', - }, visibilityPublic: { id: 'create.project.visibility-public', defaultMessage: 'Public', diff --git a/apps/frontend/src/locales/en-US/index.json b/apps/frontend/src/locales/en-US/index.json index d7295c12c..ab38dcebc 100644 --- a/apps/frontend/src/locales/en-US/index.json +++ b/apps/frontend/src/locales/en-US/index.json @@ -497,9 +497,6 @@ "create.project.create-project": { "message": "Create project" }, - "create.project.create-server-project": { - "message": "Create server" - }, "create.project.missing-fields-tooltip": { "message": "Missing fields: {fields}" }, diff --git a/apps/frontend/src/pages/[type]/[id]/settings/server.vue b/apps/frontend/src/pages/[type]/[id]/settings/server.vue index 73b573834..74842229f 100644 --- a/apps/frontend/src/pages/[type]/[id]/settings/server.vue +++ b/apps/frontend/src/pages/[type]/[id]/settings/server.vue @@ -169,12 +169,15 @@ import { SERVER_REGIONS, StyledInput, UnsavedChangesPopup, + useVIntl, } from '@modrinth/ui' import CompatibilityCard from '~/components/ui/project-settings/CompatibilityCard.vue' const PING_TIMEOUT_MS = 5000 +const { formatMessage, locale } = useVIntl() + const client = injectModrinthClient() const { addNotification } = injectNotificationManager() const { projectV3, currentMember, patchProjectV3 } = injectProjectPageContext() @@ -262,15 +265,31 @@ if (projectV3.value) { ) } -const regionOptions = SERVER_REGIONS.map((region) => ({ - value: region.code, - label: region.name, -})) +const regionOptions = computed(() => + Object.entries(SERVER_REGIONS) + .sort(([_, a], [__, b]) => { + const aFormatted = formatMessage(a) + const bFormatted = formatMessage(b) + return aFormatted.localeCompare(bFormatted, locale.value) + }) + .map(([code, name]) => ({ + value: code, + label: formatMessage(name), + })), +) -const languageOptions = SERVER_LANGUAGES.map((language) => ({ - value: language.code, - label: language.name, -})) +const languageOptions = computed(() => + Object.entries(SERVER_LANGUAGES) + .sort(([_, a], [__, b]) => { + const aFormatted = formatMessage(a) + const bFormatted = formatMessage(b) + return aFormatted.localeCompare(bFormatted, locale.value) + }) + .map(([code, name]) => ({ + value: code, + label: formatMessage(name), + })), +) const javaServerPatchData = computed(() => { const addressChanged = diff --git a/packages/ui/src/components/modal/OpenInAppModal.vue b/packages/ui/src/components/modal/OpenInAppModal.vue index 3f46862eb..747e7c090 100644 --- a/packages/ui/src/components/modal/OpenInAppModal.vue +++ b/packages/ui/src/components/modal/OpenInAppModal.vue @@ -91,7 +91,7 @@ @@ -108,6 +108,7 @@ diff --git a/packages/ui/src/components/project/ProjectSidebarServerInfo.vue b/packages/ui/src/components/project/ProjectSidebarServerInfo.vue index 4554b7d27..f025f93af 100644 --- a/packages/ui/src/components/project/ProjectSidebarServerInfo.vue +++ b/packages/ui/src/components/project/ProjectSidebarServerInfo.vue @@ -4,7 +4,7 @@
@@ -17,7 +17,7 @@
-

Required content

+

{{ formatMessage(messages.requiredContent) }}

-

Minecraft: Java Edition

+

{{ formatMessage(messages.minecraftJava) }}

{{ version }} - +
-

Region

+

{{ formatMessage(messages.region) }}

-

Languages

+

{{ formatMessage(messages.languages) }}

- {{ languageDisplay.find((l) => l.value === language)?.label ?? language }} + {{ SERVER_LANGUAGES[language] ? formatMessage(SERVER_LANGUAGES[language]) : language }}
@@ -79,6 +81,7 @@ diff --git a/packages/ui/src/components/project/ProjectSidebarTags.vue b/packages/ui/src/components/project/ProjectSidebarTags.vue index 7a88d37c7..6a329ce90 100644 --- a/packages/ui/src/components/project/ProjectSidebarTags.vue +++ b/packages/ui/src/components/project/ProjectSidebarTags.vue @@ -1,6 +1,6 @@