Merge branch 'master' into emujs-netplay

This commit is contained in:
Georges-Antoine Assi
2025-11-26 12:24:01 -05:00
38 changed files with 893 additions and 204 deletions

View File

@@ -2,7 +2,7 @@
<!-- trunk-ignore-all(markdownlint/MD033) -->
**Description**
<sup>Explain the changes or enhancements you are proposing with this pull request.</sup>
Explain the changes or enhancements you are proposing with this pull request.
**Checklist**
<sup>Please check all that apply.</sup>
@@ -12,4 +12,4 @@
- [ ] I've assigned reviewers for this PR
- [ ] I've added unit tests that cover the changes
#### Screenshots
#### Screenshots (if applicable)

View File

@@ -448,6 +448,78 @@ async def download_roms(
)
@protected_route(
router.get,
"/by-metadata-provider",
[] if DISABLE_DOWNLOAD_ENDPOINT_AUTH else [Scope.ROMS_READ],
responses={status.HTTP_404_NOT_FOUND: {}},
)
def get_rom_by_metadata(
request: Request,
igdb: Annotated[int | None, Query(description="IGDB ID to search by")] = None,
moby: Annotated[int | None, Query(description="MobyGames ID to search by")] = None,
ss: Annotated[
int | None, Query(description="ScreenScraper ID to search by")
] = None,
ra: Annotated[
int | None, Query(description="RetroAchievements ID to search by")
] = None,
launchbox: Annotated[
int | None, Query(description="LaunchBox ID to search by")
] = None,
hasheous: Annotated[
int | None, Query(description="Hasheous ID to search by")
] = None,
tgdb: Annotated[int | None, Query(description="TGDB ID to search by")] = None,
flashpoint: Annotated[
str | None, Query(description="Flashpoint ID to search by")
] = None,
hltb: Annotated[int | None, Query(description="HLTB ID to search by")] = None,
) -> DetailedRomSchema:
"""Retrieve a rom by metadata ID."""
rom = db_rom_handler.get_rom_by_metadata_id(
igdb=igdb,
moby=moby,
ss=ss,
ra=ra,
launchbox=launchbox,
hasheous=hasheous,
tgdb=tgdb,
flashpoint=flashpoint,
hltb=hltb,
)
if not rom:
provided_ids = {
"igdb_id": igdb,
"moby_id": moby,
"ss_id": ss,
"ra_id": ra,
"launchbox_id": launchbox,
"hasheous_id": hasheous,
"tgdb_id": tgdb,
"flashpoint_id": flashpoint,
"hltb_id": hltb,
}
metadata_info = [
f"{key}={value}" for key, value in provided_ids.items() if value is not None
]
if not metadata_info:
raise HTTPException(
status_code=status.HTTP_400_BAD_REQUEST,
detail="At least one metadata ID must be provided",
)
raise HTTPException(
status_code=status.HTTP_404_NOT_FOUND,
detail=f"ROM not found with metadata: {', '.join(metadata_info)}",
)
return DetailedRomSchema.from_orm_with_request(rom, request)
@protected_route(
router.get,
"/{id}",
@@ -938,7 +1010,7 @@ async def update_rom(
path_manual = await fs_resource_handler.get_manual(
rom=rom,
overwrite=True,
url_manual=url_manual,
url_manual=str(url_manual) if url_manual else None,
)
cleaned_data.update(
{

View File

@@ -977,3 +977,44 @@ class DBRomsHandler(DBBaseHandler):
)
)
return result.rowcount > 0
@begin_session
@with_details
def get_rom_by_metadata_id(
self,
igdb: int | None = None,
moby: int | None = None,
ss: int | None = None,
ra: int | None = None,
launchbox: int | None = None,
hasheous: int | None = None,
tgdb: int | None = None,
flashpoint: str | None = None,
hltb: int | None = None,
*,
query: Query = None,
session: Session = None,
) -> Rom | None:
"""Get a ROM by any metadata ID."""
filters = []
param_map = [
(igdb, Rom.igdb_id),
(moby, Rom.moby_id),
(ss, Rom.ss_id),
(ra, Rom.ra_id),
(launchbox, Rom.launchbox_id),
(hasheous, Rom.hasheous_id),
(tgdb, Rom.tgdb_id),
(flashpoint, Rom.flashpoint_id),
(hltb, Rom.hltb_id),
]
for value, column in param_map:
if value is not None:
filters.append(column == value)
if not filters:
return None
# Use OR to find ROM matching any of the provided metadata IDs
return session.scalar(query.filter(or_(*filters)).limit(1))

View File

@@ -13,6 +13,7 @@ from adapters.services.igdb_types import (
mark_list_expanded,
)
from config import IGDB_CLIENT_ID, IGDB_CLIENT_SECRET, IS_PYTEST_RUN
from config.config_manager import config_manager as cm
from handler.redis_handler import async_cache
from logger.logger import log
from utils.context import ctx_httpx_client
@@ -209,6 +210,117 @@ def extract_metadata_from_igdb_rom(self: MetadataHandler, rom: Game) -> IGDBMeta
)
# Mapping from scan.priority.region codes to IGDB game_localizations region identifiers
# IGDB's game_localizations provides regional titles and cover art, but NOT localized descriptions
REGION_TO_IGDB_LOCALE: dict[str, str | None] = {
"us": None, # United States - use default (no localization needed)
"wor": None, # World - use default
"eu": "EU", # Europe region
"jp": "ja-JP", # Japan
"kr": "ko-KR", # Korea
"cn": "zh-CN", # China (Simplified Chinese)
"tw": "zh-TW", # Taiwan (Traditional Chinese)
}
def get_igdb_preferred_locale() -> str | None:
"""Get IGDB locale from scan.priority.region configuration.
Maps region priority codes to IGDB's game_localizations region identifiers.
Returns the first matching region from the priority list, or None for default.
Returns:
IGDB region identifier (e.g., "ja-JP", "EU") or None for default
"""
config = cm.get_config()
# Check each region in priority order and return first match
for region in config.SCAN_REGION_PRIORITY:
igdb_locale = REGION_TO_IGDB_LOCALE.get(region.lower())
if igdb_locale is not None:
return igdb_locale
return None
def extract_localized_data(rom: Game, preferred_locale: str | None) -> tuple[str, str]:
"""Extract localized name and cover URL based on preferred locale.
Returns (name, cover_url) - falls back to default if locale not found.
"""
default_name = rom.get("name", "")
default_cover = pydash.get(rom, "cover.url", "")
if not preferred_locale:
return default_name, default_cover
game_localizations = rom.get("game_localizations", [])
if not game_localizations:
return default_name, default_cover
assert mark_list_expanded(game_localizations)
for loc in game_localizations:
region = loc.get("region")
if not region:
continue
assert mark_expanded(region)
# Match locale by region identifier (e.g., "ja-JP", "ko-KR", "EU")
if region.get("identifier") == preferred_locale:
localized_name = loc.get("name") or default_name
localized_cover = loc.get("cover")
if localized_cover:
assert mark_expanded(localized_cover)
cover_url = localized_cover.get("url", "") or default_cover
else:
cover_url = default_cover
return localized_name, cover_url
# Locale not found, fall back to default
log.warning(
f"IGDB locale '{preferred_locale}' not found for '{default_name}', using default"
)
return default_name, default_cover
def build_igdb_rom(
handler: "IGDBHandler", rom: Game, preferred_locale: str | None
) -> "IGDBRom":
"""Build an IGDBRom from IGDB game data with localization support.
Args:
handler: IGDBHandler instance for URL normalization
rom: Game data from IGDB API
preferred_locale: Locale code (e.g., "ja-JP") or None
Returns:
IGDBRom with localized name/cover if available
"""
rom_screenshots = rom.get("screenshots", [])
assert mark_list_expanded(rom_screenshots)
localized_name, localized_cover = extract_localized_data(rom, preferred_locale)
return IGDBRom(
igdb_id=rom["id"],
slug=rom.get("slug", ""),
name=localized_name,
summary=rom.get("summary", ""),
url_cover=handler.normalize_cover_url(localized_cover).replace(
"t_thumb", "t_1080p"
),
url_screenshots=[
handler.normalize_cover_url(s.get("url", "")).replace("t_thumb", "t_720p")
for s in rom_screenshots
],
igdb_metadata=extract_metadata_from_igdb_rom(handler, rom),
)
class IGDBHandler(MetadataHandler):
def __init__(self) -> None:
self.igdb_service = IGDBService(twitch_auth=TwitchAuth())
@@ -464,23 +576,7 @@ class IGDBHandler(MetadataHandler):
if not rom:
return fallback_rom
rom_screenshots = rom.get("screenshots", [])
assert mark_list_expanded(rom_screenshots)
return IGDBRom(
igdb_id=rom["id"],
slug=rom.get("slug", ""),
name=rom.get("name", ""),
summary=rom.get("summary", ""),
url_cover=self.normalize_cover_url(
pydash.get(rom, "cover.url", "")
).replace("t_thumb", "t_1080p"),
url_screenshots=[
self.normalize_cover_url(s.get("url", "")).replace("t_thumb", "t_720p")
for s in rom_screenshots
],
igdb_metadata=extract_metadata_from_igdb_rom(self, rom),
)
return build_igdb_rom(self, rom, get_igdb_preferred_locale())
async def get_rom_by_id(self, igdb_id: int) -> IGDBRom:
if not self.is_enabled():
@@ -494,24 +590,7 @@ class IGDBHandler(MetadataHandler):
if not roms:
return IGDBRom(igdb_id=None)
rom = roms[0]
rom_screenshots = rom.get("screenshots", [])
assert mark_list_expanded(rom_screenshots)
return IGDBRom(
igdb_id=rom["id"],
slug=rom.get("slug", ""),
name=rom.get("name", ""),
summary=rom.get("summary", ""),
url_cover=self.normalize_cover_url(
pydash.get(rom, "cover.url", "")
).replace("t_thumb", "t_1080p"),
url_screenshots=[
self.normalize_cover_url(s.get("url", "")).replace("t_thumb", "t_720p")
for s in rom_screenshots
],
igdb_metadata=extract_metadata_from_igdb_rom(self, rom),
)
return build_igdb_rom(self, roms[0], get_igdb_preferred_locale())
async def get_matched_rom_by_id(self, igdb_id: int) -> IGDBRom | None:
if not self.is_enabled():
@@ -572,33 +651,8 @@ class IGDBHandler(MetadataHandler):
if rom["id"] not in unique_ids
]
return [
IGDBRom(
{ # type: ignore[misc]
k: v
for k, v in {
"igdb_id": rom["id"],
"slug": rom.get("slug", ""),
"name": rom.get("name", ""),
"summary": rom.get("summary", ""),
"url_cover": self.normalize_cover_url(
pydash.get(rom, "cover.url", "").replace(
"t_thumb", "t_1080p"
)
),
"url_screenshots": [
self.normalize_cover_url(s.get("url", "")).replace( # type: ignore[attr-defined]
"t_thumb", "t_720p"
)
for s in rom.get("screenshots", [])
],
"igdb_metadata": extract_metadata_from_igdb_rom(self, rom),
}.items()
if v
}
)
for rom in matched_roms
]
preferred_locale = get_igdb_preferred_locale()
return [build_igdb_rom(self, rom, preferred_locale) for rom in matched_roms]
class TwitchAuth(MetadataHandler):
@@ -675,6 +729,8 @@ class TwitchAuth(MetadataHandler):
return token
SEARCH_FIELDS = ("game.id", "name")
GAMES_FIELDS = (
"id",
"name",
@@ -725,10 +781,13 @@ GAMES_FIELDS = (
"similar_games.cover.url",
"age_ratings.rating_category",
"videos.video_id",
"game_localizations.id",
"game_localizations.name",
"game_localizations.cover.url",
"game_localizations.region.identifier",
"game_localizations.region.category",
)
SEARCH_FIELDS = ("game.id", "name")
IGDB_PLATFORM_CATEGORIES: dict[int, str] = {
0: "Unknown",

View File

@@ -39,7 +39,10 @@ def get_preferred_regions() -> list[str]:
def get_preferred_languages() -> list[str]:
"""Get preferred languages from config"""
"""Get preferred languages from config.
Returns language priority list with default fallbacks.
"""
config = cm.get_config()
return list(dict.fromkeys(config.SCAN_LANGUAGE_PRIORITY + ["en", "fr"]))
@@ -411,7 +414,9 @@ def build_ss_game(rom: Rom, game: SSGame) -> SSRom:
break
res_summary = ""
for lang in get_preferred_languages():
preferred_languages = get_preferred_languages()
used_lang = None
for lang in preferred_languages:
res_summary = next(
(
synopsis["text"]
@@ -421,8 +426,15 @@ def build_ss_game(rom: Rom, game: SSGame) -> SSRom:
"",
)
if res_summary:
used_lang = lang
break
# Log warning if we had to fall back from the preferred locale
if preferred_languages and used_lang and used_lang != preferred_languages[0]:
log.warning(
f"ScreenScraper locale '{preferred_languages[0]}' not found for '{res_name}', using '{used_lang}'"
)
url_cover = ss_metadata["box2d_url"]
url_manual = (
ss_metadata["manual_url"]

View File

@@ -71,13 +71,13 @@ filesystem: {} # { roms_folder: 'roms' } For example if your folder structure is
# - "hasheous" # Hasheous
# - "flashpoint" # Flashpoint Project
# - "hltb" # HowLongToBeat
# region: # Cover art and game title (only used by Screenscraper)
# region: # Used by IGDB and ScreenScraper for regional variants
# - "us"
# - "wor"
# - "ss"
# - "eu"
# - "jp"
# language: # Cover art and game title (only used by Screenscraper)
# language: # Used by ScreenScraper for descriptions
# - "en"
# - "fr"
# # Media assets to download

View File

@@ -1,6 +1,7 @@
<script setup lang="ts">
import { computed } from "vue";
import { computed, onMounted, ref } from "vue";
import type { IGDBRelatedGame } from "@/__generated__";
import romApi from "@/services/api/rom";
import storeGalleryView from "@/stores/galleryView";
import { getMissingCoverImage } from "@/utils/covers";
@@ -9,15 +10,40 @@ const props = defineProps<{
}>();
const galleryViewStore = storeGalleryView();
const romId = ref<number | null>(null);
const missingCoverImage = computed(() => getMissingCoverImage(props.game.name));
const computedAspectRatio = computed(() =>
galleryViewStore.getAspectRatio({ boxartStyle: "cover_path" }),
);
const gameLink = computed(() => {
if (romId.value !== null) {
return `/rom/${romId.value}`;
}
return `https://www.igdb.com/games/${props.game.slug}`;
});
const linkTarget = computed(() => {
return romId.value !== null ? "_self" : "_blank";
});
onMounted(async () => {
await romApi
.getRomByMetadataProvider({ provider: "igdb", id: props.game.id })
.then((response) => {
console.log("Fetched ROM by metadata provider:", response.data);
romId.value = response.data.id;
})
.catch((error) => {
console.error("Error fetching ROM by metadata provider:", error);
// Keep romId.value as null to fall back to IGDB link
});
});
</script>
<template>
<a :href="`https://www.igdb.com/games/${game.slug}`" target="_blank">
<a :href="gameLink" :target="linkTarget">
<v-card>
<v-tooltip
activator="parent"

View File

@@ -4,15 +4,14 @@
"administration": "Administrace",
"apply": "Použít",
"ascii-only": "Pouze ASCII znaky",
"username-length": "Uživatelské jméno musí mít 3 až 255 znaků",
"username-chars": "Uživatelské jméno může obsahovat pouze písmena, čísla, podtržítka a pomlčky",
"password-length": "Heslo musí mít 6 až 255 znaků",
"cancel": "Zrušit",
"collection": "Kolekce",
"collections": "Kolekce",
"confirm": "Potvrdit",
"confirm-deletion": "Potvrdit smazání",
"core": "Jádro",
"create": "Vytvořit",
"delete": "Smazat",
"dropzone-description": "Přetáhněte sem své ROM soubory nebo klikněte pro výběr",
"dropzone-drag-over": "Uvolněte pro nahrání",
"dropzone-title": "Vložte soubory sem",
@@ -23,15 +22,18 @@
"games-n": "{n} her | {n} hra | {n} hry | {n} her",
"invalid-email": "Neplatný e-mail",
"invalid-name": "Neplatný název",
"last-updated": "Naposledy aktualizováno",
"library-management": "Správa knihovny",
"logout": "Odhlásit se",
"name": "Název",
"password-length": "Heslo musí mít 6 až 255 znaků",
"platform": "Platforma",
"platforms": "Platformy",
"platforms-n": "{n} platforem | {n} platforma | {n} platformy | {n} platforem",
"platforms-size": "Velikost podle platforem",
"profile": "Profil",
"random": "Náhodně",
"removing-from-filesystem": "Odstraňování ze systému",
"required": "Povinné",
"save": "Uložit",
"saves": "Uložené pozice",
@@ -51,11 +53,9 @@
"upload": "Nahrát",
"upload-files-selected": "{count} vybraných souborů | {count} vybraný soubor | {count} vybrané soubory | {count} vybraných souborů",
"user-interface": "Uživatelské rozhraní",
"username-chars": "Uživatelské jméno může obsahovat pouze písmena, čísla, podtržítka a pomlčky",
"username-length": "Uživatelské jméno musí mít 3 až 255 znaků",
"virtual-collection": "Automaticky vytvořená kolekce",
"virtual-collections": "Automaticky vytvořené kolekce",
"confirm-deletion": "Potvrdit smazání",
"delete": "Smazat",
"last-updated": "Naposledy aktualizováno",
"warning": "VAROVÁNÍ:",
"removing-from-filesystem": "Odstraňování ze systému"
"warning": "VAROVÁNÍ:"
}

View File

@@ -1,4 +1,6 @@
{
"add-new-note": "Přidat novou poznámku",
"add-note": "Přidat poznámku",
"add-to-collection": "Přidat do kolekce",
"add-to-favorites": "Přidat mezi oblíbené",
"adding-to-collection": "Přidávání {n} ROM do kolekce",
@@ -9,9 +11,11 @@
"by": "od",
"cant-copy-link": "Nelze zkopírovat odkaz do schránky, zkopírujte ručně",
"collections": "Kolekce",
"community-notes": "Komunitní poznámky",
"companies": "Společnosti",
"completion": "Dokončení",
"completionist": "Kompletista",
"confirm-delete-note": "Opravdu chcete smazat poznámku \"{title}\"?",
"copy-link": "Kopírovat odkaz ke stažení",
"default": "Nastavit jako výchozí",
"delete": "Smazat",
@@ -38,6 +42,8 @@
"languages": "Jazyky",
"main-plus-extra": "Hlavní + Extra",
"main-story": "Hlavní příběh",
"make-private": "Učinit soukromým",
"make-public": "Zveřejnit",
"manual": "Manuál",
"manual-match": "Ruční přiřazení",
"manual-remove-failed": "Nepodařilo se odstranit manuál: {error}",
@@ -49,10 +55,17 @@
"metadata-ids": "ID metadat",
"my-notes": "Mé poznámky",
"no-metadata-source": "Žádný zdroj metadat není povolen",
"no-notes": "Nebyly nalezeny žádné poznámky",
"no-notes-desc": "Klikněte na tlačítko Přidat poznámku a vytvořte svou první poznámku",
"no-saves-found": "Nebyly nalezeny žádné uložené pozice",
"no-states-found": "Nebyly nalezeny žádné stavy",
"note-content": "Obsah poznámky",
"note-title": "Název poznámky",
"note-title-exists": "Poznámka s tímto názvem již existuje",
"now-playing": "Právě hraje",
"personal": "Osobní",
"private": "Soukromé",
"public": "Veřejné",
"public-notes": "Veřejné poznámky",
"rating": "Hodnocení",
"refresh-metadata": "Obnovit metadata",
@@ -78,18 +91,5 @@
"unmatch": "Odpojit ROM",
"unmatch-success": "ROM úspěšně odpojena",
"unselect-all": "Zrušit výběr všeho",
"update-success": "ROM úspěšně aktualizována!",
"add-note": "Přidat poznámku",
"add-new-note": "Přidat novou poznámku",
"note-title": "Název poznámky",
"note-content": "Obsah poznámky",
"note-title-exists": "Poznámka s tímto názvem již existuje",
"make-public": "Zveřejnit",
"make-private": "Učinit soukromým",
"public": "Veřejné",
"private": "Soukromé",
"no-notes": "Nebyly nalezeny žádné poznámky",
"no-notes-desc": "Klikněte na tlačítko Přidat poznámku a vytvořte svou první poznámku",
"community-notes": "Komunitní poznámky",
"confirm-delete-note": "Opravdu chcete smazat poznámku \"{title}\"?"
"update-success": "ROM úspěšně aktualizována!"
}

View File

@@ -4,15 +4,14 @@
"administration": "Administration",
"apply": "Anwenden",
"ascii-only": "Nur ASCII-Zeichen",
"username-length": "Benutzername muss zwischen 3 und 255 Zeichen lang sein",
"username-chars": "Benutzername darf nur Buchstaben, Zahlen, Unterstriche und Bindestriche enthalten",
"password-length": "Passwort muss zwischen 6 und 255 Zeichen lang sein",
"cancel": "Abbrechen",
"collection": "Sammlung",
"collections": "Sammlungen",
"confirm": "Bestätigen",
"confirm-deletion": "Löschung bestätigen",
"core": "Core",
"create": "Erstellen",
"delete": "Löschen",
"dropzone-description": "Ziehen Sie Ihre ROM-Dateien hierher oder klicken Sie zum Durchsuchen",
"dropzone-drag-over": "Loslassen zum Hochladen",
"dropzone-title": "Dateien hier ablegen",
@@ -23,15 +22,18 @@
"games-n": "{n} Spiel | {n} Spiele",
"invalid-email": "Ungültige E-Mail",
"invalid-name": "Ungültiger Name",
"last-updated": "Zuletzt aktualisiert",
"library-management": "Bibliothek verwalten",
"logout": "Ausloggen",
"name": "Name",
"password-length": "Passwort muss zwischen 6 und 255 Zeichen lang sein",
"platform": "Plattform",
"platforms": "Plattformen",
"platforms-n": "{n} Plattform | {n} Plattformen",
"platforms-size": "Größe pro Plattform",
"profile": "Profil",
"random": "Zufällig",
"removing-from-filesystem": "Entfernen vom System",
"required": "Erforderlich",
"save": "Speichern",
"saves": "Speicherstände",
@@ -51,11 +53,9 @@
"upload": "Hochladen",
"upload-files-selected": "{count} Datei ausgewählt | {count} Dateien ausgewählt",
"user-interface": "Benutzeroberfläche",
"username-chars": "Benutzername darf nur Buchstaben, Zahlen, Unterstriche und Bindestriche enthalten",
"username-length": "Benutzername muss zwischen 3 und 255 Zeichen lang sein",
"virtual-collection": "Autogenerierte Sammlung",
"virtual-collections": "Autogenerierte Sammlungen",
"last-updated": "Zuletzt aktualisiert",
"confirm-deletion": "Löschung bestätigen",
"delete": "Löschen",
"warning": "WARNUNG:",
"removing-from-filesystem": "Entfernen vom System"
"warning": "WARNUNG:"
}

View File

@@ -4,15 +4,14 @@
"administration": "Administration",
"apply": "Apply",
"ascii-only": "ASCII characters only",
"username-length": "Username must be between 3 and 255 characters",
"username-chars": "Username can only contain letters, numbers, underscores, and hyphens",
"password-length": "Password must be between 6 and 255 characters",
"cancel": "Cancel",
"collection": "Collection",
"collections": "Collections",
"confirm": "Confirm",
"confirm-deletion": "Confirm Deletion",
"core": "Core",
"create": "Create",
"delete": "Delete",
"dropzone-description": "Drag and drop your ROM files here, or click to browse",
"dropzone-drag-over": "Release to upload",
"dropzone-title": "Drop files here",
@@ -23,15 +22,18 @@
"games-n": "{n} Game | {n} Games",
"invalid-email": "Invalid email",
"invalid-name": "Invalid name",
"last-updated": "Last updated",
"library-management": "Library management",
"logout": "Logout",
"name": "Name",
"password-length": "Password must be between 6 and 255 characters",
"platform": "Platform",
"platforms": "Platforms",
"platforms-n": "{n} Platform | {n} Platforms",
"platforms-size": "Size per platform",
"profile": "Profile",
"random": "Random",
"removing-from-filesystem": "Removing from filesystem",
"required": "Required",
"save": "Save",
"saves": "Saves",
@@ -51,11 +53,9 @@
"upload": "Upload",
"upload-files-selected": "{count} file selected | {count} files selected",
"user-interface": "User interface",
"username-chars": "Username can only contain letters, numbers, underscores, and hyphens",
"username-length": "Username must be between 3 and 255 characters",
"virtual-collection": "Autogenerated collection",
"virtual-collections": "Autogenerated collections",
"confirm-deletion": "Confirm Deletion",
"delete": "Delete",
"last-updated": "Last updated",
"warning": "WARNING:",
"removing-from-filesystem": "Removing from filesystem"
"warning": "WARNING:"
}

View File

@@ -4,9 +4,6 @@
"administration": "Administration",
"apply": "Apply",
"ascii-only": "ASCII characters only",
"username-length": "Username must be between 3 and 255 characters",
"username-chars": "Username can only contain letters, numbers, underscores, and hyphens",
"password-length": "Password must be between 6 and 255 characters",
"cancel": "Cancel",
"collection": "Collection",
"collections": "Collections",
@@ -29,12 +26,14 @@
"library-management": "Library management",
"logout": "Logout",
"name": "Name",
"password-length": "Password must be between 6 and 255 characters",
"platform": "Platform",
"platforms": "Platforms",
"platforms-n": "{n} Platform | {n} Platforms",
"platforms-size": "Size per platform",
"profile": "Profile",
"random": "Random",
"removing-from-filesystem": "Removing from filesystem",
"required": "Required",
"save": "Save",
"saves": "Saves",
@@ -54,8 +53,9 @@
"upload": "Upload",
"upload-files-selected": "{count} file selected | {count} files selected",
"user-interface": "User interface",
"username-chars": "Username can only contain letters, numbers, underscores, and hyphens",
"username-length": "Username must be between 3 and 255 characters",
"virtual-collection": "Autogenerated collection",
"virtual-collections": "Autogenerated collections",
"warning": "WARNING:",
"removing-from-filesystem": "Removing from filesystem"
"warning": "WARNING:"
}

