From aed926ac9e596fdbdeeae975be536c6c740e8a75 Mon Sep 17 00:00:00 2001 From: Georges-Antoine Assi Date: Fri, 22 May 2026 21:44:33 -0400 Subject: [PATCH 1/6] Add playmatch as explicit metadata source --- backend/endpoints/heartbeat.py | 2 ++ backend/handler/metadata/playmatch_handler.py | 7 ------- backend/handler/scan_handler.py | 10 +++------- frontend/src/stores/heartbeat.ts | 12 +++++++++--- 4 files changed, 14 insertions(+), 17 deletions(-) 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/handler/metadata/playmatch_handler.py b/backend/handler/metadata/playmatch_handler.py index 3db23c0b1..ebfda7904 100644 --- a/backend/handler/metadata/playmatch_handler.py +++ b/backend/handler/metadata/playmatch_handler.py @@ -49,13 +49,6 @@ PLAYMATCH_LOOKUP_ROM_ATTRS: frozenset[str] = frozenset( {"igdb_id", "moby_id", "ss_id", "launchbox_id", "sgdb_id"} ) -# MetadataSource values (StrEnum) for which Playmatch can return ids. Typed as -# strings so this module stays free of scan_handler imports. EmuReady and -# OpenVGDB are in Playmatch's enum but have no RomM counterpart yet. -PLAYMATCH_SUPPORTED_SOURCES: frozenset[str] = frozenset( - {"igdb", "moby", "ss", "launchbox", "sgdb"} -) - class GameMatchType(str, Enum): SHA256 = "SHA256" diff --git a/backend/handler/scan_handler.py b/backend/handler/scan_handler.py index 2f39b334c..65c598d01 100644 --- a/backend/handler/scan_handler.py +++ b/backend/handler/scan_handler.py @@ -34,10 +34,7 @@ from handler.metadata.launchbox_handler.platforms import LAUNCHBOX_PLATFORM_LIST from handler.metadata.launchbox_handler.types import LaunchboxRom from handler.metadata.libretro_handler import LIBRETRO_PLATFORM_LIST, LibretroRom from handler.metadata.moby_handler import MOBYGAMES_PLATFORM_LIST, MobyGamesRom -from handler.metadata.playmatch_handler import ( - PLAYMATCH_SUPPORTED_SOURCES, - PlaymatchRomMatch, -) +from handler.metadata.playmatch_handler import PlaymatchRomMatch from handler.metadata.ra_handler import RA_PLATFORM_LIST, RAGameRom from handler.metadata.sgdb_handler import SGDBRom from handler.metadata.ss_handler import SCREENSAVER_PLATFORM_LIST, SSRom @@ -78,6 +75,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 +373,7 @@ 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 ( newly_added or scan_type == ScanType.COMPLETE 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", From 18ecc1f374aca5b0998151868ab43b344305eda9 Mon Sep 17 00:00:00 2001 From: Georges-Antoine Assi Date: Fri, 22 May 2026 21:56:10 -0400 Subject: [PATCH 2/6] use intersection --- backend/handler/metadata/playmatch_handler.py | 7 +++++++ backend/handler/scan_handler.py | 6 +++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/backend/handler/metadata/playmatch_handler.py b/backend/handler/metadata/playmatch_handler.py index ebfda7904..3db23c0b1 100644 --- a/backend/handler/metadata/playmatch_handler.py +++ b/backend/handler/metadata/playmatch_handler.py @@ -49,6 +49,13 @@ PLAYMATCH_LOOKUP_ROM_ATTRS: frozenset[str] = frozenset( {"igdb_id", "moby_id", "ss_id", "launchbox_id", "sgdb_id"} ) +# MetadataSource values (StrEnum) for which Playmatch can return ids. Typed as +# strings so this module stays free of scan_handler imports. EmuReady and +# OpenVGDB are in Playmatch's enum but have no RomM counterpart yet. +PLAYMATCH_SUPPORTED_SOURCES: frozenset[str] = frozenset( + {"igdb", "moby", "ss", "launchbox", "sgdb"} +) + class GameMatchType(str, Enum): SHA256 = "SHA256" diff --git a/backend/handler/scan_handler.py b/backend/handler/scan_handler.py index 65c598d01..74274392a 100644 --- a/backend/handler/scan_handler.py +++ b/backend/handler/scan_handler.py @@ -34,7 +34,10 @@ from handler.metadata.launchbox_handler.platforms import LAUNCHBOX_PLATFORM_LIST from handler.metadata.launchbox_handler.types import LaunchboxRom from handler.metadata.libretro_handler import LIBRETRO_PLATFORM_LIST, LibretroRom from handler.metadata.moby_handler import MOBYGAMES_PLATFORM_LIST, MobyGamesRom -from handler.metadata.playmatch_handler import PlaymatchRomMatch +from handler.metadata.playmatch_handler import ( + PLAYMATCH_SUPPORTED_SOURCES, + PlaymatchRomMatch, +) from handler.metadata.ra_handler import RA_PLATFORM_LIST, RAGameRom from handler.metadata.sgdb_handler import SGDBRom from handler.metadata.ss_handler import SCREENSAVER_PLATFORM_LIST, SSRom @@ -374,6 +377,7 @@ async def scan_rom( if ( meta_playmatch_handler.is_enabled() and MetadataSource.PLAYMATCH in metadata_sources + and any(PLAYMATCH_SUPPORTED_SOURCES.intersection(metadata_sources)) and ( newly_added or scan_type == ScanType.COMPLETE From 4a89dadb55e8498b7fe1babae3b188a438207c1c Mon Sep 17 00:00:00 2001 From: Georges-Antoine Assi Date: Fri, 22 May 2026 22:32:33 -0400 Subject: [PATCH 3/6] update scna pages --- .../common/Game/Dialog/RefreshMetadata.vue | 20 +++++++++---------- frontend/src/locales/bg_BG/scan.json | 3 +-- frontend/src/locales/cs_CZ/scan.json | 3 +-- frontend/src/locales/de_DE/scan.json | 3 +-- frontend/src/locales/en_GB/scan.json | 3 +-- frontend/src/locales/en_US/scan.json | 3 +-- frontend/src/locales/es_ES/scan.json | 3 +-- frontend/src/locales/fr_FR/scan.json | 3 +-- frontend/src/locales/hu_HU/scan.json | 3 +-- frontend/src/locales/it_IT/scan.json | 3 +-- frontend/src/locales/ja_JP/scan.json | 3 +-- frontend/src/locales/ko_KR/scan.json | 3 +-- frontend/src/locales/pl_PL/scan.json | 3 +-- frontend/src/locales/pt_BR/scan.json | 3 +-- frontend/src/locales/ro_RO/scan.json | 3 +-- frontend/src/locales/ru_RU/scan.json | 3 +-- frontend/src/locales/zh_CN/scan.json | 3 +-- frontend/src/locales/zh_TW/scan.json | 3 +-- frontend/src/views/Scan.vue | 19 ++++++++---------- 19 files changed, 34 insertions(+), 56 deletions(-) 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..bf869ff3e 100644 --- a/frontend/src/locales/bg_BG/scan.json +++ b/frontend/src/locales/bg_BG/scan.json @@ -17,7 +17,6 @@ "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 не могат да разпознаят игри в своите бази данни, но сканирането ще бъде по-бързо.", @@ -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..4441d4ef5 100644 --- a/frontend/src/locales/cs_CZ/scan.json +++ b/frontend/src/locales/cs_CZ/scan.json @@ -17,7 +17,6 @@ "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ší.", @@ -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..007d4ec10 100644 --- a/frontend/src/locales/de_DE/scan.json +++ b/frontend/src/locales/de_DE/scan.json @@ -17,7 +17,6 @@ "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.", @@ -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..0bf77b2ee 100644 --- a/frontend/src/locales/en_GB/scan.json +++ b/frontend/src/locales/en_GB/scan.json @@ -17,7 +17,6 @@ "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.", @@ -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..0bf77b2ee 100644 --- a/frontend/src/locales/en_US/scan.json +++ b/frontend/src/locales/en_US/scan.json @@ -17,7 +17,6 @@ "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.", @@ -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..1221a3134 100644 --- a/frontend/src/locales/es_ES/scan.json +++ b/frontend/src/locales/es_ES/scan.json @@ -17,7 +17,6 @@ "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.", @@ -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..7d0245a06 100644 --- a/frontend/src/locales/fr_FR/scan.json +++ b/frontend/src/locales/fr_FR/scan.json @@ -17,7 +17,6 @@ "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.", @@ -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..c9670b49a 100644 --- a/frontend/src/locales/hu_HU/scan.json +++ b/frontend/src/locales/hu_HU/scan.json @@ -17,7 +17,6 @@ "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.", @@ -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..876c45c38 100644 --- a/frontend/src/locales/it_IT/scan.json +++ b/frontend/src/locales/it_IT/scan.json @@ -17,7 +17,6 @@ "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.", @@ -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..e6de55b65 100644 --- a/frontend/src/locales/ja_JP/scan.json +++ b/frontend/src/locales/ja_JP/scan.json @@ -17,7 +17,6 @@ "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はゲームをデータベースとマッチングできませんが、スキャンは高速になります。", @@ -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..d63b56b5a 100644 --- a/frontend/src/locales/ko_KR/scan.json +++ b/frontend/src/locales/ko_KR/scan.json @@ -17,7 +17,6 @@ "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가 데이터베이스와 게임을 매치할 수 없지만, 스캔이 더 빨라집니다.", @@ -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..bf5f4bde0 100644 --- a/frontend/src/locales/pl_PL/scan.json +++ b/frontend/src/locales/pl_PL/scan.json @@ -17,7 +17,6 @@ "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.", @@ -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..0171ac3e3 100644 --- a/frontend/src/locales/pt_BR/scan.json +++ b/frontend/src/locales/pt_BR/scan.json @@ -17,7 +17,6 @@ "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.", @@ -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..e28844ff8 100644 --- a/frontend/src/locales/ro_RO/scan.json +++ b/frontend/src/locales/ro_RO/scan.json @@ -17,7 +17,6 @@ "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ă.", @@ -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..344983b10 100644 --- a/frontend/src/locales/ru_RU/scan.json +++ b/frontend/src/locales/ru_RU/scan.json @@ -17,7 +17,6 @@ "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 не могут сопоставить игры с своими базами данных, но сканирование будет быстрее.", @@ -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..9117b26e5 100644 --- a/frontend/src/locales/zh_CN/scan.json +++ b/frontend/src/locales/zh_CN/scan.json @@ -17,7 +17,6 @@ "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 无法将游戏与其数据库进行匹配,但扫描速度会更快。", @@ -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..ce5ff7d38 100644 --- a/frontend/src/locales/zh_TW/scan.json +++ b/frontend/src/locales/zh_TW/scan.json @@ -17,7 +17,6 @@ "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 無法將遊戲與資料庫匹配,但掃描速度會更快。", @@ -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/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, From 4724f4538a500145db59af2e795558b33adfaa71 Mon Sep 17 00:00:00 2001 From: Georges-Antoine Assi Date: Fri, 22 May 2026 22:35:30 -0400 Subject: [PATCH 4/6] add to watcher --- backend/watcher.py | 2 ++ 1 file changed, 2 insertions(+) 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(), From d806676d1283308fb71313ae5902f18cb1488bf3 Mon Sep 17 00:00:00 2001 From: Georges-Antoine Assi Date: Fri, 22 May 2026 22:36:21 -0400 Subject: [PATCH 5/6] add to setup --- frontend/src/views/Auth/Setup.vue | 6 ++++++ 1 file changed, 6 insertions(+) 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", From 715ec658bd5a10ea5b08665e6d6254708fb8e215 Mon Sep 17 00:00:00 2001 From: Georges-Antoine Assi Date: Sat, 23 May 2026 07:37:23 -0400 Subject: [PATCH 6/6] changes from bot review --- backend/endpoints/sockets/scan.py | 8 ++++++-- backend/tasks/scheduled/scan_library.py | 2 ++ frontend/src/locales/bg_BG/scan.json | 4 ++-- frontend/src/locales/cs_CZ/scan.json | 4 ++-- frontend/src/locales/de_DE/scan.json | 4 ++-- frontend/src/locales/en_GB/scan.json | 4 ++-- frontend/src/locales/en_US/scan.json | 4 ++-- frontend/src/locales/es_ES/scan.json | 4 ++-- frontend/src/locales/fr_FR/scan.json | 4 ++-- frontend/src/locales/hu_HU/scan.json | 4 ++-- frontend/src/locales/it_IT/scan.json | 4 ++-- frontend/src/locales/ja_JP/scan.json | 4 ++-- frontend/src/locales/ko_KR/scan.json | 4 ++-- frontend/src/locales/pl_PL/scan.json | 4 ++-- frontend/src/locales/pt_BR/scan.json | 4 ++-- frontend/src/locales/ro_RO/scan.json | 4 ++-- frontend/src/locales/ru_RU/scan.json | 4 ++-- frontend/src/locales/zh_CN/scan.json | 4 ++-- frontend/src/locales/zh_TW/scan.json | 4 ++-- 19 files changed, 42 insertions(+), 36 deletions(-) diff --git a/backend/endpoints/sockets/scan.py b/backend/endpoints/sockets/scan.py index f2d490436..9b15cf037 100644 --- a/backend/endpoints/sockets/scan.py +++ b/backend/endpoints/sockets/scan.py @@ -178,13 +178,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/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/frontend/src/locales/bg_BG/scan.json b/frontend/src/locales/bg_BG/scan.json index bf869ff3e..3afd5d41c 100644 --- a/frontend/src/locales/bg_BG/scan.json +++ b/frontend/src/locales/bg_BG/scan.json @@ -19,8 +19,8 @@ "hash-calculation-disabled": "Изчисляването на хешове е деактивирано", "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": "Нови платформи", diff --git a/frontend/src/locales/cs_CZ/scan.json b/frontend/src/locales/cs_CZ/scan.json index 4441d4ef5..4823a30f3 100644 --- a/frontend/src/locales/cs_CZ/scan.json +++ b/frontend/src/locales/cs_CZ/scan.json @@ -19,8 +19,8 @@ "hash-calculation-disabled": "Výpočet hash je zakázán", "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", diff --git a/frontend/src/locales/de_DE/scan.json b/frontend/src/locales/de_DE/scan.json index 007d4ec10..5e1f38f32 100644 --- a/frontend/src/locales/de_DE/scan.json +++ b/frontend/src/locales/de_DE/scan.json @@ -19,8 +19,8 @@ "hash-calculation-disabled": "Hash-Berechnung ist deaktiviert", "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", diff --git a/frontend/src/locales/en_GB/scan.json b/frontend/src/locales/en_GB/scan.json index 0bf77b2ee..e70a1d600 100644 --- a/frontend/src/locales/en_GB/scan.json +++ b/frontend/src/locales/en_GB/scan.json @@ -19,8 +19,8 @@ "hash-calculation-disabled": "Hash calculation is disabled", "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", diff --git a/frontend/src/locales/en_US/scan.json b/frontend/src/locales/en_US/scan.json index 0bf77b2ee..e70a1d600 100644 --- a/frontend/src/locales/en_US/scan.json +++ b/frontend/src/locales/en_US/scan.json @@ -19,8 +19,8 @@ "hash-calculation-disabled": "Hash calculation is disabled", "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", diff --git a/frontend/src/locales/es_ES/scan.json b/frontend/src/locales/es_ES/scan.json index 1221a3134..9b844650f 100644 --- a/frontend/src/locales/es_ES/scan.json +++ b/frontend/src/locales/es_ES/scan.json @@ -19,8 +19,8 @@ "hash-calculation-disabled": "El cálculo de hash está deshabilitado", "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", diff --git a/frontend/src/locales/fr_FR/scan.json b/frontend/src/locales/fr_FR/scan.json index 7d0245a06..01ee44b82 100644 --- a/frontend/src/locales/fr_FR/scan.json +++ b/frontend/src/locales/fr_FR/scan.json @@ -19,8 +19,8 @@ "hash-calculation-disabled": "Le calcul de hachage est désactivé", "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", diff --git a/frontend/src/locales/hu_HU/scan.json b/frontend/src/locales/hu_HU/scan.json index c9670b49a..0166cec95 100644 --- a/frontend/src/locales/hu_HU/scan.json +++ b/frontend/src/locales/hu_HU/scan.json @@ -19,8 +19,8 @@ "hash-calculation-disabled": "A hash számítás le van tiltva", "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", diff --git a/frontend/src/locales/it_IT/scan.json b/frontend/src/locales/it_IT/scan.json index 876c45c38..21dcdc42c 100644 --- a/frontend/src/locales/it_IT/scan.json +++ b/frontend/src/locales/it_IT/scan.json @@ -19,8 +19,8 @@ "hash-calculation-disabled": "Il calcolo dell'hash è disabilitato", "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", diff --git a/frontend/src/locales/ja_JP/scan.json b/frontend/src/locales/ja_JP/scan.json index e6de55b65..432b5ad5b 100644 --- a/frontend/src/locales/ja_JP/scan.json +++ b/frontend/src/locales/ja_JP/scan.json @@ -19,8 +19,8 @@ "hash-calculation-disabled": "ハッシュ計算が無効になっています", "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": "新規プラットフォーム", diff --git a/frontend/src/locales/ko_KR/scan.json b/frontend/src/locales/ko_KR/scan.json index d63b56b5a..c8f53d088 100644 --- a/frontend/src/locales/ko_KR/scan.json +++ b/frontend/src/locales/ko_KR/scan.json @@ -19,8 +19,8 @@ "hash-calculation-disabled": "해시 계산이 비활성화되어 있습니다", "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": "새 플랫폼", diff --git a/frontend/src/locales/pl_PL/scan.json b/frontend/src/locales/pl_PL/scan.json index bf5f4bde0..48e178f97 100644 --- a/frontend/src/locales/pl_PL/scan.json +++ b/frontend/src/locales/pl_PL/scan.json @@ -19,8 +19,8 @@ "hash-calculation-disabled": "Obliczanie skrótów jest wyłączone", "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", diff --git a/frontend/src/locales/pt_BR/scan.json b/frontend/src/locales/pt_BR/scan.json index 0171ac3e3..dc7d190c6 100644 --- a/frontend/src/locales/pt_BR/scan.json +++ b/frontend/src/locales/pt_BR/scan.json @@ -19,8 +19,8 @@ "hash-calculation-disabled": "O cálculo de hash está desabilitado", "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", diff --git a/frontend/src/locales/ro_RO/scan.json b/frontend/src/locales/ro_RO/scan.json index e28844ff8..791826d1c 100644 --- a/frontend/src/locales/ro_RO/scan.json +++ b/frontend/src/locales/ro_RO/scan.json @@ -19,8 +19,8 @@ "hash-calculation-disabled": "Calculul hash-ului este dezactivat", "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", diff --git a/frontend/src/locales/ru_RU/scan.json b/frontend/src/locales/ru_RU/scan.json index 344983b10..f0dc68523 100644 --- a/frontend/src/locales/ru_RU/scan.json +++ b/frontend/src/locales/ru_RU/scan.json @@ -19,8 +19,8 @@ "hash-calculation-disabled": "Вычисление хешей отключено", "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": "Новые платформы", diff --git a/frontend/src/locales/zh_CN/scan.json b/frontend/src/locales/zh_CN/scan.json index 9117b26e5..3fef5b072 100644 --- a/frontend/src/locales/zh_CN/scan.json +++ b/frontend/src/locales/zh_CN/scan.json @@ -19,8 +19,8 @@ "hash-calculation-disabled": "哈希计算已禁用", "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": "新平台", diff --git a/frontend/src/locales/zh_TW/scan.json b/frontend/src/locales/zh_TW/scan.json index ce5ff7d38..59a88a006 100644 --- a/frontend/src/locales/zh_TW/scan.json +++ b/frontend/src/locales/zh_TW/scan.json @@ -19,8 +19,8 @@ "hash-calculation-disabled": "雜湊計算已停用", "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": "新平台",