diff --git a/backend/endpoints/heartbeat.py b/backend/endpoints/heartbeat.py index 236037eb5..9cc8a60aa 100644 --- a/backend/endpoints/heartbeat.py +++ b/backend/endpoints/heartbeat.py @@ -159,6 +159,8 @@ async def metadata_heartbeat(source: str) -> bool: return await meta_launchbox_handler.heartbeat() case MetadataSource.HASHEOUS: return await meta_hasheous_handler.heartbeat() + case MetadataSource.PLAYMATCH: + return await meta_playmatch_handler.heartbeat() case MetadataSource.TGDB: return await meta_tgdb_handler.heartbeat() case MetadataSource.SGDB: diff --git a/backend/endpoints/sockets/scan.py b/backend/endpoints/sockets/scan.py index 5ad8cc93a..3918c24db 100644 --- a/backend/endpoints/sockets/scan.py +++ b/backend/endpoints/sockets/scan.py @@ -179,13 +179,17 @@ def _should_scan_rom( ( scan_type == ScanType.UPDATE and rom.is_identified - and any(getattr(rom, f"{source}_id") for source in metadata_sources) + and any( + getattr(rom, f"{source}_id", None) + for source in metadata_sources + ) ) # Unmatched scan should scan ROMs that are not identified by the selected metadata sources or ( scan_type == ScanType.UNMATCHED and any( - not getattr(rom, f"{source}_id") for source in metadata_sources + not getattr(rom, f"{source}_id", None) + for source in metadata_sources ) ) ) diff --git a/backend/handler/scan_handler.py b/backend/handler/scan_handler.py index 6cd524f17..a5e67951d 100644 --- a/backend/handler/scan_handler.py +++ b/backend/handler/scan_handler.py @@ -78,6 +78,7 @@ class MetadataSource(enum.StrEnum): HLTB = "hltb" # HowLongToBeat GAMELIST = "gamelist" # ES-DE gamelist.xml LIBRETRO = "libretro" # Libretro thumbnails + PLAYMATCH = "playmatch" # Playmatch def get_main_platform_igdb_id(platform: Platform): @@ -375,9 +376,8 @@ async def scan_rom( async def fetch_playmatch_hash_match() -> PlaymatchRomMatch: if ( meta_playmatch_handler.is_enabled() - and any( - source in metadata_sources for source in PLAYMATCH_SUPPORTED_SOURCES - ) + and MetadataSource.PLAYMATCH in metadata_sources + and any(PLAYMATCH_SUPPORTED_SOURCES.intersection(metadata_sources)) and ( newly_added or scan_type == ScanType.COMPLETE diff --git a/backend/tasks/scheduled/scan_library.py b/backend/tasks/scheduled/scan_library.py index 69b9d1a40..2d1bd772f 100644 --- a/backend/tasks/scheduled/scan_library.py +++ b/backend/tasks/scheduled/scan_library.py @@ -11,6 +11,7 @@ from handler.metadata import ( meta_launchbox_handler, meta_libretro_handler, meta_moby_handler, + meta_playmatch_handler, meta_ra_handler, meta_sgdb_handler, meta_ss_handler, @@ -48,6 +49,7 @@ class ScanLibraryTask(PeriodicTask): MetadataSource.RA: meta_ra_handler.is_enabled(), MetadataSource.LAUNCHBOX: meta_launchbox_handler.is_enabled(), MetadataSource.HASHEOUS: meta_hasheous_handler.is_enabled(), + MetadataSource.PLAYMATCH: meta_playmatch_handler.is_enabled(), MetadataSource.SGDB: meta_sgdb_handler.is_enabled(), MetadataSource.FLASHPOINT: meta_flashpoint_handler.is_enabled(), MetadataSource.HLTB: meta_hltb_handler.is_enabled(), diff --git a/backend/watcher.py b/backend/watcher.py index a9e47142e..df0947f15 100644 --- a/backend/watcher.py +++ b/backend/watcher.py @@ -30,6 +30,7 @@ from handler.metadata import ( meta_launchbox_handler, meta_libretro_handler, meta_moby_handler, + meta_playmatch_handler, meta_ra_handler, meta_sgdb_handler, meta_ss_handler, @@ -181,6 +182,7 @@ def process_changes(changes: Sequence[Change]) -> None: MetadataSource.RA: meta_ra_handler.is_enabled(), MetadataSource.LAUNCHBOX: meta_launchbox_handler.is_enabled(), MetadataSource.HASHEOUS: meta_hasheous_handler.is_enabled(), + MetadataSource.PLAYMATCH: meta_playmatch_handler.is_enabled(), MetadataSource.SGDB: meta_sgdb_handler.is_enabled(), MetadataSource.FLASHPOINT: meta_flashpoint_handler.is_enabled(), MetadataSource.HLTB: meta_hltb_handler.is_enabled(), diff --git a/frontend/src/components/common/Game/Dialog/RefreshMetadata.vue b/frontend/src/components/common/Game/Dialog/RefreshMetadata.vue index 3c6bd2a50..ab3af57d6 100644 --- a/frontend/src/components/common/Game/Dialog/RefreshMetadata.vue +++ b/frontend/src/components/common/Game/Dialog/RefreshMetadata.vue @@ -29,18 +29,16 @@ const calculateHashes = computed(() => !config.value.SKIP_HASH_CALCULATION); const metadataOptions = computed(() => { return heartbeat.getMetadataOptionsByPriority().map((option) => { - const requiresHashes = option.value === "hasheous" || option.value === "ra"; + // Check if option requires hashes but hash calculation is disabled + const requiresHashes = + option.value === "hasheous" || + option.value === "ra" || + option.value === "playmatch"; const hashingDisabled = !calculateHashes.value; - - let disabled = option.disabled; - - if (hashingDisabled && requiresHashes) { - if (option.value === "hasheous") { - disabled = t("scan.hasheous-requires-hashes"); - } else if (option.value === "ra") { - disabled = t("scan.retroachievements-requires-hashes"); - } - } + const disabled = + hashingDisabled && requiresHashes + ? t("scan.requires-hashes", { source: option.name }) + : option.disabled; return { ...option, diff --git a/frontend/src/locales/bg_BG/scan.json b/frontend/src/locales/bg_BG/scan.json index fe830c72f..3afd5d41c 100644 --- a/frontend/src/locales/bg_BG/scan.json +++ b/frontend/src/locales/bg_BG/scan.json @@ -17,11 +17,10 @@ "firmware-scanned-n": "Фърмуер: {n} сканирани", "firmware-scanned-with-details": "Фърмуер: {n_scanned_firmware} сканирани, от които {n_new_firmware} нови", "hash-calculation-disabled": "Изчисляването на хешове е деактивирано", - "hasheous-requires-hashes": "Hasheous изисква активирано изчисляване на хешове", "hashes": "Преизчисли хешове", "hashes-desc": "Преизчисляване хешовете за избраните платформи", - "hashes-disabled-tooltip": "Изчисляването на хешове е деактивирано.

Хешовете (MD5, SHA1, CRC32) са уникални отпечатъци които идентифицират ROM файловете прецизно.

Без тях Hasheous и RetroAchievements не могат да разпознаят игри в своите бази данни, но сканирането ще бъде по-бързо.", - "hashes-enabled-tooltip": "Изчисляването на хешове е активирано.

Хешовете (MD5, SHA1, CRC32) ще бъдат изчислени за създаване на уникални отпечатъци за всеки ROM файл.

Това позволява на Hasheous и RetroAchievements да разпознаят точно игрите в своите бази данни.", + "hashes-disabled-tooltip": "Изчисляването на хешове е деактивирано.

Хешовете (MD5, SHA1, CRC32) са уникални отпечатъци които идентифицират ROM файловете прецизно.

Без тях Hasheous, Playmatch и RetroAchievements не могат да разпознаят игри в своите бази данни, но сканирането ще бъде по-бързо.", + "hashes-enabled-tooltip": "Изчисляването на хешове е активирано.

Хешовете (MD5, SHA1, CRC32) ще бъдат изчислени за създаване на уникални отпечатъци за всеки ROM файл.

Това позволява на Hasheous, Playmatch и RetroAchievements да разпознаят точно игрите в своите бази данни.", "manage-library": "Управление на библиотека", "metadata-sources": "Източници на метаданни", "new-platforms": "Нови платформи", @@ -32,7 +31,7 @@ "platforms-scanned-with-details": "Платформи: {n_scanned_platforms} сканирани от {n_total_platforms}, от които {n_new_platforms} нови и {n_identified_platforms} идентифицирани", "quick-scan": "Бързо сканиране", "quick-scan-desc": "Сканирай само нови игри", - "retroachievements-requires-hashes": "RetroAchievements изисква активирано изчисляване на хешове", + "requires-hashes": "{source} изисква активирано изчисляване на хешове", "roms-scanned-n": "ROM-ове: {n} сканирани", "roms-scanned-with-details": "ROM-ове: {n_scanned_roms} сканирани от {n_total_roms}, от които {n_new_roms} нови и {n_identified_roms} идентифицирани", "scan": "Сканирай", diff --git a/frontend/src/locales/cs_CZ/scan.json b/frontend/src/locales/cs_CZ/scan.json index e03422b21..4823a30f3 100644 --- a/frontend/src/locales/cs_CZ/scan.json +++ b/frontend/src/locales/cs_CZ/scan.json @@ -17,11 +17,10 @@ "firmware-scanned-n": "Firmware: {n} naskenováno", "firmware-scanned-with-details": "Firmware: naskenováno {n_scanned_firmware}, z toho {n_new_firmware} nových", "hash-calculation-disabled": "Výpočet hash je zakázán", - "hasheous-requires-hashes": "Hasheous vyžaduje povolené počítání hashů", "hashes": "Přepočítat hashe", "hashes-desc": "Přepočítá hashe pro vybrané platformy", - "hashes-disabled-tooltip": "Výpočet hashů zakázán.

Hashe (MD5, SHA1, CRC32) jsou jedinečné otisky, které přesně identifikují soubory ROM.

Bez nich nemohou Hasheous a RetroAchievements porovnávat hry se svými databázemi, ale skenování bude rychlejší.", - "hashes-enabled-tooltip": "Výpočet hashů povolen.

Budou vypočítány hashe (MD5, SHA1, CRC32) pro vytvoření jedinečných otisků každého souboru ROM.

To umožňuje Hasheous a RetroAchievements přesně identifikovat hry ve svých databázích.", + "hashes-disabled-tooltip": "Výpočet hashů zakázán.

Hashe (MD5, SHA1, CRC32) jsou jedinečné otisky, které přesně identifikují soubory ROM.

Bez nich nemohou Hasheous, Playmatch a RetroAchievements porovnávat hry se svými databázemi, ale skenování bude rychlejší.", + "hashes-enabled-tooltip": "Výpočet hashů povolen.

Budou vypočítány hashe (MD5, SHA1, CRC32) pro vytvoření jedinečných otisků každého souboru ROM.

To umožňuje Hasheous, Playmatch a RetroAchievements přesně identifikovat hry ve svých databázích.", "manage-library": "Správa knihovny", "metadata-sources": "Zdroje metadat", "new-platforms": "Nové platformy", @@ -32,7 +31,7 @@ "platforms-scanned-with-details": "Platformy: {n_scanned_platforms} naskenováno z {n_total_platforms}, {n_new_platforms} nových a {n_identified_platforms} identifikovaných", "quick-scan": "Rychlý sken", "quick-scan-desc": "Skenovat pouze nové hry", - "retroachievements-requires-hashes": "RetroAchievements vyžaduje povolené počítání hashů", + "requires-hashes": "{source} vyžaduje povolené počítání hashů", "roms-scanned-n": "ROMy: {n} naskenovány", "roms-scanned-with-details": "ROMy: {n_scanned_roms} naskenováno z {n_total_roms}, {n_new_roms} nových a {n_identified_roms} identifikovaných", "scan": "Skenovat", diff --git a/frontend/src/locales/de_DE/scan.json b/frontend/src/locales/de_DE/scan.json index 56de9b7de..5e1f38f32 100644 --- a/frontend/src/locales/de_DE/scan.json +++ b/frontend/src/locales/de_DE/scan.json @@ -17,11 +17,10 @@ "firmware-scanned-n": "Firmware: {n} gescannt", "firmware-scanned-with-details": "Firmware: {n_scanned_firmware} gescannt, davon {n_new_firmware} neu", "hash-calculation-disabled": "Hash-Berechnung ist deaktiviert", - "hasheous-requires-hashes": "Hasheous erfordert aktivierte Hash-Berechnung", "hashes": "Hashes neu berechnen", "hashes-desc": "Berechnet Hashes für ausgewählte Plattformen neu", - "hashes-disabled-tooltip": "Hash-Berechnung deaktiviert.

Hashes (MD5, SHA1, CRC32) sind eindeutige Fingerabdrücke, die ROM-Dateien präzise identifizieren.

Ohne sie können Hasheous und RetroAchievements Spiele nicht mit ihren Datenbanken abgleichen, aber das Scannen wird schneller.", - "hashes-enabled-tooltip": "Hash-Berechnung aktiviert.

Hashes (MD5, SHA1, CRC32) werden berechnet, um eindeutige Fingerabdrücke für jede ROM-Datei zu erstellen.

Dies ermöglicht es Hasheous und RetroAchievements, Spiele in ihren Datenbanken genau zu identifizieren.", + "hashes-disabled-tooltip": "Hash-Berechnung deaktiviert.

Hashes (MD5, SHA1, CRC32) sind eindeutige Fingerabdrücke, die ROM-Dateien präzise identifizieren.

Ohne sie können Hasheous, Playmatch und RetroAchievements Spiele nicht mit ihren Datenbanken abgleichen, aber das Scannen wird schneller.", + "hashes-enabled-tooltip": "Hash-Berechnung aktiviert.

Hashes (MD5, SHA1, CRC32) werden berechnet, um eindeutige Fingerabdrücke für jede ROM-Datei zu erstellen.

Dies ermöglicht es Hasheous, Playmatch und RetroAchievements, Spiele in ihren Datenbanken genau zu identifizieren.", "manage-library": "Bibliothek verwalten", "metadata-sources": "Quellen für Metadaten", "new-platforms": "Neue Platformen", @@ -32,7 +31,7 @@ "platforms-scanned-with-details": "Plattformen: {n_scanned_platforms} gescannt aus {n_total_platforms}, darunter {n_new_platforms} neue und {n_identified_platforms} identifizierte", "quick-scan": "Schneller Scan", "quick-scan-desc": "Nur neue Spiele scannen", - "retroachievements-requires-hashes": "RetroAchievements erfordert aktivierte Hash-Berechnung", + "requires-hashes": "{source} erfordert aktivierte Hash-Berechnung", "roms-scanned-n": "ROMs: {n} gescannte | ROMs: {n} gescannt", "roms-scanned-with-details": "ROMs: {n_scanned_roms} gescannt aus {n_total_roms}, darunter {n_new_roms} neue und {n_identified_roms} identifizierte", "scan": "Scannen", diff --git a/frontend/src/locales/en_GB/scan.json b/frontend/src/locales/en_GB/scan.json index 4fdac228a..e70a1d600 100644 --- a/frontend/src/locales/en_GB/scan.json +++ b/frontend/src/locales/en_GB/scan.json @@ -17,11 +17,10 @@ "firmware-scanned-n": "Firmware: {n} scanned", "firmware-scanned-with-details": "Firmware: {n_scanned_firmware} scanned, with {n_new_firmware} new", "hash-calculation-disabled": "Hash calculation is disabled", - "hasheous-requires-hashes": "Hasheous requires hash calculation to be enabled", "hashes": "Recalculate hashes", "hashes-desc": "Recalculates hashes for selected platforms", - "hashes-disabled-tooltip": "File hash calculation disabled.

Hashes (MD5, SHA1, CRC32) are unique fingerprints that identify ROM files precisely.

Without them, Hasheous and RetroAchievements cannot match games to their databases, but scanning will be faster.", - "hashes-enabled-tooltip": "File hash calculation enabled.

Hashes (MD5, SHA1, CRC32) will be calculated to create unique fingerprints for each ROM file.

This enables Hasheous and RetroAchievements to accurately identify games in their databases.", + "hashes-disabled-tooltip": "File hash calculation disabled.

Hashes (MD5, SHA1, CRC32) are unique fingerprints that identify ROM files precisely.

Without them, Hasheous, Playmatch and RetroAchievements cannot match games to their databases, but scanning will be faster.", + "hashes-enabled-tooltip": "File hash calculation enabled.

Hashes (MD5, SHA1, CRC32) will be calculated to create unique fingerprints for each ROM file.

This enables Hasheous, Playmatch and RetroAchievements to accurately identify games in their databases.", "manage-library": "Manage library", "metadata-sources": "Metadata sources", "new-platforms": "New platforms", @@ -32,7 +31,7 @@ "platforms-scanned-with-details": "Platforms: {n_scanned_platforms} scanned out of {n_total_platforms}, with {n_new_platforms} new and {n_identified_platforms} identified", "quick-scan": "Quick scan", "quick-scan-desc": "Scan new games only", - "retroachievements-requires-hashes": "RetroAchievements requires hash calculation to be enabled", + "requires-hashes": "{source} requires hash calculation to be enabled", "roms-scanned-n": "ROMs: {n} scanned", "roms-scanned-with-details": "ROMs: {n_scanned_roms} scanned out of {n_total_roms}, with {n_new_roms} new and {n_identified_roms} identified", "scan": "Scan", diff --git a/frontend/src/locales/en_US/scan.json b/frontend/src/locales/en_US/scan.json index 4fdac228a..e70a1d600 100644 --- a/frontend/src/locales/en_US/scan.json +++ b/frontend/src/locales/en_US/scan.json @@ -17,11 +17,10 @@ "firmware-scanned-n": "Firmware: {n} scanned", "firmware-scanned-with-details": "Firmware: {n_scanned_firmware} scanned, with {n_new_firmware} new", "hash-calculation-disabled": "Hash calculation is disabled", - "hasheous-requires-hashes": "Hasheous requires hash calculation to be enabled", "hashes": "Recalculate hashes", "hashes-desc": "Recalculates hashes for selected platforms", - "hashes-disabled-tooltip": "File hash calculation disabled.

Hashes (MD5, SHA1, CRC32) are unique fingerprints that identify ROM files precisely.

Without them, Hasheous and RetroAchievements cannot match games to their databases, but scanning will be faster.", - "hashes-enabled-tooltip": "File hash calculation enabled.

Hashes (MD5, SHA1, CRC32) will be calculated to create unique fingerprints for each ROM file.

This enables Hasheous and RetroAchievements to accurately identify games in their databases.", + "hashes-disabled-tooltip": "File hash calculation disabled.

Hashes (MD5, SHA1, CRC32) are unique fingerprints that identify ROM files precisely.

Without them, Hasheous, Playmatch and RetroAchievements cannot match games to their databases, but scanning will be faster.", + "hashes-enabled-tooltip": "File hash calculation enabled.

Hashes (MD5, SHA1, CRC32) will be calculated to create unique fingerprints for each ROM file.

This enables Hasheous, Playmatch and RetroAchievements to accurately identify games in their databases.", "manage-library": "Manage library", "metadata-sources": "Metadata sources", "new-platforms": "New platforms", @@ -32,7 +31,7 @@ "platforms-scanned-with-details": "Platforms: {n_scanned_platforms} scanned out of {n_total_platforms}, with {n_new_platforms} new and {n_identified_platforms} identified", "quick-scan": "Quick scan", "quick-scan-desc": "Scan new games only", - "retroachievements-requires-hashes": "RetroAchievements requires hash calculation to be enabled", + "requires-hashes": "{source} requires hash calculation to be enabled", "roms-scanned-n": "ROMs: {n} scanned", "roms-scanned-with-details": "ROMs: {n_scanned_roms} scanned out of {n_total_roms}, with {n_new_roms} new and {n_identified_roms} identified", "scan": "Scan", diff --git a/frontend/src/locales/es_ES/scan.json b/frontend/src/locales/es_ES/scan.json index ed50972d6..9b844650f 100644 --- a/frontend/src/locales/es_ES/scan.json +++ b/frontend/src/locales/es_ES/scan.json @@ -17,11 +17,10 @@ "firmware-scanned-n": "Firmware: {n} analizado", "firmware-scanned-with-details": "Firmware: {n_scanned_firmware} analizados, con {n_new_firmware} nuevos", "hash-calculation-disabled": "El cálculo de hash está deshabilitado", - "hasheous-requires-hashes": "Hasheous requiere que el cálculo de hashes esté habilitado", "hashes": "Recalcular hashes", "hashes-desc": "Recalcula los hashes de las plataformas seleccionadas", - "hashes-disabled-tooltip": "Cálculo de hash deshabilitado.

Los hashes (MD5, SHA1, CRC32) son huellas digitales únicas que identifican archivos ROM con precisión.

Sin ellos, Hasheous y RetroAchievements no pueden comparar juegos con sus bases de datos, pero el escaneo será más rápido.", - "hashes-enabled-tooltip": "Cálculo de hash habilitado.

Se calcularán hashes (MD5, SHA1, CRC32) para crear huellas digitales únicas de cada archivo ROM.

Esto permite a Hasheous y RetroAchievements identificar juegos con precisión en sus bases de datos.", + "hashes-disabled-tooltip": "Cálculo de hash deshabilitado.

Los hashes (MD5, SHA1, CRC32) son huellas digitales únicas que identifican archivos ROM con precisión.

Sin ellos, Hasheous, Playmatch y RetroAchievements no pueden comparar juegos con sus bases de datos, pero el escaneo será más rápido.", + "hashes-enabled-tooltip": "Cálculo de hash habilitado.

Se calcularán hashes (MD5, SHA1, CRC32) para crear huellas digitales únicas de cada archivo ROM.

Esto permite a Hasheous, Playmatch y RetroAchievements identificar juegos con precisión en sus bases de datos.", "manage-library": "Gestionar biblioteca", "metadata-sources": "Fuentes de metadatos", "new-platforms": "Plataformas nuevas", @@ -32,7 +31,7 @@ "platforms-scanned-with-details": "Plataformas: {n_scanned_platforms} escaneadas de {n_total_platforms}, con {n_new_platforms} nuevas y {n_identified_platforms} identificadas", "quick-scan": "Escaneo rápido", "quick-scan-desc": "Escanea solo juegos nuevos", - "retroachievements-requires-hashes": "RetroAchievements requiere que el cálculo de hashes esté habilitado", + "requires-hashes": "{source} requiere que el cálculo de hashes esté habilitado", "roms-scanned-n": "ROMs: {n} escaneado | ROMs: {n} escaneados", "roms-scanned-with-details": "ROMs: {n_scanned_roms} escaneados de {n_total_roms}, con {n_new_roms} nuevos y {n_identified_roms} identificados", "scan": "Escanear", diff --git a/frontend/src/locales/fr_FR/scan.json b/frontend/src/locales/fr_FR/scan.json index 951581ae4..01ee44b82 100644 --- a/frontend/src/locales/fr_FR/scan.json +++ b/frontend/src/locales/fr_FR/scan.json @@ -17,11 +17,10 @@ "firmware-scanned-n": "Firmware : {n} analysé", "firmware-scanned-with-details": "Firmware : {n_scanned_firmware} analysés, dont {n_new_firmware} nouveaux", "hash-calculation-disabled": "Le calcul de hachage est désactivé", - "hasheous-requires-hashes": "Hasheous nécessite que le calcul de hachage soit activé", "hashes": "Recalculer les hachages", "hashes-desc": "Recalculer les hachages des plateformes sélectionnées", - "hashes-disabled-tooltip": "Calcul de hachage désactivé.

Les hachages (MD5, SHA1, CRC32) sont des empreintes uniques qui identifient les fichiers ROM avec précision.

Sans eux, Hasheous et RetroAchievements ne peuvent pas faire correspondre les jeux à leurs bases de données, mais l'analyse sera plus rapide.", - "hashes-enabled-tooltip": "Calcul de hachage de fichier activé.

Les hachages (MD5, SHA1, CRC32) seront calculés pour créer des empreintes uniques pour chaque fichier ROM.

Ceci permet à Hasheous et RetroAchievements d'identifier précisément les jeux dans leurs bases de données.", + "hashes-disabled-tooltip": "Calcul de hachage désactivé.

Les hachages (MD5, SHA1, CRC32) sont des empreintes uniques qui identifient les fichiers ROM avec précision.

Sans eux, Hasheous, Playmatch et RetroAchievements ne peuvent pas faire correspondre les jeux à leurs bases de données, mais l'analyse sera plus rapide.", + "hashes-enabled-tooltip": "Calcul de hachage de fichier activé.

Les hachages (MD5, SHA1, CRC32) seront calculés pour créer des empreintes uniques pour chaque fichier ROM.

Ceci permet à Hasheous, Playmatch et RetroAchievements d'identifier précisément les jeux dans leurs bases de données.", "manage-library": "Gérer la bibliothèque", "metadata-sources": "Sources de métadonnées", "new-platforms": "Nouvelles plateformes", @@ -32,7 +31,7 @@ "platforms-scanned-with-details": "Plateformes : {n_scanned_platforms} scannées sur {n_total_platforms}, avec {n_new_platforms} nouvelles et {n_identified_platforms} identifiées", "quick-scan": "Scan rapide", "quick-scan-desc": "Scanner uniquement les nouveaux jeux", - "retroachievements-requires-hashes": "RetroAchievements nécessite que le calcul de hachage soit activé", + "requires-hashes": "{source} nécessite que le calcul de hachage soit activé", "roms-scanned-n": "ROMs : {n} scannée | ROMs : {n} scannées", "roms-scanned-with-details": "ROMs : {n_scanned_roms} scannées sur {n_total_roms}, avec {n_new_roms} nouvelles et {n_identified_roms} identifiées", "scan": "Scanner", diff --git a/frontend/src/locales/hu_HU/scan.json b/frontend/src/locales/hu_HU/scan.json index 02faf2d84..0166cec95 100644 --- a/frontend/src/locales/hu_HU/scan.json +++ b/frontend/src/locales/hu_HU/scan.json @@ -17,11 +17,10 @@ "firmware-scanned-n": "Firmware: {n} beolvasva", "firmware-scanned-with-details": "Firmware: {n_scanned_firmware} beolvasva, ebből {n_new_firmware} új", "hash-calculation-disabled": "A hash számítás le van tiltva", - "hasheous-requires-hashes": "A Hasheous megköveteli a hash számítás engedélyezését", "hashes": "Hash-értékek újraszámítása", "hashes-desc": "Hash-értékek újraszámítása a kiválasztott platformokon", - "hashes-disabled-tooltip": "Fájl hash számítás letiltva.

A hash-ek (MD5, SHA1, CRC32) egyedi ujjlenyomatok, amelyek pontosan azonosítják a ROM fájlokat.

Ezek nélkül a Hasheous és a RetroAchievements nem tudja a játékokat az adatbázisukhoz rendelni, de a szkennelés gyorsabb lesz.", - "hashes-enabled-tooltip": "Fájl hash számítás engedélyezve.

Hashes (MD5, SHA1, CRC32) lesz kiszámítva, hogy egyedi ujjlenyomatokat hozzon létre minden ROM fájlhoz.

Ez lehetővé teszi a Hasheous és a RetroAchievements számára, hogy pontosan azonosítsák a játékokat az adatbázisaikban.", + "hashes-disabled-tooltip": "Fájl hash számítás letiltva.

A hash-ek (MD5, SHA1, CRC32) egyedi ujjlenyomatok, amelyek pontosan azonosítják a ROM fájlokat.

Ezek nélkül a Hasheous, a Playmatch és a RetroAchievements nem tudja a játékokat az adatbázisukhoz rendelni, de a szkennelés gyorsabb lesz.", + "hashes-enabled-tooltip": "Fájl hash számítás engedélyezve.

Hashes (MD5, SHA1, CRC32) lesz kiszámítva, hogy egyedi ujjlenyomatokat hozzon létre minden ROM fájlhoz.

Ez lehetővé teszi a Hasheous, a Playmatch és a RetroAchievements számára, hogy pontosan azonosítsák a játékokat az adatbázisaikban.", "manage-library": "Könyvtár Menedzsment", "metadata-sources": "Metaadat források", "new-platforms": "Új platformok", @@ -32,7 +31,7 @@ "platforms-scanned-with-details": "Platformok: {n_scanned_platforms} beolvasva a {n_total_platforms} közül,ebből {n_new_platforms} új és {n_identified_platforms} azonosított", "quick-scan": "Gyors szkennelés", "quick-scan-desc": "Csak új játékokat szkenneljen", - "retroachievements-requires-hashes": "A RetroAchievements-hez engedélyezni kell a hash-számítást.", + "requires-hashes": "A {source}-hez engedélyezni kell a hash-számítást.", "roms-scanned-n": "ROM-ok: {n} szkennelve", "roms-scanned-with-details": "ROM-ok: {n_scanned_roms} beolvasva a {n_total_roms} közül,ebből {n_new_roms} új és {n_identified_roms} azonosított", "scan": "Szkennelés", diff --git a/frontend/src/locales/it_IT/scan.json b/frontend/src/locales/it_IT/scan.json index 32827670b..21dcdc42c 100644 --- a/frontend/src/locales/it_IT/scan.json +++ b/frontend/src/locales/it_IT/scan.json @@ -17,11 +17,10 @@ "firmware-scanned-n": "Firmware: {n} scansionato", "firmware-scanned-with-details": "Firmware: {n_scanned_firmware} scansionati, di cui {n_new_firmware} nuovi", "hash-calculation-disabled": "Il calcolo dell'hash è disabilitato", - "hasheous-requires-hashes": "Hasheous richiede che il calcolo degli hash sia abilitato", "hashes": "Ricalcola hash", "hashes-desc": "Ricalcola gli hash per le piattaforme selezionate", - "hashes-disabled-tooltip": "Calcolo hash disabilitato.

Gli hash (MD5, SHA1, CRC32) sono impronte digitali uniche che identificano i file ROM con precisione.

Senza di essi, Hasheous e RetroAchievements non possono confrontare i giochi con i loro database, ma la scansione sarà più veloce.", - "hashes-enabled-tooltip": "Calcolo hash abilitato.

Verranno calcolati gli hash (MD5, SHA1, CRC32) per creare impronte digitali uniche di ogni file ROM.

Questo consente a Hasheous e RetroAchievements di identificare accuratamente i giochi nei loro database.", + "hashes-disabled-tooltip": "Calcolo hash disabilitato.

Gli hash (MD5, SHA1, CRC32) sono impronte digitali uniche che identificano i file ROM con precisione.

Senza di essi, Hasheous, Playmatch e RetroAchievements non possono confrontare i giochi con i loro database, ma la scansione sarà più veloce.", + "hashes-enabled-tooltip": "Calcolo hash abilitato.

Verranno calcolati gli hash (MD5, SHA1, CRC32) per creare impronte digitali uniche di ogni file ROM.

Questo consente a Hasheous, Playmatch e RetroAchievements di identificare accuratamente i giochi nei loro database.", "manage-library": "Gestisci libreria", "metadata-sources": "Fonti metadati", "new-platforms": "Nuove piattaforme", @@ -32,7 +31,7 @@ "platforms-scanned-with-details": "Piattaforme: {n_scanned_platforms} scansionate su {n_total_platforms}, con {n_new_platforms} nuove e {n_identified_platforms} identificate", "quick-scan": "Scansione rapida", "quick-scan-desc": "Scansiona solo i nuovi giochi", - "retroachievements-requires-hashes": "RetroAchievements richiede che il calcolo degli hash sia abilitato", + "requires-hashes": "{source} richiede che il calcolo degli hash sia abilitato", "roms-scanned-n": "Rom: {n} scansionate", "roms-scanned-with-details": "Rom: {n_scanned_roms} scansionate su {n_total_roms}, con {n_new_roms} nuove e {n_identified_roms} identificate", "scan": "Scansiona", diff --git a/frontend/src/locales/ja_JP/scan.json b/frontend/src/locales/ja_JP/scan.json index 2e09b5bb0..432b5ad5b 100644 --- a/frontend/src/locales/ja_JP/scan.json +++ b/frontend/src/locales/ja_JP/scan.json @@ -17,11 +17,10 @@ "firmware-scanned-n": "ファームウェア: {n} 件をスキャン", "firmware-scanned-with-details": "ファームウェア: {n_scanned_firmware} 件をスキャン、うち新規 {n_new_firmware} 件", "hash-calculation-disabled": "ハッシュ計算が無効になっています", - "hasheous-requires-hashes": "Hasheousはファイルハッシュが必要です", "hashes": "ハッシュ値の再計算", "hashes-desc": "選択されたプラットフォームのハッシュ値を再計算します", - "hashes-disabled-tooltip": "ファイルハッシュ計算が無効。

ハッシュ(MD5、SHA1、CRC32)はROMファイルを正確に識別するユニークな指紋です。

これがないと、HasheousやRetroAchievementsはゲームをデータベースとマッチングできませんが、スキャンは高速になります。", - "hashes-enabled-tooltip": "ファイルハッシュ計算が有効です。

各ROMファイルの一意の指紋を作成するために、ハッシュ(MD5、SHA1、CRC32)が計算されます。

これにより、HasheousとRetroAchievementsがデータベース内のゲームを正確に識別できます。", + "hashes-disabled-tooltip": "ファイルハッシュ計算が無効。

ハッシュ(MD5、SHA1、CRC32)はROMファイルを正確に識別するユニークな指紋です。

これがないと、Hasheous、Playmatch、RetroAchievementsはゲームをデータベースとマッチングできませんが、スキャンは高速になります。", + "hashes-enabled-tooltip": "ファイルハッシュ計算が有効です。

各ROMファイルの一意の指紋を作成するために、ハッシュ(MD5、SHA1、CRC32)が計算されます。

これにより、Hasheous、Playmatch、RetroAchievementsがデータベース内のゲームを正確に識別できます。", "manage-library": "ライブラリを編集", "metadata-sources": "メタデータ取得元", "new-platforms": "新規プラットフォーム", @@ -32,7 +31,7 @@ "platforms-scanned-with-details": "プラットフォーム: {n_scanned_platforms}/{n_total_platforms} スキャン済み 新規: {n_new_platforms} 識別済み: {n_identified_platforms}", "quick-scan": "クイックスキャン", "quick-scan-desc": "新規ゲームのみを検索", - "retroachievements-requires-hashes": "RetroAchievementsはファイルハッシュが必要です", + "requires-hashes": "{source}はファイルハッシュが必要です", "roms-scanned-n": "Rom: {n} スキャン済み", "roms-scanned-with-details": "Rom: {n_scanned_roms}/{n_total_roms} スキャン済み 新規: {n_new_roms} 識別済み: {n_identified_roms}", "scan": "スキャン", diff --git a/frontend/src/locales/ko_KR/scan.json b/frontend/src/locales/ko_KR/scan.json index 12eaa00a0..c8f53d088 100644 --- a/frontend/src/locales/ko_KR/scan.json +++ b/frontend/src/locales/ko_KR/scan.json @@ -17,11 +17,10 @@ "firmware-scanned-n": "펌웨어: {n}개 스캔됨", "firmware-scanned-with-details": "펌웨어: {n_scanned_firmware}개 스캔됨, 새 항목 {n_new_firmware}개", "hash-calculation-disabled": "해시 계산이 비활성화되어 있습니다", - "hasheous-requires-hashes": "Hasheous는 파일 해시가 필요합니다", "hashes": "해시", "hashes-desc": "선택된 플랫폼의 해시를 다시 계산", - "hashes-disabled-tooltip": "해시 계산이 비활성화됨.

해시(MD5, SHA1, CRC32)는 ROM 파일을 정확히 식별하는 고유한 지문입니다.

해시 없이는 Hasheous와 RetroAchievements가 데이터베이스와 게임을 매치할 수 없지만, 스캔이 더 빨라집니다.", - "hashes-enabled-tooltip": "해시 계산이 활성화됨.

각 ROM 파일의 고유한 지문을 생성하기 위해 해시(MD5, SHA1, CRC32)가 계산됩니다.

이를 통해 Hasheous와 RetroAchievements가 데이터베이스에서 게임을 정확히 식별할 수 있습니다.", + "hashes-disabled-tooltip": "해시 계산이 비활성화됨.

해시(MD5, SHA1, CRC32)는 ROM 파일을 정확히 식별하는 고유한 지문입니다.

해시 없이는 Hasheous, Playmatch와 RetroAchievements가 데이터베이스와 게임을 매치할 수 없지만, 스캔이 더 빨라집니다.", + "hashes-enabled-tooltip": "해시 계산이 활성화됨.

각 ROM 파일의 고유한 지문을 생성하기 위해 해시(MD5, SHA1, CRC32)가 계산됩니다.

이를 통해 Hasheous, Playmatch와 RetroAchievements가 데이터베이스에서 게임을 정확히 식별할 수 있습니다.", "manage-library": "라이브러리 관리", "metadata-sources": "메타데이터 DB", "new-platforms": "새 플랫폼", @@ -32,7 +31,7 @@ "platforms-scanned-with-details": "플랫폼: {n_scanned_platforms}/{n_total_platforms}개 스캔됨, 새로운 플랫폼: {n_new_platforms}개, 확인된 플랫폼: {n_identified_platforms}개", "quick-scan": "빠른 스캔", "quick-scan-desc": "새 게임만 검색", - "retroachievements-requires-hashes": "RetroAchievements는 파일 해시가 필요합니다", + "requires-hashes": "{source}는 파일 해시가 필요합니다", "roms-scanned-n": "롬: {n}개 스캔됨", "roms-scanned-with-details": "롬: {n_scanned_roms}/{n_total_roms}개 스캔됨, 새로운 롬: {n_new_roms}개, 확인된 롬: {n_identified_roms}개", "scan": "스캔", diff --git a/frontend/src/locales/pl_PL/scan.json b/frontend/src/locales/pl_PL/scan.json index 713290bdb..48e178f97 100644 --- a/frontend/src/locales/pl_PL/scan.json +++ b/frontend/src/locales/pl_PL/scan.json @@ -17,11 +17,10 @@ "firmware-scanned-n": "Firmware: zeskanowano {n}", "firmware-scanned-with-details": "Firmware: zeskanowano {n_scanned_firmware}, w tym {n_new_firmware} nowych", "hash-calculation-disabled": "Obliczanie skrótów jest wyłączone", - "hasheous-requires-hashes": "Hasheous wymaga włączonego obliczania skrótów", "hashes": "Przelicz sumy kontrolne", "hashes-desc": "Przelicza sumy kontrolne dla wybranych platform", - "hashes-disabled-tooltip": "Obliczanie skrótów wyłączone.

Skróty (MD5, SHA1, CRC32) to unikalne odciski palców, które precyzyjnie identyfikują pliki ROM.

Bez nich Hasheous i RetroAchievements nie mogą dopasować gier do swoich baz danych, ale skanowanie będzie szybsze.", - "hashes-enabled-tooltip": "Obliczanie skrótów włączone.

Zostaną obliczone skróty (MD5, SHA1, CRC32) w celu utworzenia unikalnych odcisków palców każdego pliku ROM.

To pozwala Hasheous i RetroAchievements na dokładną identyfikację gier w ich bazach danych.", + "hashes-disabled-tooltip": "Obliczanie skrótów wyłączone.

Skróty (MD5, SHA1, CRC32) to unikalne odciski palców, które precyzyjnie identyfikują pliki ROM.

Bez nich Hasheous, Playmatch i RetroAchievements nie mogą dopasować gier do swoich baz danych, ale skanowanie będzie szybsze.", + "hashes-enabled-tooltip": "Obliczanie skrótów włączone.

Zostaną obliczone skróty (MD5, SHA1, CRC32) w celu utworzenia unikalnych odcisków palców każdego pliku ROM.

To pozwala Hasheous, Playmatch i RetroAchievements na dokładną identyfikację gier w ich bazach danych.", "manage-library": "Zarządzaj biblioteką", "metadata-sources": "Źródła metadanych", "new-platforms": "Nowe platformy", @@ -32,7 +31,7 @@ "platforms-scanned-with-details": "Platformy: {n_scanned_platforms} zeskanowano z {n_total_platforms}, z {n_new_platforms} nowych i {n_identified_platforms} zidentyfikowanych", "quick-scan": "Szybkie skanowanie", "quick-scan-desc": "Skanuj tylko nowe gry", - "retroachievements-requires-hashes": "RetroAchievements wymaga włączonego obliczania skrótów", + "requires-hashes": "{source} wymaga włączonego obliczania skrótów", "roms-scanned-n": "ROM-y: zeskanowano {n}", "roms-scanned-with-details": "ROM-y: {n_scanned_roms} zeskanowano z {n_total_roms}, z {n_new_roms} nowych i {n_identified_roms} zidentyfikowanych", "scan": "Skanuj", diff --git a/frontend/src/locales/pt_BR/scan.json b/frontend/src/locales/pt_BR/scan.json index e3d34419e..dc7d190c6 100644 --- a/frontend/src/locales/pt_BR/scan.json +++ b/frontend/src/locales/pt_BR/scan.json @@ -17,11 +17,10 @@ "firmware-scanned-n": "Firmware: {n} escaneado", "firmware-scanned-with-details": "Firmware: {n_scanned_firmware} escaneados, com {n_new_firmware} novos", "hash-calculation-disabled": "O cálculo de hash está desabilitado", - "hasheous-requires-hashes": "Hasheous requer que o cálculo de hash esteja habilitado", "hashes": "Recalcular hashes", "hashes-desc": "Recalcula hashes das plataformas selecionadas", - "hashes-disabled-tooltip": "Cálculo de hash desabilitado.

Hashes (MD5, SHA1, CRC32) são impressões digitais únicas que identificam arquivos ROM com precisão.

Sem eles, Hasheous e RetroAchievements não podem comparar jogos com seus bancos de dados, mas a varredura será mais rápida.", - "hashes-enabled-tooltip": "Cálculo de hash habilitado.

Hashes (MD5, SHA1, CRC32) serão calculados para criar impressões digitais únicas de cada arquivo ROM.

Isso permite que Hasheous e RetroAchievements identifiquem jogos com precisão em seus bancos de dados.", + "hashes-disabled-tooltip": "Cálculo de hash desabilitado.

Hashes (MD5, SHA1, CRC32) são impressões digitais únicas que identificam arquivos ROM com precisão.

Sem eles, Hasheous, Playmatch e RetroAchievements não podem comparar jogos com seus bancos de dados, mas a varredura será mais rápida.", + "hashes-enabled-tooltip": "Cálculo de hash habilitado.

Hashes (MD5, SHA1, CRC32) serão calculados para criar impressões digitais únicas de cada arquivo ROM.

Isso permite que Hasheous, Playmatch e RetroAchievements identifiquem jogos com precisão em seus bancos de dados.", "manage-library": "Gerenciar biblioteca", "metadata-sources": "Fontes de metadados", "new-platforms": "Novas plataformas", @@ -32,7 +31,7 @@ "platforms-scanned-with-details": "Plataformas: {n_scanned_platforms} escaneadas de {n_total_platforms}, com {n_new_platforms} novas e {n_identified_platforms} identificadas", "quick-scan": "Escaneamento rápido", "quick-scan-desc": "Escanear apenas novos jogos", - "retroachievements-requires-hashes": "RetroAchievements requer que o cálculo de hash esteja habilitado", + "requires-hashes": "{source} requer que o cálculo de hash esteja habilitado", "roms-scanned-n": "ROMs: {n} escaneado | ROMs: {n} escaneados", "roms-scanned-with-details": "ROMs: {n_scanned_roms} escaneados de {n_total_roms}, com {n_new_roms} novos e {n_identified_roms} identificados", "scan": "Escanear", diff --git a/frontend/src/locales/ro_RO/scan.json b/frontend/src/locales/ro_RO/scan.json index 4c099fb4a..791826d1c 100644 --- a/frontend/src/locales/ro_RO/scan.json +++ b/frontend/src/locales/ro_RO/scan.json @@ -17,11 +17,10 @@ "firmware-scanned-n": "Firmware: {n} scanat", "firmware-scanned-with-details": "Firmware: {n_scanned_firmware} scanate, dintre care {n_new_firmware} noi", "hash-calculation-disabled": "Calculul hash-ului este dezactivat", - "hasheous-requires-hashes": "Hasheous necesită hash-uri de fișiere", "hashes": "Recalculează hash-urile", "hashes-desc": "Recalculează hash-urile pentru platformele selectate", - "hashes-disabled-tooltip": "Calculul hash-urilor dezactivat.

Hash-urile (MD5, SHA1, CRC32) sunt amprente digitale unice care identifică fișierele ROM cu precizie.

Fără ele, Hasheous și RetroAchievements nu pot potrivi jocurile cu bazele lor de date, dar scanarea va fi mai rapidă.", - "hashes-enabled-tooltip": "Calculul hash-urilor activat.

Se vor calcula hash-uri (MD5, SHA1, CRC32) pentru a crea amprente digitale unice pentru fiecare fișier ROM.

Aceasta permite lui Hasheous și RetroAchievements să identifice cu precizie jocurile în bazele lor de date.", + "hashes-disabled-tooltip": "Calculul hash-urilor dezactivat.

Hash-urile (MD5, SHA1, CRC32) sunt amprente digitale unice care identifică fișierele ROM cu precizie.

Fără ele, Hasheous, Playmatch și RetroAchievements nu pot potrivi jocurile cu bazele lor de date, dar scanarea va fi mai rapidă.", + "hashes-enabled-tooltip": "Calculul hash-urilor activat.

Se vor calcula hash-uri (MD5, SHA1, CRC32) pentru a crea amprente digitale unice pentru fiecare fișier ROM.

Aceasta permite lui Hasheous, Playmatch și RetroAchievements să identifice cu precizie jocurile în bazele lor de date.", "manage-library": "Gestionează biblioteca", "metadata-sources": "Surse de metadate", "new-platforms": "Platforme noi", @@ -32,7 +31,7 @@ "platforms-scanned-with-details": "Platforme: {n_scanned_platforms} scanate din {n_total_platforms}, cu {n_new_platforms} noi și {n_identified_platforms} identificate", "quick-scan": "Scanare rapidă", "quick-scan-desc": "Scanează doar jocuri noi", - "retroachievements-requires-hashes": "RetroAchievements necesită hash-uri de fișiere", + "requires-hashes": "{source} necesită hash-uri de fișiere", "roms-scanned-n": "ROMs: {n} scanată | ROMs: {n} scanate", "roms-scanned-with-details": "Rom-uri: {n_scanned_roms} scanate din {n_total_roms}, cu {n_new_roms} noi și {n_identified_roms} identificate", "scan": "Scanează", diff --git a/frontend/src/locales/ru_RU/scan.json b/frontend/src/locales/ru_RU/scan.json index cd341503e..f0dc68523 100644 --- a/frontend/src/locales/ru_RU/scan.json +++ b/frontend/src/locales/ru_RU/scan.json @@ -17,11 +17,10 @@ "firmware-scanned-n": "Прошивки: отсканировано {n}", "firmware-scanned-with-details": "Прошивки: отсканировано {n_scanned_firmware}, новых {n_new_firmware}", "hash-calculation-disabled": "Вычисление хешей отключено", - "hasheous-requires-hashes": "Hasheous требует хеши файлов", "hashes": "Пересчитать хеши", "hashes-desc": "Пересчитывает хеши для выбранных платформ", - "hashes-disabled-tooltip": "Вычисление хешей отключено.

Хеши (MD5, SHA1, CRC32) - это уникальные отпечатки, которые точно идентифицируют файлы ROM.

Без них Hasheous и RetroAchievements не могут сопоставить игры с своими базами данных, но сканирование будет быстрее.", - "hashes-enabled-tooltip": "Вычисление хешей включено.

Будут вычислены хеши (MD5, SHA1, CRC32) для создания уникальных отпечатков каждого файла ROM.

Это позволяет Hasheous и RetroAchievements точно идентифицировать игры в своих базах данных.", + "hashes-disabled-tooltip": "Вычисление хешей отключено.

Хеши (MD5, SHA1, CRC32) - это уникальные отпечатки, которые точно идентифицируют файлы ROM.

Без них Hasheous, Playmatch и RetroAchievements не могут сопоставить игры с своими базами данных, но сканирование будет быстрее.", + "hashes-enabled-tooltip": "Вычисление хешей включено.

Будут вычислены хеши (MD5, SHA1, CRC32) для создания уникальных отпечатков каждого файла ROM.

Это позволяет Hasheous, Playmatch и RetroAchievements точно идентифицировать игры в своих базах данных.", "manage-library": "Управление библиотекой", "metadata-sources": "Источники мета��анных", "new-platforms": "Новые платформы", @@ -32,7 +31,7 @@ "platforms-scanned-with-details": "Платформы: {n_scanned_platforms} из {n_total_platforms} отсканировано, {n_new_platforms} новых и {n_identified_platforms} опознано", "quick-scan": "Быстрое сканирование", "quick-scan-desc": "Сканировать только новые игры", - "retroachievements-requires-hashes": "RetroAchievements требует хеши файлов", + "requires-hashes": "{source} требует хеши файлов", "roms-scanned-n": "Ромы: {n} отсканировано", "roms-scanned-with-details": "Ромы: {n_scanned_roms} из {n_total_roms} отсканировано, {n_new_roms} новых и {n_identified_roms} опознано", "scan": "Сканировать", diff --git a/frontend/src/locales/zh_CN/scan.json b/frontend/src/locales/zh_CN/scan.json index 08c257c4c..3fef5b072 100644 --- a/frontend/src/locales/zh_CN/scan.json +++ b/frontend/src/locales/zh_CN/scan.json @@ -17,11 +17,10 @@ "firmware-scanned-n": "固件:已扫描 {n} 个", "firmware-scanned-with-details": "固件:已扫描 {n_scanned_firmware} 个,新增 {n_new_firmware} 个", "hash-calculation-disabled": "哈希计算已禁用", - "hasheous-requires-hashes": "Hasheous 需要文件哈希", "hashes": "哈希", "hashes-desc": "重新计算选定平台的哈希值", - "hashes-disabled-tooltip": "哈希计算已禁用。

哈希值(MD5、SHA1、CRC32)是精确识别 ROM 文件的唯一指纹。

没有它们,Hasheous 和 RetroAchievements 无法将游戏与其数据库进行匹配,但扫描速度会更快。", - "hashes-enabled-tooltip": "文件哈希计算已启用。

将计算哈希值(MD5、SHA1、CRC32)为每个 ROM 文件创建唯一指纹。

这使得 Hasheous 和 RetroAchievements 能够在其数据库中准确识别游戏。", + "hashes-disabled-tooltip": "哈希计算已禁用。

哈希值(MD5、SHA1、CRC32)是精确识别 ROM 文件的唯一指纹。

没有它们,Hasheous、Playmatch 和 RetroAchievements 无法将游戏与其数据库进行匹配,但扫描速度会更快。", + "hashes-enabled-tooltip": "文件哈希计算已启用。

将计算哈希值(MD5、SHA1、CRC32)为每个 ROM 文件创建唯一指纹。

这使得 Hasheous、Playmatch 和 RetroAchievements 能够在其数据库中准确识别游戏。", "manage-library": "管理游戏库", "metadata-sources": "元数据源", "new-platforms": "新平台", @@ -32,7 +31,7 @@ "platforms-scanned-with-details": "平台:{n_scanned_platforms}/{n_total_platforms} 已扫描,新增 {n_new_platforms},识别 {n_identified_platforms}", "quick-scan": "快速扫描", "quick-scan-desc": "仅扫描新游戏", - "retroachievements-requires-hashes": "RetroAchievements 需要文件哈希", + "requires-hashes": "{source} 需要文件哈希", "roms-scanned-n": "ROMs:{n} 已扫描", "roms-scanned-with-details": "ROMs:{n_scanned_roms}/{n_total_roms} 已扫描,新增 {n_new_roms},识别 {n_identified_roms}", "scan": "扫描", diff --git a/frontend/src/locales/zh_TW/scan.json b/frontend/src/locales/zh_TW/scan.json index 82587d8e3..59a88a006 100644 --- a/frontend/src/locales/zh_TW/scan.json +++ b/frontend/src/locales/zh_TW/scan.json @@ -17,11 +17,10 @@ "firmware-scanned-n": "韌體:已掃描 {n} 個", "firmware-scanned-with-details": "韌體:已掃描 {n_scanned_firmware} 個,新增 {n_new_firmware} 個", "hash-calculation-disabled": "雜湊計算已停用", - "hasheous-requires-hashes": "Hasheous 需要檔案哈希", "hashes": "雜湊", "hashes-desc": "重新計算選定平台的雜湊值", - "hashes-disabled-tooltip": "哈希計算已停用。

哈希值(MD5、SHA1、CRC32)是唯一識別 ROM 檔案的數字指紋。

沒有它們,Hasheous 和 RetroAchievements 無法將遊戲與資料庫匹配,但掃描速度會更快。", - "hashes-enabled-tooltip": "哈希計算已啟用。

將計算哈希值(MD5、SHA1、CRC32)為每個 ROM 檔案建立唯一指紋。

這使 Hasheous 和 RetroAchievements 能夠準確識別其資料庫中的遊戲。", + "hashes-disabled-tooltip": "哈希計算已停用。

哈希值(MD5、SHA1、CRC32)是唯一識別 ROM 檔案的數字指紋。

沒有它們,Hasheous、Playmatch 和 RetroAchievements 無法將遊戲與資料庫匹配,但掃描速度會更快。", + "hashes-enabled-tooltip": "哈希計算已啟用。

將計算哈希值(MD5、SHA1、CRC32)為每個 ROM 檔案建立唯一指紋。

這使 Hasheous、Playmatch 和 RetroAchievements 能夠準確識別其資料庫中的遊戲。", "manage-library": "管理遊戲庫", "metadata-sources": "元數據來源", "new-platforms": "新平台", @@ -32,7 +31,7 @@ "platforms-scanned-with-details": "平台:{n_scanned_platforms}/{n_total_platforms} 已掃描,新增 {n_new_platforms},識別 {n_identified_platforms}", "quick-scan": "快速掃描", "quick-scan-desc": "只掃描新遊戲", - "retroachievements-requires-hashes": "RetroAchievements 需要檔案哈希", + "requires-hashes": "{source} 需要檔案哈希", "roms-scanned-n": "已掃描 {n} 個 Rom", "roms-scanned-with-details": "Rom:{n_scanned_roms}/{n_total_roms} 已掃描,新增 {n_new_roms},識別 {n_identified_roms}", "scan": "掃描", diff --git a/frontend/src/stores/heartbeat.ts b/frontend/src/stores/heartbeat.ts index 464c0c34c..e970e8fc5 100644 --- a/frontend/src/stores/heartbeat.ts +++ b/frontend/src/stores/heartbeat.ts @@ -91,9 +91,7 @@ export default defineStore("heartbeat", { getAllMetadataOptions(): MetadataOption[] { return [ { - name: this.value.METADATA_SOURCES?.PLAYMATCH_API_ENABLED - ? "IGDB + Playmatch" - : "IGDB", + name: "IGDB", value: "igdb", logo_path: "/assets/scrappers/igdb.png", disabled: !this.value.METADATA_SOURCES?.IGDB_API_ENABLED @@ -108,6 +106,14 @@ export default defineStore("heartbeat", { ? i18n.global.t("scan.disabled-by-admin") : "", }, + { + name: "Playmatch", + value: "playmatch", + logo_path: "/assets/scrappers/playmatch.png", + disabled: !this.value.METADATA_SOURCES?.PLAYMATCH_API_ENABLED + ? i18n.global.t("scan.disabled-by-admin") + : "", + }, { name: "Screenscraper", value: "ss", diff --git a/frontend/src/views/Auth/Setup.vue b/frontend/src/views/Auth/Setup.vue index 919fb8100..601beff25 100644 --- a/frontend/src/views/Auth/Setup.vue +++ b/frontend/src/views/Auth/Setup.vue @@ -68,6 +68,12 @@ const metadataOptions = computed(() => [ logo_path: "/assets/scrappers/hasheous.png", disabled: !heartbeat.value.METADATA_SOURCES?.HASHEOUS_API_ENABLED, }, + { + name: "PlayMatch", + value: "playmatch", + logo_path: "/assets/scrappers/playmatch.png", + disabled: !heartbeat.value.METADATA_SOURCES?.PLAYMATCH_API_ENABLED, + }, { name: "Launchbox", value: "launchbox", diff --git a/frontend/src/views/Scan.vue b/frontend/src/views/Scan.vue index 14aa29ed6..af1f7c655 100644 --- a/frontend/src/views/Scan.vue +++ b/frontend/src/views/Scan.vue @@ -46,18 +46,15 @@ const calculateHashes = computed( const metadataOptions = computed(() => { return heartbeat.getMetadataOptionsByPriority().map((option) => { // Check if option requires hashes but hash calculation is disabled - const requiresHashes = option.value === "hasheous" || option.value === "ra"; + const requiresHashes = + option.value === "hasheous" || + option.value === "ra" || + option.value === "playmatch"; const hashingDisabled = !calculateHashes.value; - - let disabled = option.disabled; - - if (hashingDisabled && requiresHashes) { - if (option.value === "hasheous") { - disabled = t("scan.hasheous-requires-hashes"); - } else if (option.value === "ra") { - disabled = t("scan.retroachievements-requires-hashes"); - } - } + const disabled = + hashingDisabled && requiresHashes + ? t("scan.requires-hashes", { source: option.name }) + : option.disabled; return { ...option,