View File

@@ -4,15 +4,14 @@
"administration": "Administración",
"apply": "Aplicar",
"ascii-only": "Solo caracteres ASCII",
"username-length": "El nombre de usuario debe tener entre 3 y 255 caracteres",
"username-chars": "El nombre de usuario solo puede contener letras, números, guiones bajos y guiones",
"password-length": "La contraseña debe tener entre 6 y 255 caracteres",
"cancel": "Cancelar",
"collection": "Colección",
"collections": "Colecciones",
"confirm": "Confirmar",
"confirm-deletion": "Confirmar eliminación",
"core": "Núcleo",
"create": "Crear",
"delete": "Eliminar",
"dropzone-description": "Arrastra y suelta tus archivos ROM aquí, o haz clic para explorar",
"dropzone-drag-over": "Suelta para subir",
"dropzone-title": "Suelta archivos aquí",
@@ -23,15 +22,18 @@
"games-n": "{n} Juego | {n} Juegos",
"invalid-email": "Correo electrónico inválido",
"invalid-name": "Nombre inválido",
"last-updated": "Última actualización",
"library-management": "Gestionar biblioteca",
"logout": "Cerrar sesión",
"name": "Nombre",
"password-length": "La contraseña debe tener entre 6 y 255 caracteres",
"platform": "Plataforma",
"platforms": "Plataformas",
"platforms-n": "{n} Plataforma | {n} Plataformas",
"platforms-size": "Tamaño por plataforma",
"profile": "Perfil",
"random": "Aleatorio",
"removing-from-filesystem": "Eliminando del sistema",
"required": "Requerido",
"save": "Guardado",
"saves": "Guardados",
@@ -51,11 +53,9 @@
"upload": "Subir",
"upload-files-selected": "{count} archivo seleccionado | {count} archivos seleccionados",
"user-interface": "Interfaz de usuario",
"username-chars": "El nombre de usuario solo puede contener letras, números, guiones bajos y guiones",
"username-length": "El nombre de usuario debe tener entre 3 y 255 caracteres",
"virtual-collection": "Colección autogenerada",
"virtual-collections": "Colecciones autogeneradas",
"last-updated": "Última actualización",
"confirm-deletion": "Confirmar eliminación",
"delete": "Eliminar",
"warning": "ADVERTENCIA:",
"removing-from-filesystem": "Eliminando del sistema"
"warning": "ADVERTENCIA:"
}

