- To play this instance, you must sign in through Microsoft below. If you don't have a
- Minecraft account, you can purchase the game on the
- Minecraft website.
-
-
-
-
-
Modrinth App failed to load correctly. This may be because of a corrupted file, or
diff --git a/apps/app-frontend/src/components/ui/instance-page-header/index.vue b/apps/app-frontend/src/components/ui/instance-page-header/index.vue
new file mode 100644
index 0000000000..68591e0e39
--- /dev/null
+++ b/apps/app-frontend/src/components/ui/instance-page-header/index.vue
@@ -0,0 +1,294 @@
+
+
+
+
+
+
+
+
+
+
+ Minecraft {{ instance.game_version }}
+
+
+ {{ loaderLabel }}
+
+
+ {{ playtimeLabel }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/app-frontend/src/components/ui/instance-page-header/instance-page-header-server-metadata.vue b/apps/app-frontend/src/components/ui/instance-page-header/instance-page-header-server-metadata.vue
new file mode 100644
index 0000000000..b346190310
--- /dev/null
+++ b/apps/app-frontend/src/components/ui/instance-page-header/instance-page-header-server-metadata.vue
@@ -0,0 +1,63 @@
+
+
- Modrinth's ad provider, Aditude, shows ads based on your preferences. By disabling this
- option, you opt out and ads will no longer be shown based on your interests.
-
+
+
+ {{ formatMessage(messages.adsConsentTitle) }}
+
+
+
+
+ {{ formatMessage(messages.adsConsentIntro) }}
+
+
+
+
+
-
-
+
Telemetry
diff --git a/apps/app-frontend/src/components/ui/skin/EditSkinModal.vue b/apps/app-frontend/src/components/ui/skin/EditSkinModal.vue
index 76f9ec6d01..7993ef2034 100644
--- a/apps/app-frontend/src/components/ui/skin/EditSkinModal.vue
+++ b/apps/app-frontend/src/components/ui/skin/EditSkinModal.vue
@@ -11,6 +11,7 @@
callback(event.payload))
+}
+
export async function record_ads_click() {
return await invoke('plugin:ads|record_ads_click')
}
diff --git a/apps/app-frontend/src/helpers/rendering/batch-skin-renderer.ts b/apps/app-frontend/src/helpers/rendering/batch-skin-renderer.ts
index cb92cd45b8..231944f97f 100644
--- a/apps/app-frontend/src/helpers/rendering/batch-skin-renderer.ts
+++ b/apps/app-frontend/src/helpers/rendering/batch-skin-renderer.ts
@@ -1,8 +1,11 @@
import { ClassicPlayerModel, SlimPlayerModel } from '@modrinth/assets'
import {
applyCapeTexture,
+ applyEarsMod,
createTransparentTexture,
disposeCaches,
+ loadTexture,
+ removeEarsMod,
setupSkinModel,
} from '@modrinth/ui'
import * as THREE from 'three'
@@ -71,12 +74,13 @@ class BatchSkinRenderer {
textureUrl: string,
modelUrl: string,
capeUrl?: string,
+ earsTextureUrl?: string,
): Promise {
this.initializeRenderer()
this.clearScene()
- await this.setupModel(modelUrl, textureUrl, capeUrl)
+ await this.setupModel(modelUrl, textureUrl, capeUrl, earsTextureUrl)
const headPart = this.currentModel!.getObjectByName('Head')
let lookAtTarget: [number, number, number]
@@ -123,17 +127,29 @@ class BatchSkinRenderer {
})
}
- private async setupModel(modelUrl: string, textureUrl: string, capeUrl?: string): Promise {
+ private async setupModel(
+ modelUrl: string,
+ textureUrl: string,
+ capeUrl?: string,
+ earsTextureUrl?: string,
+ ): Promise {
if (!this.scene) {
throw new Error('Renderer not initialized')
}
- const { model } = await setupSkinModel(modelUrl, textureUrl, capeUrl)
+ const [{ model }, earsTexture] = await Promise.all([
+ setupSkinModel(modelUrl, textureUrl, capeUrl),
+ earsTextureUrl ? loadTexture(earsTextureUrl) : Promise.resolve(null),
+ ])
if (!capeUrl) {
applyCapeTexture(model, null, this.getTransparentTexture())
}
+ if (earsTexture) {
+ applyEarsMod(model, earsTexture)
+ }
+
const group = new THREE.Group()
group.add(model)
group.position.set(0, 0.3, 1.95)
@@ -154,6 +170,7 @@ class BatchSkinRenderer {
private clearScene(): void {
if (!this.scene || !this.currentModel) return
+ removeEarsMod(this.currentModel)
this.scene.remove(this.currentModel)
this.currentModel.clear()
this.currentModel = null
@@ -193,6 +210,7 @@ function getModelUrlForVariant(variant: string): string {
export const skinBlobUrlMap = reactive(new Map())
export const headBlobUrlMap = reactive(new Map())
const DEBUG_MODE = false
+const SKIN_PREVIEW_RENDER_VERSION = 'ears-2-fixed-uvs'
let sharedRenderer: BatchSkinRenderer | null = null
let latestPreviewGeneration = 0
@@ -205,6 +223,10 @@ function getSharedRenderer(): BatchSkinRenderer {
return sharedRenderer
}
+export function getSkinPreviewKey(skin: Skin): string {
+ return `${SKIN_PREVIEW_RENDER_VERSION}+${skin.texture_key}+${skin.variant}+${skin.cape_id ?? 'no-cape'}`
+}
+
export function disposeSharedRenderer(): void {
if (sharedRenderer) {
sharedRenderer.dispose()
@@ -217,7 +239,7 @@ export async function cleanupUnusedPreviews(skins: Skin[]): Promise {
const validHeadKeys = new Set()
for (const skin of skins) {
- const key = `${skin.texture_key}+${skin.variant}+${skin.cape_id ?? 'no-cape'}`
+ const key = getSkinPreviewKey(skin)
const headKey = `${skin.texture_key}-head`
validKeys.add(key)
validHeadKeys.add(headKey)
@@ -382,9 +404,7 @@ async function generateSkinPreviewsForGeneration(
const isCurrentGeneration = () => generation === latestPreviewGeneration
try {
- const skinKeys = skins.map(
- (skin) => `${skin.texture_key}+${skin.variant}+${skin.cape_id ?? 'no-cape'}`,
- )
+ const skinKeys = skins.map(getSkinPreviewKey)
const headKeys = skins.map((skin) => `${skin.texture_key}-head`)
const [cachedSkinPreviews, cachedHeadPreviews] = await Promise.all([
@@ -415,7 +435,7 @@ async function generateSkinPreviewsForGeneration(
for (const skin of skins) {
if (!isCurrentGeneration()) return
- const key = `${skin.texture_key}+${skin.variant}+${skin.cape_id ?? 'no-cape'}`
+ const key = getSkinPreviewKey(skin)
if (skinBlobUrlMap.has(key)) {
if (DEBUG_MODE) {
@@ -443,6 +463,7 @@ async function generateSkinPreviewsForGeneration(
await get_normalized_skin_texture(skin),
modelUrl,
cape?.texture,
+ skin.texture,
)
if (!isCurrentGeneration()) return
diff --git a/apps/app-frontend/src/locales/ar-SA/index.json b/apps/app-frontend/src/locales/ar-SA/index.json
index afe728b790..a49b70a290 100644
--- a/apps/app-frontend/src/locales/ar-SA/index.json
+++ b/apps/app-frontend/src/locales/ar-SA/index.json
@@ -455,9 +455,6 @@
"app.project.install-context.back-to-browse": {
"message": "العودة إلى الاستكشاف"
},
- "app.project.install-context.install-content-to-instance": {
- "message": "تثبيت المحتويات الى النموذج"
- },
"app.project.version.all-versions": {
"message": "جميع الإصدارات"
},
diff --git a/apps/app-frontend/src/locales/cs-CZ/index.json b/apps/app-frontend/src/locales/cs-CZ/index.json
index ced52dbe9d..e638f5384e 100644
--- a/apps/app-frontend/src/locales/cs-CZ/index.json
+++ b/apps/app-frontend/src/locales/cs-CZ/index.json
@@ -392,9 +392,6 @@
"app.project.install-context.back-to-browse": {
"message": "Zpět k Objevování"
},
- "app.project.install-context.install-content-to-instance": {
- "message": "Nainstalovat obsah do instance"
- },
"app.project.version.all-versions": {
"message": "Všechny verze"
},
diff --git a/apps/app-frontend/src/locales/da-DK/index.json b/apps/app-frontend/src/locales/da-DK/index.json
index 7c82bf3f57..335285b5a2 100644
--- a/apps/app-frontend/src/locales/da-DK/index.json
+++ b/apps/app-frontend/src/locales/da-DK/index.json
@@ -296,9 +296,6 @@
"app.project.install-context.back-to-browse": {
"message": "Tilbage til udforsk"
},
- "app.project.install-context.install-content-to-instance": {
- "message": "Installer indhold til instance"
- },
"app.project.versions.already-installed": {
"message": "Allerede installeret"
},
diff --git a/apps/app-frontend/src/locales/de-CH/index.json b/apps/app-frontend/src/locales/de-CH/index.json
index 812d8092f3..51aae4b292 100644
--- a/apps/app-frontend/src/locales/de-CH/index.json
+++ b/apps/app-frontend/src/locales/de-CH/index.json
@@ -425,24 +425,48 @@
"app.instance.worlds.search-worlds-placeholder": {
"message": "Durchsuche {count} Welten..."
},
+ "app.modal.install-to-play.dont-install": {
+ "message": "Nicht Installieren"
+ },
"app.modal.install-to-play.header": {
"message": "Installieren zum Spielen"
},
+ "app.modal.install-to-play.install-anyway": {
+ "message": "Trotzdem Installieren"
+ },
"app.modal.install-to-play.install-button": {
"message": "Installieren"
},
+ "app.modal.install-to-play.invite-warning": {
+ "message": "Diese Einladung wurde von einem anderen Modrinth-Nutzer erstellt, nicht von Modrinth. Nimm nur Einladungen von Personen an, denen du vertraust."
+ },
"app.modal.install-to-play.mod-count": {
"message": "{count, plural, one {# Mod} other {# Mods}}"
},
+ "app.modal.install-to-play.reviewed-files": {
+ "message": "Eine Datei wird nur geprüft, wenn sie auf Modrinth veröffentlicht wird, unabhängig von ihrem Dateiformat (auch .mrpack)."
+ },
"app.modal.install-to-play.shared-instance": {
"message": "Geteilte Instanz"
},
+ "app.modal.install-to-play.unknown-files-description": {
+ "message": "Dieses Server-Modpack enthält Dateien, die nicht auf Modrinth veröffentlicht sind. Wir empfehlen dringend, nur Dateien aus vertrauenswürdigen Quellen zu installieren."
+ },
+ "app.modal.install-to-play.unknown-files-warning": {
+ "message": "Warnung vor unbekannten Dateien"
+ },
+ "app.modal.install-to-play.unrecognized-files": {
+ "message": "Nicht erkannte Dateien"
+ },
"app.modal.install-to-play.view-contents": {
"message": "Inhalte ansehen"
},
"app.modal.update-to-play.header": {
"message": "Aktualisieren zum Spielen"
},
+ "app.modal.update-to-play.removed": {
+ "message": "Entfernt"
+ },
"app.modal.update-to-play.update-required-description": {
"message": "Eine aktualisierung zum spielen von {name} ist benötigt. Bitte aktualisiere auf die neuste Version um das Spiel zu starten."
},
@@ -455,9 +479,6 @@
"app.project.install-context.back-to-browse": {
"message": "Zurück zu Entdecken"
},
- "app.project.install-context.install-content-to-instance": {
- "message": "Inhalt in Instanz installieren"
- },
"app.project.version.all-versions": {
"message": "Alle Versionen"
},
diff --git a/apps/app-frontend/src/locales/de-DE/index.json b/apps/app-frontend/src/locales/de-DE/index.json
index 29aafd0a7d..91708c9c4b 100644
--- a/apps/app-frontend/src/locales/de-DE/index.json
+++ b/apps/app-frontend/src/locales/de-DE/index.json
@@ -425,24 +425,48 @@
"app.instance.worlds.search-worlds-placeholder": {
"message": "Durchsuche {count} Welten..."
},
+ "app.modal.install-to-play.dont-install": {
+ "message": "Nicht Installieren"
+ },
"app.modal.install-to-play.header": {
"message": "Installieren zum Spielen"
},
+ "app.modal.install-to-play.install-anyway": {
+ "message": "Trotzdem Installieren"
+ },
"app.modal.install-to-play.install-button": {
"message": "Installieren"
},
+ "app.modal.install-to-play.invite-warning": {
+ "message": "Diese Einladung wurde von einem anderen Modrinth-Nutzer erstellt, nicht von Modrinth. Nimm nur Einladungen von Personen an, denen du vertraust."
+ },
"app.modal.install-to-play.mod-count": {
"message": "{count, plural, one {# Mod} other {# Mods}}"
},
+ "app.modal.install-to-play.reviewed-files": {
+ "message": "Eine Datei wird nur geprüft, wenn sie auf Modrinth veröffentlicht wird, unabhängig von ihrem Dateiformat (auch .mrpack)."
+ },
"app.modal.install-to-play.shared-instance": {
"message": "Geteilte Instanz"
},
+ "app.modal.install-to-play.unknown-files-description": {
+ "message": "Dieses Server-Modpack enthält Dateien, die nicht auf Modrinth veröffentlicht sind. Wir empfehlen dringend, nur Dateien aus vertrauenswürdigen Quellen zu installieren."
+ },
+ "app.modal.install-to-play.unknown-files-warning": {
+ "message": "Warnung vor unbekannten Dateien"
+ },
+ "app.modal.install-to-play.unrecognized-files": {
+ "message": "Nicht erkannte Dateien"
+ },
"app.modal.install-to-play.view-contents": {
"message": "Inhalte ansehen"
},
"app.modal.update-to-play.header": {
"message": "Aktualisieren zum Spielen"
},
+ "app.modal.update-to-play.removed": {
+ "message": "Entfernt"
+ },
"app.modal.update-to-play.update-required-description": {
"message": "Zum Spielen von {name} ist eine Aktualisierung erforderlich. Bitte aktualisiere auf die neueste Version, um das Spiel zu starten."
},
@@ -455,9 +479,6 @@
"app.project.install-context.back-to-browse": {
"message": "Zurück zum Entdecken"
},
- "app.project.install-context.install-content-to-instance": {
- "message": "Inhalt in Instanz installieren"
- },
"app.project.version.all-versions": {
"message": "Alle Versionen"
},
diff --git a/apps/app-frontend/src/locales/en-US/index.json b/apps/app-frontend/src/locales/en-US/index.json
index 7c481d1542..8a70ed4e1c 100644
--- a/apps/app-frontend/src/locales/en-US/index.json
+++ b/apps/app-frontend/src/locales/en-US/index.json
@@ -125,6 +125,21 @@
"app.action-bar.view-logs": {
"message": "View logs"
},
+ "app.ads-consent.accept": {
+ "message": "Accept all"
+ },
+ "app.ads-consent.body": {
+ "message": "Ads make Modrinth possible and fund creator payouts. Our partners may store or access cookies in the app to personalize ads and measure performance."
+ },
+ "app.ads-consent.manage": {
+ "message": "Manage preferences"
+ },
+ "app.ads-consent.reject": {
+ "message": "Reject all"
+ },
+ "app.ads-consent.title": {
+ "message": "Your privacy and how ads support Modrinth"
+ },
"app.appearance-settings.advanced-rendering.description": {
"message": "Enables advanced rendering such as blur effects that may cause performance issues without hardware-accelerated rendering."
},
@@ -479,9 +494,6 @@
"app.project.install-context.back-to-browse": {
"message": "Back to discover"
},
- "app.project.install-context.install-content-to-instance": {
- "message": "Install content to instance"
- },
"app.project.version.all-versions": {
"message": "All versions"
},
@@ -500,6 +512,9 @@
"app.settings.downloading": {
"message": "Downloading v{version}"
},
+ "app.settings.privacy.ads-consent.intro": {
+ "message": "Ads make Modrinth possible and fund creator payouts. Our partners may store or access cookies in the app to personalize ads and measure performance. You can opt out or manage your preferences below."
+ },
"app.settings.tabs.appearance": {
"message": "Appearance"
},
@@ -542,6 +557,9 @@
"app.skins.dropped-file-error.title": {
"message": "Error processing file"
},
+ "app.skins.ears-feature-notice": {
+ "message": "This skin uses features from the {ears} mod"
+ },
"app.skins.edit-button": {
"message": "Edit skin"
},
@@ -668,6 +686,12 @@
"app.skins.title": {
"message": "Skin selector"
},
+ "app.skins.toggle-ears-features-off": {
+ "message": "Toggle off"
+ },
+ "app.skins.toggle-ears-features-on": {
+ "message": "Toggle on"
+ },
"app.update-popup.body.download-complete": {
"message": "Modrinth App v{version} has finished downloading. Reload to update now, or automatically when you close Modrinth App."
},
@@ -779,6 +803,33 @@
"friends.sign-in-to-add-friends": {
"message": "Sign in to a Modrinth account to add friends and see what they're playing!"
},
+ "instance.action.create-shortcut": {
+ "message": "Create shortcut"
+ },
+ "instance.action.export-modpack": {
+ "message": "Export modpack"
+ },
+ "instance.action.launch-instance": {
+ "message": "Launch instance"
+ },
+ "instance.action.more-actions": {
+ "message": "More actions"
+ },
+ "instance.action.open-folder": {
+ "message": "Open folder"
+ },
+ "instance.action.repair": {
+ "message": "Repair"
+ },
+ "instance.action.settings": {
+ "message": "Instance settings"
+ },
+ "instance.action.starting": {
+ "message": "Starting..."
+ },
+ "instance.action.stopping": {
+ "message": "Stopping..."
+ },
"instance.add-server.add-and-play": {
"message": "Add and play"
},
@@ -821,6 +872,9 @@
"instance.files.save-as": {
"message": "Save as..."
},
+ "instance.playtime.never-played": {
+ "message": "Never played"
+ },
"instance.server-modal.address": {
"message": "Address"
},
@@ -1088,6 +1142,27 @@
"minecraft-account.sign-in": {
"message": "Sign in to Minecraft"
},
+ "minecraft-required.description": {
+ "message": "You need a Microsoft account that owns Minecraft before you can launch and play."
+ },
+ "minecraft-required.description-header": {
+ "message": "Sign in to a Microsoft account"
+ },
+ "minecraft-required.dont-have-account": {
+ "message": "Don’t have an account?"
+ },
+ "minecraft-required.get-minecraft": {
+ "message": "Get Minecraft"
+ },
+ "minecraft-required.get-support": {
+ "message": "Get support"
+ },
+ "minecraft-required.header": {
+ "message": "Minecraft required"
+ },
+ "minecraft-required.sign-in": {
+ "message": "Sign in to Microsoft"
+ },
"search.filter.locked.instance": {
"message": "Provided by the instance"
},
diff --git a/apps/app-frontend/src/locales/es-419/index.json b/apps/app-frontend/src/locales/es-419/index.json
index b153103776..a4a1fc9074 100644
--- a/apps/app-frontend/src/locales/es-419/index.json
+++ b/apps/app-frontend/src/locales/es-419/index.json
@@ -425,24 +425,48 @@
"app.instance.worlds.search-worlds-placeholder": {
"message": "Buscar en {count} mundos..."
},
+ "app.modal.install-to-play.dont-install": {
+ "message": "No instalar"
+ },
"app.modal.install-to-play.header": {
"message": "Instalar para jugar"
},
+ "app.modal.install-to-play.install-anyway": {
+ "message": "Instalar de todos modos"
+ },
"app.modal.install-to-play.install-button": {
"message": "Instalar"
},
+ "app.modal.install-to-play.invite-warning": {
+ "message": "Esta invitación la creó otro usuario de Modrinth, no Modrinth. Solo acepta invitaciones de personas en las que confíes."
+ },
"app.modal.install-to-play.mod-count": {
"message": "{count, plural, one {# mod} other {# mods}}"
},
+ "app.modal.install-to-play.reviewed-files": {
+ "message": "Un archivo solo se revisa si se publica en Modrinth, sin importar su formato (incluido el .mrpack)."
+ },
"app.modal.install-to-play.shared-instance": {
"message": "Instancia compartida"
},
+ "app.modal.install-to-play.unknown-files-description": {
+ "message": "Este modpack para servidor contiene archivos que no están publicados en Modrinth. Recomendamos encarecidamente instalar únicamente archivos de fuentes de confianza."
+ },
+ "app.modal.install-to-play.unknown-files-warning": {
+ "message": "Advertencia sobre archivos desconocidos"
+ },
+ "app.modal.install-to-play.unrecognized-files": {
+ "message": "Archivos no reconocidos"
+ },
"app.modal.install-to-play.view-contents": {
"message": "Ver contenidos"
},
"app.modal.update-to-play.header": {
"message": "Actualizar para jugar"
},
+ "app.modal.update-to-play.removed": {
+ "message": "Eliminado"
+ },
"app.modal.update-to-play.update-required-description": {
"message": "Se requiere una actualización para jugar {name}. Por favor, actualiza a la versión más reciente para iniciar el juego."
},
@@ -455,9 +479,6 @@
"app.project.install-context.back-to-browse": {
"message": "Volver al explorador"
},
- "app.project.install-context.install-content-to-instance": {
- "message": "Instalar contenido a la instancia"
- },
"app.project.version.all-versions": {
"message": "Todas las versiones"
},
diff --git a/apps/app-frontend/src/locales/es-ES/index.json b/apps/app-frontend/src/locales/es-ES/index.json
index 78b4bb0801..4debc08ce9 100644
--- a/apps/app-frontend/src/locales/es-ES/index.json
+++ b/apps/app-frontend/src/locales/es-ES/index.json
@@ -296,9 +296,6 @@
"app.project.install-context.back-to-browse": {
"message": "Volver a descubrir"
},
- "app.project.install-context.install-content-to-instance": {
- "message": "Instalar contenido"
- },
"app.settings.developer-mode-enabled": {
"message": "Modo desarrollador activado."
},
diff --git a/apps/app-frontend/src/locales/fi-FI/index.json b/apps/app-frontend/src/locales/fi-FI/index.json
index 2cb4f475b2..ea075da8f9 100644
--- a/apps/app-frontend/src/locales/fi-FI/index.json
+++ b/apps/app-frontend/src/locales/fi-FI/index.json
@@ -377,9 +377,6 @@
"app.project.install-context.back-to-browse": {
"message": "Takaisin sisällön löytöön"
},
- "app.project.install-context.install-content-to-instance": {
- "message": "Asenna sisältöä instanssiin"
- },
"app.settings.developer-mode-enabled": {
"message": "Kehittäjätila käytössä."
},
diff --git a/apps/app-frontend/src/locales/fr-FR/index.json b/apps/app-frontend/src/locales/fr-FR/index.json
index e48b58427f..1bc672f8ec 100644
--- a/apps/app-frontend/src/locales/fr-FR/index.json
+++ b/apps/app-frontend/src/locales/fr-FR/index.json
@@ -9,7 +9,7 @@
"message": "Téléchargements"
},
"app.action-bar.hide-more-running-instances": {
- "message": "Masquer plus d'instances en exécution"
+ "message": "Masquer plus d'instances en cours d'exécution"
},
"app.action-bar.install.copied-details": {
"message": "Copié"
@@ -36,7 +36,7 @@
"message": "Annulé"
},
"app.action-bar.install.summary.cleanup-incomplete": {
- "message": "Le nettoyage n'est pas terminé"
+ "message": "Le nettoyage n'a pas terminé"
},
"app.action-bar.install.summary.content-download-failed": {
"message": "Impossible de télécharger les fichiers"
@@ -65,6 +65,27 @@
"app.action-bar.install.summary.java-setup-failed": {
"message": "L'installation de Java n'a pas pu se terminer"
},
+ "app.action-bar.install.summary.loader-setup-failed": {
+ "message": "La mise en place du loader a échoué"
+ },
+ "app.action-bar.install.summary.local-data-error": {
+ "message": "Impossible de mettre à jour les données locales"
+ },
+ "app.action-bar.install.summary.minecraft-setup-failed": {
+ "message": "La mise en place de Minecraft a échoué"
+ },
+ "app.action-bar.install.summary.modrinth-unreachable": {
+ "message": "Impossible d'atteindre les serveurs Modrinth"
+ },
+ "app.action-bar.install.summary.no-write-permission": {
+ "message": "Aucune permission d'écriture"
+ },
+ "app.action-bar.install.summary.pack-download-failed": {
+ "message": "Impossible de télécharger le pack"
+ },
+ "app.action-bar.install.summary.unexpected-error": {
+ "message": "Quelque chose s'est mal passé"
+ },
"app.action-bar.install.unknown-instance": {
"message": "Instance inconnue"
},
@@ -72,22 +93,22 @@
"message": "Installations"
},
"app.action-bar.make-primary-instance": {
- "message": "Définir en tante qu'instance première"
+ "message": "Définir en tant qu'instance principale"
},
"app.action-bar.no-instances-running": {
- "message": "Aucune instance en exécution"
+ "message": "Aucune instance en cours d'exécution"
},
"app.action-bar.offline": {
"message": "Hors ligne"
},
"app.action-bar.primary-instance": {
- "message": "Instance première"
+ "message": "Instance principale"
},
"app.action-bar.reload-to-update": {
"message": "Recharger pour mettre à jour"
},
"app.action-bar.show-more-running-instances": {
- "message": "Montrer plus d'instances en exécution"
+ "message": "Montrer plus d'instances en cours d'exécution"
},
"app.action-bar.stop-instance": {
"message": "Arrêter l'instance"
@@ -263,6 +284,9 @@
"app.install.phase.finalizing": {
"message": "Finalisation"
},
+ "app.install.phase.preparing_instance": {
+ "message": "En attente d'installation"
+ },
"app.install.phase.preparing_java": {
"message": "Préparation de Java"
},
@@ -401,24 +425,48 @@
"app.instance.worlds.search-worlds-placeholder": {
"message": "Rechercher {count} mondes..."
},
+ "app.modal.install-to-play.dont-install": {
+ "message": "Ne pas installer"
+ },
"app.modal.install-to-play.header": {
"message": "Installer pour jouer"
},
+ "app.modal.install-to-play.install-anyway": {
+ "message": "Installer quand même"
+ },
"app.modal.install-to-play.install-button": {
"message": "Installer"
},
+ "app.modal.install-to-play.invite-warning": {
+ "message": "Cette invitation a été crée par un autre utilisateur Modrinth, pas par Modrinth. N'acceptez seulement les invitations de personnes en qui vous avez confiance."
+ },
"app.modal.install-to-play.mod-count": {
"message": "{count, plural, one {# mod} other {# mods}}"
},
+ "app.modal.install-to-play.reviewed-files": {
+ "message": "Un fichier est seulement examiné s'il est publié sur Modrinth, peu importe son extension (y compris .mrpack)."
+ },
"app.modal.install-to-play.shared-instance": {
"message": "Instance partagée"
},
+ "app.modal.install-to-play.unknown-files-description": {
+ "message": "Ce modpack de serveur contient des fichiers qui ne sont pas publiés sur Modrinth. Nous recommandons fortement de seulement installer des fichiers de sources en qui vous avez confiance."
+ },
+ "app.modal.install-to-play.unknown-files-warning": {
+ "message": "Avertissement de fichiers inconnus"
+ },
+ "app.modal.install-to-play.unrecognized-files": {
+ "message": "Fichiers non reconnus"
+ },
"app.modal.install-to-play.view-contents": {
"message": "Voir le contenu"
},
"app.modal.update-to-play.header": {
"message": "Mettre à jour pour jouer"
},
+ "app.modal.update-to-play.removed": {
+ "message": "Supprimé"
+ },
"app.modal.update-to-play.update-required-description": {
"message": "Une mise à jour est requise pour jouer à {name}. Veuillez mettre à jour à la dernière version pour lancer le jeu."
},
@@ -431,9 +479,6 @@
"app.project.install-context.back-to-browse": {
"message": "Retour vers la page découvrir"
},
- "app.project.install-context.install-content-to-instance": {
- "message": "Installer du contenu à l'instance"
- },
"app.project.version.all-versions": {
"message": "Toutes les versions"
},
diff --git a/apps/app-frontend/src/locales/hu-HU/index.json b/apps/app-frontend/src/locales/hu-HU/index.json
index 9968e504d9..66e37fb6c1 100644
--- a/apps/app-frontend/src/locales/hu-HU/index.json
+++ b/apps/app-frontend/src/locales/hu-HU/index.json
@@ -51,7 +51,7 @@
"message": "A letöltés nem sikerült"
},
"app.action-bar.install.summary.instance-not-found": {
- "message": "A példány nem található"
+ "message": "A játékprofil nem található"
},
"app.action-bar.install.summary.invalid-file-path": {
"message": "A fájl elérési útja érvénytelen"
@@ -87,7 +87,7 @@
"message": "Valami hiba történt"
},
"app.action-bar.install.unknown-instance": {
- "message": "Ismeretlen profil"
+ "message": "Ismeretlen játékprofil"
},
"app.action-bar.installs": {
"message": "Telepítések"
@@ -240,7 +240,7 @@
"message": "Modcsomagok"
},
"app.browse.server-instance-content-warning": {
- "message": "A tartalom hozzáadása ronthatja a kompatibilitást a szerverhez való csatlakozáskor. A hozzáadott tartalom elveszik, ha frissíted a szerverpéldány tartalmát."
+ "message": "A tartalom hozzáadása ronthatja a kompatibilitást a szerverhez való csatlakozáskor. A hozzáadott tartalom elveszik, ha frissíted a szerverprofil tartalmát."
},
"app.browse.server.installing": {
"message": "Letöltés"
@@ -291,16 +291,16 @@
"message": "Java előkészítése"
},
"app.install.phase.preparing_java.downloading": {
- "message": "Java verzió {version} letöltése"
+ "message": "A Java {version} letöltése..."
},
"app.install.phase.preparing_java.extracting": {
- "message": "Java verzió {version} kibontása"
+ "message": "A Java {version} kibontása..."
},
"app.install.phase.preparing_java.fetching-metadata": {
- "message": "Java verzió ellőkészítése {version}"
+ "message": "A Java {version} előkészítése..."
},
"app.install.phase.preparing_java.resolving": {
- "message": "Java verzió {version} előkészítése"
+ "message": "A Java {version} előkészítése..."
},
"app.install.phase.preparing_java.validating": {
"message": "A Java {version} ellenőrzése"
@@ -324,7 +324,7 @@
"message": "Betöltő folyamatok futtatása"
},
"app.instance.confirm-delete.admonition-body": {
- "message": "Az profilodhoz tartozó összes adat véglegesen törlődik, beleértve a világokat, a beállításokat és az összes telepített tartalmat."
+ "message": "A profilodhoz tartozó összes adat véglegesen törlődik, beleértve a világokat, a beállításokat és az összes telepített tartalmat."
},
"app.instance.confirm-delete.admonition-header": {
"message": "Ezt a műveletet nem lehet visszavonni"
@@ -425,24 +425,48 @@
"app.instance.worlds.search-worlds-placeholder": {
"message": "Keresés {count} világ között..."
},
+ "app.modal.install-to-play.dont-install": {
+ "message": "Ne töltse le"
+ },
"app.modal.install-to-play.header": {
"message": "Telepítés a játékhoz"
},
+ "app.modal.install-to-play.install-anyway": {
+ "message": "Telepítés mindenképpen"
+ },
"app.modal.install-to-play.install-button": {
"message": "Telepítés"
},
+ "app.modal.install-to-play.invite-warning": {
+ "message": "Ezt a meghívót nem a Modrinth, hanem egy másik Modrinth-felhasználó hozta létre. Csak olyan személyektől fogadd el a meghívásokat, akikben megbízol."
+ },
"app.modal.install-to-play.mod-count": {
"message": "{count} mod"
},
+ "app.modal.install-to-play.reviewed-files": {
+ "message": "Egy fájlt csak akkor vizsgálnak meg, ha azt a Modrinth-en közzétették, függetlenül a fájlformátumtól (beleértve a .mrpack formátumot is)."
+ },
"app.modal.install-to-play.shared-instance": {
"message": "Megosztott profil"
},
+ "app.modal.install-to-play.unknown-files-description": {
+ "message": "Ez a szerver-modpack olyan fájlokat tartalmaz, amelyek nem szerepelnek a Modrinth oldalon. Határozottan javasoljuk, hogy kizárólag olyan forrásokból telepíts fájlokat, amelyekben megbízol."
+ },
+ "app.modal.install-to-play.unknown-files-warning": {
+ "message": "Figyelmeztetés ismeretlen fájlokról"
+ },
+ "app.modal.install-to-play.unrecognized-files": {
+ "message": "Felismerhetetlen fájlok"
+ },
"app.modal.install-to-play.view-contents": {
"message": "Tartalom megtekintése"
},
"app.modal.update-to-play.header": {
"message": "Frissítsd a játékhoz"
},
+ "app.modal.update-to-play.removed": {
+ "message": "Törölve"
+ },
"app.modal.update-to-play.update-required-description": {
"message": "Frissítés szükséges ehhez: {name}. Kérlek, frissíts a legújabb verzióra a játék elindításához."
},
@@ -455,9 +479,6 @@
"app.project.install-context.back-to-browse": {
"message": "Vissza a böngészéshez"
},
- "app.project.install-context.install-content-to-instance": {
- "message": "Tartalom telepítése a példányba"
- },
"app.project.version.all-versions": {
"message": "Összes verzió"
},
diff --git a/apps/app-frontend/src/locales/id-ID/index.json b/apps/app-frontend/src/locales/id-ID/index.json
index cb9c1ec662..9b809dd0c9 100644
--- a/apps/app-frontend/src/locales/id-ID/index.json
+++ b/apps/app-frontend/src/locales/id-ID/index.json
@@ -272,9 +272,6 @@
"app.project.install-context.back-to-browse": {
"message": "Kembali ke halaman pencarian"
},
- "app.project.install-context.install-content-to-instance": {
- "message": "Pasang konten ke instans"
- },
"app.settings.developer-mode-enabled": {
"message": "Mode pengembang dihidupkan."
},
diff --git a/apps/app-frontend/src/locales/it-IT/index.json b/apps/app-frontend/src/locales/it-IT/index.json
index e777f291f2..5597052272 100644
--- a/apps/app-frontend/src/locales/it-IT/index.json
+++ b/apps/app-frontend/src/locales/it-IT/index.json
@@ -422,24 +422,48 @@
"app.instance.worlds.search-worlds-placeholder": {
"message": "Cerca tra {count} mondi..."
},
+ "app.modal.install-to-play.dont-install": {
+ "message": "Non installare"
+ },
"app.modal.install-to-play.header": {
"message": "Installa per continuare"
},
+ "app.modal.install-to-play.install-anyway": {
+ "message": "Installa comunque"
+ },
"app.modal.install-to-play.install-button": {
"message": "Installa"
},
+ "app.modal.install-to-play.invite-warning": {
+ "message": "Questo invito è stato creato da un utente e non da Modrinth. Accetta solo gli inviti da persone fidate."
+ },
"app.modal.install-to-play.mod-count": {
"message": "{count} mod"
},
+ "app.modal.install-to-play.reviewed-files": {
+ "message": "Solo i file pubblicati su Modrinth vengono esaminati, qualunque sia il loro formato (.mrpack inclusi)."
+ },
"app.modal.install-to-play.shared-instance": {
"message": "Istanza condivisa"
},
+ "app.modal.install-to-play.unknown-files-description": {
+ "message": "Questo pacchetto contiene dei file che non sono su Modrinth. Consigliamo di installare file solo da fonti attendibili."
+ },
+ "app.modal.install-to-play.unknown-files-warning": {
+ "message": "File sconosciuti"
+ },
+ "app.modal.install-to-play.unrecognized-files": {
+ "message": "File non riconosciuti"
+ },
"app.modal.install-to-play.view-contents": {
"message": "Mostra contenuti"
},
"app.modal.update-to-play.header": {
"message": "Aggiorna per continuare"
},
+ "app.modal.update-to-play.removed": {
+ "message": "Rimosso"
+ },
"app.modal.update-to-play.update-required-description": {
"message": "{name} richiede degli aggiornamenti. Installa l'ultima versione per poter giocare."
},
@@ -452,9 +476,6 @@
"app.project.install-context.back-to-browse": {
"message": "Torna a Esplora"
},
- "app.project.install-context.install-content-to-instance": {
- "message": "Installa il contenuto nell'istanza"
- },
"app.project.version.all-versions": {
"message": "Tutte le versioni"
},
diff --git a/apps/app-frontend/src/locales/ja-JP/index.json b/apps/app-frontend/src/locales/ja-JP/index.json
index e9ebd33efd..a0c4dd6ca2 100644
--- a/apps/app-frontend/src/locales/ja-JP/index.json
+++ b/apps/app-frontend/src/locales/ja-JP/index.json
@@ -143,6 +143,12 @@
"app.appearance-settings.show-play-time.title": {
"message": "プレイ時間を表示"
},
+ "app.appearance-settings.skip-non-essential-warnings.description": {
+ "message": "Modパックの重複インストール、通常のコンテンツ削除、一括更新、Modパックのリンク解除、修復の促しなど、リスクの低い確認画面は自動的にスキップされます。危険な警告は引き続き表示されます。"
+ },
+ "app.appearance-settings.skip-non-essential-warnings.title": {
+ "message": "重要でない警告をスキップ"
+ },
"app.appearance-settings.toggle-sidebar.description": {
"message": "サイドバーの表示/非表示を切り替える機能を有効にします。"
},
@@ -173,12 +179,18 @@
"app.browse.already-added": {
"message": "すでに追加済み"
},
+ "app.browse.back-to-instance": {
+ "message": "インスタンスに戻る"
+ },
"app.browse.discover-content": {
"message": "コンテンツを探す"
},
"app.browse.discover-servers": {
"message": "サーバーを探す"
},
+ "app.browse.hide-added-servers": {
+ "message": "既に追加済みのサーバーを非表示にする"
+ },
"app.browse.project-type.modpacks": {
"message": "Modパック"
},
diff --git a/apps/app-frontend/src/locales/ko-KR/index.json b/apps/app-frontend/src/locales/ko-KR/index.json
index 1130c6faaa..bb4792324b 100644
--- a/apps/app-frontend/src/locales/ko-KR/index.json
+++ b/apps/app-frontend/src/locales/ko-KR/index.json
@@ -11,6 +11,12 @@
"app.action-bar.hide-more-running-instances": {
"message": "실행 중인 인스턴스 숨기기"
},
+ "app.action-bar.install.copied-details": {
+ "message": "복사됨"
+ },
+ "app.action-bar.install.copy-details": {
+ "message": "세부 정보 복사"
+ },
"app.action-bar.install.dismiss": {
"message": "무시"
},
@@ -20,6 +26,66 @@
"app.action-bar.install.retry": {
"message": "재시도"
},
+ "app.action-bar.install.summary.app-closing": {
+ "message": "앱이 종료되어 취소되었습니다"
+ },
+ "app.action-bar.install.summary.bad-modpack-file": {
+ "message": "모드팩을 읽을 수 없음"
+ },
+ "app.action-bar.install.summary.canceled": {
+ "message": "취소됨"
+ },
+ "app.action-bar.install.summary.cleanup-incomplete": {
+ "message": "파일 정리가 완료되지 않았습니다"
+ },
+ "app.action-bar.install.summary.content-download-failed": {
+ "message": "파일을 다운로드할 수 없습니다"
+ },
+ "app.action-bar.install.summary.corrupt-download": {
+ "message": "다운로드한 파일이 손상되었습니다"
+ },
+ "app.action-bar.install.summary.could-not-save-files": {
+ "message": "파일을 저장할 수 없습니다"
+ },
+ "app.action-bar.install.summary.download-failed": {
+ "message": "다운로드를 완료할 수 없습니다"
+ },
+ "app.action-bar.install.summary.instance-not-found": {
+ "message": "인스턴스를 찾을 수 없습니다"
+ },
+ "app.action-bar.install.summary.invalid-file-path": {
+ "message": "파일 경로가 올바르지 않습니다"
+ },
+ "app.action-bar.install.summary.invalid-modpack": {
+ "message": "모드팩 데이터가 올바르지 않습니다"
+ },
+ "app.action-bar.install.summary.invalid-modpack-files": {
+ "message": "모드팩 파일이 올바르지 않은 메타데이터를 가지고 있습니다"
+ },
+ "app.action-bar.install.summary.java-setup-failed": {
+ "message": "Java 설치를 완료할 수 없습니다"
+ },
+ "app.action-bar.install.summary.loader-setup-failed": {
+ "message": "로더 설치에 실패했습니다"
+ },
+ "app.action-bar.install.summary.local-data-error": {
+ "message": "로컬 데이터를 업데이트할 수 없습니다"
+ },
+ "app.action-bar.install.summary.minecraft-setup-failed": {
+ "message": "Minecraft 설치에 실패했습니다"
+ },
+ "app.action-bar.install.summary.modrinth-unreachable": {
+ "message": "Modrinth에 연결할 수 없습니다"
+ },
+ "app.action-bar.install.summary.no-write-permission": {
+ "message": "쓰기 권한이 없습니다"
+ },
+ "app.action-bar.install.summary.pack-download-failed": {
+ "message": "팩을 다운로드할 수 없습니다"
+ },
+ "app.action-bar.install.summary.unexpected-error": {
+ "message": "무언가 잘못되었습니다"
+ },
"app.action-bar.install.unknown-instance": {
"message": "알 수 없는 인스턴스"
},
@@ -218,6 +284,9 @@
"app.install.phase.finalizing": {
"message": "마무리 중"
},
+ "app.install.phase.preparing_instance": {
+ "message": "설치 대기열에 추가됨"
+ },
"app.install.phase.preparing_java": {
"message": "Java 준비 중"
},
@@ -356,36 +425,60 @@
"app.instance.worlds.search-worlds-placeholder": {
"message": "{count}개의 세계 검색..."
},
+ "app.modal.install-to-play.dont-install": {
+ "message": "설치하지 않음"
+ },
"app.modal.install-to-play.header": {
"message": "설치하고 플레이"
},
+ "app.modal.install-to-play.install-anyway": {
+ "message": "무시하고 설치"
+ },
"app.modal.install-to-play.install-button": {
"message": "설치"
},
+ "app.modal.install-to-play.invite-warning": {
+ "message": "이 초대장은 다른 Modrinth 사용자가 생성했으며, Modrinth에서 생성하지 않았습니다. 신뢰할 수 있는 초대장만 수락하십시오."
+ },
"app.modal.install-to-play.mod-count": {
"message": "{count, plural, one {모드 #개} other {모드 #개}}"
},
+ "app.modal.install-to-play.reviewed-files": {
+ "message": "모든 파일은 형식(.mrpack 포함)에 무관하게 Modrinth에 게시되어야만 검수를 거칩니다."
+ },
"app.modal.install-to-play.shared-instance": {
"message": "인스턴스 공유됨"
},
+ "app.modal.install-to-play.unknown-files-description": {
+ "message": "이 서버의 모드팩은 Modrinth에 게시되지 않은 파일을 포함하고 있습니다. 신뢰할 수 있는 출처의 파일만 설치하는 것을 강력히 권장합니다."
+ },
+ "app.modal.install-to-play.unknown-files-warning": {
+ "message": "출처를 알 수 없는 파일"
+ },
+ "app.modal.install-to-play.unrecognized-files": {
+ "message": "확인되지 않은 파일"
+ },
"app.modal.install-to-play.view-contents": {
"message": "구성 요소 보기"
},
"app.modal.update-to-play.header": {
"message": "업데이트하고 플레이"
},
+ "app.modal.update-to-play.removed": {
+ "message": "제거됨"
+ },
"app.modal.update-to-play.update-required-description": {
"message": "{name}을(를) 플레이하려면 업데이트가 필요합니다. 게임을 실행하려면 최신 버전으로 업데이트해 주세요."
},
"app.project.install-button.already-installed": {
"message": "이미 설치되어 있음"
},
+ "app.project.install-button.switch-version": {
+ "message": "버전 변경"
+ },
"app.project.install-context.back-to-browse": {
"message": "탐색으로 돌아가기"
},
- "app.project.install-context.install-content-to-instance": {
- "message": "인스턴스에 콘텐츠 설치"
- },
"app.settings.developer-mode-enabled": {
"message": "개발자 모드가 활성화되었습니다."
},
@@ -579,7 +672,7 @@
"message": "다운로드 완료"
},
"app.update-popup.reload": {
- "message": "업데이트하려면 다시 로드"
+ "message": "새로고침하여 업데이트"
},
"app.update-popup.title": {
"message": "업데이트 가능"
diff --git a/apps/app-frontend/src/locales/ms-MY/index.json b/apps/app-frontend/src/locales/ms-MY/index.json
index a9264ff154..3a106aa251 100644
--- a/apps/app-frontend/src/locales/ms-MY/index.json
+++ b/apps/app-frontend/src/locales/ms-MY/index.json
@@ -287,9 +287,6 @@
"app.project.install-context.back-to-browse": {
"message": "Kembali menemukan"
},
- "app.project.install-context.install-content-to-instance": {
- "message": "Pasang kandungan ke dalam pemasangan"
- },
"app.settings.developer-mode-enabled": {
"message": "Mod pembangun didayakan."
},
diff --git a/apps/app-frontend/src/locales/nl-NL/index.json b/apps/app-frontend/src/locales/nl-NL/index.json
index 9110075f4e..45f3f430c5 100644
--- a/apps/app-frontend/src/locales/nl-NL/index.json
+++ b/apps/app-frontend/src/locales/nl-NL/index.json
@@ -11,6 +11,87 @@
"app.action-bar.hide-more-running-instances": {
"message": "Verberg meer actieve instanties"
},
+ "app.action-bar.install.copied-details": {
+ "message": "Gekopieerd"
+ },
+ "app.action-bar.install.copy-details": {
+ "message": "Details kopiëren"
+ },
+ "app.action-bar.install.dismiss": {
+ "message": "Sluiten"
+ },
+ "app.action-bar.install.open-instance": {
+ "message": "Instantie openen"
+ },
+ "app.action-bar.install.retry": {
+ "message": "Opnieuw proberen"
+ },
+ "app.action-bar.install.summary.app-closing": {
+ "message": "Geannuleerd vanwege het sluiten van de app"
+ },
+ "app.action-bar.install.summary.bad-modpack-file": {
+ "message": "Modpack kon niet gelezen worden"
+ },
+ "app.action-bar.install.summary.canceled": {
+ "message": "Geannuleerd"
+ },
+ "app.action-bar.install.summary.cleanup-incomplete": {
+ "message": "Opschonen is niet voltooid"
+ },
+ "app.action-bar.install.summary.content-download-failed": {
+ "message": "Bestanden konden niet gedownload worden"
+ },
+ "app.action-bar.install.summary.corrupt-download": {
+ "message": "Gedownloade bestand is beschadigd"
+ },
+ "app.action-bar.install.summary.could-not-save-files": {
+ "message": "Bestanden konden niet opgeslagen worden"
+ },
+ "app.action-bar.install.summary.download-failed": {
+ "message": "Downloaden kon niet worden voltooid"
+ },
+ "app.action-bar.install.summary.instance-not-found": {
+ "message": "Instantie kon niet gevonden worden"
+ },
+ "app.action-bar.install.summary.invalid-file-path": {
+ "message": "Bestandspad is ongeldig"
+ },
+ "app.action-bar.install.summary.invalid-modpack": {
+ "message": "Modpack-gegevens ongeldig"
+ },
+ "app.action-bar.install.summary.invalid-modpack-files": {
+ "message": "Modpack-bestanden bevatten ongeldige metagegevens"
+ },
+ "app.action-bar.install.summary.java-setup-failed": {
+ "message": "Installatie van Java kon niet worden voltooid"
+ },
+ "app.action-bar.install.summary.loader-setup-failed": {
+ "message": "Instellen van loader is mislukt"
+ },
+ "app.action-bar.install.summary.local-data-error": {
+ "message": "Lokale gegevens konden niet bijgewerkt worden"
+ },
+ "app.action-bar.install.summary.minecraft-setup-failed": {
+ "message": "Instellen van Minecraft is mislukt"
+ },
+ "app.action-bar.install.summary.modrinth-unreachable": {
+ "message": "Modrinth kon niet bereikt worden"
+ },
+ "app.action-bar.install.summary.no-write-permission": {
+ "message": "Geen schrijfrechten"
+ },
+ "app.action-bar.install.summary.pack-download-failed": {
+ "message": "Pack kon niet gedownload worden"
+ },
+ "app.action-bar.install.summary.unexpected-error": {
+ "message": "Er is iets misgegaan"
+ },
+ "app.action-bar.install.unknown-instance": {
+ "message": "Onbekende instantie"
+ },
+ "app.action-bar.installs": {
+ "message": "Installaties"
+ },
"app.action-bar.make-primary-instance": {
"message": "Maak primaire instantie"
},
@@ -101,6 +182,12 @@
"app.appearance-settings.show-play-time.title": {
"message": "Speeltijd laten zien"
},
+ "app.appearance-settings.skip-non-essential-warnings.description": {
+ "message": "Bevestigingen met een laag risico, zoals het installeren van dubbele modpacks, het verwijderen van normale inhoud, bulkupdates, het ontkoppelen van modpacks en reparatieverzoeken, worden automatisch overgeslagen. Waarschuwingen voor gevaarlijke dingen worden nog steeds weergegeven."
+ },
+ "app.appearance-settings.skip-non-essential-warnings.title": {
+ "message": "Niet-essentiële waarschuwingen overslaan"
+ },
"app.appearance-settings.toggle-sidebar.description": {
"message": "Schakelt de mogelijkheid om de zijbalk in- of uit te schakelen in."
},
@@ -141,16 +228,19 @@
"message": "Terug naar instantie"
},
"app.browse.discover-content": {
- "message": "Ontdek content"
+ "message": "Inhoud ontdekken"
},
"app.browse.discover-servers": {
"message": "Ontdek servers"
},
+ "app.browse.hide-added-servers": {
+ "message": "Al toegevoegde servers verbergen"
+ },
"app.browse.project-type.modpacks": {
"message": "Modpacks"
},
"app.browse.server-instance-content-warning": {
- "message": "Het toevoegen van content kan de compatibiliteit verbreken bij het verbinden met de server. Alle toegevoegde inhoud gaat ook verloren wanneer u de content van de serverinstantie bijwerkt."
+ "message": "Het toevoegen van inhoud kan de compatibiliteit verstoren bij het verbinden met de server. Eventuele toegevoegde inhoud gaat bovendien verloren wanneer je de inhoud van de serverinstantie bijwerkt."
},
"app.browse.server.installing": {
"message": "Installeren"
@@ -167,6 +257,9 @@
"app.export-modal.header": {
"message": "Exporteer modpack"
},
+ "app.export-modal.modpack-name-label": {
+ "message": "Naam van modpack"
+ },
"app.export-modal.modpack-name-placeholder": {
"message": "Modpack naam"
},
@@ -176,8 +269,62 @@
"app.export-modal.version-number-placeholder": {
"message": "1.0.0"
},
+ "app.install.phase.downloading_content": {
+ "message": "Inhoud aan het downloaden"
+ },
+ "app.install.phase.downloading_minecraft": {
+ "message": "Minecraft aan het downloaden"
+ },
+ "app.install.phase.downloading_pack_file": {
+ "message": "Pakketbestand aan het downloaden"
+ },
+ "app.install.phase.extracting_overrides": {
+ "message": "Overschrijvingen eruit halen"
+ },
+ "app.install.phase.finalizing": {
+ "message": "Aan het afronden"
+ },
+ "app.install.phase.preparing_instance": {
+ "message": "In de wachtrij voor installatie"
+ },
+ "app.install.phase.preparing_java": {
+ "message": "Java aan het voorbereiden"
+ },
+ "app.install.phase.preparing_java.downloading": {
+ "message": "Java {version} aan het downloaden"
+ },
+ "app.install.phase.preparing_java.extracting": {
+ "message": "Java {version} aan het uitpakken"
+ },
+ "app.install.phase.preparing_java.fetching-metadata": {
+ "message": "Java {version} aan het ophalen"
+ },
+ "app.install.phase.preparing_java.resolving": {
+ "message": "Java {version} aan het voorbereiden"
+ },
+ "app.install.phase.preparing_java.validating": {
+ "message": "Java {version} aan het valideren"
+ },
+ "app.install.phase.reading_pack_manifest": {
+ "message": "Paketmanifest aan het lezen"
+ },
+ "app.install.phase.resolving_loader": {
+ "message": "Loader wordt bepaald"
+ },
+ "app.install.phase.resolving_minecraft": {
+ "message": "Minecraft wordt bepaald"
+ },
+ "app.install.phase.resolving_pack": {
+ "message": "Inhoud aan het bepalen"
+ },
+ "app.install.phase.rolling_back": {
+ "message": "Aan het terugdraaien"
+ },
+ "app.install.phase.running_loader_processors": {
+ "message": "Loader-processors aan het uitvoeren"
+ },
"app.instance.confirm-delete.admonition-body": {
- "message": "Alle data van je instantie zal permanent verwijderd worden, inclusief al je werelden, voorkeuren, en alle geïnstalleerde content."
+ "message": "Alle gegevens van je instantie worden definitief verwijderd, inclusief je werelden, configuraties en alle geïnstalleerde inhoud."
},
"app.instance.confirm-delete.admonition-header": {
"message": "Deze actie kan niet ongedaan gemaakt worden"
@@ -200,6 +347,15 @@
"app.instance.modpack-already-installed.instance": {
"message": "Instantie"
},
+ "app.instance.mods.bulk-update.downloading-projects": {
+ "message": "{current, number}/{total, number} projecten aan het downloaden..."
+ },
+ "app.instance.mods.bulk-update.finishing": {
+ "message": "Update aan het afronden..."
+ },
+ "app.instance.mods.bulk-update.resolving-versions": {
+ "message": "Versies worden bepaald..."
+ },
"app.instance.mods.content-type-project": {
"message": "project"
},
@@ -224,6 +380,18 @@
"app.instance.worlds.browse-servers": {
"message": "Zoek servers"
},
+ "app.instance.worlds.delete-world-modal.delete-button": {
+ "message": "Wereld verwijderen"
+ },
+ "app.instance.worlds.delete-world-modal.title": {
+ "message": "Wereld verwijderen"
+ },
+ "app.instance.worlds.delete-world-modal.warning-body": {
+ "message": "Deze wereld wordt definitief uit deze instantie verwijderd. Deze actie kan niet ongedaan worden gemaakt."
+ },
+ "app.instance.worlds.delete-world-modal.warning-header": {
+ "message": "{name} verwijderen"
+ },
"app.instance.worlds.filter-modded": {
"message": "Gemod"
},
@@ -242,39 +410,75 @@
"app.instance.worlds.no-worlds-heading": {
"message": "Noch servers noch werelden toegevoegd"
},
+ "app.instance.worlds.remove-server-modal.remove-button": {
+ "message": "Server verwijderen"
+ },
+ "app.instance.worlds.remove-server-modal.title": {
+ "message": "Server verwijderen"
+ },
+ "app.instance.worlds.remove-server-modal.warning-body": {
+ "message": "Deze server wordt verwijderd uit je serverlijst en uit de serverlijst in het spel. Je kunt hem later weer toevoegen als je het adres weet."
+ },
+ "app.instance.worlds.remove-server-modal.warning-header": {
+ "message": "{name} verwijderen"
+ },
"app.instance.worlds.search-worlds-placeholder": {
"message": "Zoek werelden"
},
+ "app.modal.install-to-play.dont-install": {
+ "message": "Niet installeren"
+ },
"app.modal.install-to-play.header": {
"message": "Installeer om te spelen"
},
+ "app.modal.install-to-play.install-anyway": {
+ "message": "Toch installeren"
+ },
"app.modal.install-to-play.install-button": {
"message": "Installeer"
},
+ "app.modal.install-to-play.invite-warning": {
+ "message": "Deze uitnodiging is aangemaakt door een andere Modrinth-gebruiker, niet door Modrinth zelf. Accepteer alleen uitnodigingen van mensen die je vertrouwt."
+ },
"app.modal.install-to-play.mod-count": {
"message": "{count, plural,one {# mod}other {# mods}}"
},
+ "app.modal.install-to-play.reviewed-files": {
+ "message": "Een bestand wordt alleen beoordeeld als het op Modrinth wordt gepubliceerd, ongeacht het bestandsformaat (inclusief .mrpack)."
+ },
"app.modal.install-to-play.shared-instance": {
"message": "Gedeelde instantie"
},
+ "app.modal.install-to-play.unknown-files-description": {
+ "message": "Dit server-modpack bevat bestanden die niet op Modrinth zijn gepubliceerd. We raden je ten zeerste aan om alleen bestanden te installeren uit bronnen die je vertrouwt."
+ },
+ "app.modal.install-to-play.unknown-files-warning": {
+ "message": "Waarschuwing voor onbekende bestanden"
+ },
+ "app.modal.install-to-play.unrecognized-files": {
+ "message": "Onbekende bestanden"
+ },
"app.modal.install-to-play.view-contents": {
- "message": "Toon content"
+ "message": "Inhoud bekijken"
},
"app.modal.update-to-play.header": {
"message": "Update om te spelen"
},
+ "app.modal.update-to-play.removed": {
+ "message": "Verwijderde"
+ },
"app.modal.update-to-play.update-required-description": {
"message": "Een update is vereist om {name} te spelen. Update naar de laatste versie om het spel te starten."
},
"app.project.install-button.already-installed": {
"message": "Dit project is al geïnstalleerd"
},
+ "app.project.install-button.switch-version": {
+ "message": "Versie wijzigen"
+ },
"app.project.install-context.back-to-browse": {
"message": "Terug naar Ontdekken"
},
- "app.project.install-context.install-content-to-instance": {
- "message": "Installeer content naar instantie"
- },
"app.settings.developer-mode-enabled": {
"message": "Ontwikkelaarsmodus ingeschakeld."
},
@@ -390,11 +594,14 @@
"message": "Je skinvolgorde kon niet worden opgeslagen."
},
"app.skins.reorder-error.title": {
- "message": "Het herschikken van skins is mislukt."
+ "message": "Herschikken van skins is mislukt"
},
"app.skins.section.builders-and-biomes": {
"message": "Builders & Biomes"
},
+ "app.skins.section.chaos-cubed": {
+ "message": "Chaos Cubed"
+ },
"app.skins.section.chase-the-skies": {
"message": "Chase the Skies"
},
@@ -621,7 +828,7 @@
"message": "Verwijder instantie"
},
"instance.settings.tabs.general.delete.description": {
- "message": "Verwijdert permanent een instantie van je apparaat, inclusief je werelden, instellingen en alle geïnstalleerde inhoud. Wees voorzichtig, zodra je een instantie verwijdert, is het niet meer mogelijk om deze te herstellen."
+ "message": "Hiermee wordt een instantie definitief van je apparaat verwijderd, inclusief je werelden, instellingen en alle geïnstalleerde inhoud. Wees voorzichtig, want zodra je een instantie hebt verwijderd, kun je deze niet meer herstellen."
},
"instance.settings.tabs.general.deleting.button": {
"message": "Verwijderen..."
@@ -812,6 +1019,9 @@
"instance.worlds.copy_address": {
"message": "Kopieer adres"
},
+ "instance.worlds.create_shortcut": {
+ "message": "Snelkoppeling maken"
+ },
"instance.worlds.dont_show_on_home": {
"message": "Niet tonen op de startpagina"
},
diff --git a/apps/app-frontend/src/locales/pl-PL/index.json b/apps/app-frontend/src/locales/pl-PL/index.json
index 017d58e8ff..e03632775b 100644
--- a/apps/app-frontend/src/locales/pl-PL/index.json
+++ b/apps/app-frontend/src/locales/pl-PL/index.json
@@ -422,24 +422,48 @@
"app.instance.worlds.search-worlds-placeholder": {
"message": "Szukaj wśród {count} światów..."
},
+ "app.modal.install-to-play.dont-install": {
+ "message": "Nie instaluj"
+ },
"app.modal.install-to-play.header": {
"message": "Zainstaluj, aby grać"
},
+ "app.modal.install-to-play.install-anyway": {
+ "message": "Instaluj mimo to"
+ },
"app.modal.install-to-play.install-button": {
"message": "Zainstaluj"
},
+ "app.modal.install-to-play.invite-warning": {
+ "message": "To zaproszenie zostało utworzone przez innego użytkownika Modrinth, nie przez firmę Modrinth. Tylko akceptuj zaproszenia od osób, którym ufasz."
+ },
"app.modal.install-to-play.mod-count": {
"message": "{count, plural, one {# mod} few {# mody} other {# modów}}"
},
+ "app.modal.install-to-play.reviewed-files": {
+ "message": "Plik jest sprawdzony tylko, jeżeli został opublikowany na Modrinth, niezależnie od jego formatu (w tym pliki .mrpack)."
+ },
"app.modal.install-to-play.shared-instance": {
"message": "Wspólna instancja"
},
+ "app.modal.install-to-play.unknown-files-description": {
+ "message": "Ta serwerowa paczka modów zawiera pliki, które nie zostały opublikowane na Modrinth. Zalecamy instalowanie plików tylko ze źródeł, którym ufasz."
+ },
+ "app.modal.install-to-play.unknown-files-warning": {
+ "message": "Ostrzeżenie o nieznanych plikach"
+ },
+ "app.modal.install-to-play.unrecognized-files": {
+ "message": "Nieznane plki"
+ },
"app.modal.install-to-play.view-contents": {
"message": "Pokaż zawartość"
},
"app.modal.update-to-play.header": {
"message": "Zaktualizuj, by grać"
},
+ "app.modal.update-to-play.removed": {
+ "message": "Usunięto"
+ },
"app.modal.update-to-play.update-required-description": {
"message": "Aktualizacja jest wymagana, aby grać w {name}. Proszę zaktualizować do najnowszej wersji, aby uruchomić grę."
},
@@ -452,9 +476,6 @@
"app.project.install-context.back-to-browse": {
"message": "Powróć do odkrywania"
},
- "app.project.install-context.install-content-to-instance": {
- "message": "Zainstaluj zasoby do instancji"
- },
"app.project.version.all-versions": {
"message": "Wszystkie wersje"
},
diff --git a/apps/app-frontend/src/locales/pt-BR/index.json b/apps/app-frontend/src/locales/pt-BR/index.json
index 450b9d5272..a2bdc4ec67 100644
--- a/apps/app-frontend/src/locales/pt-BR/index.json
+++ b/apps/app-frontend/src/locales/pt-BR/index.json
@@ -425,24 +425,48 @@
"app.instance.worlds.search-worlds-placeholder": {
"message": "Buscar {count} mundos..."
},
+ "app.modal.install-to-play.dont-install": {
+ "message": "Não instalar"
+ },
"app.modal.install-to-play.header": {
"message": "Instale para jogar"
},
+ "app.modal.install-to-play.install-anyway": {
+ "message": "Instalar mesmo assim"
+ },
"app.modal.install-to-play.install-button": {
"message": "Instalar"
},
+ "app.modal.install-to-play.invite-warning": {
+ "message": "Este convite foi criado por outro usuário do Modrinth, não pelo próprio Modrinth. Só aceite convites de pessoas que você confia."
+ },
"app.modal.install-to-play.mod-count": {
"message": "{count, plural, =0 {Nenhum mod} one {# mod} other {# mods}}"
},
+ "app.modal.install-to-play.reviewed-files": {
+ "message": "Um arquivo só é revisado se for publicado no Modrinth, independente do formato de arquivo (incluindo .mrpack)."
+ },
"app.modal.install-to-play.shared-instance": {
"message": "Instância compartilhada"
},
+ "app.modal.install-to-play.unknown-files-description": {
+ "message": "Este pacote de mods do servidor contém arquivos não publicados no Modrinth. Recomendamos fortemente a instalar apenas arquivos de fontes que você confia."
+ },
+ "app.modal.install-to-play.unknown-files-warning": {
+ "message": "Aviso de arquivos desconhecidos"
+ },
+ "app.modal.install-to-play.unrecognized-files": {
+ "message": "Arquivos não reconhecidos"
+ },
"app.modal.install-to-play.view-contents": {
"message": "Ver conteúdo"
},
"app.modal.update-to-play.header": {
"message": "Atualize para jogar"
},
+ "app.modal.update-to-play.removed": {
+ "message": "Removido"
+ },
"app.modal.update-to-play.update-required-description": {
"message": "Uma atualização é necessária para jogar {name}. Atualize para a versão mais recente para iniciar o jogo."
},
@@ -455,9 +479,6 @@
"app.project.install-context.back-to-browse": {
"message": "Voltar a descobrir"
},
- "app.project.install-context.install-content-to-instance": {
- "message": "Instalar conteúdo para a instância"
- },
"app.project.version.all-versions": {
"message": "Todas as versões"
},
diff --git a/apps/app-frontend/src/locales/ru-RU/index.json b/apps/app-frontend/src/locales/ru-RU/index.json
index fe45983a29..4a17acce4c 100644
--- a/apps/app-frontend/src/locales/ru-RU/index.json
+++ b/apps/app-frontend/src/locales/ru-RU/index.json
@@ -419,24 +419,48 @@
"app.instance.worlds.remove-server-modal.warning-header": {
"message": "Удаление {name}"
},
+ "app.modal.install-to-play.dont-install": {
+ "message": "Не устанавливать"
+ },
"app.modal.install-to-play.header": {
"message": "Установка перед запуском"
},
+ "app.modal.install-to-play.install-anyway": {
+ "message": "Всё равно установить"
+ },
"app.modal.install-to-play.install-button": {
"message": "Установить"
},
+ "app.modal.install-to-play.invite-warning": {
+ "message": "Это приглашение создано другим пользователем Modrinth. Принимайте приглашения только от тех, кому доверяете."
+ },
"app.modal.install-to-play.mod-count": {
"message": "{count, plural, one {# мод} few {# мода} other {# модов}}"
},
+ "app.modal.install-to-play.reviewed-files": {
+ "message": "Файл проверяется только если он опубликован на Modrinth, независимо от его формата (включая .mrpack)."
+ },
"app.modal.install-to-play.shared-instance": {
"message": "Сборка"
},
+ "app.modal.install-to-play.unknown-files-description": {
+ "message": "Сборка этого сервера содержит файлы, которые не опубликованы на Modrinth. Рекомендуется скачивать файлы только из надёжных источников."
+ },
+ "app.modal.install-to-play.unknown-files-warning": {
+ "message": "Предупреждение о неизвестных файлах"
+ },
+ "app.modal.install-to-play.unrecognized-files": {
+ "message": "Нераспознанные файлы"
+ },
"app.modal.install-to-play.view-contents": {
"message": "Посмотреть содержимое"
},
"app.modal.update-to-play.header": {
"message": "Обновление перед запуском"
},
+ "app.modal.update-to-play.removed": {
+ "message": "Удалён"
+ },
"app.modal.update-to-play.update-required-description": {
"message": "Обновите {name} до последней версии, чтобы запустить игру."
},
@@ -449,9 +473,6 @@
"app.project.install-context.back-to-browse": {
"message": "Вернуться к поиску"
},
- "app.project.install-context.install-content-to-instance": {
- "message": "Установка контента в сборку"
- },
"app.project.version.all-versions": {
"message": "Все версии"
},
diff --git a/apps/app-frontend/src/locales/sr-CS/index.json b/apps/app-frontend/src/locales/sr-CS/index.json
index 63a677601f..e1a64dd533 100644
--- a/apps/app-frontend/src/locales/sr-CS/index.json
+++ b/apps/app-frontend/src/locales/sr-CS/index.json
@@ -29,12 +29,63 @@
"app.action-bar.install.summary.app-closing": {
"message": "Otkazano zbog zatvaranja aplikacije"
},
+ "app.action-bar.install.summary.bad-modpack-file": {
+ "message": "Nije moglo pročitati modpack"
+ },
"app.action-bar.install.summary.canceled": {
"message": "Otkazano"
},
+ "app.action-bar.install.summary.cleanup-incomplete": {
+ "message": "Čišćenje nije završeno"
+ },
+ "app.action-bar.install.summary.content-download-failed": {
+ "message": "Nije bilo moguće instalirati datoteke"
+ },
+ "app.action-bar.install.summary.corrupt-download": {
+ "message": "Preuzeta datoteka je oštećena"
+ },
"app.action-bar.install.summary.could-not-save-files": {
"message": "Nije bilo moguće spremiti datoteke"
},
+ "app.action-bar.install.summary.download-failed": {
+ "message": "Preuzimanje nije završeno"
+ },
+ "app.action-bar.install.summary.instance-not-found": {
+ "message": "Instanca nije pronađena"
+ },
+ "app.action-bar.install.summary.invalid-file-path": {
+ "message": "Put do datoteke nije ispravan"
+ },
+ "app.action-bar.install.summary.invalid-modpack": {
+ "message": "Podaci modpaka su nevažeći"
+ },
+ "app.action-bar.install.summary.invalid-modpack-files": {
+ "message": "Datoteke modpaka sadrže nevažeće metapodatke"
+ },
+ "app.action-bar.install.summary.java-setup-failed": {
+ "message": "Podešavanje Jave nije moglo biti završeno"
+ },
+ "app.action-bar.install.summary.loader-setup-failed": {
+ "message": "Podešavanje učitavača nije uspelo"
+ },
+ "app.action-bar.install.summary.local-data-error": {
+ "message": "Nije bilo moguće ažurirati lokalne podatke"
+ },
+ "app.action-bar.install.summary.minecraft-setup-failed": {
+ "message": "Podešavanje Minecrafta nije uspelo"
+ },
+ "app.action-bar.install.summary.modrinth-unreachable": {
+ "message": "Nije bilo moguće povezati se sa Modrinth-om"
+ },
+ "app.action-bar.install.summary.no-write-permission": {
+ "message": "Nema dozvole za pisanje"
+ },
+ "app.action-bar.install.summary.pack-download-failed": {
+ "message": "Nije bilo moguće instalirati datoteku"
+ },
+ "app.action-bar.install.summary.unexpected-error": {
+ "message": "Nešto je pošlo po zlu"
+ },
"app.action-bar.install.unknown-instance": {
"message": "Nepoznata instanca"
},
@@ -233,6 +284,9 @@
"app.install.phase.finalizing": {
"message": "Finaliziranje"
},
+ "app.install.phase.preparing_instance": {
+ "message": "Na čekanju za instalaciju"
+ },
"app.install.phase.preparing_java": {
"message": "Pripremanje Jave"
},
@@ -371,24 +425,48 @@
"app.instance.worlds.search-worlds-placeholder": {
"message": "Pretraži {count} svetova..."
},
+ "app.modal.install-to-play.dont-install": {
+ "message": "Ne instaliraj"
+ },
"app.modal.install-to-play.header": {
"message": "Instaliraj da bi igrao"
},
+ "app.modal.install-to-play.install-anyway": {
+ "message": "Svejedno instaliraj"
+ },
"app.modal.install-to-play.install-button": {
"message": "Instaliraj"
},
+ "app.modal.install-to-play.invite-warning": {
+ "message": "Ovu pozivnicu je kreirao drugi korisnik Modrintha, a ne sam Modrinth. Prihvataj pozivnice samo od osoba kojima veruješ."
+ },
"app.modal.install-to-play.mod-count": {
"message": "{count, plural, one {# mod} other {# modova}}"
},
+ "app.modal.install-to-play.reviewed-files": {
+ "message": "Datoteka se pregleda samo ako je postavljena na Modrinth, bez obzira na njen format (uključujući .mrpack)."
+ },
"app.modal.install-to-play.shared-instance": {
"message": "Deljena instanca"
},
+ "app.modal.install-to-play.unknown-files-description": {
+ "message": "Ovaj modpack servera sadrži datoteke koje nisu postavljene na Modrinth-u. Preporučujemo da instaliraš datoteke samo iz izvora kojima veruješ."
+ },
+ "app.modal.install-to-play.unknown-files-warning": {
+ "message": "Upozorenje nepoznatih datoteka"
+ },
+ "app.modal.install-to-play.unrecognized-files": {
+ "message": "Nepoznate datoteke"
+ },
"app.modal.install-to-play.view-contents": {
"message": "Pogledaj sadržaj"
},
"app.modal.update-to-play.header": {
"message": "Ažuriraj da bi igrao"
},
+ "app.modal.update-to-play.removed": {
+ "message": "Smaknuto"
+ },
"app.modal.update-to-play.update-required-description": {
"message": "Potrebno je ažuriranje da biste igrali {name}. Molimo te da ažuriraš na najnoviju verziju da bi pokrenuo igru."
},
@@ -401,9 +479,6 @@
"app.project.install-context.back-to-browse": {
"message": "Nazad da otkrivanje"
},
- "app.project.install-context.install-content-to-instance": {
- "message": "Instaliraj sadržaj na instancu"
- },
"app.project.version.all-versions": {
"message": "Sve verzije"
},
diff --git a/apps/app-frontend/src/locales/sv-SE/index.json b/apps/app-frontend/src/locales/sv-SE/index.json
index 3834d74dd3..e3509b450c 100644
--- a/apps/app-frontend/src/locales/sv-SE/index.json
+++ b/apps/app-frontend/src/locales/sv-SE/index.json
@@ -407,9 +407,15 @@
"app.instance.worlds.search-worlds-placeholder": {
"message": "Sök {count} världar..."
},
+ "app.modal.install-to-play.dont-install": {
+ "message": "Installera inte"
+ },
"app.modal.install-to-play.header": {
"message": "Installera för att spela"
},
+ "app.modal.install-to-play.install-anyway": {
+ "message": "Installera andå"
+ },
"app.modal.install-to-play.install-button": {
"message": "Installera"
},
@@ -425,6 +431,9 @@
"app.modal.update-to-play.header": {
"message": "Uppdatera för att spela"
},
+ "app.modal.update-to-play.removed": {
+ "message": "Tog bort"
+ },
"app.modal.update-to-play.update-required-description": {
"message": "En uppdatering krävs för att spela {name}. Vänligen uppdatera till senaste version för att starta spelet."
},
@@ -437,9 +446,6 @@
"app.project.install-context.back-to-browse": {
"message": "Tillbaka till upptäck"
},
- "app.project.install-context.install-content-to-instance": {
- "message": "Installera innehåll till instans"
- },
"app.project.version.all-versions": {
"message": "Alla versioner"
},
@@ -615,7 +621,7 @@
"message": "Logga in"
},
"app.skins.sign-in.description": {
- "message": "Snälla logga in din Minecraft konto att använda hud hantering förmågor i Modrinth appen."
+ "message": "Vänligen logga in på ditt Minecraft-konto för att använda utseendehanteringfunktioner i Modrinth appen."
},
"app.skins.sign-in.rinthbot-alt": {
"message": "Exalterad Modrinth bot"
@@ -657,7 +663,7 @@
"message": "Version {version} har installerats!"
},
"app.world.server-modal.placeholder-address": {
- "message": "example.modrinth.gg"
+ "message": "exempel.modrinth.gg"
},
"app.world.server-modal.select-an-option": {
"message": "Välj ett alternativ"
@@ -732,7 +738,7 @@
"message": "Sök efter vänner..."
},
"friends.section.heading": {
- "message": "{title}: {count}"
+ "message": "{title} - {count}"
},
"friends.sign-in-to-add-friends": {
"message": "Logga in på ett Modrinth-konto för att lägga till vänner och se vad de spelar!"
@@ -852,19 +858,19 @@
"message": "Alfa"
},
"instance.settings.tabs.general.update-channel.alpha.description": {
- "message": "Utgåvor, beta och alfa versioner visas som tillgängliga uppdateringar."
+ "message": "Release-, beta- och alfaversioner kommer visas som tillgängliga uppdateringar."
},
"instance.settings.tabs.general.update-channel.beta": {
"message": "Beta"
},
"instance.settings.tabs.general.update-channel.beta.description": {
- "message": "Utgåvor och beta versioner visas som tillgängliga uppdateringar."
+ "message": "Release- och betaversioner kommer visas som tillgängliga uppdateringar."
},
"instance.settings.tabs.general.update-channel.release": {
- "message": "Utgåva"
+ "message": "Release"
},
"instance.settings.tabs.general.update-channel.release.description": {
- "message": "Endast utgivna versioner visas som tillgängliga uppdateringar."
+ "message": "Endast realeseversioner kommer visas som tillgängliga uppdateringar."
},
"instance.settings.tabs.general.update-channel.select": {
"message": "Välj uppdateringskanal"
@@ -930,10 +936,10 @@
"message": "Anpassad minnestilldelning"
},
"instance.settings.tabs.java.enter-environment-variables": {
- "message": "Skriv in miljövariabler..."
+ "message": "Ange miljövariabler..."
},
"instance.settings.tabs.java.enter-java-arguments": {
- "message": "Skriv in Java-argument..."
+ "message": "Ange Java-argument..."
},
"instance.settings.tabs.java.environment-variables": {
"message": "Miljövariabler"
@@ -996,13 +1002,13 @@
"message": "Skapa genväg"
},
"instance.worlds.dont_show_on_home": {
- "message": "Visa inte på Startsidan"
+ "message": "Visa inte på startsidan"
},
"instance.worlds.game_already_open": {
"message": "Instans är redan öppen"
},
"instance.worlds.hardcore": {
- "message": "Hardcore läge"
+ "message": "Hardcore-läge"
},
"instance.worlds.incompatible_server": {
"message": "Servern är inkompatibel"
@@ -1014,10 +1020,10 @@
"message": "Servern kunde inte kontaktas"
},
"instance.worlds.no_server_quick_play": {
- "message": "Du kan bara hoppa rakt in till servers på Minecraft Alfa 1.0.5+"
+ "message": "Du kan endast gå direkt in i servrar på Minecraft Alfa 1.0.5+"
},
"instance.worlds.no_singleplayer_quick_play": {
- "message": "Du kan bara hoppa rakt in till enspelarläge världar på Minecraft 1,20+"
+ "message": "Du kan endast gå direkt in i enspelarläge världar på Minecraft 1.20+"
},
"instance.worlds.play_instance": {
"message": "Spela instans"
diff --git a/apps/app-frontend/src/locales/th-TH/index.json b/apps/app-frontend/src/locales/th-TH/index.json
index 21b2a6fe54..26a7ecd51e 100644
--- a/apps/app-frontend/src/locales/th-TH/index.json
+++ b/apps/app-frontend/src/locales/th-TH/index.json
@@ -272,9 +272,6 @@
"app.project.install-context.back-to-browse": {
"message": "กลับไปที่หน้าค้นหา"
},
- "app.project.install-context.install-content-to-instance": {
- "message": "ติดตั้งเนื้อหาลงสู่อินสแตนซ์"
- },
"app.settings.developer-mode-enabled": {
"message": "โหมดนักพัฒนาเปิดอยู่"
},
diff --git a/apps/app-frontend/src/locales/tr-TR/index.json b/apps/app-frontend/src/locales/tr-TR/index.json
index c792865f6d..738bf7b81a 100644
--- a/apps/app-frontend/src/locales/tr-TR/index.json
+++ b/apps/app-frontend/src/locales/tr-TR/index.json
@@ -425,24 +425,48 @@
"app.instance.worlds.search-worlds-placeholder": {
"message": "{count} dünya ara..."
},
+ "app.modal.install-to-play.dont-install": {
+ "message": "İndirme"
+ },
"app.modal.install-to-play.header": {
"message": "Oynamak için yükleyin"
},
+ "app.modal.install-to-play.install-anyway": {
+ "message": "Yine de indir"
+ },
"app.modal.install-to-play.install-button": {
"message": "Yükle"
},
+ "app.modal.install-to-play.invite-warning": {
+ "message": "Bu davetiye Modrinth tarafından değil, başka bir Modrinth kullanıcısı tarafından oluşturulmuştur. Sadece güvendiğiniz kişilerden gelen davetleri kabul edin."
+ },
"app.modal.install-to-play.mod-count": {
"message": "{count, plural, one {#mod} other {#mods}}"
},
+ "app.modal.install-to-play.reviewed-files": {
+ "message": "Dosya formatı ne olursa olsun (.mrpack dahil), bir dosya yalnızca Modrinth'e yüklendiğinde denetlenir."
+ },
"app.modal.install-to-play.shared-instance": {
"message": "Paylaşılan Kurulum"
},
+ "app.modal.install-to-play.unknown-files-description": {
+ "message": "Bu sunucunun mod paketi Modrinth'te yayınlanmamış doysaları mevcut. Yalnızca güvendiğiniz kaynaklardan dosya indirmenizi önemle tavsiye ederiz."
+ },
+ "app.modal.install-to-play.unknown-files-warning": {
+ "message": "Bilinmeyen dosya uyarısı"
+ },
+ "app.modal.install-to-play.unrecognized-files": {
+ "message": "Tanımlanamayan dosyalar"
+ },
"app.modal.install-to-play.view-contents": {
"message": "İçeriği görüntüle"
},
"app.modal.update-to-play.header": {
"message": "Oynamak için güncelle"
},
+ "app.modal.update-to-play.removed": {
+ "message": "Silindi"
+ },
"app.modal.update-to-play.update-required-description": {
"message": "{name} oyununu oynamak için güncelleme gereklidir. Oyunu başlatmak için lütfen en son sürüme güncelleyin."
},
@@ -455,9 +479,6 @@
"app.project.install-context.back-to-browse": {
"message": "Keşfete geri dön"
},
- "app.project.install-context.install-content-to-instance": {
- "message": "İçeriği kuruluma yükle"
- },
"app.project.version.all-versions": {
"message": "Tüm sürümler"
},
diff --git a/apps/app-frontend/src/locales/uk-UA/index.json b/apps/app-frontend/src/locales/uk-UA/index.json
index ba7ef5c2fe..57c816f63a 100644
--- a/apps/app-frontend/src/locales/uk-UA/index.json
+++ b/apps/app-frontend/src/locales/uk-UA/index.json
@@ -30,11 +30,14 @@
"message": "Скасовано через закриття додатку"
},
"app.action-bar.install.summary.bad-modpack-file": {
- "message": "Не вдалось прочитати збірку модів"
+ "message": "Не вдалось прочитати збірку модифікацій"
},
"app.action-bar.install.summary.canceled": {
"message": "Скасовано"
},
+ "app.action-bar.install.summary.cleanup-incomplete": {
+ "message": "Очищення не завершено"
+ },
"app.action-bar.install.summary.content-download-failed": {
"message": "Не вдалося завантажити файли"
},
@@ -57,7 +60,7 @@
"message": "Дані збірки модів недійсні"
},
"app.action-bar.install.summary.invalid-modpack-files": {
- "message": "Файли збірки модів містять не дійсні метадані"
+ "message": "Файли збірки модифікацій містять не дійсні метадані"
},
"app.action-bar.install.summary.java-setup-failed": {
"message": "Не вдалося завершити встановлення Java"
@@ -86,6 +89,9 @@
"app.action-bar.install.unknown-instance": {
"message": "Невідомий екземпляр"
},
+ "app.action-bar.installs": {
+ "message": "Установки"
+ },
"app.action-bar.make-primary-instance": {
"message": "Зробити основним профілем"
},
@@ -177,7 +183,7 @@
"message": "Час гри"
},
"app.appearance-settings.skip-non-essential-warnings.description": {
- "message": "Автоматично пропускає підтвердження з низьким рівнем ризику, як-от повторне встановлення збірки модів, видалення звичайного вмісту, масові оновлення, відвʼязування збірки модів та записи на відновлення. Небезпечні попередження все одно зображуватимуться."
+ "message": "Автоматично пропускає підтвердження з низьким рівнем ризику, такі як встановлення дублікатів інсталяцій, звичайне видалення вмісту, масові оновлення, від’єднання інсталяцій та запити на відновлення. Попередження про небезпеку й надалі будуть показуватися."
},
"app.appearance-settings.skip-non-essential-warnings.title": {
"message": "Пропустити несуттєві попередження"
@@ -252,7 +258,7 @@
"message": "Експортувати збірку"
},
"app.export-modal.modpack-name-label": {
- "message": "Назва збірки модів"
+ "message": "Назва збірки"
},
"app.export-modal.modpack-name-placeholder": {
"message": "Назва збірки"
@@ -344,6 +350,12 @@
"app.instance.mods.bulk-update.downloading-projects": {
"message": "Завантаження проєктів: {current, number}/{total, number}..."
},
+ "app.instance.mods.bulk-update.finishing": {
+ "message": "Завершуємо оновлення…"
+ },
+ "app.instance.mods.bulk-update.resolving-versions": {
+ "message": "Знаходимо версії…"
+ },
"app.instance.mods.content-type-project": {
"message": "проєкт"
},
@@ -368,6 +380,18 @@
"app.instance.worlds.browse-servers": {
"message": "Переглянути сервери"
},
+ "app.instance.worlds.delete-world-modal.delete-button": {
+ "message": "Видалити світ"
+ },
+ "app.instance.worlds.delete-world-modal.title": {
+ "message": "Видалити світ"
+ },
+ "app.instance.worlds.delete-world-modal.warning-body": {
+ "message": "Цей світ буде видалено назавжди з цього екземпляра. Це не можна скасувати."
+ },
+ "app.instance.worlds.delete-world-modal.warning-header": {
+ "message": "Видалення {name}"
+ },
"app.instance.worlds.filter-modded": {
"message": "Модифіковано"
},
@@ -386,39 +410,75 @@
"app.instance.worlds.no-worlds-heading": {
"message": "Сервера або світи не додано"
},
+ "app.instance.worlds.remove-server-modal.remove-button": {
+ "message": "Видалити сервер"
+ },
+ "app.instance.worlds.remove-server-modal.title": {
+ "message": "Видалити сервер"
+ },
+ "app.instance.worlds.remove-server-modal.warning-body": {
+ "message": "Цей сервер буде видалено з вашого списку серверів. Ви зможете повернути його, якщо знаєте адресу."
+ },
+ "app.instance.worlds.remove-server-modal.warning-header": {
+ "message": "Видалення {name}"
+ },
"app.instance.worlds.search-worlds-placeholder": {
"message": "Пошук {count} світів…"
},
+ "app.modal.install-to-play.dont-install": {
+ "message": "Не встановлювати"
+ },
"app.modal.install-to-play.header": {
"message": "Установлення для гри"
},
+ "app.modal.install-to-play.install-anyway": {
+ "message": "Усе одно встановити"
+ },
"app.modal.install-to-play.install-button": {
"message": "Установити"
},
+ "app.modal.install-to-play.invite-warning": {
+ "message": "Це запрошення створив інший користувач Modrinth, не сам Modrinth. Приймайте запрошення лише від тих людей, яким довіряєте."
+ },
"app.modal.install-to-play.mod-count": {
"message": "{count, plural, one {# мод} few {# мода} other {# модів}}"
},
+ "app.modal.install-to-play.reviewed-files": {
+ "message": "Файл перевірятиметься, лише якщо його завантажено на Modrinth, незалежно від його формату (включно з .mrpack)."
+ },
"app.modal.install-to-play.shared-instance": {
"message": "Профіль"
},
+ "app.modal.install-to-play.unknown-files-description": {
+ "message": "Ця збірка сервера містить файли, які не є опубліковані на Modrinth. Ми наполегливо рекомендуємо встановлювати лише ті файли, яким довіряєте."
+ },
+ "app.modal.install-to-play.unknown-files-warning": {
+ "message": "Попередження про невідомі файли"
+ },
+ "app.modal.install-to-play.unrecognized-files": {
+ "message": "Нерозпізнані файли"
+ },
"app.modal.install-to-play.view-contents": {
"message": "Дивитися вміст"
},
"app.modal.update-to-play.header": {
"message": "Оновлення для гри"
},
+ "app.modal.update-to-play.removed": {
+ "message": "Видалено"
+ },
"app.modal.update-to-play.update-required-description": {
"message": "«{name}» потребує оновлення, щоб грати. Будь ласка, оновіть до останньої версії, щоб запустити гру."
},
"app.project.install-button.already-installed": {
"message": "Проєкт уже встановлено"
},
+ "app.project.install-button.switch-version": {
+ "message": "Змінити версію"
+ },
"app.project.install-context.back-to-browse": {
"message": "Повернутися до дослідження"
},
- "app.project.install-context.install-content-to-instance": {
- "message": "Установити вміст до профілю"
- },
"app.settings.developer-mode-enabled": {
"message": "Увімкнено режим розробника."
},
@@ -539,6 +599,9 @@
"app.skins.section.builders-and-biomes": {
"message": "Builders & Biomes"
},
+ "app.skins.section.chaos-cubed": {
+ "message": "Chaos Cubed"
+ },
"app.skins.section.chase-the-skies": {
"message": "Chase the Skies"
},
@@ -956,6 +1019,9 @@
"instance.worlds.copy_address": {
"message": "Скопіювати адресу"
},
+ "instance.worlds.create_shortcut": {
+ "message": "Створити ярлик"
+ },
"instance.worlds.dont_show_on_home": {
"message": "Не показувати на головній"
},
diff --git a/apps/app-frontend/src/locales/vi-VN/index.json b/apps/app-frontend/src/locales/vi-VN/index.json
index 409ee82634..faac41b719 100644
--- a/apps/app-frontend/src/locales/vi-VN/index.json
+++ b/apps/app-frontend/src/locales/vi-VN/index.json
@@ -11,6 +11,33 @@
"app.action-bar.hide-more-running-instances": {
"message": "Đóng các phiên bản đang chạy"
},
+ "app.action-bar.install.retry": {
+ "message": "Thử lại"
+ },
+ "app.action-bar.install.summary.app-closing": {
+ "message": "Đã hủy do đóng ứng dụng"
+ },
+ "app.action-bar.install.summary.bad-modpack-file": {
+ "message": "Không đọc được modpack"
+ },
+ "app.action-bar.install.summary.canceled": {
+ "message": "Đã hủy"
+ },
+ "app.action-bar.install.summary.cleanup-incomplete": {
+ "message": "Dọn dẹp không hoàn thện"
+ },
+ "app.action-bar.install.summary.content-download-failed": {
+ "message": "Không tải được tệp"
+ },
+ "app.action-bar.install.summary.corrupt-download": {
+ "message": "Tệp được tải bị hỏng"
+ },
+ "app.action-bar.install.summary.could-not-save-files": {
+ "message": "Không lưu được tệp"
+ },
+ "app.action-bar.install.summary.download-failed": {
+ "message": "Không hoàn tất tải xuống"
+ },
"app.action-bar.make-primary-instance": {
"message": "Đặt làm bản instance chính"
},
@@ -224,6 +251,15 @@
"app.instance.worlds.browse-servers": {
"message": "Tìm kiếm máy chủ"
},
+ "app.instance.worlds.delete-world-modal.delete-button": {
+ "message": "Xóa thế giới"
+ },
+ "app.instance.worlds.delete-world-modal.title": {
+ "message": "Xóa thế giới"
+ },
+ "app.instance.worlds.delete-world-modal.warning-header": {
+ "message": "Đang xóa {name}"
+ },
"app.instance.worlds.filter-modded": {
"message": "Modded"
},
@@ -242,12 +278,27 @@
"app.instance.worlds.no-worlds-heading": {
"message": "Không có máy chủ hay thế giới nào đã được thêm"
},
+ "app.instance.worlds.remove-server-modal.remove-button": {
+ "message": "Bỏ khỏi danh sách"
+ },
+ "app.instance.worlds.remove-server-modal.title": {
+ "message": "Xóa máy chủ"
+ },
+ "app.instance.worlds.remove-server-modal.warning-header": {
+ "message": "{name} sẽ bị xóa"
+ },
"app.instance.worlds.search-worlds-placeholder": {
"message": "Tìm kiếm {count} world..."
},
+ "app.modal.install-to-play.dont-install": {
+ "message": "Ngừng tải"
+ },
"app.modal.install-to-play.header": {
"message": "Tải xuống để chơi"
},
+ "app.modal.install-to-play.install-anyway": {
+ "message": "Tải tiếp"
+ },
"app.modal.install-to-play.install-button": {
"message": "Tải xuống"
},
@@ -263,18 +314,21 @@
"app.modal.update-to-play.header": {
"message": "Cập nhật và bắt đầu chơi"
},
+ "app.modal.update-to-play.removed": {
+ "message": "Đã bỏ"
+ },
"app.modal.update-to-play.update-required-description": {
"message": "Bạn cần cập nhật {name} để có thể chơi. Vui lòng cập nhật lên bản mới nhất để khởi chạy trò chơi."
},
"app.project.install-button.already-installed": {
"message": "Dự án này đã được cài đặt"
},
+ "app.project.install-button.switch-version": {
+ "message": "Đổi phiên bản"
+ },
"app.project.install-context.back-to-browse": {
"message": "Quay lại trang Khám Phá"
},
- "app.project.install-context.install-content-to-instance": {
- "message": "Cài đặt nội dung vào phiên bản"
- },
"app.settings.developer-mode-enabled": {
"message": "Chế độ nhà phát triển đã được bật."
},
@@ -395,6 +449,9 @@
"app.skins.section.builders-and-biomes": {
"message": "Builders & Biomes"
},
+ "app.skins.section.chaos-cubed": {
+ "message": "Chaos Cubed"
+ },
"app.skins.section.chase-the-skies": {
"message": "Chase the Skies"
},
@@ -812,6 +869,9 @@
"instance.worlds.copy_address": {
"message": "Sao chép địa chỉ"
},
+ "instance.worlds.create_shortcut": {
+ "message": "Tạo lối tắt"
+ },
"instance.worlds.dont_show_on_home": {
"message": "Không hiện ở Trang chủ"
},
diff --git a/apps/app-frontend/src/locales/zh-CN/index.json b/apps/app-frontend/src/locales/zh-CN/index.json
index 2e0e470cd4..c4e1394909 100644
--- a/apps/app-frontend/src/locales/zh-CN/index.json
+++ b/apps/app-frontend/src/locales/zh-CN/index.json
@@ -15,7 +15,7 @@
"message": "已复制"
},
"app.action-bar.install.copy-details": {
- "message": "复制详情"
+ "message": "复制详细信息"
},
"app.action-bar.install.dismiss": {
"message": "忽略"
@@ -30,13 +30,13 @@
"message": "由于应用关闭而取消"
},
"app.action-bar.install.summary.bad-modpack-file": {
- "message": "无法读取整合包"
+ "message": "整合包读取失败"
},
"app.action-bar.install.summary.canceled": {
"message": "已取消"
},
"app.action-bar.install.summary.cleanup-incomplete": {
- "message": "清理未完成"
+ "message": "未完成清理"
},
"app.action-bar.install.summary.content-download-failed": {
"message": "无法下载文件"
@@ -48,7 +48,7 @@
"message": "无法保存文件"
},
"app.action-bar.install.summary.download-failed": {
- "message": "下载无法完成"
+ "message": "无法完成下载"
},
"app.action-bar.install.summary.instance-not-found": {
"message": "无法找到实例"
@@ -425,24 +425,48 @@
"app.instance.worlds.search-worlds-placeholder": {
"message": "搜索 {count} 个世界……"
},
+ "app.modal.install-to-play.dont-install": {
+ "message": "不要安装"
+ },
"app.modal.install-to-play.header": {
"message": "安装以游玩"
},
+ "app.modal.install-to-play.install-anyway": {
+ "message": "无视风险继续安装"
+ },
"app.modal.install-to-play.install-button": {
"message": "安装"
},
+ "app.modal.install-to-play.invite-warning": {
+ "message": "这个邀请是由另一位 Modrinth 用户创建的,而不是 Modrinth 官方。只接受你信任的人的邀请。"
+ },
"app.modal.install-to-play.mod-count": {
"message": "{count} 个模组"
},
+ "app.modal.install-to-play.reviewed-files": {
+ "message": "只有上传到 Modrinth 的文件才会经过审核,无论其文件格式如何(包括 .mrpack)。"
+ },
"app.modal.install-to-play.shared-instance": {
"message": "共享实例"
},
+ "app.modal.install-to-play.unknown-files-description": {
+ "message": "这个整合包包含一些未在 Modrinth 发布的文件。我们强烈建议只从你信任的来源安装文件。"
+ },
+ "app.modal.install-to-play.unknown-files-warning": {
+ "message": "未知文件警告"
+ },
+ "app.modal.install-to-play.unrecognized-files": {
+ "message": "未识别文件"
+ },
"app.modal.install-to-play.view-contents": {
"message": "查看内容"
},
"app.modal.update-to-play.header": {
"message": "更新以游玩"
},
+ "app.modal.update-to-play.removed": {
+ "message": "已移除"
+ },
"app.modal.update-to-play.update-required-description": {
"message": "需要更新至最新版本才能运行 {name}。请更新后启动游戏。"
},
@@ -455,9 +479,6 @@
"app.project.install-context.back-to-browse": {
"message": "返回发现页"
},
- "app.project.install-context.install-content-to-instance": {
- "message": "将内容安装到实例中"
- },
"app.project.version.all-versions": {
"message": "所有版本"
},
diff --git a/apps/app-frontend/src/locales/zh-TW/index.json b/apps/app-frontend/src/locales/zh-TW/index.json
index 1c53292acd..b1ddd085e8 100644
--- a/apps/app-frontend/src/locales/zh-TW/index.json
+++ b/apps/app-frontend/src/locales/zh-TW/index.json
@@ -425,24 +425,48 @@
"app.instance.worlds.search-worlds-placeholder": {
"message": "搜尋 {count} 個世界..."
},
+ "app.modal.install-to-play.dont-install": {
+ "message": "不要安裝"
+ },
"app.modal.install-to-play.header": {
"message": "安裝以遊玩"
},
+ "app.modal.install-to-play.install-anyway": {
+ "message": "仍要安裝"
+ },
"app.modal.install-to-play.install-button": {
"message": "安裝"
},
+ "app.modal.install-to-play.invite-warning": {
+ "message": "這份邀請是由另一位 Modrinth 使用者建立,並非由 Modrinth 官方建立。請僅接受來自你信任的人的邀請。"
+ },
"app.modal.install-to-play.mod-count": {
"message": "{count, plural, other {# 個模組}}"
},
+ "app.modal.install-to-play.reviewed-files": {
+ "message": "只有在 Modrinth 上發布的檔案才會經過審查,無論其檔案格式為何(包含 .mrpack)。"
+ },
"app.modal.install-to-play.shared-instance": {
"message": "共用實例"
},
+ "app.modal.install-to-play.unknown-files-description": {
+ "message": "這個伺服器模組包中包含未在 Modrinth 上發布的檔案。強烈建議你僅安裝來自信任來源的檔案。"
+ },
+ "app.modal.install-to-play.unknown-files-warning": {
+ "message": "未知檔案警告"
+ },
+ "app.modal.install-to-play.unrecognized-files": {
+ "message": "無法辨識的檔案"
+ },
"app.modal.install-to-play.view-contents": {
"message": "檢視內容"
},
"app.modal.update-to-play.header": {
"message": "更新以遊玩"
},
+ "app.modal.update-to-play.removed": {
+ "message": "已移除"
+ },
"app.modal.update-to-play.update-required-description": {
"message": "需要更新才能遊玩「{name}」。請更新至最新版本以啟動遊戲。"
},
@@ -455,9 +479,6 @@
"app.project.install-context.back-to-browse": {
"message": "返回瀏覽"
},
- "app.project.install-context.install-content-to-instance": {
- "message": "將內容安裝至實例"
- },
"app.project.version.all-versions": {
"message": "所有版本"
},
diff --git a/apps/app-frontend/src/pages/Browse.vue b/apps/app-frontend/src/pages/Browse.vue
index 815aa137c1..cc0fe68582 100644
--- a/apps/app-frontend/src/pages/Browse.vue
+++ b/apps/app-frontend/src/pages/Browse.vue
@@ -72,6 +72,7 @@ const debugLog = useDebugLogger('Browse')
const router = useRouter()
const route = useRoute()
const themeStore = useTheming()
+const browseRouteActive = computed(() => route.path.startsWith('/browse/'))
const serverSetupModalRef = ref | null>(null)
const serverInstallContent = createServerInstallContent({ serverSetupModalRef })
provideServerInstallContent(serverInstallContent)
@@ -490,6 +491,9 @@ function resetInstanceContext() {
watch(
() => route.params.projectType as ProjectType,
async (newType) => {
+ if (!browseRouteActive.value) {
+ return
+ }
if (isSetupServerContext.value) {
enforceSetupModpackRoute(newType)
if (newType !== 'modpack') return
@@ -960,6 +964,7 @@ const lockedFilterMessages = computed(() => ({
const searchState = useBrowseSearch({
projectType,
tags,
+ active: browseRouteActive,
providedFilters: combinedProvidedFilters,
search,
persistentQueryParams: ['i', 'ai', 'shi', 'sid', 'wid', 'from'],
@@ -1035,6 +1040,9 @@ onUnmounted(() => {
})
function getProjectBrowseQuery() {
+ if (!browseRouteActive.value) {
+ return undefined
+ }
if (!installContext.value) return undefined
return {
...route.query,
@@ -1139,7 +1147,7 @@ provideBrowseManager({
@browse-modpacks="() => {}"
@create="handleServerModpackFlowCreate"
/>
-
+
- We couldn’t ping this server. It may be blocked by your host so try refreshing a few
- times. If it still doesn’t respond please
-
- contact support.
+
+
+
+
+
- If you have [SRV records]
- , you do not need to add a port. Otherwise if you have a port which isn't 25565, you
- can include it as :12345
+
+
+
@@ -127,15 +135,17 @@
contact support.",
+ },
+ srvRecordsHint: {
+ id: 'project.settings.server.srv-records-hint',
+ defaultMessage:
+ "If you have [SRV records], you do not need to add a port. Otherwise if you have a port which isn't 25565, you can include it as :12345",
+ },
+ srvRecordsTooltip: {
+ id: 'project.settings.server.srv-records-tooltip',
+ defaultMessage:
+ 'The address you enter here may have DNS SRV records _minecraft._tcp.(your domain) which point to your Minecraft server address and port.',
+ },
+ bedrockAddressLabel: {
+ id: 'project.settings.server.bedrock-address-label',
+ defaultMessage: 'Bedrock address',
+ },
+ cannotSaveTitle: {
+ id: 'project.settings.server.cannot-save-title',
+ defaultMessage: 'Cannot save',
+ },
+ cannotSaveText: {
+ id: 'project.settings.server.cannot-save-text',
+ defaultMessage:
+ 'The Java server must be reachable before saving. Please ensure the ping succeeds.',
+ },
+})
+
const client = injectModrinthClient()
const { addNotification } = injectNotificationManager()
const { projectV3, currentMember, patchProjectV3 } = injectProjectPageContext()
@@ -391,8 +479,8 @@ function resetChanges() {
async function handleSave() {
if (javaAddress.value.trim() && !javaPingResult.value?.online) {
addNotification({
- title: 'Cannot save',
- text: 'The Java server must be reachable before saving. Please ensure the ping succeeds.',
+ title: formatMessage(messages.cannotSaveTitle),
+ text: formatMessage(messages.cannotSaveText),
type: 'error',
})
return
diff --git a/apps/frontend/src/pages/[type]/[project]/settings/tags.vue b/apps/frontend/src/pages/[type]/[project]/settings/tags.vue
index 93d4f1f0fc..77acc7d932 100644
--- a/apps/frontend/src/pages/[type]/[project]/settings/tags.vue
+++ b/apps/frontend/src/pages/[type]/[project]/settings/tags.vue
@@ -4,7 +4,7 @@
- Tags
+ {{ formatMessage(messages.tagsTitle) }}
@@ -27,16 +27,18 @@
- Accurate tagging is important to help people find your
- {{ formatProjectType(project.project_type).toLowerCase() }}. Make sure to select all tags
- that apply.
+ {{
+ formatMessage(messages.taggingImportanceDescription, {
+ type: formatProjectType(project.project_type).toLowerCase(),
+ })
+ }}
- Please upload a version first in order to select tags!
+ {{ formatMessage(messages.uploadVersionFirst) }}
@@ -46,22 +48,32 @@
- Select all categories that reflect the themes or function of your
- {{ formatProjectType(project.project_type).toLowerCase() }}.
+ {{
+ formatMessage(messages.categoriesDescription, {
+ type: formatProjectType(project.project_type).toLowerCase(),
+ })
+ }}
- Select all of the features that your
- {{ formatProjectType(project.project_type).toLowerCase() }} makes use of.
+ {{
+ formatMessage(messages.featuresDescription, {
+ type: formatProjectType(project.project_type).toLowerCase(),
+ })
+ }}
- Select the resolution(s) of textures in your
- {{ formatProjectType(project.project_type).toLowerCase() }}.
+ {{
+ formatMessage(messages.resolutionsDescription, {
+ type: formatProjectType(project.project_type).toLowerCase(),
+ })
+ }}
- Select the realistic performance impact of your
- {{ formatProjectType(project.project_type).toLowerCase() }}. Select multiple if the
- {{ formatProjectType(project.project_type).toLowerCase() }} is configurable to
- different levels of performance impact.
+ {{
+ formatMessage(messages.performanceImpactDescription, {
+ type: formatProjectType(project.project_type).toLowerCase(),
+ })
+ }}
@@ -90,15 +102,16 @@
- Featured tags
+ {{ formatMessage(messages.featuredTags) }}
-
- You can feature up to 3 of your most relevant tags. Other tags may be promoted to
- featured if you do not select all 3.
-
+ {{
+ formatMessage(messages.featuredTagsDescription)
+ }}
- Select at least one category in order to feature a category.
+ {{ formatMessage(messages.selectAtLeastOneCategory) }}
{
@@ -268,12 +353,12 @@ const tooManyTagsWarning = computed(() => {
const tagCount = current.value.selectedTags.length
if (projectV3?.value?.minecraft_server != null) {
if (tagCount > 18) {
- return `You've selected ${tagCount} tags. Please reduce to 18 or fewer to keep your server focused and easier to discover.`
+ return formatMessage(messages.tooManyTagsServerHardWarning, { count: tagCount })
} else if (tagCount > 12) {
- return `You've selected ${tagCount} tags. Consider reducing to 12 or fewer to keep your server focused and easier to discover.`
+ return formatMessage(messages.tooManyTagsServerSoftWarning, { count: tagCount })
}
} else if (tagCount > 8) {
- return `You've selected ${tagCount} tags. Consider reducing to 8 or fewer to keep your project focused and easier to discover.`
+ return formatMessage(messages.tooManyTagsProjectWarning, { count: tagCount })
}
return null
})
@@ -286,14 +371,15 @@ const multipleResolutionTagsWarning = computed(() => {
)
if (resolutionTags.length > 1) {
- return `You've selected ${resolutionTags.length} resolution tags (${resolutionTags
+ const tagsList = resolutionTags
.map((t) => t.name)
.join(', ')
.replace('8x-', '8x or lower')
- .replace(
- '512x+',
- '512x or higher',
- )}). Resource packs should typically only have one resolution tag.`
+ .replace('512x+', '512x or higher')
+ return formatMessage(messages.multipleResolutionTagsWarning, {
+ count: resolutionTags.length,
+ tags: tagsList,
+ })
}
return null
})
@@ -310,7 +396,9 @@ const allTagsSelectedWarning = computed(() => {
totalSelectedTags === categoriesForProjectType.length &&
categoriesForProjectType.length > 0
) {
- return `You've selected all ${categoriesForProjectType.length} available tags. Please select only the tags that truly apply to your project.`
+ return formatMessage(messages.allTagsSelectedWarning, {
+ count: categoriesForProjectType.length,
+ })
}
return null
})
diff --git a/apps/frontend/src/pages/[type]/[project]/settings/versions.vue b/apps/frontend/src/pages/[type]/[project]/settings/versions.vue
index a0b65d5f01..a0f385a639 100644
--- a/apps/frontend/src/pages/[type]/[project]/settings/versions.vue
+++ b/apps/frontend/src/pages/[type]/[project]/settings/versions.vue
@@ -8,10 +8,10 @@
- Edit files
+ {{ formatMessage(messages.editFilesOption) }}
- Edit details
+ {{ formatMessage(messages.editDetailsOption) }}
- Edit metadata
+ {{ formatMessage(messages.editMetadataOption) }}
- Download
+ {{ formatMessage(commonMessages.downloadButton) }}
- Open in new tab
+ {{ formatMessage(messages.openInNewTabOption) }}
- Copy link
+ {{ formatMessage(messages.copyLinkOption) }}
- Share
+ {{ formatMessage(messages.shareOption) }}
- Report
+ {{ formatMessage(commonMessages.reportButton) }}
- Edit files
+ {{ formatMessage(messages.editFilesOption) }}
- Edit details
+ {{ formatMessage(messages.editDetailsOption) }}
- Edit metadata
+ {{ formatMessage(messages.editMetadataOption) }}
- Delete
+ {{ formatMessage(commonMessages.deleteLabel) }}
- Copy ID
+ {{ formatMessage(messages.copyIdOption) }}
- Copy Maven coordinates
+ {{ formatMessage(messages.copyMavenCoordinatesOption) }}
@@ -336,6 +336,7 @@ import {
import {
Admonition,
ButtonStyled,
+ commonMessages,
commonProjectSettingsMessages,
ConfirmModal,
defineMessages,
@@ -444,13 +445,13 @@ async function deleteVersion() {
await client.labrinth.versions_v3.deleteVersion(id)
addNotification({
- title: 'Version deleted',
- text: 'The version has been successfully deleted.',
+ title: formatMessage(messages.versionDeletedTitle),
+ text: formatMessage(messages.versionDeletedText),
type: 'success',
})
} catch (err: any) {
addNotification({
- title: 'An error occurred',
+ title: formatMessage(commonMessages.errorNotificationTitle),
text: err.data ? err.data.description : err,
type: 'error',
})
@@ -477,5 +478,61 @@ const messages = defineMessages({
defaultMessage:
'{count, plural, one {This version is} other {These versions are}} currently withheld and not publicly listed. Please provide proof that you have permission to redistribute certain files included in the modpack {count, plural, one {version} other {versions}}.',
},
+ deleteVersionConfirmTitle: {
+ id: 'project.versions.delete-confirm.title',
+ defaultMessage: 'Are you sure you want to delete this version?',
+ },
+ deleteVersionConfirmDescription: {
+ id: 'project.versions.delete-confirm.description',
+ defaultMessage: 'This will remove this version forever (like really forever).',
+ },
+ deleteButton: {
+ id: 'project.versions.delete-button',
+ defaultMessage: 'Delete',
+ },
+ editVersionTooltip: {
+ id: 'project.versions.edit-version-tooltip',
+ defaultMessage: 'Edit version',
+ },
+ editFilesOption: {
+ id: 'project.versions.edit-files-option',
+ defaultMessage: 'Edit files',
+ },
+ editDetailsOption: {
+ id: 'project.versions.edit-details-option',
+ defaultMessage: 'Edit details',
+ },
+ editMetadataOption: {
+ id: 'project.versions.edit-metadata-option',
+ defaultMessage: 'Edit metadata',
+ },
+ openInNewTabOption: {
+ id: 'project.versions.open-in-new-tab-option',
+ defaultMessage: 'Open in new tab',
+ },
+ copyLinkOption: {
+ id: 'project.versions.copy-link-option',
+ defaultMessage: 'Copy link',
+ },
+ shareOption: {
+ id: 'project.versions.share-option',
+ defaultMessage: 'Share',
+ },
+ copyIdOption: {
+ id: 'project.versions.copy-id-option',
+ defaultMessage: 'Copy ID',
+ },
+ copyMavenCoordinatesOption: {
+ id: 'project.versions.copy-maven-coordinates-option',
+ defaultMessage: 'Copy Maven coordinates',
+ },
+ versionDeletedTitle: {
+ id: 'project.versions.version-deleted-title',
+ defaultMessage: 'Version deleted',
+ },
+ versionDeletedText: {
+ id: 'project.versions.version-deleted-text',
+ defaultMessage: 'The version has been successfully deleted.',
+ },
})
diff --git a/apps/frontend/src/pages/[type]/[project]/version/[version].vue b/apps/frontend/src/pages/[type]/[project]/version/[version].vue
index f348b98e0d..5facef220d 100644
--- a/apps/frontend/src/pages/[type]/[project]/version/[version].vue
+++ b/apps/frontend/src/pages/[type]/[project]/version/[version].vue
@@ -388,7 +388,7 @@
projectV3.project_types.includes('mod') ||
projectV3.project_types.includes('plugin')
"
- class="flex flex-col overflow-hidden rounded-2xl border-[1px] border-solid border-surface-4 bg-surface-2 p-0"
+ class="mb-4 flex flex-col overflow-hidden rounded-2xl border-[1px] border-solid border-surface-4 bg-surface-2 p-0"
>
client.labrinth.versions_v3.deleteVersion(version.value!.id),
onSuccess: async () => {
addNotification({
- title: 'Version deleted',
- text: 'The version has been successfully deleted.',
+ title: formatMessage(messages.versionDeletedTitle),
+ text: formatMessage(messages.versionDeletedText),
type: 'success',
})
await invalidate()
@@ -841,7 +841,7 @@ const deleteVersionMutation = useMutation({
},
onError: (err: { data?: { description?: string } }) => {
addNotification({
- title: 'An error occurred',
+ title: formatMessage(commonMessages.errorNotificationTitle),
text: err.data?.description ?? String(err),
type: 'error',
})
@@ -894,8 +894,8 @@ const createDataPackVersionMutation = useMutation({
packageModal.value?.hide()
addNotification({
- title: 'Packaging Success',
- text: 'Your data pack was successfully packaged as a mod! Make sure to playtest to check for errors.',
+ title: formatMessage(messages.packagingSuccessTitle),
+ text: formatMessage(messages.packagingSuccessText),
type: 'success',
})
@@ -906,7 +906,7 @@ const createDataPackVersionMutation = useMutation({
},
onError: (err: { data?: { description?: string } }) => {
addNotification({
- title: 'An error occurred',
+ title: formatMessage(commonMessages.errorNotificationTitle),
text: err.data?.description ?? String(err),
type: 'error',
})
@@ -939,6 +939,23 @@ const messages = defineMessages({
id: 'version.download.no-primary-file',
defaultMessage: 'Error: No primary file found',
},
+ versionDeletedTitle: {
+ id: 'version.notification.deleted-title',
+ defaultMessage: 'Version deleted',
+ },
+ versionDeletedText: {
+ id: 'version.notification.deleted-text',
+ defaultMessage: 'The version has been successfully deleted.',
+ },
+ packagingSuccessTitle: {
+ id: 'version.notification.packaging-success-title',
+ defaultMessage: 'Packaging Success',
+ },
+ packagingSuccessText: {
+ id: 'version.notification.packaging-success-text',
+ defaultMessage:
+ 'Your data pack was successfully packaged as a mod! Make sure to playtest to check for errors.',
+ },
downloadVersion: {
id: 'version.download.version',
defaultMessage: 'Download {version} ({size})',
diff --git a/apps/frontend/src/pages/auth/create/oauth.vue b/apps/frontend/src/pages/auth/create/oauth.vue
index d2bde7b193..96864382be 100644
--- a/apps/frontend/src/pages/auth/create/oauth.vue
+++ b/apps/frontend/src/pages/auth/create/oauth.vue
@@ -128,7 +128,7 @@ const { data: globals } = useQuery({
},
})
-async function completeOAuthSignUp() {
+async function completeOAuthSignUp(accountConsent: boolean) {
startLoading()
try {
if (!oauthFlowState.value) {
@@ -140,6 +140,7 @@ async function completeOAuthSignUp() {
state: oauthFlowState.value,
challenge: token.value,
sign_up_newsletter: subscribe.value,
+ account_consent: accountConsent,
})
await finishSignIn(res.session)
diff --git a/apps/frontend/src/pages/auth/sign-up.vue b/apps/frontend/src/pages/auth/sign-up.vue
index f1630f1033..42b7fbca9c 100644
--- a/apps/frontend/src/pages/auth/sign-up.vue
+++ b/apps/frontend/src/pages/auth/sign-up.vue
@@ -250,7 +250,7 @@ function isUsernameTakenValidationError(error: unknown): boolean {
return errorCode === 'username_taken'
}
-async function createAccount() {
+async function createAccount(accountConsent: boolean) {
startLoading()
try {
const res = await client.labrinth.auth_v2.createAccount({
@@ -259,6 +259,7 @@ async function createAccount() {
email: email.value,
challenge: token.value,
sign_up_newsletter: subscribe.value,
+ account_consent: accountConsent,
})
await useAuth(res.session)
diff --git a/apps/frontend/src/pages/collection/[collection].vue b/apps/frontend/src/pages/collection/[collection].vue
index cc181c17b7..db4424666e 100644
--- a/apps/frontend/src/pages/collection/[collection].vue
+++ b/apps/frontend/src/pages/collection/[collection].vue
@@ -72,7 +72,7 @@
:show-icon="false"
accept="image/png,image/jpeg,image/gif,image/webp"
class="hidden"
- aria-label="Upload icon"
+ :aria-label="formatMessage(messages.uploadIconAriaLabel)"
@change="showPreviewImage"
/>