diff --git a/apps/app-frontend/src/App.vue b/apps/app-frontend/src/App.vue index 653b50ae2f..d2a0e75100 100644 --- a/apps/app-frontend/src/App.vue +++ b/apps/app-frontend/src/App.vue @@ -176,6 +176,7 @@ const { handleBrowseModpacks, searchModpacks, getProjectVersions, + getLoaderManifest, setModpackAlreadyInstalledModal, handleModpackDuplicateCreateAnyway, handleModpackDuplicateGoToInstance, @@ -1108,6 +1109,7 @@ provideAppUpdateDownloadProgress(appUpdateDownload) :fetch-existing-instance-names="fetchExistingInstanceNames" :search-modpacks="searchModpacks" :get-project-versions="getProjectVersions" + :get-loader-manifest="getLoaderManifest" @create="handleCreate" @browse-modpacks="handleBrowseModpacks" /> diff --git a/apps/app-frontend/src/locales/en-US/index.json b/apps/app-frontend/src/locales/en-US/index.json index f7f558ae65..b67cec96ea 100644 --- a/apps/app-frontend/src/locales/en-US/index.json +++ b/apps/app-frontend/src/locales/en-US/index.json @@ -38,6 +38,18 @@ "app.browse.install-content-to-instance": { "message": "Install content to instance" }, + "app.browse.project-type.modpacks": { + "message": "Modpacks" + }, + "app.browse.server.install": { + "message": "Install" + }, + "app.browse.server.installed": { + "message": "Installed" + }, + "app.browse.server.installing": { + "message": "Installing" + }, "app.export-modal.description-placeholder": { "message": "Enter modpack description..." }, diff --git a/apps/app-frontend/src/pages/Browse.vue b/apps/app-frontend/src/pages/Browse.vue index dcbe484463..ccf5039a24 100644 --- a/apps/app-frontend/src/pages/Browse.vue +++ b/apps/app-frontend/src/pages/Browse.vue @@ -34,6 +34,7 @@ import { onBeforeRouteLeave, useRoute, useRouter } from 'vue-router' import ContextMenu from '@/components/ui/ContextMenu.vue' import { get_project_v3, get_search_results_v3 } from '@/helpers/cache.js' import { process_listener } from '@/helpers/events' +import { get_loader_versions as getLoaderManifest } from '@/helpers/metadata' import { get_by_profile_path } from '@/helpers/process' import { get as getInstance, @@ -441,10 +442,26 @@ const messages = defineMessages({ id: 'app.browse.install-content-to-instance', defaultMessage: 'Install content to instance', }, + installToServer: { + id: 'app.browse.server.install', + defaultMessage: 'Install', + }, + installedToServer: { + id: 'app.browse.server.installed', + defaultMessage: 'Installed', + }, + installingToServer: { + id: 'app.browse.server.installing', + defaultMessage: 'Installing', + }, modLoaderProvidedByInstance: { id: 'search.filter.locked.instance-loader.title', defaultMessage: 'Loader is provided by the instance', }, + modpacksProjectType: { + id: 'app.browse.project-type.modpacks', + defaultMessage: 'Modpacks', + }, modLoaderProvidedByServer: { id: 'search.filter.locked.server-loader.title', defaultMessage: 'Loader is provided by the server', @@ -550,7 +567,9 @@ const selectableProjectTypes = computed(() => { const suffix = queryString ? `?${queryString}` : '' if (isSetupServerContext.value) { - return [{ label: 'Modpacks', href: `/browse/modpack${suffix}` }] + return [ + { label: formatMessage(messages.modpacksProjectType), href: `/browse/modpack${suffix}` }, + ] } if (isFromWorlds.value) { @@ -730,7 +749,13 @@ function getCardActions( return [ { key: 'install', - label: isInstalling ? 'Installing' : isInstalled ? 'Installed' : 'Install', + label: formatMessage( + isInstalling + ? messages.installingToServer + : isInstalled + ? messages.installedToServer + : messages.installToServer, + ), icon: isInstalled ? CheckIcon : PlusIcon, disabled: isInstalled || isInstalling, color: 'brand', @@ -972,6 +997,7 @@ provideBrowseManager({ :on-back="onServerFlowBack" :search-modpacks="searchServerModpacks" :get-project-versions="getServerProjectVersions" + :get-loader-manifest="getLoaderManifest" @hide="() => {}" @browse-modpacks="() => {}" @create="handleServerModpackFlowCreate" diff --git a/apps/app-frontend/src/providers/setup/creation-modal.ts b/apps/app-frontend/src/providers/setup/creation-modal.ts index 4020fe8b37..a08fd4f51a 100644 --- a/apps/app-frontend/src/providers/setup/creation-modal.ts +++ b/apps/app-frontend/src/providers/setup/creation-modal.ts @@ -11,6 +11,7 @@ import type ModpackAlreadyInstalledModal from '@/components/ui/modal/ModpackAlre import { trackEvent } from '@/helpers/analytics' import { get_project_versions, get_search_results } from '@/helpers/cache.js' import { import_instance } from '@/helpers/import.js' +import { get_loader_versions as getLoaderManifest } from '@/helpers/metadata.js' import { create_profile_and_install, create_profile_and_install_from_file } from '@/helpers/pack' import { create, list } from '@/helpers/profile.js' import type { InstanceLoader } from '@/helpers/types' @@ -165,6 +166,7 @@ export function setupCreationModal(notificationManager: AbstractWebNotificationM handleBrowseModpacks, searchModpacks, getProjectVersions, + getLoaderManifest, setModpackAlreadyInstalledModal, handleModpackDuplicateCreateAnyway, handleModpackDuplicateGoToInstance, diff --git a/apps/frontend/src/pages/admin/emails.vue b/apps/frontend/src/pages/admin/emails.vue index 232b77ef63..3b7674b4c8 100644 --- a/apps/frontend/src/pages/admin/emails.vue +++ b/apps/frontend/src/pages/admin/emails.vue @@ -1,6 +1,6 @@ diff --git a/packages/ui/src/components/flows/creation-flow-modal/components/ImportInstanceStage.vue b/packages/ui/src/components/flows/creation-flow-modal/components/ImportInstanceStage.vue index b10cff0330..1e56011c95 100644 --- a/packages/ui/src/components/flows/creation-flow-modal/components/ImportInstanceStage.vue +++ b/packages/ui/src/components/flows/creation-flow-modal/components/ImportInstanceStage.vue @@ -2,19 +2,21 @@
- Launcher instances + {{ + formatMessage(messages.launcherInstancesTitle) + }} - +