View File

@@ -4,15 +4,14 @@
"administration": "Administration",
"apply": "Appliquer",
"ascii-only": "Uniquement des caractères ASCII",
"username-length": "Le nom d'utilisateur doit contenir entre 3 et 255 caractères",
"username-chars": "Le nom d'utilisateur ne peut contenir que des lettres, chiffres, tirets bas et tirets",
"password-length": "Le mot de passe doit contenir entre 6 et 255 caractères",
"cancel": "Annuler",
"collection": "Collection",
"collections": "Collections",
"confirm": "Confirmer",
"confirm-deletion": "Confirmer la suppression",
"core": "Noyau",
"create": "Créer",
"delete": "Supprimer",
"dropzone-description": "Glissez-déposez vos fichiers ROM ici, ou cliquez pour parcourir",
"dropzone-drag-over": "Relâchez pour téléverser",
"dropzone-title": "Déposez les fichiers ici",
@@ -23,15 +22,18 @@
"games-n": "{n} Jeu | {n} Jeux",
"invalid-email": "E-mail invalide",
"invalid-name": "Nom invalide",
"last-updated": "Dernière mise à jour",
"library-management": "Gestion de la bibliothèque",
"logout": "Se déconnecter",
"name": "Nom",
"password-length": "Le mot de passe doit contenir entre 6 et 255 caractères",
"platform": "Plateforme",
"platforms": "Plateformes",
"platforms-n": "{n} Plateforme | {n} Plateformes",
"platforms-size": "Taille par plateforme",
"profile": "Profil",
"random": "Aléatoire",
"removing-from-filesystem": "Suppression du système",
"required": "Requis",
"save": "Sauvegarder",
"saves": "Sauvegardes",
@@ -51,11 +53,9 @@
"upload": "Téléverser",
"upload-files-selected": "{count} fichier sélectionné | {count} fichiers sélectionnés",
"user-interface": "Interface utilisateur",
"username-chars": "Le nom d'utilisateur ne peut contenir que des lettres, chiffres, tirets bas et tirets",
"username-length": "Le nom d'utilisateur doit contenir entre 3 et 255 caractères",
"virtual-collection": "Collection autogénérée",
"virtual-collections": "Collections autogénérées",
"last-updated": "Dernière mise à jour",
"confirm-deletion": "Confirmer la suppression",
"delete": "Supprimer",
"warning": "ATTENTION :",
"removing-from-filesystem": "Suppression du système"
"warning": "ATTENTION :"
}

