From 84b4f8e474ef96816100dd279635031e0dab5630 Mon Sep 17 00:00:00 2001 From: Arthur Date: Tue, 21 Jul 2026 20:36:06 +0200 Subject: [PATCH] chore(frontend): i18n pass on mostly-translated frontend components (#6786) * i18n pass on mostly-translated frontend components * Run prepr * Fix SRV-records text and unescape tooltip braces * Fix changed wording * Remove unneeded strings * Use ICU-safe placeholder --- .../analytics-dashboard/analytics-messages.ts | 4 + .../query-builder/QueryFilter.vue | 2 +- .../src/components/ui/ModrinthFooter.vue | 38 +- .../ui/OrganizationProjectTransferModal.vue | 62 ++- .../stages/AddFilesStage.vue | 79 +++- .../stages/DetailsStage.vue | 80 +++- .../stages/MetadataStage.vue | 161 +++++-- .../ui/create/ProjectCreateModal.vue | 18 +- .../ui/dashboard/CreatorTaxFormModal.vue | 22 +- .../ui/dashboard/CreatorWithdrawModal.vue | 4 +- .../withdraw-stages/MuralpayKycStage.vue | 18 +- .../TremendousDetailsStage.vue | 155 ++++--- .../servers/marketing/ServerPlanSelector.vue | 16 +- apps/frontend/src/locales/de-CH/index.json | 3 - apps/frontend/src/locales/de-DE/index.json | 3 - apps/frontend/src/locales/en-US/index.json | 412 +++++++++++++++++- apps/frontend/src/locales/es-419/index.json | 3 - apps/frontend/src/locales/es-ES/index.json | 3 - apps/frontend/src/locales/fr-FR/index.json | 3 - apps/frontend/src/locales/it-IT/index.json | 3 - apps/frontend/src/locales/ko-KR/index.json | 3 - apps/frontend/src/locales/ms-MY/index.json | 3 - apps/frontend/src/locales/pl-PL/index.json | 3 - apps/frontend/src/locales/pt-BR/index.json | 3 - apps/frontend/src/locales/ru-RU/index.json | 3 - apps/frontend/src/locales/sr-CS/index.json | 3 - apps/frontend/src/locales/sv-SE/index.json | 3 - apps/frontend/src/locales/tr-TR/index.json | 3 - apps/frontend/src/locales/uk-UA/index.json | 3 - apps/frontend/src/locales/vi-VN/index.json | 3 - apps/frontend/src/locales/zh-CN/index.json | 3 - apps/frontend/src/locales/zh-TW/index.json | 3 - .../[type]/[project]/settings/server.vue | 156 +++++-- .../pages/[type]/[project]/settings/tags.vue | 148 +++++-- .../[type]/[project]/settings/versions.vue | 105 ++++- .../[type]/[project]/version/[version].vue | 29 +- .../src/pages/collection/[collection].vue | 12 +- apps/frontend/src/pages/hosting/index.vue | 39 +- .../src/pages/organization/[organization].vue | 26 +- apps/frontend/src/pages/report.vue | 5 +- 40 files changed, 1338 insertions(+), 307 deletions(-) diff --git a/apps/frontend/src/components/analytics-dashboard/analytics-messages.ts b/apps/frontend/src/components/analytics-dashboard/analytics-messages.ts index 49a0b7ea27..f388bd3dfe 100644 --- a/apps/frontend/src/components/analytics-dashboard/analytics-messages.ts +++ b/apps/frontend/src/components/analytics-dashboard/analytics-messages.ts @@ -213,6 +213,10 @@ export const analyticsMessages = defineMessages({ id: 'analytics.filter.game-version-type.all', defaultMessage: 'All', }, + dependentProjectSearchFailedTitle: { + id: 'analytics.filter.dependent-project-search-failed-title', + defaultMessage: 'Dependent projects failed to load', + }, }) export const analyticsStatMessages = defineMessages({ diff --git a/apps/frontend/src/components/analytics-dashboard/query-builder/QueryFilter.vue b/apps/frontend/src/components/analytics-dashboard/query-builder/QueryFilter.vue index a01fc834ab..464fc9c0c0 100644 --- a/apps/frontend/src/components/analytics-dashboard/query-builder/QueryFilter.vue +++ b/apps/frontend/src/components/analytics-dashboard/query-builder/QueryFilter.vue @@ -492,7 +492,7 @@ watch(dependentProjectSearchError, (error) => { if (!error) return addNotification({ - title: 'Dependent projects failed to load', + title: formatMessage(analyticsMessages.dependentProjectSearchFailedTitle), text: getDependentProjectSearchErrorMessage(error), type: 'error', }) diff --git a/apps/frontend/src/components/ui/ModrinthFooter.vue b/apps/frontend/src/components/ui/ModrinthFooter.vue index 2cb0d38283..af071d7fc7 100644 --- a/apps/frontend/src/components/ui/ModrinthFooter.vue +++ b/apps/frontend/src/components/ui/ModrinthFooter.vue @@ -40,6 +40,30 @@ const messages = defineMessages({ defaultMessage: 'NOT AN OFFICIAL MINECRAFT SERVICE. NOT APPROVED BY OR ASSOCIATED WITH MOJANG OR MICROSOFT.', }, + basedOnLabel: { + id: 'layout.footer.based-on-label', + defaultMessage: 'Based on', + }, + unknownCommit: { + id: 'layout.footer.unknown-commit', + defaultMessage: 'unknown', + }, + developerModeActivatedTitle: { + id: 'layout.footer.developer-mode-activated.title', + defaultMessage: 'Developer mode activated', + }, + developerModeActivatedText: { + id: 'layout.footer.developer-mode-activated.text', + defaultMessage: 'Developer mode has been enabled', + }, + developerModeDeactivatedTitle: { + id: 'layout.footer.developer-mode-deactivated.title', + defaultMessage: 'Developer mode deactivated', + }, + developerModeDeactivatedText: { + id: 'layout.footer.developer-mode-deactivated.text', + defaultMessage: 'Developer mode has been disabled', + }, }) const socialLinks: { @@ -215,14 +239,14 @@ function developerModeIncrement() { saveFeatureFlags() if (flags.value.developerMode) { addNotification({ - title: 'Developer mode activated', - text: 'Developer mode has been enabled', + title: formatMessage(messages.developerModeActivatedTitle), + text: formatMessage(messages.developerModeActivatedText), type: 'success', }) } else { addNotification({ - title: 'Developer mode deactivated', - text: 'Developer mode has been disabled', + title: formatMessage(messages.developerModeDeactivatedTitle), + text: formatMessage(messages.developerModeDeactivatedText), type: 'success', }) } @@ -320,7 +344,7 @@ function developerModeIncrement() {

- Based on + {{ formatMessage(messages.basedOnLabel) }} @ - unknown + {{ + formatMessage(messages.unknownCommit) + }}

- +
@@ -124,11 +127,11 @@ const { handleNewFiles, } = injectManageVersionContext() -const editTabs: TabsTab[] = [ - { label: 'Metadata', value: 'metadata' }, - { label: 'Details', value: 'add-details' }, - { label: 'Files', value: 'add-files' }, -] +const editTabs = computed(() => [ + { label: formatMessage(messages.metadataTab), value: 'metadata' }, + { label: formatMessage(messages.detailsTab), value: 'add-details' }, + { label: formatMessage(messages.filesTab), value: 'add-files' }, +]) function setEditTab(tab: TabsTab) { modal.value?.setStage(tab.value) @@ -171,5 +174,51 @@ const messages = defineMessages({ defaultMessage: 'Supplementary files are for supporting resources like source code, not for alternative versions or variants.', }, + uploadFileAriaLabel: { + id: 'create-project-version.create-modal.stage.add-files.upload-file-aria-label', + defaultMessage: 'Upload file', + }, + uploadAdditionalFileAriaLabel: { + id: 'create-project-version.create-modal.stage.add-files.upload-additional-file-aria-label', + defaultMessage: 'Upload additional file', + }, + uploadPrimaryPrompt: { + id: 'create-project-version.create-modal.stage.add-files.upload-primary-prompt', + defaultMessage: 'Upload primary and supporting files', + }, + uploadSecondaryPrompt: { + id: 'create-project-version.create-modal.stage.add-files.upload-secondary-prompt', + defaultMessage: 'Drag and drop files or click to browse', + }, + primaryFileLabel: { + id: 'create-project-version.create-modal.stage.add-files.primary-file-label', + defaultMessage: 'Primary file', + }, + primaryFileDescription: { + id: 'create-project-version.create-modal.stage.add-files.primary-file-description', + defaultMessage: + 'The primary file is the default file a user downloads when installing the project.', + }, + supplementaryFilesLabel: { + id: 'create-project-version.create-modal.stage.add-files.supplementary-files-label', + defaultMessage: 'Supplementary files', + }, + supplementaryFilesDescription: { + id: 'create-project-version.create-modal.stage.add-files.supplementary-files-description', + defaultMessage: + 'You can optionally add supplementary files such as source code, documentation, or required resource packs.', + }, + metadataTab: { + id: 'create-project-version.create-modal.stage.add-files.metadata-tab', + defaultMessage: 'Metadata', + }, + detailsTab: { + id: 'create-project-version.create-modal.stage.add-files.details-tab', + defaultMessage: 'Details', + }, + filesTab: { + id: 'create-project-version.create-modal.stage.add-files.files-tab', + defaultMessage: 'Files', + }, }) diff --git a/apps/frontend/src/components/ui/create-project-version/stages/DetailsStage.vue b/apps/frontend/src/components/ui/create-project-version/stages/DetailsStage.vue index 173dab5388..7774b371e4 100644 --- a/apps/frontend/src/components/ui/create-project-version/stages/DetailsStage.vue +++ b/apps/frontend/src/components/ui/create-project-version/stages/DetailsStage.vue @@ -9,7 +9,7 @@
- Version type * + {{ formatMessage(messages.versionType) }} *
- Version number * + {{ formatMessage(messages.versionNumber) }} * - The version number differentiates this specific version from others. + {{ formatMessage(messages.versionNumberDescription) }}
- Version subtitle + {{ formatMessage(messages.versionSubtitle) }}
- Version changelog + {{ + formatMessage(messages.versionChangelog) + }}
diff --git a/apps/frontend/src/components/ui/dashboard/withdraw-stages/TremendousDetailsStage.vue b/apps/frontend/src/components/ui/dashboard/withdraw-stages/TremendousDetailsStage.vue index fdd371148c..764108e703 100644 --- a/apps/frontend/src/components/ui/dashboard/withdraw-stages/TremendousDetailsStage.vue +++ b/apps/frontend/src/components/ui/dashboard/withdraw-stages/TremendousDetailsStage.vue @@ -58,9 +58,17 @@