diff --git a/frontend/src/locales/bg_BG/collection.json b/frontend/src/locales/bg_BG/collection.json
new file mode 100644
index 000000000..36921cced
--- /dev/null
+++ b/frontend/src/locales/bg_BG/collection.json
@@ -0,0 +1,21 @@
+{
+ "add-collection": "Add collection",
+ "create-collection": "Create collection",
+ "create-smart-collection": "Create smart collection",
+ "current-filters": "Current Filters",
+ "danger-zone": "Danger zone",
+ "delete-collection": "Delete collection",
+ "description": "Description",
+ "edit-collection": "Edit collection",
+ "name": "Name",
+ "owner": "Owner",
+ "private": "Private",
+ "private-desc": "Private (only visible to me)",
+ "public": "Public",
+ "public-desc": "Public (visible to everyone)",
+ "removing-collection-1": "Removing collection",
+ "removing-collection-2": "from RomM. Do you confirm?",
+ "removing-smart-collection-1": "Removing smart collection",
+ "removing-smart-collection-2": "from RomM. Do you confirm?",
+ "search-collection": "Search collection"
+}
diff --git a/frontend/src/locales/bg_BG/common.json b/frontend/src/locales/bg_BG/common.json
new file mode 100644
index 000000000..4cbf3da3d
--- /dev/null
+++ b/frontend/src/locales/bg_BG/common.json
@@ -0,0 +1,63 @@
+{
+ "about": "About",
+ "add": "Add",
+ "administration": "Administration",
+ "and": "and",
+ "apply": "Apply",
+ "ascii-only": "ASCII characters only",
+ "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",
+ "edit": "Edit",
+ "exclude-on-delete": "Exclude on delete",
+ "filter": "Filter",
+ "firmware": "Firmware",
+ "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",
+ "patcher": "Patcher",
+ "platform": "Platform",
+ "platforms": "Platforms",
+ "platforms-n": "{n} Platform | {n} Platforms",
+ "profile": "Profile",
+ "random": "Random",
+ "removing-from-filesystem": "Removing from filesystem",
+ "required": "Required",
+ "save": "Save",
+ "saves": "Saves",
+ "saves-n": "{n} Save | {n} Saves",
+ "screenshots-n": "{n} Screenshot | {n} Screenshots",
+ "search": "Search",
+ "server-stats": "Server stats",
+ "size-on-disk": "Size on disk",
+ "slug": "Slug",
+ "smart-collection": "Smart Collection",
+ "smart-collections": "Smart Collections",
+ "state": "State",
+ "states": "States",
+ "states-n": "{n} State | {n} States",
+ "sync": "Sync",
+ "type": "Type",
+ "update": "Update",
+ "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:"
+}
diff --git a/frontend/src/locales/bg_BG/console.json b/frontend/src/locales/bg_BG/console.json
new file mode 100644
index 000000000..8da99138b
--- /dev/null
+++ b/frontend/src/locales/bg_BG/console.json
@@ -0,0 +1,43 @@
+{
+ "collections": "Collections",
+ "console": "Console",
+ "console-settings": "Console Settings",
+ "default": "Default",
+ "detail-file": "File",
+ "detail-size": "File Size",
+ "disabled": "Disabled",
+ "emulator-cdn": "Loading emulator (CDN)…",
+ "emulator-failed": "Failed to load emulator",
+ "emulator-loading": "Loading emulator…",
+ "enabled": "Enabled",
+ "exit-console-mode": "Exit Console Mode",
+ "exit-game": "Press Start + Select (or Backspace) to exit",
+ "fullscreen": "Fullscreen",
+ "game-detail": "Details",
+ "game-exit": "Exit Game",
+ "game-exit-cancel": "Cancel",
+ "game-exit-cancel-desc": "Return to the game",
+ "game-exit-nosave": "Exit Without Saving",
+ "game-exit-nosave-desc": "Leave immediately, progress since last save state is lost",
+ "game-exit-save": "Save & Exit",
+ "game-exit-save-desc": "Save current state, then quit",
+ "game-play": "Play",
+ "game-saving": "SAVING…",
+ "games-n": "{n} game | {n} games",
+ "loading-platforms": "Loading Platforms…",
+ "nav-back": "Back",
+ "nav-delete": "Delete",
+ "nav-favorite": "Favorite",
+ "nav-menu": "Menu",
+ "nav-navigation": "Navigation",
+ "nav-select": "Select",
+ "platforms": "Platforms",
+ "recently-played": "Recently Played",
+ "save-states": "SAVE STATES",
+ "screenshots": "Screenshots",
+ "settings": "Settings",
+ "smart-collections": "Smart Collections",
+ "sound-effects": "Sound Effects",
+ "theme": "Theme",
+ "virtual-collections": "Autogenerated Collections"
+}
diff --git a/frontend/src/locales/bg_BG/emptyStates.json b/frontend/src/locales/bg_BG/emptyStates.json
new file mode 100644
index 000000000..a77e1c7d1
--- /dev/null
+++ b/frontend/src/locales/bg_BG/emptyStates.json
@@ -0,0 +1,11 @@
+{
+ "404-subtitle": "The page you are looking for does not exist",
+ "404-title": "Page not found",
+ "firmware-text": "The firmwares/BIOS you were looking for does not exist",
+ "firmware-title": "No firmwares/BIOS to show",
+ "home-headline": "No games in your library",
+ "home-text": "Ready to play?",
+ "home-title": "Run a quick scan to automatically detect games on your system",
+ "manual-match": "Search for games across all metadata providers",
+ "search-for-games": "Search for games across all platforms"
+}
diff --git a/frontend/src/locales/bg_BG/gallery.json b/frontend/src/locales/bg_BG/gallery.json
new file mode 100644
index 000000000..987687a18
--- /dev/null
+++ b/frontend/src/locales/bg_BG/gallery.json
@@ -0,0 +1,4 @@
+{
+ "all-loaded": "All games have been loaded",
+ "load-more": "Load more"
+}
diff --git a/frontend/src/locales/bg_BG/home.json b/frontend/src/locales/bg_BG/home.json
new file mode 100644
index 000000000..e00fd0220
--- /dev/null
+++ b/frontend/src/locales/bg_BG/home.json
@@ -0,0 +1,4 @@
+{
+ "continue-playing": "Continue playing",
+ "recently-added": "Recently added"
+}
diff --git a/frontend/src/locales/bg_BG/login.json b/frontend/src/locales/bg_BG/login.json
new file mode 100644
index 000000000..666acf6e8
--- /dev/null
+++ b/frontend/src/locales/bg_BG/login.json
@@ -0,0 +1,16 @@
+{
+ "back-to-login": "Back to login",
+ "confirm-new-password": "Confirm new password",
+ "forgot-password": "Forgot your password?",
+ "login": "Login",
+ "login-oidc": "Login with {oidc}",
+ "new-password": "New password",
+ "or": "or",
+ "password": "Password",
+ "register": "Register",
+ "reset-password": "Reset password",
+ "reset-sent": "Reset link sent. Contact your admin.",
+ "send-reset-link": "Send reset link",
+ "setup-wizard": "Setup wizard",
+ "username": "Username"
+}
diff --git a/frontend/src/locales/bg_BG/patcher.json b/frontend/src/locales/bg_BG/patcher.json
new file mode 100644
index 000000000..845e341b6
--- /dev/null
+++ b/frontend/src/locales/bg_BG/patcher.json
@@ -0,0 +1,34 @@
+{
+ "apply-download": "Apply & Download",
+ "apply-download-upload": "Apply, Download & Upload",
+ "apply-upload": "Apply & Upload",
+ "choose-patch": "Choose patch",
+ "choose-rom": "Choose ROM",
+ "download-locally": "Download patched ROM",
+ "drag-drop-patch": "Drag & drop a patch file or click to browse.",
+ "drag-drop-rom": "Drag & drop a ROM file or click to browse.",
+ "drop-patch-here": "Drop patch here",
+ "drop-rom-here": "Drop ROM here",
+ "error-no-action": "Please select at least one action: download or upload.",
+ "error-no-patch": "Please select a patch file.",
+ "error-no-platform": "Please select a platform to upload to.",
+ "error-no-rom": "Please select a ROM file.",
+ "error-upload-failed": "Unable to upload ROM: {error}",
+ "output-filename": "Output filename (optional)",
+ "patch-file": "Patch file",
+ "powered-by": "Powered by patcherjs",
+ "replace": "Replace",
+ "rom-file": "ROM file",
+ "status-downloading": "Downloading patched ROM...",
+ "status-preparing": "Preparing files...",
+ "status-uploading": "Uploading to RomM...",
+ "subtitle": "Choose a base ROM and a patch file, then apply to download the patched ROM.",
+ "success-downloaded": "downloaded",
+ "success-message": "Patched ROM {actions} successfully!",
+ "success-uploaded": "uploaded",
+ "supported-formats": "Supported patch formats",
+ "title": "ROM Patcher",
+ "upload-errors": " (with some errors)",
+ "upload-success": "Patched ROM uploaded successfully{errors}. Starting scan...",
+ "upload-to-romm": "Upload to RomM"
+}
diff --git a/frontend/src/locales/bg_BG/platform.json b/frontend/src/locales/bg_BG/platform.json
new file mode 100644
index 000000000..1b683a019
--- /dev/null
+++ b/frontend/src/locales/bg_BG/platform.json
@@ -0,0 +1,61 @@
+{
+ "active-multi-select": "Active multi-select",
+ "age-rating": "Age rating",
+ "category": "Category",
+ "change-view": "Change view",
+ "collection": "Collection",
+ "company": "Company",
+ "cover-style": "Cover style",
+ "danger-zone": "Danger zone",
+ "delete-platform": "Delete platform",
+ "export": "Export",
+ "family": "Family",
+ "filter-gallery": "Filter gallery",
+ "firmware-deleted-successfully": "Firmware deleted successfully! | {count} firmwares deleted successfully!",
+ "firmware-remove-warning": "You are going to remove {count} firmware from your filesystem. This action can't be reverted! | You are going to remove {count} firmwares from your filesystem. This action can't be reverted!",
+ "firmware-select-to-remove": "Select the firmware files you want to remove from your filesystem, otherwise they will only be deleted from RomM database.",
+ "firmware-uploaded-successfully": "{count} file uploaded successfully. | {count} files uploaded successfully.",
+ "firmware-uploading": "Uploading {count} firmware file to {platform}... | Uploading {count} firmware files to {platform}...",
+ "franchise": "Franchise",
+ "generation": "Generation",
+ "genre": "Genre",
+ "language": "Language",
+ "match-all-logic": "Match ALL of the selected values (AND logic)",
+ "match-any-logic": "Match ANY of the selected values (OR logic)",
+ "match-none-logic": "Match NONE of the selected values (NOT logic)",
+ "missing-from-filesystem": "Missing platform from filesystem",
+ "no-firmware-found": "No firmware found",
+ "old-horizontal-cases": "Old horizontal cases",
+ "old-squared-cases": "Old squared cases",
+ "player-count": "Player count",
+ "region": "Region",
+ "removing-firmware": "Removing {n} firmware file from RomM | Removing {n} firmware files from RomM",
+ "removing-platform-1": "Removing platform",
+ "removing-platform-2": "] from RomM. Do you confirm?",
+ "reset-filters": "Reset filters",
+ "search-platform": "Search platform",
+ "settings": "Settings",
+ "show-duplicates": "Show duplicates",
+ "show-duplicates-only": "Show duplicate ROMs only",
+ "show-favorites": "Show favourites",
+ "show-favorites-only": "Show favourite ROMs only",
+ "show-firmwares": "Show firmwares/BIOS",
+ "show-matched": "Show Matched",
+ "show-missing": "Show missing",
+ "show-missing-only": "Show missing ROMs only",
+ "show-not-duplicates-only": "Show non-duplicate ROMs only",
+ "show-not-favorites-only": "Show non-favourite ROMs only",
+ "show-not-missing-only": "Show non-missing ROMs only",
+ "show-not-playables-only": "Show non-playable ROMs only",
+ "show-not-ra-only": "Show ROMs without RetroAchievements only",
+ "show-not-verified-only": "Show non-verified ROMs only",
+ "show-playables": "Show playables",
+ "show-playables-only": "Show playable ROMs only",
+ "show-ra": "Show Retroachievements",
+ "show-ra-only": "Show ROMs with RetroAchievements only",
+ "show-unmatched": "Show unmatched",
+ "show-verified": "Show verified",
+ "show-verified-only": "Show verified ROMs only",
+ "status": "Status",
+ "upload-roms": "Upload ROMs"
+}
diff --git a/frontend/src/locales/bg_BG/play.json b/frontend/src/locales/bg_BG/play.json
new file mode 100644
index 000000000..35b309f70
--- /dev/null
+++ b/frontend/src/locales/bg_BG/play.json
@@ -0,0 +1,24 @@
+{
+ "back-to-gallery": "Back to gallery",
+ "back-to-game-details": "Back to game details",
+ "background-color": "Background color",
+ "change-save": "Change save",
+ "change-state": "Change state",
+ "clear-cache": "Clear EmulatorJS Cache",
+ "clear-cache-description": "Any saves or states stored on the server will not be affected.",
+ "clear-cache-title": "Are you sure you want to clear the EmulatorJS cache?",
+ "clear-cache-warning": "This will remove all saves and states stored in the browser.",
+ "deselect-save": "Deselect save",
+ "deselect-state": "Deselect state",
+ "full-screen": "Full screen",
+ "no-save-selected": "No save selected",
+ "no-saves-available": "No saves available",
+ "no-state-selected": "No state selected",
+ "no-states-available": "No states available",
+ "play": "Play",
+ "quit": "Quit",
+ "save-and-quit": "Save and quit",
+ "select-background-color": "Select background color",
+ "select-save": "Select save",
+ "select-state": "Select state"
+}
diff --git a/frontend/src/locales/bg_BG/rom.json b/frontend/src/locales/bg_BG/rom.json
new file mode 100644
index 000000000..418716f09
--- /dev/null
+++ b/frontend/src/locales/bg_BG/rom.json
@@ -0,0 +1,106 @@
+{
+ "add-new-note": "Add New Note",
+ "add-note": "Add Note",
+ "add-to-collection": "Add to collection",
+ "add-to-favorites": "Add to favourites",
+ "adding-to-collection": "Adding {n} ROMs to collection",
+ "additional-content": "Additional content",
+ "age-rating": "Age rating",
+ "all-styles": "All Styles",
+ "backlogged": "Backlogged",
+ "by": "by",
+ "cant-copy-link": "Can't copy link to clipboard, copy it manually",
+ "collections": "Collections",
+ "community-notes": "Community Notes",
+ "companies": "Companies",
+ "completion": "Completion",
+ "completionist": "Completionist",
+ "confirm-delete-note": "Are you sure you want to delete the note \"{title}\"?",
+ "copy-link": "Copy download link",
+ "default": "Set default",
+ "delete": "Delete",
+ "delete-filesystem-warning": "You are going to remove {n} ROM from your filesystem. This action can't be reverted! | You are going to remove {n} ROMs from your filesystem. This action can't be reverted!",
+ "delete-manual-button": "Delete",
+ "delete-manual-confirm-body": "The manual file will be permanently removed from the filesystem.",
+ "delete-manual-confirm-title": "Are you sure you want to delete the manual?",
+ "delete-select-instruction": "Select the games you want to remove from your filesystem, otherwise they will only be deleted from RomM database.",
+ "deleted-from-database": "{count} ROM deleted from the database | {count} ROMs deleted from the database",
+ "deleted-from-filesystem": "{count} ROM deleted from the filesystem | {count} ROMs deleted from the filesystem",
+ "details": "Details",
+ "difficulty": "Difficulty",
+ "download": "Download",
+ "file": "File",
+ "filename": "File name",
+ "filename-required": "Cannot save: file name is required",
+ "files": "Files",
+ "folder-name": "Folder name",
+ "franchises": "Franchises",
+ "genres": "Genres",
+ "hidden": "Hidden",
+ "how-long-to-beat": "How Long to Beat",
+ "info": "Info",
+ "languages": "Languages",
+ "main-plus-extra": "Main + Extra",
+ "main-story": "Main Story",
+ "make-private": "Make Private",
+ "make-public": "Make Public",
+ "manual": "Manual",
+ "manual-match": "Manual match",
+ "manual-remove-failed": "Failed to remove manual: {error}",
+ "manual-removed": "Manual removed successfully",
+ "manuals-upload-failed": "Unable to upload manuals: {error}",
+ "manuals-upload-skipped": "All manuals skipped, nothing to upload.",
+ "manuals-upload-success": "{count} manual uploaded successfully ({failed} skipped/failed). | {count} manuals uploaded successfully ({failed} skipped/failed).",
+ "metadata": "Metadata",
+ "metadata-ids": "Metadata IDs",
+ "my-notes": "My notes",
+ "no-metadata-source": "No metadata source enabled",
+ "no-notes": "No notes found",
+ "no-notes-desc": "Click the Add Note button to create your first note",
+ "no-saves-found": "No saves found",
+ "no-states-found": "No states found",
+ "note-content": "Note Content",
+ "note-title": "Note Title",
+ "note-title-exists": "A note with this title already exists",
+ "now-playing": "Now playing",
+ "personal": "Personal",
+ "player-count": "Players",
+ "private": "Private",
+ "public": "Public",
+ "public-notes": "Public notes",
+ "rating": "Rating",
+ "refresh-metadata": "Refresh metadata",
+ "regions": "Regions",
+ "related-content": "Related content",
+ "remove-from-collection": "Remove from collection",
+ "remove-from-favorites": "Remove from favourites",
+ "remove-from-playing": "Remove from playing",
+ "removing-from-collection": "Removing {n} ROMs from collection",
+ "removing-title": "Removing {n} game from RomM | Removing {n} games from RomM",
+ "rename-file-details": "File will be renamed from {from} to {to}. File tags won't be affected.",
+ "rename-file-title": "Rename file to match {source} title",
+ "results-found": "Results found",
+ "save-data": "Save data",
+ "select-all": "Select all",
+ "select-cover-image": "Select a cover image",
+ "set-as-default": "Set ROM as default",
+ "show-earned-only": "Show earned only",
+ "size": "Size",
+ "status": "Status",
+ "status-backlogged": "Backlogged",
+ "status-completed-100": "Completed 100%",
+ "status-finished": "Finished",
+ "status-hidden": "Hidden",
+ "status-incomplete": "Incomplete",
+ "status-never-playing": "Never Playing",
+ "status-now-playing": "Now Playing",
+ "status-retired": "Retired",
+ "summary": "Summary",
+ "switch-version": "Switch version",
+ "tags": "Tags",
+ "unmatch": "Unmatch ROM",
+ "unmatch-success": "ROM unmatched successfully",
+ "unselect-all": "Unselect all",
+ "update-success": "ROM updated successfully!",
+ "updated": "Updated"
+}
diff --git a/frontend/src/locales/bg_BG/scan.json b/frontend/src/locales/bg_BG/scan.json
new file mode 100644
index 000000000..1255f4fc6
--- /dev/null
+++ b/frontend/src/locales/bg_BG/scan.json
@@ -0,0 +1,47 @@
+{
+ "abort": "Abort",
+ "api-key-invalid": "API key invalid!",
+ "api-key-missing": "API key missing or invalid",
+ "api-key-missing-or-disabled": "API key missing or source disabled",
+ "api-key-missing-short": "API key missing!",
+ "api-key-set": "API key set",
+ "api-key-valid": "API key set and valid",
+ "calculate-hashes": "Calculate hashes",
+ "complete-rescan": "Complete rescan",
+ "complete-rescan-desc": "Total rescan of selected platforms (slowest)",
+ "connection-failed": "Connection failed",
+ "connection-in-progress": "Connection in progress...",
+ "connection-successful": "Connection successful",
+ "disabled-by-admin": "Disabled by the administrator",
+ "firmware-found": "Firmware found: {n} file | Firmware found: {n} files",
+ "firmware-scanned-n": "Firmware: {n} scanned",
+ "firmware-scanned-with-details": "Firmware: {n_scanned_firmware} scanned, with {n_new_firmware} new",
+ "hash-calculation-disabled": "Hash calculation is disabled",
+ "hasheous-requires-hashes": "Hasheous requires hash calculation to be enabled",
+ "hashes": "Recalculate hashes",
+ "hashes-desc": "Recalculates hashes for selected platforms",
+ "hashes-disabled-tooltip": "File hash calculation disabled.
Hashes (MD5, SHA1, CRC32) are unique fingerprints that identify ROM files precisely.
Without them, Hasheous and RetroAchievements cannot match games to their databases, but scanning will be faster.",
+ "hashes-enabled-tooltip": "File hash calculation enabled.
Hashes (MD5, SHA1, CRC32) will be calculated to create unique fingerprints for each ROM file.
This enables Hasheous and RetroAchievements to accurately identify games in their databases.",
+ "manage-library": "Manage library",
+ "metadata-sources": "Metadata sources",
+ "new-platforms": "New platforms",
+ "new-platforms-desc": "Scan new platforms only (fastest)",
+ "no-new-roms": "No new/changed ROMs found",
+ "not-identified": "Not identified",
+ "platforms-scanned-n": "Platforms: {n} scanned",
+ "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",
+ "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",
+ "scan-options": "Scan options",
+ "scan-types-info": "New Platforms: This will only look for platforms that are not already in RomM.
Quick Scan: Scans for games that are not in the library yet (fastest).
Unmatched Games: Attempts to match games that are not matched with the selected metadata sources.
For example, selecting IGDB and ScreenScraper will scan games that are not matched with IGDB or ScreenScraper.
Update Metadata: Updates the metadata for games that have been matched with selected metadata sources using the external ID (e.g. IGDB ID).
For example, selecting IGDB and ScreenScraper will update the metadata for games that are matched with IGDB or ScreenScraper, and will use igdb_id and/or ssfr_id to refetch the metadata from the respective providers.
Recalculate Hashes: Recalculates hashes for all files in the selected platforms.
Total Rescan: Rescans and rematches all games in the selected platforms (slowest).
This will wipe all existing metadata matches, including the external IDs, and attempt to match them again, like on a fresh scan. Saves, states and notes will be preserved.",
+ "scan-types-more-info": "More information",
+ "select-one-source": "Please select at least one metadata source to enrich your library with artwork and metadata",
+ "unmatched-games": "Unmatched games",
+ "unmatched-games-desc": "Scan games with missing metadata matches",
+ "update-metadata": "Update metadata",
+ "update-metadata-desc": "Update metadata for matched games"
+}
diff --git a/frontend/src/locales/bg_BG/settings.json b/frontend/src/locales/bg_BG/settings.json
new file mode 100644
index 000000000..445c3e8d9
--- /dev/null
+++ b/frontend/src/locales/bg_BG/settings.json
@@ -0,0 +1,171 @@
+{
+ "add-exclusion-for": "Add a new exclusion for",
+ "add-folder-alias": "Add folder alias",
+ "add-folder-mapping": "Add folder mapping",
+ "add-mapping-type": "Select mapping type:",
+ "add-platform-variant": "Add platform variant",
+ "auto-detected": "Auto-detected",
+ "backlogged": "Backlogged",
+ "boxart-box3d": "3D Box",
+ "boxart-cover": "2D Box",
+ "boxart-desc": "Choose the boxart style for game cards",
+ "boxart-miximage": "Mix Image",
+ "boxart-physical": "Physical",
+ "boxart-style": "Boxart style",
+ "canceled": "Canceled",
+ "client-api-tokens": "Client API Tokens",
+ "client-token-confirm-delete": "Are you sure you want to revoke this token? Any device using it will lose access.",
+ "client-token-confirm-regenerate": "This will invalidate the current credential. Any device using the old token will need to be re-paired.",
+ "client-token-copied": "Token copied to clipboard",
+ "client-token-created": "Token created successfully",
+ "client-token-deleted": "Token revoked successfully",
+ "client-token-delivery-hint": "This token will not be shown again.",
+ "client-token-expiry-30d": "30 days",
+ "client-token-expiry-90d": "90 days",
+ "client-token-expiry-1y": "1 year",
+ "client-token-expiry-never": "Never",
+ "client-token-name": "Token name",
+ "client-token-pair-claimed": "Device paired successfully!",
+ "client-token-pair-expired": "Pairing code expired",
+ "client-token-regenerated": "Token regenerated successfully",
+ "client-token-scopes": "Permissions",
+ "client-token-select-expiry": "Expiration",
+ "cleanup": "Cleanup",
+ "cleanup-all": "Clean up all",
+ "cleanup-all-confirm": "This will permanently delete all missing ROMs{platform} from the database and their resource directories. This action cannot be undone.",
+ "completed": "Completed",
+ "config-file-not-mounted-desc": "The config.yml file has not been mounted. Any changes made to the configuration will not persist after the application restarts.",
+ "config-file-not-mounted-title": "Configuration file not mounted!",
+ "config-file-not-writable-desc": "The config.yml file is not writable. Any changes made to the configuration will not persist after the application restarts.",
+ "config-file-not-writable-title": "Configuration file not writable!",
+ "config-tab": "Config",
+ "confirm-delete-mapping": "Do you confirm?",
+ "continue-playing-as-grid": "Continue playing as grid",
+ "continue-playing-as-grid-desc": "View continue playing ROM cards as a grid at the home page",
+ "conversion": "Conversion",
+ "couldnt-fetch-missing-roms": "Couldn't fetch missing ROMs: {error}",
+ "deferred": "Deferred",
+ "deleting-mapping": "Deleting",
+ "disable-animations": "Disable animations",
+ "disable-animations-desc": "Disable all animations in the gallery (CD spinning, cartridge loading, hover videos)",
+ "edit-user": "Edit user",
+ "email": "Email",
+ "enable-3d-effect": "Enable 3D effect",
+ "enable-3d-effect-desc": "Enable 3D effect for the game/platform/collection cards",
+ "enable-experimental-cache": "Enable experimental request cache",
+ "enable-experimental-cache-desc": "Enable experimental request caching to improve performance (may cause issues)",
+ "excluded": "Excluded",
+ "excluded-multi-rom-files": "Multi ROM files",
+ "excluded-multi-rom-parts-extensions": "Multi ROM parts extensions",
+ "excluded-multi-rom-parts-files": "Multi ROM parts files",
+ "excluded-single-rom-extensions": "Single ROM extensions",
+ "excluded-single-rom-files": "Single ROM files",
+ "exclusion-placeholder": "e.g., *.tmp or test_file.rom",
+ "exclusion-value": "Exclusion value",
+ "exclusions-item": "item",
+ "exclusions-items": "items",
+ "exclusions-multi-files-desc": "File names to exclude from multi-file ROM scanning",
+ "exclusions-multi-parts-ext-desc": "File extensions to exclude from multi-part ROM scanning",
+ "exclusions-multi-parts-files-desc": "File names to exclude from multi-part ROM scanning",
+ "exclusions-none": "No exclusions configured",
+ "exclusions-platforms-desc": "Platforms to exclude from scanning",
+ "exclusions-single-ext-desc": "File extensions to exclude from single ROM scanning",
+ "exclusions-single-files-desc": "File names to exclude from single ROM scanning",
+ "exclusions-tooltip": "Configure which files, extensions, and platforms should be excluded during library scanning. Items added here will be ignored when RomM scans your library.",
+ "failed": "Failed",
+ "folder-alias": "Folder alias",
+ "folder-alias-description": "Maps a custom folder name to an official RomM platform. For example, map 'Nintendo-64' to 'n64'.",
+ "folder-mappings": "Folder mappings",
+ "folder-mappings-mutually-exclusive": "Note: a folder cannot be both an alias and a variant.",
+ "folder-mappings-tooltip-aliases": "Use this to map a folder in your library to an official RomM platform. For example, if your Nintendo 64 games are in a folder named 'Nintendo-64', you can bind it to the 'n64' platform here. This becomes the primary identifier for that platform in RomM.",
+ "folder-mappings-tooltip-variants": "Use this if you have a separate folder for a platform variant and want it to use the metadata of a main platform. For example, mapping a folder named 'fbneo' as a version of 'arcade' will cause RomM to search for Arcade metadata when scanning 'fbneo' games.",
+ "folder-name": "Folder name",
+ "folder-name-header": "Folder name",
+ "gallery": "Gallery",
+ "group-roms": "Group ROMs",
+ "group-roms-desc": "Group versions of the same ROM together in the gallery",
+ "home": "Home",
+ "interface": "Interface",
+ "invite-link": "Invite link",
+ "language": "Language",
+ "main-platform": "Main platform",
+ "manual": "Manual",
+ "missing-games-none": "No missing ROMs found",
+ "missing-games-tab": "Missing games",
+ "missing-platform-from-fs": "Missing platform from filesystem",
+ "no-missing-roms-to-delete": "No missing ROMs to delete",
+ "no-tasks-in-history": "No tasks in history",
+ "parent-platform": "Parent platform",
+ "password": "Password",
+ "password-placeholder": "Leave empty to keep current password",
+ "passwords-must-match": "Passwords must match",
+ "platform-mapping-created": "Platform mapping created",
+ "platform-mapping-deleted": "Platform mapping deleted",
+ "platform-mapping-updated": "Platform mapping updated",
+ "platform-variant": "Platform variant",
+ "platform-variant-description": "Maps a folder to a parent platform's metadata. For example, map 'n64dd' as a variant of 'n64' to inherit N64 metadata.",
+ "platform-version": "Platform version",
+ "platforms-bindings": "Folder aliases",
+ "platforms-drawer": "Platforms menu",
+ "platforms-drawer-group-by": "Group by",
+ "platforms-versions": "Platform variants",
+ "progress": "Progress",
+ "queued": "Queued",
+ "recently-added-as-grid": "Recently added ROMs as grid",
+ "recently-added-as-grid-desc": "View recently added ROM cards as a grid at the home page",
+ "removed": "Removed",
+ "repeat-password": "Repeat password",
+ "repeat-password-required": "Repeat password is required",
+ "role": "Role",
+ "romm-platform": "RomM platform",
+ "romm-platform-header": "RomM platform",
+ "running": "Running",
+ "scan": "Scan",
+ "scheduled": "Scheduled",
+ "select-exclusion-type": "Select what to exclude",
+ "show-actionbar": "Show action bar",
+ "show-actionbar-desc": "Show action bar in the game card always",
+ "show-collections": "Show collections",
+ "show-collections-as-grid": "Collections as grid",
+ "show-collections-as-grid-desc": "View collection cards as a grid at the home page",
+ "show-collections-desc": "Show collections section at the home page",
+ "show-continue-playing": "Show continue playing",
+ "show-continue-playing-desc": "Show continue playing section at the home page",
+ "show-game-titles": "Show game titles",
+ "show-game-titles-desc": "Always show game titles on game cards",
+ "show-languages": "Show languages",
+ "show-languages-desc": "Show language flags in the gallery",
+ "show-platforms": "Show platforms",
+ "show-platforms-as-grid": "Platforms as grid",
+ "show-platforms-as-grid-desc": "View platform cards as a grid at the home page",
+ "show-platforms-desc": "Show platforms section at the home page",
+ "show-recently-added": "Show recently added ROMs",
+ "show-recently-added-desc": "Show recently added ROMs section at the home page",
+ "show-regions": "Show regions",
+ "show-regions-desc": "Show region flags in the gallery",
+ "show-siblings": "Show siblings",
+ "show-siblings-desc": "Show siblings count in the gallery when \"Group ROMs\" option is enabled",
+ "show-stats": "Show stats",
+ "show-stats-desc": "Show stats summary at the home page",
+ "show-status": "Show status",
+ "show-status-desc": "Show status icons in the gallery (backlogged, playing, completed, etc)",
+ "show-virtual-collections": "Show autogenerated collections",
+ "show-virtual-collections-desc": "Displayed in the homepage and collections sidebar.",
+ "stopped": "Stopped",
+ "task-history": "Task History",
+ "tasks": "Tasks",
+ "theme": "Theme",
+ "theme-auto": "Auto",
+ "theme-dark": "Dark",
+ "theme-light": "Light",
+ "type-header": "Type",
+ "unable-to-create-platform-mapping": "Unable to create platform mapping: {detail}",
+ "unable-to-delete-platform-mapping": "Unable to delete platform mapping: {detail}",
+ "unable-to-get-supported-platforms": "Unable to get supported platforms: {detail}",
+ "unable-to-update-platform-mapping": "Unable to update platform mapping: {detail}",
+ "update": "Update",
+ "username": "Username",
+ "variant-folder": "Variant folder",
+ "virtual-collection-type": "Virtual collection type (ROM grouping method)",
+ "watcher": "Watcher"
+}
diff --git a/frontend/src/locales/bg_BG/setup.json b/frontend/src/locales/bg_BG/setup.json
new file mode 100644
index 000000000..25e98327f
--- /dev/null
+++ b/frontend/src/locales/bg_BG/setup.json
@@ -0,0 +1,28 @@
+{
+ "admin-user-step": "Create an admin user",
+ "cancel": "Cancel",
+ "check-metadata-step": "Check metadata sources",
+ "confirm-create-platforms": "RomM will create Structure {structure} ({pattern}) with {count} platform{plural}. Continue?",
+ "confirm-no-platforms": "No folder structure detected and no platforms selected. You will need to create the folder structure manually. Continue?",
+ "confirm-no-structure": "No folder structure detected. RomM will create Structure A (roms/{platform}) with {count} platform{plural}. Continue?",
+ "continue": "Continue",
+ "deselect-all": "Deselect All",
+ "detected-platforms": "Detected Platforms",
+ "finish": "Finish",
+ "folder-structure": "Folder structure",
+ "game": "game",
+ "games": "games",
+ "library-structure-step": "Setup library structure",
+ "metadata-missing": "API key missing or invalid",
+ "next": "Next",
+ "no-structure-detected": "No structure detected - Structure A will be created",
+ "platform": "platform",
+ "platforms": "platforms",
+ "previous": "previous",
+ "select-all": "Select All",
+ "select-platforms": "Select Platforms to Create",
+ "selected": "selected",
+ "structure-a-detected": "Structure A detected",
+ "structure-b-detected": "Structure B detected",
+ "supported-platforms": "Supported Platforms"
+}