View File

@@ -0,0 +1,21 @@
{
"add-collection": "Gyűjtemény hozzáadása",
"create-collection": "Gyűjtemény létrehozása",
"create-smart-collection": "Intelligens Gyűjtemény létrehozása",
"current-filters": "Jelenlegi Szűrők",
"danger-zone": "Veszélyzóna",
"delete-collection": "Gyüjtemény törlése",
"description": "Leírás",
"edit-collection": "Gyüjtemény szerkesztése",
"name": "Név",
"owner": "Tulajdonos",
"private": "Privát",
"private-desc": "Privát (csak én láthatom)",
"public": "Publikus",
"public-desc": "Publikus (mindenki láthatja)",
"removing-collection-1": "Gyűjtemény eltávolítása",
"removing-collection-2": "a RomM-ból. Biztos?",
"removing-smart-collection-1": "Intelligens Gyűjtemény eltávolítása",
"removing-smart-collection-2": "a RomM-ból. Biztos?",
"search-collection": "Gyűjtemény keresése"
}

View File

@@ -0,0 +1,61 @@
{
"about": "Rólunk",
"add": "Hozzáadás",
"administration": "Adminisztráció",
"apply": "Alkalmaz",
"ascii-only": "Csak ASCII karakterek",
"cancel": "Mégse",
"collection": "Gyűjtemény",
"collections": "Gyűjtemények",
"confirm": "Megerősítés",
"confirm-deletion": "Törlés megerősítése",
"core": "Mag",
"create": "Létrehoz",
"delete": "Törlés",
"dropzone-description": "Húzd ide a ROM fájljait, vagy kattints a böngészéshez",
"dropzone-drag-over": "Engedd el a feltöltéshez",
"dropzone-title": "Fájlok ide helyezése",
"edit": "Szerkesztés",
"exclude-on-delete": "Elem kihagyása törléskor",
"filter": "Szűrő",
"firmware": "Firmware",
"games-n": "{n} Játék | {n} Játékok",
"invalid-email": "Érvénytelen e-mail",
"invalid-name": "Érvénytelen név",
"last-updated": "Utoljára frissítve",
"library-management": "Könyvtár Menedzsment",
"logout": "Kijelentkezés",
"name": "Név",
"password-length": "A jelszó hossza 6 és 255 karakter hosszú lehet",
"platform": "Platform",
"platforms": "Platformok",
"platforms-n": "{n} Platform | {n} Platformok",
"platforms-size": "Méret platformonként",
"profile": "Profil",
"random": "Véletlenszerű",
"removing-from-filesystem": "Eltávolítás a fájlrendszerből",
"required": "Szükséges",
"save": "Mentés",
"saves": "Mentések",
"saves-n": "{n} Mentés | {n} Mentések",
"screenshots-n": "{n} Képernyőkép | {n} Képernyőképek",
"search": "Keresés",
"server-stats": "Szerver statisztika",
"size-on-disk": "Méret a lemezen",
"slug": "Slug",
"smart-collection": "Intelligens gyűjtemény",
"smart-collections": "Intelligens gyűjtemények",
"state": "Állás",
"states": "Állások",
"states-n": "{n} Állás | {n} Állások",
"sync": "Szinkronizálás",
"update": "Frissítés",
"upload": "Feltöltés",
"upload-files-selected": "{count} fájl kiválasztva | {count} fájlok kiválasztva",
"user-interface": "Felhasználói felület",
"username-chars": "A felhasználónév csak betűket, számokat, aláhúzásjelet és kötőjelet tartalmazhat",
"username-length": "A felhasználónév 3 és 255 karakter hosszú lehet",
"virtual-collection": "Automatikusan generált gyűjtemény",
"virtual-collections": "Automatikusan generált gyűjtemények",
"warning": "FIGYELMEZTETÉS:"
}

View File

@@ -0,0 +1,43 @@
{
"collections": "Gyűjtemények",
"console": "Konzol",
"console-settings": "Konzol Beállítások",
"default": "Alapértelmezett",
"detail-file": "Fájl",
"detail-size": "Fájlméret",
"disabled": "Kikapcsolva",
"emulator-cdn": "Emulátor betöltése (CDN)…",
"emulator-failed": "Az emulátor betöltése sikertelen",
"emulator-loading": "Emulator Betöltése…",
"enabled": "Engedélyezve",
"exit-console-mode": "Kilépés a konzol módból",
"exit-game": "Nyomd meg a Start + Select-et (vagy a Backspace-t) a kilépéshez",
"fullscreen": "Teljes Képernyő",
"game-detail": "Részletek",
"game-exit": "Kilépés a játékból",
"game-exit-cancel": "Mégse",
"game-exit-cancel-desc": "Vissza a játékba",
"game-exit-nosave": "Kilépés mentés nélkül",
"game-exit-nosave-desc": "Kilépsz? A nem mentett előrehaladás elveszik.",
"game-exit-save": "Mentés és Kilépés",
"game-exit-save-desc": "Aktuális állás mentése, majd kilépés",
"game-play": "Indítás",
"game-saving": "MENTÉS…",
"games-n": "{n} játék | {n} játékok",
"loading-platforms": "Platformok Betöltése…",
"nav-back": "Vissza",
"nav-delete": "Törlés",
"nav-favorite": "Kedvenc",
"nav-menu": "Menü",
"nav-navigation": "Navigáció",
"nav-select": "Kiválasztás",
"platforms": "Platformok",
"recently-played": "Nemrég Játszott",
"save-states": "ÁLLÁS MENTÉSEK",
"screenshots": "Képernyőképek",
"settings": "Beállítások",
"smart-collections": "Intelligens Gyűjtemények",
"sound-effects": "Hangeffektek",
"theme": "Téma",
"virtual-collections": "Automatikusan generált Gyűjtemények"
}

View File

@@ -0,0 +1,11 @@
{
"404-subtitle": "Az oldal, amit keresel nem létezik",
"404-title": "Az oldal nem található",
"firmware-title": "Nincs megjeleníthető firmware/BIOS",
"firmware-text": "A firmware/BIOS amit keresel nem található",
"search-for-games": "Játékok keresése minden platformon",
"manual-match": "Játékok keresése az összes metaadat-szolgáltató között",
"home-headline": "Nincs játék a könyvtáradban",
"home-title": "Futtass egy gyors vizsgálatot a rendszereden található játékok automatikus felismeréséhez",
"home-text": "Kész vagy a játékra?"
}

View File

@@ -0,0 +1,4 @@
{
"load-more": "Továbbiak betöltése",
"all-loaded": "Minden játék betöltődött"
}

View File

@@ -0,0 +1,4 @@
{
"continue-playing": "Játék folytatása",
"recently-added": "Nemrég hozzáadott"
}

View File

@@ -0,0 +1,16 @@
{
"login": "Bejelentkezés",
"login-oidc": "Bejelentkezés ezzel {oidc}",
"or": "vagy",
"password": "Jelszó",
"username": "Felhasználónév",
"forgot-password": "Elfelejtetted a jelszavad?",
"send-reset-link": "Visszaállítási link küldése",
"reset-sent": "Visszaállítási link kiküldve. Lépj kapcsolatba az adminnal.",
"new-password": "Új jelszó",
"confirm-new-password": "Új jelszó megerősítése",
"reset-password": "Jelszó visszaállítása",
"back-to-login": "Vissza a bejelentkezéshez",
"setup-wizard": "Beállítási varázsló",
"register": "Regisztráció"
}

View File

