mirror of
https://github.com/rommapp/romm.git
synced 2026-02-18 00:27:41 +01:00
Add localization support for setup and settings in multiple languages
- Created new setup.json files for English (en_US), Spanish (es_ES), French (fr_FR), Hungarian (hu_HU), Italian (it_IT), Japanese (ja_JP), Korean (ko_KR), Polish (pl_PL), Portuguese (pt_BR), Romanian (ro_RO), Russian (ru_RU), Simplified Chinese (zh_CN), and Traditional Chinese (zh_TW). - Updated settings.json files to include new password-related messages in Spanish, French, Hungarian, Italian, Japanese, Korean, Polish, Portuguese, Romanian, and Russian. - Refactored Setup.vue to utilize localization for various user prompts and messages related to folder structure and platform selection.
This commit is contained in:
@@ -268,14 +268,6 @@ async def create_setup_platforms(request: Request, platform_slugs: list[str]):
|
||||
- message: success or error message
|
||||
"""
|
||||
|
||||
# Check authentication - only allow public access if no admin users
|
||||
admin_users = db_user_handler.get_admin_users()
|
||||
if len(admin_users) > 0:
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_403_FORBIDDEN,
|
||||
detail="Setup endpoints only accessible during initial setup",
|
||||
)
|
||||
|
||||
if not platform_slugs:
|
||||
return {
|
||||
"success": True,
|
||||
@@ -302,7 +294,6 @@ async def create_setup_platforms(request: Request, platform_slugs: list[str]):
|
||||
await fs_platform_handler.add_platform(fs_slug=fs_slug)
|
||||
created_count += 1
|
||||
except PlatformAlreadyExistsException:
|
||||
# Platform already exists, skip
|
||||
continue
|
||||
except (PermissionError, OSError) as e:
|
||||
failed_platforms.append(f"{fs_slug}: {str(e)}")
|
||||
|
||||
@@ -94,5 +94,8 @@
|
||||
"update": "Aktualizovat",
|
||||
"username": "Uživatelské jméno",
|
||||
"virtual-collection-type": "Typ virtuální kolekce (způsob seskupování ROM)",
|
||||
"watcher": "Sledovač"
|
||||
"watcher": "Sledovač",
|
||||
"passwords-must-match": "Hesla se musí shodovat",
|
||||
"repeat-password": "Opakujte heslo",
|
||||
"repeat-password-required": "Je vyžadováno opakování hesla"
|
||||
}
|
||||
|
||||
28
frontend/src/locales/cs_CZ/setup.json
Normal file
28
frontend/src/locales/cs_CZ/setup.json
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"admin-user-step": "Vytvořit administrátorského uživatele",
|
||||
"available-platforms": "Dostupné platformy",
|
||||
"cancel": "Zrušit",
|
||||
"check-metadata-step": "Zkontrolovat zdroje metadat",
|
||||
"confirm-create-platforms": "RomM vytvoří strukturu {structure} ({pattern}) s {count} platforma{plural}. Pokračovat?",
|
||||
"confirm-no-platforms": "Nebyla detekována žádná struktura složek a nebyly vybrány žádné platformy. Budete muset vytvořit strukturu složek ručně. Pokračovat?",
|
||||
"confirm-no-structure": "Nebyla detekována žádná struktura složek. RomM vytvoří strukturu A (roms/{platform}) s {count} platforma{plural}. Pokračovat?",
|
||||
"continue": "Pokračovat",
|
||||
"detected-platforms": "Detekované platformy",
|
||||
"deselect-all": "Zrušit výběr všech",
|
||||
"finish": "Dokončit",
|
||||
"folder-structure": "Struktura složek",
|
||||
"game": "hra",
|
||||
"games": "hry",
|
||||
"library-structure-step": "Nastavit strukturu knihovny",
|
||||
"metadata-missing": "Chybí nebo je neplatný API klíč",
|
||||
"next": "Další",
|
||||
"no-structure-detected": "Nebyla detekována žádná struktura - bude vytvořena struktura A",
|
||||
"platform": "platforma",
|
||||
"platforms": "platformy",
|
||||
"previous": "předchozí",
|
||||
"select-all": "Vybrat vše",
|
||||
"select-platforms": "Vyberte platformy k vytvoření",
|
||||
"selected": "vybráno",
|
||||
"structure-a-detected": "Detekována struktura A",
|
||||
"structure-b-detected": "Detekována struktura B"
|
||||
}
|
||||
@@ -94,5 +94,8 @@
|
||||
"update": "Aktualisieren",
|
||||
"username": "Benutzername",
|
||||
"virtual-collection-type": "Typ der automatisch generierten Sammlung (ROM-Gruppierungsmethode)",
|
||||
"watcher": "Überwacher"
|
||||
"watcher": "Überwacher",
|
||||
"passwords-must-match": "Passwörter müssen übereinstimmen",
|
||||
"repeat-password": "Passwort wiederholen",
|
||||
"repeat-password-required": "Passwortwiederholung erforderlich"
|
||||
}
|
||||
|
||||
28
frontend/src/locales/de_DE/setup.json
Normal file
28
frontend/src/locales/de_DE/setup.json
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"admin-user-step": "Administrator-Benutzer erstellen",
|
||||
"available-platforms": "Verfügbare Plattformen",
|
||||
"cancel": "Abbrechen",
|
||||
"check-metadata-step": "Metadatenquellen überprüfen",
|
||||
"confirm-create-platforms": "RomM erstellt Struktur {structure} ({pattern}) mit {count} Plattform{plural}. Fortfahren?",
|
||||
"confirm-no-platforms": "Keine Ordnerstruktur erkannt und keine Plattformen ausgewählt. Sie müssen die Ordnerstruktur manuell erstellen. Fortfahren?",
|
||||
"confirm-no-structure": "Keine Ordnerstruktur erkannt. RomM erstellt Struktur A (roms/{platform}) mit {count} Plattform{plural}. Fortfahren?",
|
||||
"continue": "Fortfahren",
|
||||
"detected-platforms": "Erkannte Plattformen",
|
||||
"deselect-all": "Alle abwählen",
|
||||
"finish": "Fertig",
|
||||
"folder-structure": "Ordnerstruktur",
|
||||
"game": "Spiel",
|
||||
"games": "Spiele",
|
||||
"library-structure-step": "Bibliotheksstruktur einrichten",
|
||||
"metadata-missing": "API-Schlüssel fehlt oder ist ungültig",
|
||||
"next": "Weiter",
|
||||
"no-structure-detected": "Keine Struktur erkannt - Struktur A wird erstellt",
|
||||
"platform": "Plattform",
|
||||
"platforms": "Plattformen",
|
||||
"previous": "zurück",
|
||||
"select-all": "Alle auswählen",
|
||||
"select-platforms": "Plattformen zum Erstellen auswählen",
|
||||
"selected": "ausgewählt",
|
||||
"structure-a-detected": "Struktur A erkannt",
|
||||
"structure-b-detected": "Struktur B erkannt"
|
||||
}
|
||||
@@ -94,5 +94,8 @@
|
||||
"update": "Update",
|
||||
"username": "Username",
|
||||
"virtual-collection-type": "Virtual collection type (ROM grouping method)",
|
||||
"watcher": "Watcher"
|
||||
"watcher": "Watcher",
|
||||
"passwords-must-match": "Passwords must match",
|
||||
"repeat-password": "Repeat password",
|
||||
"repeat-password-required": "Repeat password is required"
|
||||
}
|
||||
|
||||
28
frontend/src/locales/en_GB/setup.json
Normal file
28
frontend/src/locales/en_GB/setup.json
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"admin-user-step": "Create an admin user",
|
||||
"available-platforms": "Available Platforms",
|
||||
"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",
|
||||
"detected-platforms": "Detected Platforms",
|
||||
"deselect-all": "Deselect All",
|
||||
"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"
|
||||
}
|
||||
@@ -41,6 +41,7 @@
|
||||
"no-tasks-in-history": "No tasks in history",
|
||||
"password": "Password",
|
||||
"password-placeholder": "Leave empty to keep current password",
|
||||
"passwords-must-match": "Passwords must match",
|
||||
"platform-version": "Platform version",
|
||||
"platforms-bindings": "Platforms bindings",
|
||||
"platforms-drawer": "Platforms menu",
|
||||
@@ -51,6 +52,8 @@
|
||||
"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",
|
||||
"running": "Running",
|
||||
|
||||
28
frontend/src/locales/en_US/setup.json
Normal file
28
frontend/src/locales/en_US/setup.json
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"admin-user-step": "Create an admin user",
|
||||
"available-platforms": "Available Platforms",
|
||||
"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",
|
||||
"detected-platforms": "Detected Platforms",
|
||||
"deselect-all": "Deselect All",
|
||||
"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"
|
||||
}
|
||||
@@ -94,5 +94,8 @@
|
||||
"update": "Actualizar",
|
||||
"username": "Nombre de usuario",
|
||||
"virtual-collection-type": "Tipo de colección virtual (método de agrupación de ROM)",
|
||||
"watcher": "Vigilante"
|
||||
"watcher": "Vigilante",
|
||||
"passwords-must-match": "Las contraseñas deben coincidir",
|
||||
"repeat-password": "Repetir contraseña",
|
||||
"repeat-password-required": "Se requiere repetir la contraseña"
|
||||
}
|
||||
|
||||
28
frontend/src/locales/es_ES/setup.json
Normal file
28
frontend/src/locales/es_ES/setup.json
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"admin-user-step": "Crear un usuario administrador",
|
||||
"available-platforms": "Plataformas disponibles",
|
||||
"cancel": "Cancelar",
|
||||
"check-metadata-step": "Comprobar fuentes de metadatos",
|
||||
"confirm-create-platforms": "RomM creará la estructura {structure} ({pattern}) con {count} plataforma{plural}. ¿Continuar?",
|
||||
"confirm-no-platforms": "No se detectó estructura de carpetas y no se seleccionaron plataformas. Necesitará crear la estructura de carpetas manualmente. ¿Continuar?",
|
||||
"confirm-no-structure": "No se detectó estructura de carpetas. RomM creará la estructura A (roms/{platform}) con {count} plataforma{plural}. ¿Continuar?",
|
||||
"continue": "Continuar",
|
||||
"detected-platforms": "Plataformas detectadas",
|
||||
"deselect-all": "Deseleccionar todo",
|
||||
"finish": "Finalizar",
|
||||
"folder-structure": "Estructura de carpetas",
|
||||
"game": "juego",
|
||||
"games": "juegos",
|
||||
"library-structure-step": "Configurar estructura de biblioteca",
|
||||
"metadata-missing": "Falta clave API o es inválida",
|
||||
"next": "Siguiente",
|
||||
"no-structure-detected": "No se detectó estructura - se creará la estructura A",
|
||||
"platform": "plataforma",
|
||||
"platforms": "plataformas",
|
||||
"previous": "anterior",
|
||||
"select-all": "Seleccionar todo",
|
||||
"select-platforms": "Seleccionar plataformas a crear",
|
||||
"selected": "seleccionado",
|
||||
"structure-a-detected": "Estructura A detectada",
|
||||
"structure-b-detected": "Estructura B detectada"
|
||||
}
|
||||
@@ -94,5 +94,8 @@
|
||||
"update": "Mettre à jour",
|
||||
"username": "Nom d'utilisateur",
|
||||
"virtual-collection-type": "Type de collection virtuelle (méthode de regroupement des roms)",
|
||||
"watcher": "Surveilleur"
|
||||
"watcher": "Surveilleur",
|
||||
"passwords-must-match": "Les mots de passe doivent correspondre",
|
||||
"repeat-password": "Répéter le mot de passe",
|
||||
"repeat-password-required": "La répétition du mot de passe est requise"
|
||||
}
|
||||
|
||||
28
frontend/src/locales/fr_FR/setup.json
Normal file
28
frontend/src/locales/fr_FR/setup.json
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"admin-user-step": "Créer un utilisateur administrateur",
|
||||
"available-platforms": "Plateformes disponibles",
|
||||
"cancel": "Annuler",
|
||||
"check-metadata-step": "Vérifier les sources de métadonnées",
|
||||
"confirm-create-platforms": "RomM créera la structure {structure} ({pattern}) avec {count} plateforme{plural}. Continuer?",
|
||||
"confirm-no-platforms": "Aucune structure de dossiers détectée et aucune plateforme sélectionnée. Vous devrez créer la structure de dossiers manuellement. Continuer?",
|
||||
"confirm-no-structure": "Aucune structure de dossiers détectée. RomM créera la structure A (roms/{platform}) avec {count} plateforme{plural}. Continuer?",
|
||||
"continue": "Continuer",
|
||||
"detected-platforms": "Plateformes détectées",
|
||||
"deselect-all": "Tout désélectionner",
|
||||
"finish": "Terminer",
|
||||
"folder-structure": "Structure des dossiers",
|
||||
"game": "jeu",
|
||||
"games": "jeux",
|
||||
"library-structure-step": "Configurer la structure de la bibliothèque",
|
||||
"metadata-missing": "Clé API manquante ou invalide",
|
||||
"next": "Suivant",
|
||||
"no-structure-detected": "Aucune structure détectée - la structure A sera créée",
|
||||
"platform": "plateforme",
|
||||
"platforms": "plateformes",
|
||||
"previous": "précédent",
|
||||
"select-all": "Tout sélectionner",
|
||||
"select-platforms": "Sélectionner les plateformes à créer",
|
||||
"selected": "sélectionné",
|
||||
"structure-a-detected": "Structure A détectée",
|
||||
"structure-b-detected": "Structure B détectée"
|
||||
}
|
||||
@@ -94,5 +94,8 @@
|
||||
"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ő"
|
||||
"watcher": "Figyelő",
|
||||
"passwords-must-match": "A jelszavaknak egyezniük kell",
|
||||
"repeat-password": "Jelszó ismétlése",
|
||||
"repeat-password-required": "A jelszó ismétlése kötelező"
|
||||
}
|
||||
|
||||
28
frontend/src/locales/hu_HU/setup.json
Normal file
28
frontend/src/locales/hu_HU/setup.json
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"admin-user-step": "Rendszergazda felhasználó létrehozása",
|
||||
"available-platforms": "Elérhető platformok",
|
||||
"cancel": "Mégse",
|
||||
"check-metadata-step": "Metaadat források ellenőrzése",
|
||||
"confirm-create-platforms": "RomM létrehozza a(z) {structure} struktúrát ({pattern}) {count} platform{plural}. Folytatás?",
|
||||
"confirm-no-platforms": "Nem található mappastruktúra és nincsenek kiválasztott platformok. Kézzel kell létrehoznia a mappastruktúrát. Folytatás?",
|
||||
"confirm-no-structure": "Nem található mappastruktúra. RomM létrehozza az A struktúrát (roms/{platform}) {count} platform{plural}. Folytatás?",
|
||||
"continue": "Folytatás",
|
||||
"detected-platforms": "Észlelt platformok",
|
||||
"deselect-all": "Összes kijelölés törlése",
|
||||
"finish": "Befejezés",
|
||||
"folder-structure": "Mappastruktúra",
|
||||
"game": "játék",
|
||||
"games": "játékok",
|
||||
"library-structure-step": "Könyvtárstruktúra beállítása",
|
||||
"metadata-missing": "API kulcs hiányzik vagy érvénytelen",
|
||||
"next": "Következő",
|
||||
"no-structure-detected": "Nem található struktúra - A struktúra lesz létrehozva",
|
||||
"platform": "platform",
|
||||
"platforms": "platformok",
|
||||
"previous": "előző",
|
||||
"select-all": "Összes kijelölése",
|
||||
"select-platforms": "Létrehozandó platformok kiválasztása",
|
||||
"selected": "kiválasztva",
|
||||
"structure-a-detected": "A struktúra észlelve",
|
||||
"structure-b-detected": "B struktúra észlelve"
|
||||
}
|
||||
@@ -94,5 +94,8 @@
|
||||
"update": "Aggiorna",
|
||||
"username": "Nome utente",
|
||||
"virtual-collection-type": "Tipo di collezione virtuale (Metodo di raggruppamento delle rom)",
|
||||
"watcher": "Monitor"
|
||||
"watcher": "Monitor",
|
||||
"passwords-must-match": "Le password devono corrispondere",
|
||||
"repeat-password": "Ripeti password",
|
||||
"repeat-password-required": "È richiesta la ripetizione della password"
|
||||
}
|
||||
|
||||
28
frontend/src/locales/it_IT/setup.json
Normal file
28
frontend/src/locales/it_IT/setup.json
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"admin-user-step": "Crea un utente amministratore",
|
||||
"available-platforms": "Piattaforme disponibili",
|
||||
"cancel": "Annulla",
|
||||
"check-metadata-step": "Controlla le fonti dei metadati",
|
||||
"confirm-create-platforms": "RomM creerà la struttura {structure} ({pattern}) con {count} piattaforma{plural}. Continuare?",
|
||||
"confirm-no-platforms": "Nessuna struttura di cartelle rilevata e nessuna piattaforma selezionata. Dovrai creare manualmente la struttura delle cartelle. Continuare?",
|
||||
"confirm-no-structure": "Nessuna struttura di cartelle rilevata. RomM creerà la struttura A (roms/{platform}) con {count} piattaforma{plural}. Continuare?",
|
||||
"continue": "Continua",
|
||||
"detected-platforms": "Piattaforme rilevate",
|
||||
"deselect-all": "Deseleziona tutto",
|
||||
"finish": "Fine",
|
||||
"folder-structure": "Struttura delle cartelle",
|
||||
"game": "gioco",
|
||||
"games": "giochi",
|
||||
"library-structure-step": "Configura la struttura della libreria",
|
||||
"metadata-missing": "Chiave API mancante o non valida",
|
||||
"next": "Avanti",
|
||||
"no-structure-detected": "Nessuna struttura rilevata - verrà creata la struttura A",
|
||||
"platform": "piattaforma",
|
||||
"platforms": "piattaforme",
|
||||
"previous": "precedente",
|
||||
"select-all": "Seleziona tutto",
|
||||
"select-platforms": "Seleziona piattaforme da creare",
|
||||
"selected": "selezionato",
|
||||
"structure-a-detected": "Struttura A rilevata",
|
||||
"structure-b-detected": "Struttura B rilevata"
|
||||
}
|
||||
@@ -94,5 +94,8 @@
|
||||
"update": "更新",
|
||||
"username": "ユーザ名",
|
||||
"virtual-collection-type": "バーチャルコレクションタイプ (romのグループ化方法)",
|
||||
"watcher": "ウォッチャー"
|
||||
"watcher": "ウォッチャー",
|
||||
"passwords-must-match": "パスワードが一致しません",
|
||||
"repeat-password": "パスワードを再入力",
|
||||
"repeat-password-required": "パスワードの再入力が必要です"
|
||||
}
|
||||
|
||||
28
frontend/src/locales/ja_JP/setup.json
Normal file
28
frontend/src/locales/ja_JP/setup.json
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"admin-user-step": "管理者ユーザーを作成",
|
||||
"available-platforms": "利用可能なプラットフォーム",
|
||||
"cancel": "キャンセル",
|
||||
"check-metadata-step": "メタデータソースを確認",
|
||||
"confirm-create-platforms": "RomMは構造{structure}({pattern})を{count}プラットフォーム{plural}で作成します。続行しますか?",
|
||||
"confirm-no-platforms": "フォルダ構造が検出されず、プラットフォームも選択されていません。フォルダ構造を手動で作成する必要があります。続行しますか?",
|
||||
"confirm-no-structure": "フォルダ構造が検出されませんでした。RomMは構造A(roms/{platform})を{count}プラットフォーム{plural}で作成します。続行しますか?",
|
||||
"continue": "続行",
|
||||
"detected-platforms": "検出されたプラットフォーム",
|
||||
"deselect-all": "すべて選択解除",
|
||||
"finish": "完了",
|
||||
"folder-structure": "フォルダ構造",
|
||||
"game": "ゲーム",
|
||||
"games": "ゲーム",
|
||||
"library-structure-step": "ライブラリ構造を設定",
|
||||
"metadata-missing": "APIキーがないか無効です",
|
||||
"next": "次へ",
|
||||
"no-structure-detected": "構造が検出されませんでした - 構造Aが作成されます",
|
||||
"platform": "プラットフォーム",
|
||||
"platforms": "プラットフォーム",
|
||||
"previous": "前へ",
|
||||
"select-all": "すべて選択",
|
||||
"select-platforms": "作成するプラットフォームを選択",
|
||||
"selected": "選択済み",
|
||||
"structure-a-detected": "構造Aが検出されました",
|
||||
"structure-b-detected": "構造Bが検出されました"
|
||||
}
|
||||
@@ -94,5 +94,8 @@
|
||||
"update": "업데이트",
|
||||
"username": "아이디",
|
||||
"virtual-collection-type": "자동 생성된 모음집 유형(롬 그룹화 방법)",
|
||||
"watcher": "감시자"
|
||||
"watcher": "감시자",
|
||||
"passwords-must-match": "비밀번호가 일치해야 합니다",
|
||||
"repeat-password": "비밀번호 재입력",
|
||||
"repeat-password-required": "비밀번호 재입력이 필요합니다"
|
||||
}
|
||||
|
||||
28
frontend/src/locales/ko_KR/setup.json
Normal file
28
frontend/src/locales/ko_KR/setup.json
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"admin-user-step": "관리자 사용자 생성",
|
||||
"available-platforms": "사용 가능한 플랫폼",
|
||||
"cancel": "취소",
|
||||
"check-metadata-step": "메타데이터 소스 확인",
|
||||
"confirm-create-platforms": "RomM이 구조 {structure}({pattern})를 {count}개 플랫폼{plural}으로 생성합니다. 계속하시겠습니까?",
|
||||
"confirm-no-platforms": "폴더 구조가 감지되지 않았고 플랫폼도 선택되지 않았습니다. 폴더 구조를 수동으로 생성해야 합니다. 계속하시겠습니까?",
|
||||
"confirm-no-structure": "폴더 구조가 감지되지 않았습니다. RomM이 구조 A(roms/{platform})를 {count}개 플랫폼{plural}으로 생성합니다. 계속하시겠습니까?",
|
||||
"continue": "계속",
|
||||
"detected-platforms": "감지된 플랫폼",
|
||||
"deselect-all": "모두 선택 해제",
|
||||
"finish": "완료",
|
||||
"folder-structure": "폴더 구조",
|
||||
"game": "게임",
|
||||
"games": "게임",
|
||||
"library-structure-step": "라이브러리 구조 설정",
|
||||
"metadata-missing": "API 키가 없거나 유효하지 않음",
|
||||
"next": "다음",
|
||||
"no-structure-detected": "구조가 감지되지 않음 - 구조 A가 생성됩니다",
|
||||
"platform": "플랫폼",
|
||||
"platforms": "플랫폼",
|
||||
"previous": "이전",
|
||||
"select-all": "모두 선택",
|
||||
"select-platforms": "생성할 플랫폼 선택",
|
||||
"selected": "선택됨",
|
||||
"structure-a-detected": "구조 A가 감지됨",
|
||||
"structure-b-detected": "구조 B가 감지됨"
|
||||
}
|
||||
@@ -94,5 +94,8 @@
|
||||
"update": "Aktualizuj",
|
||||
"username": "Nazwa użytkownika",
|
||||
"virtual-collection-type": "Typ automatycznej kolekcji (metoda grupowania ROM-ów)",
|
||||
"watcher": "Monitor"
|
||||
"watcher": "Monitor",
|
||||
"passwords-must-match": "Hasła muszą się zgadzać",
|
||||
"repeat-password": "Powtórz hasło",
|
||||
"repeat-password-required": "Wymagane jest powtórzenie hasła"
|
||||
}
|
||||
|
||||
28
frontend/src/locales/pl_PL/setup.json
Normal file
28
frontend/src/locales/pl_PL/setup.json
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"admin-user-step": "Utwórz użytkownika administratora",
|
||||
"available-platforms": "Dostępne platformy",
|
||||
"cancel": "Anuluj",
|
||||
"check-metadata-step": "Sprawdź źródła metadanych",
|
||||
"confirm-create-platforms": "RomM utworzy strukturę {structure} ({pattern}) z {count} platforma{plural}. Kontynuować?",
|
||||
"confirm-no-platforms": "Nie wykryto struktury folderów i nie wybrano żadnych platform. Będziesz musiał ręcznie utworzyć strukturę folderów. Kontynuować?",
|
||||
"confirm-no-structure": "Nie wykryto struktury folderów. RomM utworzy strukturę A (roms/{platform}) z {count} platforma{plural}. Kontynuować?",
|
||||
"continue": "Kontynuuj",
|
||||
"detected-platforms": "Wykryte platformy",
|
||||
"deselect-all": "Odznacz wszystkie",
|
||||
"finish": "Zakończ",
|
||||
"folder-structure": "Struktura folderów",
|
||||
"game": "gra",
|
||||
"games": "gry",
|
||||
"library-structure-step": "Skonfiguruj strukturę biblioteki",
|
||||
"metadata-missing": "Brak klucza API lub jest nieprawidłowy",
|
||||
"next": "Dalej",
|
||||
"no-structure-detected": "Nie wykryto struktury - zostanie utworzona struktura A",
|
||||
"platform": "platforma",
|
||||
"platforms": "platformy",
|
||||
"previous": "wstecz",
|
||||
"select-all": "Zaznacz wszystkie",
|
||||
"select-platforms": "Wybierz platformy do utworzenia",
|
||||
"selected": "wybrano",
|
||||
"structure-a-detected": "Wykryto strukturę A",
|
||||
"structure-b-detected": "Wykryto strukturę B"
|
||||
}
|
||||
@@ -94,5 +94,8 @@
|
||||
"update": "Atualizar",
|
||||
"username": "Nome de usuário",
|
||||
"virtual-collection-type": "Tipo de coleção virtual (método de agrupamento de ROM)",
|
||||
"watcher": "Monitor"
|
||||
"watcher": "Monitor",
|
||||
"passwords-must-match": "As senhas devem coincidir",
|
||||
"repeat-password": "Repetir senha",
|
||||
"repeat-password-required": "É necessário repetir a senha"
|
||||
}
|
||||
|
||||
28
frontend/src/locales/pt_BR/setup.json
Normal file
28
frontend/src/locales/pt_BR/setup.json
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"admin-user-step": "Criar um usuário administrador",
|
||||
"available-platforms": "Plataformas disponíveis",
|
||||
"cancel": "Cancelar",
|
||||
"check-metadata-step": "Verificar fontes de metadados",
|
||||
"confirm-create-platforms": "RomM criará a estrutura {structure} ({pattern}) com {count} plataforma{plural}. Continuar?",
|
||||
"confirm-no-platforms": "Nenhuma estrutura de pasta detectada e nenhuma plataforma selecionada. Você precisará criar a estrutura de pastas manualmente. Continuar?",
|
||||
"confirm-no-structure": "Nenhuma estrutura de pasta detectada. RomM criará a estrutura A (roms/{platform}) com {count} plataforma{plural}. Continuar?",
|
||||
"continue": "Continuar",
|
||||
"detected-platforms": "Plataformas detectadas",
|
||||
"deselect-all": "Desselecionar tudo",
|
||||
"finish": "Finalizar",
|
||||
"folder-structure": "Estrutura de pastas",
|
||||
"game": "jogo",
|
||||
"games": "jogos",
|
||||
"library-structure-step": "Configurar estrutura da biblioteca",
|
||||
"metadata-missing": "Chave de API ausente ou inválida",
|
||||
"next": "Próximo",
|
||||
"no-structure-detected": "Nenhuma estrutura detectada - a estrutura A será criada",
|
||||
"platform": "plataforma",
|
||||
"platforms": "plataformas",
|
||||
"previous": "anterior",
|
||||
"select-all": "Selecionar tudo",
|
||||
"select-platforms": "Selecionar plataformas para criar",
|
||||
"selected": "selecionado",
|
||||
"structure-a-detected": "Estrutura A detectada",
|
||||
"structure-b-detected": "Estrutura B detectada"
|
||||
}
|
||||
@@ -94,5 +94,8 @@
|
||||
"update": "Actualizează",
|
||||
"username": "Nume de utilizator",
|
||||
"virtual-collection-type": "Tip de colecție virtuală (metoda de grupare a rom-urilor)",
|
||||
"watcher": "Monitor"
|
||||
"watcher": "Monitor",
|
||||
"passwords-must-match": "Parolele trebuie să se potrivească",
|
||||
"repeat-password": "Repetă parola",
|
||||
"repeat-password-required": "Este necesar să repetați parola"
|
||||
}
|
||||
|
||||
28
frontend/src/locales/ro_RO/setup.json
Normal file
28
frontend/src/locales/ro_RO/setup.json
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"admin-user-step": "Creează un utilizator administrator",
|
||||
"available-platforms": "Platforme disponibile",
|
||||
"cancel": "Anulează",
|
||||
"check-metadata-step": "Verifică sursele de metadate",
|
||||
"confirm-create-platforms": "RomM va crea structura {structure} ({pattern}) cu {count} platformă{plural}. Continuă?",
|
||||
"confirm-no-platforms": "Nu s-a detectat nicio structură de directoare și nu au fost selectate platforme. Va trebui să creezi manual structura directoarelor. Continuă?",
|
||||
"confirm-no-structure": "Nu s-a detectat nicio structură de directoare. RomM va crea structura A (roms/{platform}) cu {count} platformă{plural}. Continuă?",
|
||||
"continue": "Continuă",
|
||||
"detected-platforms": "Platforme detectate",
|
||||
"deselect-all": "Deselectează tot",
|
||||
"finish": "Finalizează",
|
||||
"folder-structure": "Structura directoarelor",
|
||||
"game": "joc",
|
||||
"games": "jocuri",
|
||||
"library-structure-step": "Configurează structura bibliotecii",
|
||||
"metadata-missing": "Cheie API lipsă sau invalidă",
|
||||
"next": "Următorul",
|
||||
"no-structure-detected": "Nu s-a detectat nicio structură - se va crea structura A",
|
||||
"platform": "platformă",
|
||||
"platforms": "platforme",
|
||||
"previous": "anterior",
|
||||
"select-all": "Selectează tot",
|
||||
"select-platforms": "Selectează platformele de creat",
|
||||
"selected": "selectat",
|
||||
"structure-a-detected": "Structura A detectată",
|
||||
"structure-b-detected": "Structura B detectată"
|
||||
}
|
||||
@@ -94,5 +94,8 @@
|
||||
"update": "Обновить",
|
||||
"username": "Имя пользователя",
|
||||
"virtual-collection-type": "Тип виртуальной коллекции (метод группировки ромов)",
|
||||
"watcher": "Наблюдатель"
|
||||
"watcher": "Наблюдатель",
|
||||
"passwords-must-match": "Пароли должны совпадать",
|
||||
"repeat-password": "Повторите пароль",
|
||||
"repeat-password-required": "Требуется повторить пароль"
|
||||
}
|
||||
|
||||
28
frontend/src/locales/ru_RU/setup.json
Normal file
28
frontend/src/locales/ru_RU/setup.json
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"admin-user-step": "Создать пользователя-администратора",
|
||||
"available-platforms": "Доступные платформы",
|
||||
"cancel": "Отмена",
|
||||
"check-metadata-step": "Проверить источники метаданных",
|
||||
"confirm-create-platforms": "RomM создаст структуру {structure} ({pattern}) с {count} платформ{plural}. Продолжить?",
|
||||
"confirm-no-platforms": "Структура папок не обнаружена и платформы не выбраны. Вам нужно будет создать структуру папок вручную. Продолжить?",
|
||||
"confirm-no-structure": "Структура папок не обнаружена. RomM создаст структуру A (roms/{platform}) с {count} платформ{plural}. Продолжить?",
|
||||
"continue": "Продолжить",
|
||||
"detected-platforms": "Обнаруженные платформы",
|
||||
"deselect-all": "Снять все выделения",
|
||||
"finish": "Завершить",
|
||||
"folder-structure": "Структура папок",
|
||||
"game": "игра",
|
||||
"games": "игры",
|
||||
"library-structure-step": "Настроить структуру библиотеки",
|
||||
"metadata-missing": "API ключ отсутствует или недействителен",
|
||||
"next": "Далее",
|
||||
"no-structure-detected": "Структура не обнаружена - будет создана структура A",
|
||||
"platform": "платформа",
|
||||
"platforms": "платформы",
|
||||
"previous": "назад",
|
||||
"select-all": "Выбрать все",
|
||||
"select-platforms": "Выбрать платформы для создания",
|
||||
"selected": "выбрано",
|
||||
"structure-a-detected": "Обнаружена структура A",
|
||||
"structure-b-detected": "Обнаружена структура B"
|
||||
}
|
||||
@@ -94,5 +94,8 @@
|
||||
"update": "更新",
|
||||
"username": "用户名",
|
||||
"virtual-collection-type": "虚拟收藏类型(Rom 文件分组方法)",
|
||||
"watcher": "监视器"
|
||||
"watcher": "监视器",
|
||||
"passwords-must-match": "密码必须匹配",
|
||||
"repeat-password": "重复密码",
|
||||
"repeat-password-required": "需要重复密码"
|
||||
}
|
||||
|
||||
28
frontend/src/locales/zh_CN/setup.json
Normal file
28
frontend/src/locales/zh_CN/setup.json
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"admin-user-step": "创建管理员用户",
|
||||
"available-platforms": "可用平台",
|
||||
"cancel": "取消",
|
||||
"check-metadata-step": "检查元数据源",
|
||||
"confirm-create-platforms": "RomM 将创建结构 {structure}({pattern})包含 {count} 个平台{plural}。继续吗?",
|
||||
"confirm-no-platforms": "未检测到文件夹结构且未选择平台。您需要手动创建文件夹结构。继续吗?",
|
||||
"confirm-no-structure": "未检测到文件夹结构。RomM 将创建结构 A(roms/{platform})包含 {count} 个平台{plural}。继续吗?",
|
||||
"continue": "继续",
|
||||
"detected-platforms": "检测到的平台",
|
||||
"deselect-all": "取消全选",
|
||||
"finish": "完成",
|
||||
"folder-structure": "文件夹结构",
|
||||
"game": "游戏",
|
||||
"games": "游戏",
|
||||
"library-structure-step": "设置库结构",
|
||||
"metadata-missing": "API 密钥缺失或无效",
|
||||
"next": "下一步",
|
||||
"no-structure-detected": "未检测到结构 - 将创建结构 A",
|
||||
"platform": "平台",
|
||||
"platforms": "平台",
|
||||
"previous": "上一步",
|
||||
"select-all": "全选",
|
||||
"select-platforms": "选择要创建的平台",
|
||||
"selected": "已选择",
|
||||
"structure-a-detected": "检测到结构 A",
|
||||
"structure-b-detected": "检测到结构 B"
|
||||
}
|
||||
@@ -94,5 +94,8 @@
|
||||
"update": "更新",
|
||||
"username": "用戶名",
|
||||
"virtual-collection-type": "自動生成收藏庫形式(Rom 分組方式)",
|
||||
"watcher": "監視器"
|
||||
"watcher": "監視器",
|
||||
"passwords-must-match": "密碼必須相符",
|
||||
"repeat-password": "重複密碼",
|
||||
"repeat-password-required": "需要重複密碼"
|
||||
}
|
||||
|
||||
28
frontend/src/locales/zh_TW/setup.json
Normal file
28
frontend/src/locales/zh_TW/setup.json
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"admin-user-step": "建立管理員使用者",
|
||||
"available-platforms": "可用平台",
|
||||
"cancel": "取消",
|
||||
"check-metadata-step": "檢查詮釋資料來源",
|
||||
"confirm-create-platforms": "RomM 將建立結構 {structure}({pattern})包含 {count} 個平台{plural}。繼續嗎?",
|
||||
"confirm-no-platforms": "未偵測到資料夾結構且未選擇平台。您需要手動建立資料夾結構。繼續嗎?",
|
||||
"confirm-no-structure": "未偵測到資料夾結構。RomM 將建立結構 A(roms/{platform})包含 {count} 個平台{plural}。繼續嗎?",
|
||||
"continue": "繼續",
|
||||
"detected-platforms": "偵測到的平台",
|
||||
"deselect-all": "取消全選",
|
||||
"finish": "完成",
|
||||
"folder-structure": "資料夾結構",
|
||||
"game": "遊戲",
|
||||
"games": "遊戲",
|
||||
"library-structure-step": "設定資料庫結構",
|
||||
"metadata-missing": "API 金鑰遺失或無效",
|
||||
"next": "下一步",
|
||||
"no-structure-detected": "未偵測到結構 - 將建立結構 A",
|
||||
"platform": "平台",
|
||||
"platforms": "平台",
|
||||
"previous": "上一步",
|
||||
"select-all": "全選",
|
||||
"select-platforms": "選擇要建立的平台",
|
||||
"selected": "已選擇",
|
||||
"structure-a-detected": "偵測到結構 A",
|
||||
"structure-b-detected": "偵測到結構 B"
|
||||
}
|
||||
@@ -311,9 +311,10 @@ function handleNext(nextCallback: () => void) {
|
||||
|
||||
// Case 1: No structure detected and user is creating platforms
|
||||
if (!hasStructure && platformsToCreate.length > 0) {
|
||||
confirmDialogMessage.value = `No folder structure detected. RomM will create Structure A (roms/{platform}) with ${
|
||||
platformsToCreate.length
|
||||
} platform${platformsToCreate.length > 1 ? "s" : ""}. Continue?`;
|
||||
confirmDialogMessage.value = t("setup.confirm-no-structure", {
|
||||
count: platformsToCreate.length,
|
||||
plural: platformsToCreate.length > 1 ? "s" : "",
|
||||
});
|
||||
confirmDialogAction.value = nextCallback;
|
||||
showConfirmDialog.value = true;
|
||||
return;
|
||||
@@ -321,8 +322,7 @@ function handleNext(nextCallback: () => void) {
|
||||
|
||||
// Case 2: No structure detected and user is not selecting anything
|
||||
if (!hasStructure && platformsToCreate.length === 0) {
|
||||
confirmDialogMessage.value =
|
||||
"No folder structure detected and no platforms selected. You will need to create the folder structure manually. Continue?";
|
||||
confirmDialogMessage.value = t("setup.confirm-no-platforms");
|
||||
confirmDialogAction.value = nextCallback;
|
||||
showConfirmDialog.value = true;
|
||||
return;
|
||||
@@ -334,9 +334,12 @@ function handleNext(nextCallback: () => void) {
|
||||
libraryInfo.value.detected_structure === "A"
|
||||
? "roms/{platform}"
|
||||
: "{platform}/roms";
|
||||
confirmDialogMessage.value = `RomM will create Structure ${libraryInfo.value.detected_structure} (${structurePattern}) with ${
|
||||
platformsToCreate.length
|
||||
} platform${platformsToCreate.length > 1 ? "s" : ""}. Continue?`;
|
||||
confirmDialogMessage.value = t("setup.confirm-create-platforms", {
|
||||
structure: libraryInfo.value.detected_structure,
|
||||
pattern: structurePattern,
|
||||
count: platformsToCreate.length,
|
||||
plural: platformsToCreate.length > 1 ? "s" : "",
|
||||
});
|
||||
confirmDialogAction.value = nextCallback;
|
||||
showConfirmDialog.value = true;
|
||||
return;
|
||||
@@ -452,9 +455,9 @@ onMounted(() => {
|
||||
<v-stepper-header style="box-shadow: unset">
|
||||
<v-stepper-item :value="1">
|
||||
<template #title>
|
||||
<span class="text-white text-shadow"
|
||||
>Setup library structure</span
|
||||
>
|
||||
<span class="text-white text-shadow">{{
|
||||
t("setup.library-structure-step")
|
||||
}}</span>
|
||||
</template>
|
||||
</v-stepper-item>
|
||||
|
||||
@@ -462,7 +465,9 @@ onMounted(() => {
|
||||
|
||||
<v-stepper-item :value="2">
|
||||
<template #title>
|
||||
<span class="text-white text-shadow">Create an admin user</span>
|
||||
<span class="text-white text-shadow">{{
|
||||
t("setup.admin-user-step")
|
||||
}}</span>
|
||||
</template>
|
||||
</v-stepper-item>
|
||||
|
||||
@@ -470,9 +475,9 @@ onMounted(() => {
|
||||
|
||||
<v-stepper-item :value="3">
|
||||
<template #title>
|
||||
<span class="text-white text-shadow"
|
||||
>Check metadata sources</span
|
||||
>
|
||||
<span class="text-white text-shadow">{{
|
||||
t("setup.check-metadata-step")
|
||||
}}</span>
|
||||
</template>
|
||||
</v-stepper-item>
|
||||
</v-stepper-header>
|
||||
@@ -481,9 +486,13 @@ onMounted(() => {
|
||||
<!-- Mobile title section -->
|
||||
<div v-if="xs" class="flex-grow-0 text-center">
|
||||
<span class="text-white text-shadow text-subtitle-1">
|
||||
<span v-if="step === 1">Setup library structure</span>
|
||||
<span v-else-if="step === 2">Create an admin user</span>
|
||||
<span v-else-if="step === 3">Check metadata sources</span>
|
||||
<span v-if="step === 1">{{
|
||||
t("setup.library-structure-step")
|
||||
}}</span>
|
||||
<span v-else-if="step === 2">{{ t("setup.admin-user-step") }}</span>
|
||||
<span v-else-if="step === 3">{{
|
||||
t("setup.check-metadata-step")
|
||||
}}</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
@@ -514,13 +523,13 @@ onMounted(() => {
|
||||
<v-row v-if="!loadingLibraryInfo" no-gutters class="mb-3">
|
||||
<v-col class="text-center">
|
||||
<p class="text-white text-shadow">
|
||||
<strong>Folder structure:</strong>
|
||||
<strong>{{ t("setup.folder-structure") }}:</strong>
|
||||
{{
|
||||
libraryInfo?.detected_structure === "A"
|
||||
? "Structure A detected"
|
||||
? t("setup.structure-a-detected")
|
||||
: libraryInfo?.detected_structure === "B"
|
||||
? "Structure B detected"
|
||||
: "No structure detected - Structure A will be created"
|
||||
? t("setup.structure-b-detected")
|
||||
: t("setup.no-structure-detected")
|
||||
}}
|
||||
</p>
|
||||
<p class="text-caption text-grey">
|
||||
@@ -546,15 +555,19 @@ onMounted(() => {
|
||||
class="pr-2"
|
||||
>
|
||||
<div class="text-white text-center text-shadow mb-2">
|
||||
<strong>Detected Platforms</strong>
|
||||
<strong>{{ t("setup.detected-platforms") }}</strong>
|
||||
</div>
|
||||
<div class="mb-2 ml-4">
|
||||
<v-chip label>
|
||||
{{ libraryInfo?.existing_platforms.length }} platforms
|
||||
{{ libraryInfo?.existing_platforms.length }}
|
||||
{{ t("setup.platforms") }}
|
||||
</v-chip>
|
||||
<v-chip class="ml-2" variant="tonal" label>
|
||||
{{ totalDetectedGames }} game{{
|
||||
totalDetectedGames !== 1 ? "s" : ""
|
||||
{{ totalDetectedGames }}
|
||||
{{
|
||||
totalDetectedGames !== 1
|
||||
? t("setup.games")
|
||||
: t("setup.game")
|
||||
}}
|
||||
</v-chip>
|
||||
</div>
|
||||
@@ -574,8 +587,8 @@ onMounted(() => {
|
||||
<div class="text-white text-center text-shadow mb-2">
|
||||
<strong>{{
|
||||
hasExistingPlatforms
|
||||
? "Available Platforms"
|
||||
: "Select Platforms to Create"
|
||||
? t("setup.available-platforms")
|
||||
: t("setup.select-platforms")
|
||||
}}</strong>
|
||||
</div>
|
||||
<div class="mb-2 ml-4">
|
||||
@@ -585,10 +598,15 @@ onMounted(() => {
|
||||
@click="selectAll = !selectAll"
|
||||
label
|
||||
>
|
||||
{{ selectAll ? "Deselect All" : "Select All" }}
|
||||
{{
|
||||
selectAll
|
||||
? t("setup.deselect-all")
|
||||
: t("setup.select-all")
|
||||
}}
|
||||
</v-chip>
|
||||
<v-chip class="ml-2" label
|
||||
>{{ selectedAvailableCount }} selected</v-chip
|
||||
>{{ selectedAvailableCount }}
|
||||
{{ t("setup.selected") }}</v-chip
|
||||
>
|
||||
</div>
|
||||
<div class="overflow-y-auto" style="max-height: 500px">
|
||||
@@ -613,13 +631,13 @@ onMounted(() => {
|
||||
:value="0"
|
||||
class="text-white text-shadow"
|
||||
>
|
||||
Detected
|
||||
{{ t("setup.detected-platforms") }}
|
||||
</v-tab>
|
||||
<v-tab
|
||||
:value="hasExistingPlatforms ? 1 : 0"
|
||||
class="text-white text-shadow"
|
||||
>
|
||||
Available
|
||||
{{ t("setup.available-platforms") }}
|
||||
</v-tab>
|
||||
</v-tabs>
|
||||
|
||||
@@ -629,11 +647,14 @@ onMounted(() => {
|
||||
<div class="mb-2 ml-4">
|
||||
<v-chip label>
|
||||
{{ libraryInfo?.existing_platforms.length }}
|
||||
platforms
|
||||
{{ t("setup.platforms") }}
|
||||
</v-chip>
|
||||
<v-chip class="ml-2" variant="tonal" label>
|
||||
{{ totalDetectedGames }} game{{
|
||||
totalDetectedGames !== 1 ? "s" : ""
|
||||
{{ totalDetectedGames }}
|
||||
{{
|
||||
totalDetectedGames !== 1
|
||||
? t("setup.games")
|
||||
: t("setup.game")
|
||||
}}
|
||||
</v-chip>
|
||||
</div>
|
||||
@@ -654,10 +675,15 @@ onMounted(() => {
|
||||
@click="selectAll = !selectAll"
|
||||
label
|
||||
>
|
||||
{{ selectAll ? "Deselect All" : "Select All" }}
|
||||
{{
|
||||
selectAll
|
||||
? t("setup.deselect-all")
|
||||
: t("setup.select-all")
|
||||
}}
|
||||
</v-chip>
|
||||
<v-chip class="ml-2" label
|
||||
>{{ selectedAvailableCount }} selected</v-chip
|
||||
>{{ selectedAvailableCount }}
|
||||
{{ t("setup.selected") }}</v-chip
|
||||
>
|
||||
</div>
|
||||
<div class="overflow-y-auto" style="max-height: 500px">
|
||||
@@ -727,10 +753,11 @@ onMounted(() => {
|
||||
:label="`${t('settings.repeat_password')} *`"
|
||||
:type="visibleRepeatPassword ? 'text' : 'password'"
|
||||
:rules="[
|
||||
(v: string) => !!v || 'Repeat password is required',
|
||||
(v: string) =>
|
||||
!!v || t('settings.repeat-password-required'),
|
||||
(v: string) =>
|
||||
v === defaultAdminUser.password ||
|
||||
'Passwords must match',
|
||||
t('settings.passwords-must-match'),
|
||||
]"
|
||||
required
|
||||
autocomplete="on"
|
||||
@@ -765,7 +792,7 @@ onMounted(() => {
|
||||
class="text-white text-shadow"
|
||||
:title="source.name"
|
||||
:subtitle="
|
||||
source.disabled ? 'API key missing or invalid' : ''
|
||||
source.disabled ? t('setup.metadata-missing') : ''
|
||||
"
|
||||
>
|
||||
<template #prepend>
|
||||
@@ -794,7 +821,7 @@ onMounted(() => {
|
||||
:disabled="isFirstStep"
|
||||
@click="prev"
|
||||
>
|
||||
{{ isFirstStep ? "" : "previous" }}
|
||||
{{ isFirstStep ? "" : t("setup.previous") }}
|
||||
</v-btn>
|
||||
</template>
|
||||
<template #next>
|
||||
@@ -804,7 +831,7 @@ onMounted(() => {
|
||||
@click="!isLastStep ? handleNext(next) : finishWizard()"
|
||||
@keydown.enter="!isLastStep ? handleNext(next) : finishWizard()"
|
||||
>
|
||||
{{ !isLastStep ? "Next" : "Finish" }}
|
||||
{{ !isLastStep ? t("setup.next") : t("setup.finish") }}
|
||||
</v-btn>
|
||||
</template>
|
||||
</v-stepper-actions>
|
||||
@@ -828,13 +855,13 @@ onMounted(() => {
|
||||
<v-row class="justify-center my-2" no-gutters>
|
||||
<v-btn-group divided density="compact">
|
||||
<v-btn class="bg-toplayer" @click="showConfirmDialog = false">
|
||||
Cancel
|
||||
{{ t("setup.cancel") }}
|
||||
</v-btn>
|
||||
<v-btn
|
||||
class="bg-toplayer text-primary"
|
||||
@click="handleConfirmDialog"
|
||||
>
|
||||
Continue
|
||||
{{ t("setup.continue") }}
|
||||
</v-btn>
|
||||
</v-btn-group>
|
||||
</v-row>
|
||||
|
||||
Reference in New Issue
Block a user