@@ -0,0 +1,44 @@
{
"active-multi-select": "Aktív többszörös kiválasztás",
"age-rating": "Korhatár",
"category": "Kategória",
"change-view": "Nézet módosítása",
"collection": "Gyűjtemény",
"company": "Cég",
"cover-style": "Borító stílus",
"danger-zone": "Veszély zóna",
"delete-platform": "Platform törlése",
"export": "Exportálás",
"family": "Család",
"filter-gallery": "Szűrőgaléria",
"firmware-deleted-successfully": "Firmware sikeresen törölve! | {count} firmware sikeresen törölve!",
"removing-firmware": "Eltávolítottál {n} firmware fájlt a RomM-ból | Eltávolítottál {n} firmware fájlokat a RomM-ból",
"firmware-select-to-remove": "Válasszd ki a fájlrendszerből eltávolítani kívánt firmware fájlokat, ellenkező esetben azok csak a RomM adatbázisból lesznek törölve.",
"firmware-remove-warning": "El fogsz távolítani {count} firmware-t a fájlrendszerből. Ez a művelet nem vonható vissza! | El fogsz távolítani {count} firmware-eket a fájlrendszerből. Ez a művelet nem vonható vissza!",
"firmware-uploading": "Feltöltesz {count} firmware fájlt a {platform}... | Feltöltesz {count} firmware fájlokat a {platform}...",
"firmware-uploaded-successfully": "{count} fájl sikeresen feltöltve. | {count} fájlok sikeresen feltöltve.",
"franchise": "Franchise",
"generation": "Generáció",
"genre": "Műfaj",
"language": "Nyelv",
"no-firmware-found": "Firmware nem található",
"old-horizontal-cases": "Régi vízszintes tokok",
"old-squared-cases": "Régi négyzet alakú tokok",
"region": "Régió",
"removing-platform-1": "Platform eltávolítása",
"removing-platform-2": "] a RomM-ból. Biztos?",
"reset-filters": "Szűrők visszaállítása",
"search-platform": "Platform keresése",
"settings": "Beállítások",
"show-duplicates": "Mutasd a másolatokat",
"show-favorites": "Mutasd a kedvenceket",
"show-firmwares": "Mutasd a firmwareket/BIOS",
"show-matched": "Mutasd az egyezőket",
"show-missing": "Mutasd a hiányzó elemeket",
"show-playables": "Mutasd a játszhatókat",
"show-ra": "Mutasd a Retroachievements",
"show-unmatched": "Mutasd a nem egyezőket",
"show-verified": "Mutasd az ellenőrzötteket",
"status": "Állapot",
"upload-roms": "ROM-ok Feltöltése"
}

View File

@@ -0,0 +1,20 @@
{
"back-to-gallery": "Vissza a galériába",
"back-to-game-details": "Vissza a játék részleteihez",
"clear-cache": "EmulatorJS Gyorsítótár Törlése",
"clear-cache-description": "A szerveren tárolt mentések és állások nem változnak.",
"clear-cache-title": "Biztosan törölni akarod az EmulatorJS gyorsítótárat?",
"clear-cache-warning": "Ezzel a böngészőben tárolt összes mentés és állás törlődik.",
"full-screen": "Teljes képernyő",
"play": "Indítás",
"quit": "Kilépés",
"save-and-quit": "Mentés és Kilépés",
"select-save": "Mentés kiválasztása",
"change-save": "Mentés cseréje",
"deselect-save": "Mentés kiválasztásának törlése",
"select-state": "Állás kiválasztása",
"change-state": "Állás cseréje",
"deselect-state": "Állás kiválasztásának törlése",
"background-color": "Háttérszín",
"select-background-color": "Háttérszín kiválasztása"
}

View File

@@ -0,0 +1,95 @@
{
"add-new-note": "Új megjegyzés hozzáadása",
"add-note": "Megjegyzés hozzáadása",
"add-to-collection": "Hozzáadás a Gyűjteményhez",
"add-to-favorites": "Hozzáadás a Kedvencekhez",
"adding-to-collection": "{n} ROM-ok hozzáadva a gyűjteményhez",
"additional-content": "További tartalom",
"age-rating": "Korhatár",
"all-styles": "Minden stílus",
"backlogged": "Függőben",
"by": "általa",
"cant-copy-link": "A linket nem lehet a vágólapra másolni, kézzel kell.",
"collections": "Gyűjtemények",
"community-notes": "Közösségi jegyzetek",
"companies": "Cégek",
"completion": "Befejezve",
"completionist": "Completionista",
"confirm-delete-note": "Biztos hogy törölni akarod ezt a jegyzetet \"{title}\"?",
"copy-link": "Letöltési link másolása",
"default": "Alapértelmezettnek beállítva",
"delete": "Törlés",
"delete-filesystem-warning": "Elfogsz távolítani {n} ROM-ot a fájlrendszeredből. Ez a művelet visszafordíthatatlan! | Elfogsz távolítani {n} ROM-okat a fájlrendszeredből. Ez a művelet visszafordíthatatlan!",
"delete-manual-button": "Törlés",
"delete-manual-confirm-body": "A kézikönyvfájl véglegesen törlésre kerül a fájlrendszerből.",
"delete-manual-confirm-title": "Biztos törölni akarod a kézikönyvet?",
"delete-select-instruction": "Válasszd ki azokat a játékokat, amelyeket el szeretnél távolítani a fájlrendszeredből, ellenkező esetben azok csak a RomM adatbázisból lesznek törölve.",
"deleted-from-database": "{count} ROM törlése az adatbázisból| {count} ROM-ok törölve az adatbázisból",
"deleted-from-filesystem": "{count} ROM törlése az fájlrendszerből | {count} ROM-ok törölve a fájlrendszerből",
"details": "Részletek",
"difficulty": "Nehézség",
"download": "Letöltés",
"file": "Fájl",
"filename": "Fájlnév",
"filename-required": "Nem lehet menteni: fájlnév szükséges",
"files": "Fájlok",
"folder-name": "Mappa neve",
"franchises": "Franchises",
"genres": "Műfajok",
"hidden": "Rejtett",
"how-long-to-beat": "How Long to Beat",
"info": "Info",
"languages": "Nyelvek",
"main-plus-extra": "Fősztori + Extra",
"main-story": "Fősztori",
"make-private": "Priváttá tétele",
"make-public": "Nyilvánossá tétele",
"manual": "Kézikönyv",
"manual-match": "Kézi egyeztetés",
"manual-remove-failed": "A kézikönyv eltávolítása sikertelen: {error}",
"manual-removed": "A kézikönyv sikeresen eltávolítva",
"manuals-upload-failed": "A kézikönyvek feltöltése sikertelen: {error}",
"manuals-upload-skipped": "Minden kézikönyv kihagyva, nincs mit feltölteni.",
"manuals-upload-success": "{count} kézikönyv sikeresen feltöltve ({failed} kihagyva/sikertelen). | {count} kézikönyvek sikeresen feltöltve ({failed} kihagyva/sikertelen).",
"metadata": "Metaadat",
"metadata-ids": "Metaadat ID-k",
"my-notes": "Jegyzeteim",
"no-metadata-source": "Nincs engedélyezett metaadat-forrás",
"no-notes": "Nem található jegyzet",
"no-notes-desc": "Kattints a Megjegyzés hozzáadása gombra az első jegyzet létrehozásához",
"no-saves-found": "Nem található mentés",
"no-states-found": "Nem található állás",
"note-content": "Megjegyzés tartalma",
"note-title": "Megjegyzés címe",
"note-title-exists": "Már létezik egy ilyen címmel ellátott jegyzet",
"now-playing": "Most játszott",
"personal": "Személyes",
"private": "Privát",
"public": "Publikus",
"public-notes": "Publikus jegyzetek",
"rating": "Értékelés",
"refresh-metadata": "Metaadatok frissítése",
"regions": "Regiók",
"related-content": "Kapcsolódó tartalom",
"remove-from-collection": "Eltávolítás a Gyűjteményből",
"remove-from-favorites": "Eltávolítás a Kedvencek közül",
"remove-from-playing": "Eltávolítás a Játékok közül",
"removing-from-collection": "{n} ROM-ok eltávolítva a gyűjteményből",
"removing-title": "Eltávolítva {n} játék a RomM-rol | Eltávolítva {n} játék a RomM-rol",
"rename-file-details": "A fájl neve {from} -ról {to} -ra változik. A fájl címkéi nem változnak.",
"rename-file-title": "Nevezd át a fájlt, hogy megegyezzen a {source} címével",
"results-found": "Talált eredmények",
"select-all": "Összes kijelölése",
"select-cover-image": "Válassz borítóképet",
"set-as-default": "ROM beállítása alapértelmezettként",
"show-earned-only": "Csak a megszerzettek mutatása",
"size": "Méret",
"status": "Állapot",
"summary": "Összefoglalás",
"switch-version": "Verzió váltása",
"tags": "Címkék",
"unmatch": "Nem egyező ROM",
"unmatch-success": "A ROM sikeresen nem egyeztetettként lett jelölve",
"unselect-all": "Minden kijelölés visszavonása",
"update-success": "A ROM frissítése sikeresen megtörtént!"
}

View File

@@ -0,0 +1,44 @@
{
"abort": "Megszakítás",
"api-key-invalid": "API kulcs érvénytelen!",
"api-key-missing": "API kulcs hiányzik vagy érvénytelen",
"api-key-missing-or-disabled": "API kulcs hiányzik vagy a forrás letiltva",
"api-key-missing-short": "API kulcs hiányzik!",
"api-key-set": "API kulcskészlet",
"api-key-valid": "API kulcskészlet és érvényes",
"calculate-hashes": "Hash-értékek kiszámítása",
"complete-rescan": "Teljes újraszkennelés",
"complete-rescan-desc": "Teljes újraszkennelés a kiválasztott platformokon (leglassabb)",
"connection-failed": "A kapcsolat megszakadt",
"connection-in-progress": "Csatlakozás folyamatban...",
"connection-successful": "A kapcsolat sikeresen létrejött",
"disabled-by-admin": "Az adminisztrátor által letiltva",
"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.<br><br>A hash-ek (MD5, SHA1, CRC32) egyedi ujjlenyomatok, amelyek pontosan azonosítják a ROM fájlokat.<br><br>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.<br><br>Hashes (MD5, SHA1, CRC32) lesz kiszámítva, hogy egyedi ujjlenyomatokat hozzon létre minden ROM fájlhoz.<br><br>Ez lehetővé teszi a Hasheous és a RetroAchievements számára, hogy pontosan azonosítsák a játékokat az adatbázisaikban.",
"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",
"retroachievements-requires-hashes": "A RetroAchievements-hez engedélyezni kell a hash-számítást.",
"manage-library": "Könyvtár Menedzsment",
"metadata-sources": "Metaadat források",
"new-platforms": "Új platformok",
"new-platforms-desc": "Csak új platformokat szkenneljen (leggyorsabb)",
"no-new-roms": "Nincs új vagy módosított ROM",
"not-identified": "Nem azonosított",
"platforms-scanned-n": "Platformok: {n} szkennelve",
"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",
"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",
"scan-options": "Szkennelési beállítások",
"scan-types-info": "<strong>Új Platformok:</strong> Ez csak azokat a platformokat fogja keresni, amelyek még nem szerepelnek a RomM-ban.<br><br><strong>Gyors szkennelés:</strong> A könyvtárban még nem szereplő játékok keresése (leggyorsabb).<br><br><strong>Nem egyeztetett játékok:</strong> Megpróbálja egyeztetni azokat a játékokat, amelyek még nincsenek párosítva a kiválasztott metadatforrásokkal. Például, ha az IGDB és a ScreenScraper van kiválasztva, akkor minden olyan játékot átvizsgál, amely nincs egyeztetve sem az IGDB-vel, sem a ScreenScraperrel.<br><br><strong>Metadatok frissítése:</strong> Frissíti azoknak a játékoknak a metadatáit, amelyek már egyeztetve vannak a kiválasztott metadatforrásokkal, az adott külső azonosító (pl. IGDB ID) alapján.Például, ha az IGDB és a ScreenScraper van kiválasztva, akkor frissíti azoknak a játékoknak a metadatáit, amelyek egyeztetve vannak az IGDB-vel vagy a ScreenScraperrel, és az igdb_id illetve/vagy ssfr_id segítségével újra lekéri az adatokat a megfelelő szolgáltatóktól.<br><br><strong>Hash-értékek újraszámítása:</strong> Újraszámolja a kiválasztott platformok összes fájljának hash-értékét.<br><br><strong>Teljes újraszkenelés:</strong> Újra átszkenneli és újra egyezteti a kiválasztott platformok összes játékát (leglassabb).<br>Ez törli az összes meglévő metaadat-egyezést, beleértve a külső azonosítókat is, és megpróbálja azokat újra egyeztetni, mintha új szkennelésről lenne szó. A mentések, állások és megjegyzések megmaradnak.",
"scan-types-more-info": "További információk",
"select-one-source": "Kérjük, válassz legalább egy metaadat-forrást, hogy könyvtárad illusztrációkkal és metaadatokkal gazdagítsa.",
"unmatched-games": "Nem egyeztetett játékok",
"unmatched-games-desc": "A hiányzó metaadatokkal rendelkező játékok beszkennelése",
"update-metadata": "Metadatok frissítése",
"update-metadata-desc": "Az egyeztetett játékok metaadatainak frissítése"
}

View File

@@ -0,0 +1,98 @@
{
"backlogged": "Függőben",
"boxart-cover": "2D Doboz",
"boxart-box3d": "3D Doboz",
"boxart-desc": "Válassza ki a játékkártyák stílusát",
"boxart-miximage": "Kép keverése",
"boxart-physical": "Fizikai",
"boxart-style": "Boxart stílus",
"canceled": "Visszavonva",
"cleanup": "Takarítás",
"completed": "Befejezve",
"continue-playing-as-grid": "Folytatás rácsnézetben",
"continue-playing-as-grid-desc": "A Rom kártyák továbbjátszását rácsnézetben megtekintheted a kezdőlapon",
"conversion": "Átalakítás",
"deferred": "Hivatkozás megszüntetve",
"edit-user": "Felhasználó szerkesztése",
"email": "E-mail",
"enable-3d-effect": "3D-hatás engedélyezése",
"enable-3d-effect-desc": "3D-gatás engedélyezése a játék/platform/gyűjtemény kártyákhoz",
"enable-experimental-cache": "Kísérleti gyorsítótár engedélyezése",
"enable-experimental-cache-desc": "Kísérleti gyorsítótár engedélyezése (problémákat okozhat)",
"disable-animations": "Animációk letiltása",
"disable-animations-desc": "Kapcsolja ki az összes animációt a galériában (CD forgatás, kazetta betöltés, lebegő videók)",
"excluded": "Kizárva",
"excluded-multi-rom-files": "Több ROM-os fájlok kizárva",
"excluded-multi-rom-parts-extensions": "Több ROM-os fájlrészek kiterjesztései kizárva",
"excluded-multi-rom-parts-files": "Több ROM-os fájlrészek kizárva",
"excluded-single-rom-extensions": "Egyetlen ROM-os fájlok kiterjesztései kizárva",
"excluded-single-rom-files": "Egyetlen ROM-os fájlok kizárva",
"failed": "Sikertelen",
"folder-name": "Mappanév",
"gallery": "Galléria",
"group-roms": "ROM-ok csoportosítása",
"group-roms-desc": "Azonos ROM-verziók csoportosítása a galériában",
"home": "Kezdőlap",
"interface": "Felület",
"invite-link": "Meghívó link",
"language": "Nyelv",
"main-platform": "Fő platform",
"manual": "Kézikönyv",
"no-tasks-in-history": "Nincsenek feladatok az előzményekben",
"password": "Jelszó",
"password-placeholder": "Hagyd üresen, ha meg akarod tartani a jelenlegi jelszót",
"platform-version": "Platform verzió",
"platforms-bindings": "Platform-hozzárendelések",
"platforms-drawer": "Platformok menüje",
"platforms-drawer-group-by": "Csoportosítás általa",
"platforms-versions": "Platformok verziói",
"progress": "Előrehaladás",
"queued": "Sorba állítva",
"recently-added-as-grid": "Legutóbb hozzáadott ROM-ok rácsnézetben",
"recently-added-as-grid-desc": "A főoldalon a legutóbb hozzáadott ROM-kártyák rácsnézetben jelennek meg",
"removed": "Eltávolítva",
"role": "Szerepkör",
"romm-platform": "RomM platform",
"running": "Fut",
"scan": "Szkennelés",
"scheduled": "Ütemezett",
"show-actionbar": "Műveletsáv megjelenítése",
"show-actionbar-desc": "A műveletsáv mindig jelenjen meg a játékkártyán",
"show-collections": "Gyűjtemények megjelenítése",
"show-collections-as-grid": "Gyűjtemények rácsként",
"show-collections-as-grid-desc": "A gyűjteménykártyák rácsként jelenjenek meg a kezdőlapon",
"show-collections-desc": "Gyűjtemények szakasz megjelenítése a kezdőlapon",
"show-continue-playing": "Folytatásra váró játékok megjelenítése",
"show-continue-playing-desc": "A folytatás szakasz megjelenítése a kezdőlapon",
"show-game-titles": "Játékcímek megjelenítése",
"show-game-titles-desc": "A játékcímek mindig legyenek láthatók a kártyákon",
"show-languages": "Nyelvek megjelenítése",
"show-languages-desc": "Nyelvi zászlók megjelenítése a galériában",
"show-platforms": "Platformok megjelenítése",
"show-platforms-as-grid": "Platformok rácsként",
"show-platforms-as-grid-desc": "Platformkártyák rácsként való megjelenítése a kezdőlapon",
"show-platforms-desc": "Platformok szekció megjelenítése a kezdőlapon",
"show-recently-added": "Nemrég hozzáadott ROM-ok megjelenítése",
"show-recently-added-desc": "A nemrég hozzáadott ROM-ok szekció megjelenítése a kezdőlapon",
"show-regions": "Régiók megjelenítése",
"show-regions-desc": "Régiózászlók megjelenítése a galériában",
"show-siblings": "Változatok megjelenítése",
"show-siblings-desc": "A változatok számának megjelenítése a galériában (ROM-ok csoportosítása esetén)",
"show-stats": "Statisztikák megjelenítése",
"show-stats-desc": "Statisztikai összegzés megjelenítése a kezdőlapon",
"show-status": "Állapot megjelenítése",
"show-status-desc": "Állapotikonok megjelenítése (függőben, folyamatban, befejezett stb.)",
"show-virtual-collections": "Automatikus gyűjtemények megjelenítése",
"show-virtual-collections-desc": "A kezdőlapon és a gyűjtemények oldalsávban jelenik meg.",
"stopped": "Megállítva",
"task-history": "Feladat előzmények",
"tasks": "Feladatok",
"theme": "Téma",
"theme-auto": "Auto",
"theme-dark": "Sötét",
"theme-light": "Világos",
"update": "Frissítés",
"username": "Felhasználónév",
"virtual-collection-type": "Virtuális gyűjtemény típusa (ROM csoportosítási mód)",
"watcher": "Figyelő"
}

View File

@@ -4,15 +4,14 @@
"administration": "Amministrazione",
"apply": "Applica",
"ascii-only": "Solo caratteri ASCII",
"username-length": "Il nome utente deve essere compreso tra 3 e 255 caratteri",
"username-chars": "Il nome utente può contenere solo lettere, numeri, trattini bassi e trattini",
"password-length": "La password deve essere compresa tra 6 e 255 caratteri",
"cancel": "Annulla",
"collection": "Collezione",
"collections": "Collezioni",
"confirm": "Conferma",
"confirm-deletion": "Conferma eliminazione",
"core": "Core",
"create": "Crea",
"delete": "Elimina",
"dropzone-description": "Trascina e rilascia i tuoi file ROM qui, o clicca per sfogliare",
"dropzone-drag-over": "Rilascia per caricare",
"dropzone-title": "Rilascia i file qui",
@@ -23,15 +22,18 @@
"games-n": "{n} Gioco | {n} Giochi",
"invalid-email": "Email non valida",
"invalid-name": "Nome non valido",
"last-updated": "Ultimo aggiornamento",
"library-management": "Gestione Libreria",
"logout": "Logout",
"name": "Nome",
"password-length": "La password deve essere compresa tra 6 e 255 caratteri",
"platform": "Piattaforma",
"platforms": "Piattaforme",
"platforms-n": "{n} Piattaforma | {n} Piattaforme",
"platforms-size": "Dimensione per piattaforma",
"profile": "Profilo",
"random": "Casuale",
"removing-from-filesystem": "Rimozione dal sistema",
"required": "Obbligatorio",
"save": "Salvataggio",
"saves": "Salvataggi",
@@ -51,11 +53,9 @@
"upload": "Carica",
"upload-files-selected": "{count} file selezionato | {count} file selezionati",
"user-interface": "Interfaccia Utente",
"username-chars": "Il nome utente può contenere solo lettere, numeri, trattini bassi e trattini",
"username-length": "Il nome utente deve essere compreso tra 3 e 255 caratteri",
"virtual-collection": "Collezione generata automaticamente",
"virtual-collections": "Collezioni generate automaticamente",
"last-updated": "Ultimo aggiornamento",
"confirm-deletion": "Conferma eliminazione",
"delete": "Elimina",
"warning": "AVVISO:",
"removing-from-filesystem": "Rimozione dal sistema"
"warning": "AVVISO:"
}

View File

@@ -4,15 +4,14 @@
"administration": "管理者メニュー",
"apply": "適用",
"ascii-only": "ASCII文字のみ",
"username-length": "ユーザー名は3文字から255文字の間である必要があります",
"username-chars": "ユーザー名には文字、数字、アンダースコア、ハイフンのみ使用できます",
"password-length": "パスワードは6文字から255文字の間である必要があります",
"cancel": "キャンセル",
"collection": "コレクション",
"collections": "コレクション",
"confirm": "確定",
"confirm-deletion": "削除の確認",
"core": "コア",
"create": "作成",
"delete": "削除",
"dropzone-description": "ROMファイルをここにドラッグ&ドロップするか、クリックして参照してください",
"dropzone-drag-over": "アップロードするには離してください",
"dropzone-title": "ファイルをここにドロップ",
@@ -23,15 +22,18 @@
"games-n": "{n} ゲーム | {n} ゲーム",
"invalid-email": "無効なメールアドレス",
"invalid-name": "無効な名前",
"last-updated": "最終更新",
"library-management": "ライブラリ管理",
"logout": "ログアウト",
"name": "名前",
"password-length": "パスワードは6文字から255文字の間である必要があります",
"platform": "プラットフォーム",
"platforms": "プラットフォーム",
"platforms-n": "{n} プラットフォーム | {n} プラットフォームs",
"platforms-size": "プラットフォームごとのサイズ",
"profile": "プロファイル",
"random": "ランダム",
"removing-from-filesystem": "システムから削除中",
"required": "必須",
"save": "セーブ",
"saves": "セーブ",
@@ -51,11 +53,9 @@
"upload": "アップロード",
"upload-files-selected": "{count} ファイルが選択されました",
"user-interface": "ユーザーインターフェース",
"username-chars": "ユーザー名には文字、数字、アンダースコア、ハイフンのみ使用できます",
"username-length": "ユーザー名は3文字から255文字の間である必要があります",
"virtual-collection": "自動生成コレクション",
"virtual-collections": "自動生成コレクションズ",
"last-updated": "最終更新",
"confirm-deletion": "削除の確認",
"delete": "削除",
"warning": "警告:",
"removing-from-filesystem": "システムから削除中"
"warning": "警告:"
}

View File

@@ -4,15 +4,14 @@
"administration": "유저 관리",
"apply": "적용",
"ascii-only": "ASCII 문자만",
"username-length": "사용자 이름은 3자에서 255자 사이여야 합니다",
"username-chars": "사용자 이름은 문자, 숫자, 밑줄, 하이픈만 포함할 수 있습니다",
"password-length": "비밀번호는 6자에서 255자 사이여야 합니다",
"cancel": "취소",
"collection": "모음집",
"collections": "모음집",
"confirm": "확인",
"confirm-deletion": "삭제 확인",
"core": "코어",
"create": "생성",
"delete": "삭제",
"dropzone-description": "ROM 파일을 여기에 드래그 앤 드롭하거나 클릭하여 탐색하세요",
"dropzone-drag-over": "업로드하려면 놓으세요",
"dropzone-title": "파일을 여기에 드롭하세요",
@@ -23,15 +22,18 @@
"games-n": "게임 {n}개 | 게임 {n}개",
"invalid-email": "유효하지 않은 이메일",
"invalid-name": "유효하지 않은 이름",
"last-updated": "마지막 업데이트",
"library-management": "라이브러리 관리",
"logout": "로그아웃",
"name": "이름",
"password-length": "비밀번호는 6자에서 255자 사이여야 합니다",
"platform": "플랫폼",
"platforms": "플랫폼",
"platforms-n": "{n}가지 플랫폼 | {n}가지 플랫폼",
"platforms-size": "플랫폼별 크기",
"profile": "프로필",
"random": "무작위",
"removing-from-filesystem": "시스템에서 제거 중",
"required": "필수",
"save": "세이브",
"saves": "세이브",
@@ -51,11 +53,9 @@
"upload": "업로드",
"upload-files-selected": "{count}개 파일이 선택되었습니다",
"user-interface": "사용자 인터페이스",
"username-chars": "사용자 이름은 문자, 숫자, 밑줄, 하이픈만 포함할 수 있습니다",
"username-length": "사용자 이름은 3자에서 255자 사이여야 합니다",
"virtual-collection": "자동 생성된 모음집",
"virtual-collections": "자동 생성된 모음집",
"last-updated": "마지막 업데이트",
"confirm-deletion": "삭제 확인",
"delete": "삭제",
"warning": "경고:",
"removing-from-filesystem": "시스템에서 제거 중"
"warning": "경고:"
}

View File

@@ -4,15 +4,14 @@
"administration": "Administracja",
"apply": "Zastosuj",
"ascii-only": "Tylko znaki ASCII",
"username-length": "Nazwa użytkownika musi mieć od 3 do 255 znaków",
"username-chars": "Nazwa użytkownika może zawierać tylko litery, cyfry, podkreślenia i myślniki",
"password-length": "Hasło musi mieć od 6 do 255 znaków",
"cancel": "Anuluj",
"collection": "Kolekcja",
"collections": "Kolekcje",
"confirm": "Potwierdź",
"confirm-deletion": "Potwierdź usunięcie",
"core": "Rdzeń",
"create": "Utwórz",
"delete": "Usuń",
"dropzone-description": "Przeciągnij i upuść swoje pliki ROM tutaj, lub kliknij aby przeglądać",
"dropzone-drag-over": "Puść aby przesłać",
"dropzone-title": "Upuść pliki tutaj",
@@ -23,15 +22,18 @@
"games-n": "{n} Gra | {n} Gry | {n} Gier",
"invalid-email": "Nieprawidłowy email",
"invalid-name": "Nieprawidłowa nazwa",
"last-updated": "Ostatnio zaktualizowane",
"library-management": "Zarządzanie biblioteką",
"logout": "Wyloguj się",
"name": "Nazwa",
"password-length": "Hasło musi mieć od 6 do 255 znaków",
"platform": "Platforma",
"platforms": "Platformy",
"platforms-n": "{n} Platforma | {n} Platformy | {n} Platform",
"platforms-size": "Rozmiar na platformę",
"profile": "Profil",
"random": "Losowo",
"removing-from-filesystem": "Usuwanie z systemu",
"required": "Wymagane",
"save": "Zapisz",
"saves": "Zapisane stany",
@@ -51,11 +53,9 @@
"upload": "Prześlij",
"upload-files-selected": "{count} plik wybrany | {count} pliki wybrane | {count} plików wybranych",
"user-interface": "Interfejs użytkownika",
"username-chars": "Nazwa użytkownika może zawierać tylko litery, cyfry, podkreślenia i myślniki",
"username-length": "Nazwa użytkownika musi mieć od 3 do 255 znaków",
"virtual-collection": "Automatycznie wygenerowana kolekcja",
"virtual-collections": "Automatycznie wygenerowane kolekcje",
"last-updated": "Ostatnio zaktualizowane",
"confirm-deletion": "Potwierdź usunięcie",
"delete": "Usuń",
"warning": "OSTRZEŻENIE:",
"removing-from-filesystem": "Usuwanie z systemu"
"warning": "OSTRZEŻENIE:"
}

View File

@@ -4,15 +4,14 @@
"administration": "Administração",
"apply": "Aplicar",
"ascii-only": "Somente caracteres ASCII",
"username-length": "Nome de usuário deve ter entre 3 e 255 caracteres",
"username-chars": "Nome de usuário pode conter apenas letras, números, sublinhados e hífens",
"password-length": "Senha deve ter entre 6 e 255 caracteres",
"cancel": "Cancelar",
"collection": "Coleção",
"collections": "Coleções",
"confirm": "Confirmar",
"confirm-deletion": "Confirmar exclusão",
"core": "Núcleo",
"create": "Criar",
"delete": "Excluir",
"dropzone-description": "Arraste e solte seus arquivos ROM aqui, ou clique para navegar",
"dropzone-drag-over": "Solte para carregar",
"dropzone-title": "Solte os arquivos aqui",
@@ -23,15 +22,18 @@
"games-n": "{n} Jogo | {n} Jogos",
"invalid-email": "Email inválido",
"invalid-name": "Nome inválido",
"last-updated": "Última atualização",
"library-management": "Gerenciamento de biblioteca",
"logout": "Sair",
"name": "Nome",
"password-length": "Senha deve ter entre 6 e 255 caracteres",
"platform": "Plataforma",
"platforms": "Plataformas",
"platforms-n": "{n} Plataforma | {n} Plataformas",
"platforms-size": "Tamanho por plataforma",
"profile": "Perfil",
"random": "Aleatório",
"removing-from-filesystem": "Removendo do sistema",
"required": "Requerido",
"save": "Salvar",
"saves": "Salvar",
@@ -51,11 +53,9 @@
"upload": "Carregar",
"upload-files-selected": "{count} arquivo selecionado | {count} arquivos selecionados",
"user-interface": "Interface do usuário",
"username-chars": "Nome de usuário pode conter apenas letras, números, sublinhados e hífens",
"username-length": "Nome de usuário deve ter entre 3 e 255 caracteres",
"virtual-collection": "Coleção autogerada",
"virtual-collections": "Coleções autogeradas",
"last-updated": "Última atualização",
"confirm-deletion": "Confirmar exclusão",
"delete": "Excluir",
"warning": "AVISO:",
"removing-from-filesystem": "Removendo do sistema"
"warning": "AVISO:"
}

View File

@@ -4,15 +4,14 @@
"administration": "Administrare",
"apply": "Aplică",
"ascii-only": "Caractere ASCII numai",
"username-length": "Numele de utilizator trebuie să conțină între 3 și 255 de caractere",
"username-chars": "Numele de utilizator poate conține doar litere, cifre, linii de subliniere și cratime",
"password-length": "Parola trebuie să conțină între 6 și 255 de caractere",
"cancel": "Anulează",
"collection": "Colecție",
"collections": "Colecții",
"confirm": "Confirmă",
"confirm-deletion": "Confirmă ștergerea",
"core": "Nucleu",
"create": "Creează",
"delete": "Șterge",
"dropzone-description": "Trageți și eliberați fișierele ROM aici, sau faceți clic pentru a naviga",
"dropzone-drag-over": "Eliberați pentru a încărca",
"dropzone-title": "Trageți fișierele aici",
@@ -23,15 +22,18 @@
"games-n": "{n} Joc | {n} Jocuri",
"invalid-email": "Email invalid",
"invalid-name": "Nume invalid",
"last-updated": "Ultima actualizare",
"library-management": "Gestionare bibliotecă",
"logout": "Deconectare",
"name": "Nume",
"password-length": "Parola trebuie să conțină între 6 și 255 de caractere",
"platform": "Platformă",
"platforms": "Platforme",
"platforms-n": "{n} Platformă | {n} Platforme",
"platforms-size": "Dimensiune per platformă",
"profile": "Profil",
"random": "Aleatoriu",
"removing-from-filesystem": "Ștergere din sistem",
"required": "Obligatoriu",
"save": "Salvare",
"saves": "Salvări",
@@ -51,11 +53,9 @@
"upload": "Încarcă",
"upload-files-selected": "{count} fișier selectat | {count} fișiere selectate",
"user-interface": "Interfață utilizator",
"username-chars": "Numele de utilizator poate conține doar litere, cifre, linii de subliniere și cratime",
"username-length": "Numele de utilizator trebuie să conțină între 3 și 255 de caractere",
"virtual-collection": "Colecție autogenerată",
"virtual-collections": "Colecții autogenerate",
"last-updated": "Ultima actualizare",
"confirm-deletion": "Confirmă ștergerea",
"delete": "Șterge",
"warning": "AVERTISMENT:",
"removing-from-filesystem": "Ștergere din sistem"
"warning": "AVERTISMENT:"
}

View File

@@ -4,15 +4,14 @@
"administration": "Администрирование",
"apply": "Применить",
"ascii-only": "Только ASCII символы",
"username-length": "Имя пользователя должно содержать от 3 до 255 символов",
"username-chars": "Имя пользователя может содержать только буквы, цифры, подчеркивания и дефисы",
"password-length": "Пароль должен содержать от 6 до 255 символов",
"cancel": "Отменить",
"collection": "Коллекция",
"collections": "Коллекции",
"confirm": "Подтвердить",
"confirm-deletion": "Подтвердить удаление",
"core": "Ядро",
"create": "Создать",
"delete": "Удалить",
"dropzone-description": "Перетащите ваши ROM файлы сюда или нажмите для просмотра",
"dropzone-drag-over": "Отпустите для загрузки",
"dropzone-title": "Перетащите файлы сюда",
@@ -23,15 +22,18 @@
"games-n": "{n} Игра | {n} Игры",
"invalid-email": "Недопустимый адрес электронной почты",
"invalid-name": "Недопустимое имя",
"last-updated": "Последнее обновление",
"library-management": "Управление библиотекой",
"logout": "Выйти",
"name": "Имя",
"password-length": "Пароль должен содержать от 6 до 255 символов",
"platform": "Платформа",
"platforms": "Платформы",
"platforms-n": "{n} Платформа | {n} Платформы",
"platforms-size": "Размер по платформе",
"profile": "Профиль",
"random": "Случайный",
"removing-from-filesystem": "Удаление из системы",
"required": "Обязательное поле",
"save": "Сохранить",
"saves": "Сохранения",
@@ -51,11 +53,9 @@
"upload": "Загрузить",
"upload-files-selected": "{count} файл выбран | {count} файла выбрано | {count} файлов выбрано",
"user-interface": "Пользовательский интерфейс",
"username-chars": "Имя пользователя может содержать только буквы, цифры, подчеркивания и дефисы",
"username-length": "Имя пользователя должно содержать от 3 до 255 символов",
"virtual-collection": "Автосгенерированная коллекция",
"virtual-collections": "Автосгенерированные коллекции",
"last-updated": "Последнее обновление",
"confirm-deletion": "Подтвердить удаление",
"delete": "Удалить",
"warning": "ВНИМАНИЕ:",
"removing-from-filesystem": "Удаление из системы"
"warning": "ВНИМАНИЕ:"
}

View File

@@ -4,15 +4,14 @@
"administration": "管理",
"apply": "应用",
"ascii-only": "仅限ASCII字符",
"username-length": "用户名必须介于3到255个字符之间",
"username-chars": "用户名只能包含字母、数字、下划线和连字符",
"password-length": "密码必须介于6到255个字符之间",
"cancel": "取消",
"collection": "收藏",
"collections": "收藏",
"confirm": "确认",
"confirm-deletion": "确认删除",
"core": "核心",
"create": "创建",
"delete": "删除",
"dropzone-description": "将您的ROM文件拖放到此处或点击浏览",
"dropzone-drag-over": "释放以上传",
"dropzone-title": "将文件拖放到此处",
@@ -23,15 +22,18 @@
"games-n": "{n} 游戏 | {n} 游戏",
"invalid-email": "无效的电子邮件",
"invalid-name": "无效的名称",
"last-updated": "最后更新",
"library-management": "游戏库管理",
"logout": "注销",
"name": "名称",
"password-length": "密码必须介于6到255个字符之间",
"platform": "平台",
"platforms": "平台",
"platforms-n": "{n} 平台 | {n} 平台",
"platforms-size": "每个平台的大小",
"profile": "简介",
"random": "随机",
"removing-from-filesystem": "正在从系统删除",
"required": "必填",
"save": "存档",
"saves": "存档",
@@ -51,11 +53,9 @@
"upload": "上传",
"upload-files-selected": "已选择 {count} 个文件",
"user-interface": "用户界面",
"username-chars": "用户名只能包含字母、数字、下划线和连字符",
"username-length": "用户名必须介于3到255个字符之间",
"virtual-collection": "自动生成的集合",
"virtual-collections": "自动生成的集合",
"last-updated": "最后更新",
"confirm-deletion": "确认删除",
"delete": "删除",
"warning": "警告:",
"removing-from-filesystem": "正在从系统删除"
"warning": "警告:"
}

View File

@@ -4,15 +4,14 @@
"administration": "管理系統",
"apply": "套用",
"ascii-only": "僅限 ASCII 字元",
"username-length": "使用者名稱必須介於 3 到 255 個字元之間",
"username-chars": "使用者名稱只能包含字母、數字、底線和連字號",
"password-length": "密碼必須介於 6 到 255 個字元之間",
"cancel": "取消",
"collection": "收藏庫",
"collections": "收藏庫",
"confirm": "確認",
"confirm-deletion": "確認刪除",
"core": "核心",
"create": "建立",
"delete": "刪除",
"dropzone-description": "將您的ROM檔案拖放到此處或點擊瀏覽",
"dropzone-drag-over": "釋放以上傳",
"dropzone-title": "將檔案拖放到此處",
@@ -23,15 +22,18 @@
"games-n": "{n} 遊戲 | {n} 遊戲",
"invalid-email": "無效的電子郵件",
"invalid-name": "無效的名稱",
"last-updated": "最後更新",
"library-management": "管理遊戲庫",
"logout": "登出",
"name": "名稱",
"password-length": "密碼必須介於 6 到 255 個字元之間",
"platform": "平台",
"platforms": "平台",
"platforms-n": "{n} 平台 | {n} 平台",
"platforms-size": "每個平台的大小",
"profile": "用戶資料",
"random": "隨機",
"removing-from-filesystem": "正在從系統移除",
"required": "必填",
"save": "存檔",
"saves": "存檔",
@@ -51,11 +53,9 @@
"upload": "上傳",
"upload-files-selected": "已選擇 {count} 個檔案",
"user-interface": "使用界面",
"username-chars": "使用者名稱只能包含字母、數字、底線和連字號",
"username-length": "使用者名稱必須介於 3 到 255 個字元之間",
"virtual-collection": "自動生成的收藏庫",
"virtual-collections": "自動生成的收藏庫",
"last-updated": "最後更新",
"confirm-deletion": "確認刪除",
"delete": "刪除",
"warning": "警告:",
"removing-from-filesystem": "正在從系統移除"
"warning": "警告:"
}

View File

@@ -182,6 +182,19 @@ async function getRom({
return api.get(`/roms/${romId}`);
}
async function getRomByMetadataProvider({
provider,
id,
}: {
provider: string;
id: number;
}): Promise<{ data: DetailedRom }> {
const params = { [provider]: id };
return api.get(`/roms/by-metadata-provider/`, {
params,
});
}
async function searchRom({
romId,
searchTerm,
@@ -483,6 +496,7 @@ export default {
getRecentRoms,
getRecentPlayedRoms,
getRom,
getRomByMetadataProvider,
downloadRom,
bulkDownloadRoms,
searchRom,

View File

@@ -19,6 +19,7 @@ const defaultLanguageState = {
{ value: "it_IT", name: "Italiano" },
{ value: "pl_PL", name: "Polski" },
{ value: "cs_CZ", name: "Česky" },
{ value: "hu_HU", name: "Magyar" },
].sort((a, b) => a.name.localeCompare(b.name)),
};

View File

@@ -2,10 +2,12 @@
import { computed, onMounted, ref } from "vue";
import { useI18n } from "vue-i18n";
import RSection from "@/components/common/RSection.vue";
import storeConfig from "@/stores/config";
import storeHeartbeat from "@/stores/heartbeat";
const { t } = useI18n();
const heartbeat = storeHeartbeat();
const configStore = storeConfig();
const heartbeatStatus = ref<Record<string, boolean | undefined>>({
igdb: undefined,
@@ -131,6 +133,7 @@ function getConnectionStatusTooltip(source: {
}
onMounted(() => {
configStore.fetchConfig();
fetchAllHeartbeats();
});
</script>