349 lines
33 KiB
Swift
349 lines
33 KiB
Swift
import Foundation
|
||
|
||
// English is the explicit first-launch default, independent of macOS language.
|
||
enum EasyLanguage: String, CaseIterable {
|
||
case english = "en"
|
||
case spanish = "es"
|
||
static func load(defaults: UserDefaults = .standard) -> EasyLanguage {
|
||
EasyLanguage(rawValue: defaults.string(forKey:"interfaceLanguage") ?? "en") ?? .english
|
||
}
|
||
func save(defaults: UserDefaults = .standard) { defaults.set(rawValue,forKey:"interfaceLanguage") }
|
||
}
|
||
|
||
struct EasyStrings {
|
||
static let english: [String:String] = [
|
||
"Dispositivos":"Devices",
|
||
"Compatibilidad":"Compatibility",
|
||
"Juegos compatibles":"Compatible games",
|
||
"Mi biblioteca":"My library",
|
||
"Tus juegos. Tus archivos. Todo en un lugar.":"Your games. Your files. One place.",
|
||
"Añadir juego":"Add game",
|
||
"Buscar en mis juegos":"Search my games",
|
||
"juegos":"games",
|
||
"Actualizar biblioteca":"Refresh library",
|
||
"Tu colección empieza con tu primer juego":"Your collection starts with your first game",
|
||
"Añade su carpeta. Conservamos los archivos donde están y recordamos tus versiones para Mac, iPhone y iPad.":"Add its folder. Files stay where they are, and your Mac, iPhone and iPad builds stay together.",
|
||
"Ver juegos compatibles":"View compatible games",
|
||
"No hay juegos que coincidan con tu búsqueda.":"No games match your search.",
|
||
"Esta biblioteca sólo contiene las carpetas que tú añades. No incluye ni descarga juegos.":"This library only contains folders you add. It does not include or download games.",
|
||
"¿Quitar de la biblioteca?":"Remove from library?",
|
||
"Sólo quitamos el acceso de la biblioteca. No borramos juegos, cachés, llaves ni partidas.":"This removes the library shortcut only. Games, caches, keys and saves stay intact.",
|
||
"No pudimos leer tu biblioteca. Conservamos el archivo original sin sobrescribirlo.":"Could not read your library. The original file was preserved without overwriting it.",
|
||
"No pudimos guardar la biblioteca. Tus archivos no se modificaron.":"Could not save the library. Your files were not changed.",
|
||
"No pudimos añadir esa carpeta a la biblioteca. Tus archivos siguen intactos.":"Could not add that folder to the library. Your files remain intact.",
|
||
"Compilando":"Building",
|
||
"Carpeta no disponible":"Folder unavailable",
|
||
"Sin preparar":"Not prepared",
|
||
"Instalar":"Install",
|
||
"Preparar":"Prepare",
|
||
"Preparar o actualizar":"Prepare or update",
|
||
"Mostrar carpeta":"Show folder",
|
||
"Acciones del juego":"Game actions",
|
||
"Etapa actual":"Current stage",
|
||
"Ver actividad":"View activity",
|
||
"Etapas de compilación":"Build stages",
|
||
"Tiempo restante informado":"Reported time remaining",
|
||
|
||
"Mostrar más apps":"Show more apps",
|
||
"Conecta tu dispositivo e inicia sesión. Firmar e instalar requiere tu confirmación.":"Connect your device and sign in. Signing and installing require your confirmation.",
|
||
"Guarda y cierra el juego antes de instalar. Firma, copia y renovación nativas aún requieren validación completa con una cuenta y dispositivo reales.":"Save and close the game before installing. Native signing, transfer and refresh still need complete validation with a real account and device.",
|
||
|
||
"No pudimos leer las apps. Desbloquea el dispositivo, confía en este Mac y vuelve a buscar.":"Could not read installed apps. Unlock the device, trust this Mac and search again.",
|
||
"No pudimos buscar dispositivos. Revisa la conexión y vuelve a intentar.":"Could not search for devices. Check the connection and try again.",
|
||
"Apple no devolvió los dispositivos de este equipo. Revisa tu sesión y vuelve a consultar.":"Apple did not return this team’s devices. Check your session and try again.",
|
||
"Tipo de equipo según Apple":"Team type reported by Apple",
|
||
|
||
"IPA ligera: separar los datos del juego":"Lightweight IPA: separate game data",
|
||
"Recomendado: la app pesa menos y el instalador copia romfs por separado.":"Recommended: a smaller app, with romfs copied separately by the installer.",
|
||
"IPA completa: incluye el juego dentro. Ocupa más y cada renovación vuelve a transferir toda la app.":"Complete IPA: includes the game inside. Uses more space and transfers the entire app on every refresh.",
|
||
"Carpeta y llaves → Preparar → Cuenta Apple → Instalar y copiar datos":"Folder and keys → Prepare → Apple account → Install and copy data",
|
||
"Consultando dispositivos registrados en Apple…":"Reading devices registered with Apple…",
|
||
"Buscando dispositivos conectados…":"Looking for connected devices…",
|
||
"Leyendo apps instaladas…":"Reading installed apps…",
|
||
"Búsqueda de dispositivos terminada.":"Device search finished.",
|
||
"Lista de apps instalada actualizada.":"Installed app list updated.",
|
||
"Dispositivos registrados consultados.":"Registered devices retrieved.",
|
||
"La operación se detuvo. Revisa el mensaje de error.":"The operation stopped. Review the error message.",
|
||
"Operación cancelada; puedes volver a intentar.":"Operation cancelled; you can try again.",
|
||
"Registrando el dispositivo con Apple…":"Registering the device with Apple…",
|
||
"Verificando firma y vencimiento…":"Verifying signature and expiry…",
|
||
"Conecta. Elige tu juego. Instala o actualiza.":"Connect. Choose your game. Install or update.",
|
||
"Dispositivos conectados":"Connected devices",
|
||
"Información del dispositivo no disponible":"Device information unavailable",
|
||
"Desbloquea y confía en este Mac para leer las apps.":"Unlock and trust this Mac to read installed apps.",
|
||
"Tu cuenta Apple":"Your Apple account",
|
||
"Inicia sesión aquí para firmar e instalar.":"Sign in here to sign and install.",
|
||
"Ver cuenta y equipos":"View account and teams",
|
||
"Instalar otro juego":"Install another game",
|
||
"Elige tus archivos; prepararemos el juego y abriremos el instalador al terminar.":"Choose your files; we will prepare the game and open the installer when ready.",
|
||
"Elegir carpeta de juego":"Choose game folder",
|
||
"Apps instaladas en este dispositivo":"Apps installed on this device",
|
||
"Buscar por nombre o identificador":"Search by name or identifier",
|
||
"No se leyeron apps. Desbloquea el dispositivo y vuelve a buscar.":"No apps were retrieved. Unlock the device and search again.",
|
||
"Actualizar con mis archivos":"Update using my files",
|
||
"Actualizar requiere tus archivos del mismo juego y la cuenta/equipo originales. No desinstalamos la app existente.":"Updating needs your files for the same game and the original account/team. The existing app is kept installed.",
|
||
"Firmas y renovación":"Signatures and refresh",
|
||
"Actividad de instalación":"Installation activity",
|
||
"Copiar registro":"Copy activity log",
|
||
"Mostrar registro guardado":"Show saved activity log",
|
||
"1 · Dispositivo":"1 · Device",
|
||
"2 · Cuenta Apple":"2 · Apple account",
|
||
"3 · Instalar":"3 · Install",
|
||
"Leer dispositivos de mi cuenta Apple":"Read my Apple account devices",
|
||
"Dispositivos registrados en el equipo":"Devices registered with the team",
|
||
"Cuenta gratuita: Apple indica hasta 3 dispositivos y perfiles de 7 días. Esta lista muestra registros reales; no calcula cupos libres ni elimina dispositivos.":"Free account: Apple documents up to 3 devices and 7-day profiles. This list shows actual registrations; it does not calculate available slots or remove devices.",
|
||
|
||
"Mis iPhones y iPads":"My iPhones and iPads",
|
||
"Usar sesión del Llavero":"Use Keychain session",
|
||
"Inicia sesión con la cuenta que instaló este juego para renovarlo.":"Sign in with the account that installed this game to refresh it.",
|
||
"Inicia sesión para renovar este juego.":"Sign in to refresh this game.",
|
||
"Falta el registro de la IPA. Prepara y aprueba la actualización antes de renovarla.":"The IPA record is missing. Prepare and approve the update before refreshing.",
|
||
"Conecta y desbloquea el dispositivo donde instalaste este juego.":"Connect and unlock the device where you installed this game.",
|
||
"La cuenta actual no tiene el equipo original de este juego. No cambiamos su identidad.":"This account does not have the original team for this game. Its identity was preserved.",
|
||
"Administra los juegos instalados desde esta app. Renovar la firma no recompila el juego ni copia sus datos otra vez.":"Manage games installed through this app. Refreshing the signature does not rebuild the game or copy its data again.",
|
||
"Conecta tu iPhone o iPad":"Connect your iPhone or iPad",
|
||
"Dispositivos disponibles":"Available devices",
|
||
"Aún no hay juegos registrados. Prepara tu juego y pulsa Instalar en iPhone / iPad. Para una app de Sideloadly, elige su instalación existente y conserva su identidad.":"No games are registered yet. Prepare your game and choose Install on iPhone / iPad. For a Sideloadly app, select its existing installation and keep its identity.",
|
||
"Firma vencida":"Signature expired",
|
||
"La firma vence":"Signature expires",
|
||
"Renovar ahora":"Refresh now",
|
||
"Revisar cuenta e instalación":"Review account and installation",
|
||
"Quitar de esta lista":"Remove from this list",
|
||
"Guarda y cierra el juego antes de renovar manualmente. La renovación automática requiere este Mac despierto, la app abierta, Internet y el dispositivo accesible.":"Save and close the game before refreshing manually. Automatic refresh needs this Mac awake, the app open, Internet and the device reachable.",
|
||
"¿Quitar este registro?":"Remove this record?",
|
||
"Sólo detiene la renovación y quita el registro de este Mac. El juego, sus archivos y sus partidas siguen en tu dispositivo.":"This only stops refresh and removes the record from this Mac. The game, its files and saves remain on your device.",
|
||
"Tu juego está listo para instalar en iPhone / iPad.":"Your game is ready to install on iPhone / iPad.",
|
||
"Pulsa Instalar en iPhone / iPad. Inicia sesión con tu cuenta personal para firmar e instalar el juego y sus datos.":"Choose Install on iPhone / iPad. Sign in with your personal account to sign and install the game and its data.",
|
||
"Crearás una IPA para actualizar tu app. En Instalar en iPhone / iPad, elige la app existente y su misma cuenta. No desinstales el juego. La preparación no comprueba qué está instalado en tu iPhone.":"You will create an IPA to update your app. In Install on iPhone / iPad, select the existing app and the same account. Keep the game installed. Preparation does not check what is installed on your iPhone.",
|
||
|
||
"El juego sigue abierto. La renovación espera para no interrumpir tu partida.":"The game is still running. Refresh is postponed to avoid interrupting your progress.",
|
||
"No pudimos comprobar si el juego está abierto. Guarda, ciérralo y renueva manualmente.":"Could not verify whether the game is running. Save, close it and refresh manually.",
|
||
"Alternativa: Sideloadly":"Alternative: Sideloadly",
|
||
"No pudimos verificar el resultado de la instalación. Revisa el dispositivo antes de continuar.":"Could not verify the installation result. Check the device before continuing.",
|
||
"Revisar renovación":"Review refresh",
|
||
"Enviar a mis dispositivos":"Send to my devices",
|
||
"Tus partidas": "Your saves",
|
||
"Se guardan en el dispositivo donde juegas. Todavía no hay sincronización en la nube.": "Saves live on the device where you play. Cloud sync is not connected yet.",
|
||
"En Mac: fuera de la app, en Application Support, por Title ID.": "On Mac: outside the app, in Application Support, by Title ID.",
|
||
"Mostrar carpeta de partidas": "Show saves folder",
|
||
"En tu iPhone/iPad: Finder → tu dispositivo → Archivos → tu juego.": "On your iPhone/iPad: Finder → your device → Files → your game.",
|
||
"Finder muestra Documents. Las partidas son save y, en algunos juegos, save_device. romfs contiene el juego, no tu progreso.": "Finder shows Documents. Progress is in save and, for some games, save_device. romfs contains the game, not your progress.",
|
||
"Guarda y cierra el juego antes de copiar. Conserva juntas save y save_device si existe. No copies save.work ni save.new.": "Save and close the game before copying. Keep save and save_device together if present. Do not copy save.work or save.new.",
|
||
"Al actualizar en iPhone/iPad: misma cuenta e identificador, instala encima y no desinstales. Reemplaza sólo romfs si cambió el juego.": "For iPhone/iPad updates: same account and identifier, install over the existing app without uninstalling. Replace only romfs when game content changes.",
|
||
"Los perfiles de controles son preferencias separadas; copiar save no los transfiere. Algunas partidas requieren metadatos que una copia manual puede perder.": "Control profiles are separate preferences; copying save does not transfer them. Some saves require metadata that a manual copy may lose.",
|
||
"Guía completa de partidas y respaldos": "Complete saves and backups guide",
|
||
"Conecta y desbloquea tu iPhone/iPad.": "Connect and unlock your iPhone/iPad.",
|
||
"Falta el instalador nativo. Actualiza nxnative Easy.": "The native installer is missing. Update nxnative Easy.",
|
||
"Instalación detenida. Vuelve a intentar; las partidas no se tocaron.": "Installation stopped. Try again; save folders were not touched.",
|
||
"No pudimos iniciar el instalador nativo.": "Could not start the native installer.",
|
||
"No pudimos comunicarnos con el instalador.": "Could not communicate with the installer.",
|
||
"Iniciando sesión con Apple…": "Signing in to Apple…",
|
||
"Para renovar al reiniciar, inicia sesión recordándola en el Llavero, o desactiva la renovación.": "To refresh after restarting, remember the session in Keychain when signing in, or turn off auto-refresh.",
|
||
"Ese identificador no corresponde al equipo elegido. Detenido para conservar la app anterior.": "That identifier cannot be used with the selected team. Stopped to preserve the previous app.",
|
||
"No encontramos la IPA original. Conserva los archivos de preparación para renovarla.": "The original IPA is missing. Keep the preparation files for future refreshes.",
|
||
"Firmando e instalando…": "Signing and installing…",
|
||
"El instalador debe compilarse para Apple silicon.": "The installer must be built for Apple silicon.",
|
||
"Introduce el código de Apple.": "Enter your Apple verification code.",
|
||
"Sesión iniciada. Elige tu equipo personal.": "Signed in. Choose your personal team.",
|
||
"Preparando IPA…": "Preparing IPA…",
|
||
"Firmando la app…": "Signing the app…",
|
||
"Instalando la app…": "Installing the app…",
|
||
"Copiando datos del juego…": "Copying game data…",
|
||
"Datos del juego listos.": "Game data ready.",
|
||
"Instalado. Tus partidas se conservan en el dispositivo.": "Installed. Saves remain on the device.",
|
||
"No encontramos esa app instalada. Revisa el identificador antes de actualizar.": "That installed app was not found. Check the identifier before updating.",
|
||
"La app elegida no corresponde a este juego. No se instaló encima.": "The selected app does not match this game. It was not overwritten.",
|
||
"No hay espacio suficiente para preparar los datos nuevos sin borrar los anteriores.": "Not enough storage to stage new game data while keeping the previous data.",
|
||
"La IPA cambió. Prepara y aprueba la actualización antes de renovarla.": "The IPA changed. Prepare and approve the update before refreshing it.",
|
||
"No pudimos iniciar sesión o la sesión guardada caducó. Vuelve a iniciar sesión.": "Sign-in failed or the saved session expired. Sign in again.",
|
||
"No pudimos completar la instalación. Revisa el dispositivo, equipo y permisos. No se revocaron certificados automáticamente.": "Installation could not finish. Check the device, team and permissions. No certificates were automatically revoked.",
|
||
"La instalación terminó, pero no pudimos guardar su renovación automática.": "Installation finished, but its auto-refresh record could not be saved.",
|
||
"Renovando sesión guardada…": "Renewing saved session…",
|
||
"Revisa Elementos de inicio en Ajustes del Sistema para permitir la renovación al iniciar sesión.": "Check Login Items in System Settings to allow refresh after login.",
|
||
"Instalar en iPhone / iPad": "Install on iPhone / iPad",
|
||
"Instalación nativa en Apple silicon. Cierra el juego y no lo abras hasta terminar. La firma e instalación con tu cuenta aún necesitan validación en un dispositivo.": "Native Apple-silicon installation. Close the game until this finishes. Signing and installation with your account still require device validation.",
|
||
"Dispositivo": "Device",
|
||
"Elige tu iPhone/iPad": "Choose your iPhone/iPad",
|
||
"Buscar dispositivos": "Find devices",
|
||
"Desbloquea el dispositivo, confía en este Mac y activa Modo de desarrollador si iOS lo pide.": "Unlock the device, trust this Mac and enable Developer Mode if iOS asks.",
|
||
"Cuenta Apple personal": "Personal Apple account",
|
||
"Contraseña de Apple": "Apple password",
|
||
"Recordar sesión en el Llavero; no guardar la contraseña": "Remember session in Keychain; do not save the password",
|
||
"Servicio de autenticación": "Authentication service",
|
||
"La contraseña y el código se envían a Apple. El servicio anisette recibe los datos técnicos que requiere la autenticación, no tu contraseña.": "Your password and verification code go to Apple. The anisette service receives technical authentication data, not your password.",
|
||
"Iniciar sesión": "Sign in",
|
||
"Sesión iniciada": "Signed in",
|
||
"Tu equipo personal": "Your personal team",
|
||
"Selecciona tu equipo": "Select your team",
|
||
"App existente que actualizarás": "Existing app to update",
|
||
"Primera instalación": "First installation",
|
||
"Se conserva el identificador efectivo. Si no corresponde al juego y equipo, la instalación se detiene; no se desinstala la app anterior.": "The effective identifier is retained. If it does not match the game and team, installation stops; the previous app is not uninstalled.",
|
||
"Renovar automáticamente antes de que caduque": "Automatically refresh before expiry",
|
||
"Abrir nxnative Easy al iniciar sesión": "Open nxnative Easy at login",
|
||
"La renovación necesita este Mac encendido, nxnative Easy abierto, conexión a Internet y el dispositivo accesible. Conserva la IPA original.": "Refresh needs this Mac awake, nxnative Easy running, Internet access and the device reachable. Keep the original IPA.",
|
||
"Firmar e instalar": "Sign and install",
|
||
"Firmar y actualizar": "Sign and update",
|
||
"Cerrar sesión": "Sign out",
|
||
"Código de verificación": "Verification code",
|
||
"Confirmar código": "Confirm code",
|
||
"Reenviar código": "Resend code",
|
||
"Faltan los datos romfs. Prepara el juego de nuevo antes de instalarlo.": "Game data (romfs) is missing. Prepare the game again before installing.",
|
||
"Usar Sideloadly": "Use Sideloadly",
|
||
"Instala y copia los datos desde aquí con tu cuenta personal, o usa Sideloadly como alternativa.": "Install and copy game data here using your personal account, or use Sideloadly as an alternative.",
|
||
"Seleccionar Ghidra…":"Select Ghidra…",
|
||
"Opcional: usa tu instalación local de Ghidra.":"Optional: use your local Ghidra installation.",
|
||
"Herramientas de análisis":"Analysis tools",
|
||
"Analizar con REA":"Analyze with REA",
|
||
"Análisis opcional del código original extraído. No modifica ni recompila el juego y no lo convierte automáticamente en un juego compatible.":"Optional analysis of extracted original code. It does not modify or rebuild the game and does not automatically make it compatible.",
|
||
"REA necesita Node/npm y un motor local compatible: Ghidra, Hopper o IDA. Su licencia e instalación son independientes. El análisis usa versiones fijas en una caché de este juego; no cambia la configuración de tu agente.":"REA needs Node/npm and a compatible local engine: Ghidra, Hopper or IDA. Their licensing and installation are separate. Analysis uses pinned versions in this game's cache and does not change your agent configuration.",
|
||
"Exportar para analizar":"Export for analysis",
|
||
"Exportar y ejecutar REA":"Export and run REA",
|
||
"Configurar motor":"Set up engine",
|
||
"El análisis no terminó. Revisa los logs; tus archivos originales se conservaron.":"Analysis did not finish. Review the logs; your original files were preserved.",
|
||
"Mostrar análisis y logs":"Show analysis and logs",
|
||
"Primero selecciona la carpeta de un juego preparado.":"First select a prepared game's folder.",
|
||
"Tiempo transcurrido":"Elapsed",
|
||
"Sin salida nueva; el proceso sigue activo.":"No new output; the process is still running.",
|
||
"Esperando la primera salida del compilador…":"Waiting for the compiler's first output…",
|
||
"Ver compilación en vivo":"View live build log",
|
||
"Mostrar logs guardados":"Show saved logs",
|
||
"Mostrar logs del compilador":"Show compiler logs",
|
||
"Ya preparaste este juego antes":"You prepared this game before",
|
||
"Versión anterior":"Previous version",
|
||
"Preparar actualización":"Prepare update",
|
||
"Crearás una app nueva. Tus partidas siguen en este Mac, fuera de la app. Cierra el juego antes de abrir la versión nueva.":"You will create a new app. Saves stay on this Mac, outside the app. Close the game before opening the new version.",
|
||
"Crearás una IPA para actualizar tu app. Usa la misma cuenta e identificador en Sideloadly e instala encima, sin desinstalar. La preparación no comprueba qué está instalado en tu iPhone.":"You will create an IPA to update your app. Use the same Sideloadly account and identifier and install over it without uninstalling. Preparation does not check what is installed on your iPhone.",
|
||
"2. Copia el nuevo romfs por Finder → iPhone → Archivos → tu juego. Reemplaza sólo romfs; conserva save y save_device.":"2. Copy the new romfs via Finder → iPhone → Files → your game. Replace only romfs; keep save and save_device.",
|
||
"Buscar actualizaciones…": "Check for updates…",
|
||
"Hay una nueva versión": "A new version is available:",
|
||
"Actualizar ahora": "Update now",
|
||
"Actualiza la app y sus perfiles de juegos.": "Update the app and its game profiles.",
|
||
"Descargando actualización…": "Downloading update…",
|
||
"Preparando el código nuevo…": "Preparing the new source…",
|
||
"Compilando la actualización…": "Building the update…",
|
||
"Verificando la app…": "Verifying the app…",
|
||
"Reiniciando con la versión nueva…": "Restarting with the new version…",
|
||
"Preparando actualización…": "Preparing update…",
|
||
"No pudimos actualizar. Tu versión anterior se conservó.": "Could not update. Your previous version was preserved.",
|
||
"No pudimos buscar actualizaciones. Intenta de nuevo más tarde.": "Could not check for updates. Try again later.",
|
||
"Primero actualiza macOS para instalar esta versión.": "Update macOS first to install this version.",
|
||
"Vuelve a ejecutar el comando de instalación para activar las actualizaciones.": "Run the setup command again to enable updates.",
|
||
"No pudimos iniciar la actualización.": "Could not start the update.",
|
||
"Ya tienes la versión más reciente.": "You are up to date.",
|
||
"Aceptar": "OK",
|
||
"Probar control": "Test controller",
|
||
"Prueba tu control": "Test your controller",
|
||
"Pulsa botones y mueve los sticks. Verás cada movimiento aquí.": "Press buttons and move the sticks. Every movement appears here.",
|
||
"Conecta un control a este Mac por Bluetooth.": "Connect a controller to this Mac via Bluetooth.",
|
||
"¡Está respondiendo!": "Input received!",
|
||
"Esperando tu primera pulsación…": "Waiting for your first input…",
|
||
"Presionado": "Pressed",
|
||
"Suelto": "Released",
|
||
"Esta prueba comprueba la entrada del control en este Mac, no la compatibilidad de un juego.": "This tests controller input on this Mac, not game compatibility.",
|
||
"Sin control conectado en este Mac": "No controller connected to this Mac",
|
||
"Conéctalo por Bluetooth y aparecerá aquí.": "Connect it via Bluetooth and it will appear here.",
|
||
"Control": "Controller",
|
||
"Listo en este Mac": "Ready on this Mac",
|
||
"Sin perfil compatible": "No compatible gamepad profile",
|
||
"Para jugar en iPhone/iPad, conecta el control a ese dispositivo.": "To play on iPhone/iPad, connect the controller to that device.",
|
||
"¿Dónde quieres jugar?": "Where do you want to play?",
|
||
"Elige un dispositivo": "Choose a device",
|
||
"Elige dónde quieres jugar y añade tus archivos.": "Choose where to play, then add your own files.",
|
||
"Creamos una app completa para jugar en tu Mac.": "We create a complete app to play on your Mac.",
|
||
"Todo el juego va dentro de la app. No necesitas copiar carpetas.": "The entire game is inside the app. No folders to copy.",
|
||
"Terminó, pero no encontramos la app.": "Finished, but the app could not be found.",
|
||
"Tu juego está listo para Mac.": "Your game is ready for Mac.",
|
||
"Listo. Juega en tu Mac.": "Ready. Play on your Mac.",
|
||
"Listo. Instálalo en tu iPhone / iPad.": "Ready. Install it on your iPhone / iPad.",
|
||
"Abrir juego": "Open game",
|
||
"Compilando la app para Mac…": "Building the Mac app…",
|
||
"Mostrar app": "Show app",
|
||
"Tus partidas se guardan en este Mac y se conservan al crear otra versión.": "Saves stay on this Mac and are preserved when you build a new version.",
|
||
"Juegos con soporte en la herramienta": "Supported game profiles",
|
||
"No incluye ni descarga juegos. Debes añadir tus propios archivos.": "No games are included or downloaded. You must add your own files.",
|
||
"Carpeta de tu juego": "Your game folder",
|
||
"Descargar Sideloadly": "Get Sideloadly",
|
||
"Enviar a Sideloadly": "Send to Sideloadly",
|
||
"Prepara tu juego.": "Prepare your game.",
|
||
"Creamos la IPA. La instalas en tu iPhone con Sideloadly.": "We create the IPA. You install it on your iPhone with Sideloadly.",
|
||
"Carpeta del juego": "Game folder",
|
||
"Con el juego base y sus actualizaciones.": "With the base game and its updates.",
|
||
"Elegir": "Choose",
|
||
"Carpeta de llaves": "Keys folder",
|
||
"Selecciona tus propias prod.keys.": "Select your own prod.keys.",
|
||
"Seleccionada": "Selected",
|
||
"Preparar juego": "Prepare game",
|
||
"Intentar de nuevo": "Try again",
|
||
"Listo. Instálalo en tu iPhone.": "Ready. Install it on your iPhone.",
|
||
"1. Envía la IPA a Sideloadly y pulsa Start con tu cuenta personal.": "1. Send the IPA to Sideloadly, then click Start with your personal account.",
|
||
"2. La primera vez, copia romfs por Finder → iPhone → Archivos → tu juego.": "2. First install: copy romfs using Finder → iPhone → Files → your game.",
|
||
"Mostrar datos del juego": "Show game data",
|
||
"Para actualizar: misma cuenta e identificador de Sideloadly. Instala encima, sin desinstalar.": "For updates: keep the same Sideloadly account and identifier. Install over the existing app; do not uninstall.",
|
||
"Preparar de nuevo": "Prepare again",
|
||
"Ver error": "View error",
|
||
"No pudimos preparar el juego.": "We could not prepare the game.",
|
||
"Instala Xcode y ábrelo una vez. Después vuelve a intentar.": "Install Xcode and open it once, then try again.",
|
||
"Instala Homebrew desde brew.sh y vuelve a intentar.": "Install Homebrew from brew.sh, then try again.",
|
||
"Actualiza Xcode: necesitas el SDK de iOS 26 o posterior.": "Update Xcode: iOS SDK 26 or newer is required.",
|
||
"Tus archivos anteriores se conservaron. Puedes ver o copiar el error para revisarlo.": "Your existing files were preserved. View or copy the error to review it.",
|
||
"Juegos del repositorio. Consulta cada ficha para ver dispositivos probados y versiones.": "Games listed by the repository. Check the notes for tested devices and versions.",
|
||
"juegos en la lista": "games listed",
|
||
"Buscar un juego": "Find a game",
|
||
"Versiones": "Versions",
|
||
|
||
"Ver todos": "View all",
|
||
"Todos los juegos": "All games",
|
||
"Cerrar": "Close",
|
||
"Limpiar búsqueda": "Clear search",
|
||
"No pudimos leer los perfiles. Comprueba que el repositorio siga en su ubicación original.": "Could not read the profiles. Check that the source checkout is still at its original location.",
|
||
"No encontramos juegos con esa búsqueda.": "No games match your search.",
|
||
"Ficha del juego": "Game notes",
|
||
|
||
"Tu próximo juego empieza aquí.": "Your next game starts here.",
|
||
"Elige su carpeta. Nosotros preparamos la IPA ligera.": "Choose its folder. We will prepare the lightweight IPA.",
|
||
"Ningún juego seleccionado": "No game selected",
|
||
"Elegir juego": "Choose game",
|
||
"Selecciona la carpeta con el juego base y sus actualizaciones NSP/XCI.": "Select the folder containing the base game and its NSP/XCI updates.",
|
||
"No encontramos el juego en esa carpeta.": "No game files found in that folder.",
|
||
"Elige la carpeta que contiene los archivos NSP o XCI directamente.": "Choose the folder that directly contains the NSP or XCI files.",
|
||
"Guarda el juego fuera del repositorio.": "Keep game files outside the repository.",
|
||
"Así tus juegos y llaves se quedan fuera de GitHub.": "This keeps your games and keys out of GitHub.",
|
||
"Listo para preparar el juego.": "Ready to prepare your game.",
|
||
"Un clic más. Los archivos anteriores se conservan.": "One more click. Existing files are preserved.",
|
||
"No pudimos leer esa carpeta.": "We could not read that folder.",
|
||
"Usar mis llaves": "Use my keys",
|
||
"Elige tu carpeta con prod.keys. No copiamos las llaves ni las incluimos en la app.": "Choose your folder containing prod.keys. Keys are not copied or bundled with this app.",
|
||
"Elige una carpeta externa con tu prod.keys.": "Choose an external folder containing your prod.keys.",
|
||
"No se proporcionan llaves. Debes seleccionar las tuyas.": "No keys are provided. You must select your own.",
|
||
"Tus llaves están seleccionadas.": "Your keys folder is selected.",
|
||
"Sólo guardamos la ruta en este Mac, nunca su contenido.": "Only the folder path is saved on this Mac, never its contents.",
|
||
"No encontramos el código de nxnative.": "The nxnative source checkout could not be found.",
|
||
"Vuelve a crear la app desde el repositorio con Abrir-interfaz.command.": "Recreate the app from the repository using Abrir-interfaz.command.",
|
||
"Preparando herramientas…": "Preparing build tools…",
|
||
"Puedes dejar esta ventana abierta. No necesitas usar Terminal.": "You can leave this window open. No Terminal commands are needed.",
|
||
"Preparación cancelada.": "Preparation cancelled.",
|
||
"Tus archivos y partidas anteriores se conservaron.": "Your existing files and saves were preserved.",
|
||
"Terminó, pero no encontramos la IPA.": "The process finished, but the IPA was not found.",
|
||
"Tu juego está listo para Sideloadly.": "Your game is ready for Sideloadly.",
|
||
"Usa Ver error para revisar lo que ocurrió.": "Use View error to review what happened.",
|
||
"Abre la IPA y arrástrala a Sideloadly. La firma se hace con tu cuenta personal.": "Show the IPA and drag it into Sideloadly. Sign it there with your personal account.",
|
||
"No pudimos iniciar la preparación.": "Preparation could not be started.",
|
||
"Creando tu IPA ligera…": "Creating your lightweight IPA…",
|
||
"Compilando la app para iPhone…": "Building the iPhone app…",
|
||
"Preparando los gráficos del juego…": "Preparing game graphics…",
|
||
"Preparando los archivos del juego…": "Preparing game files…",
|
||
"Cancelando…": "Cancelling…",
|
||
"Cambiar": "Change",
|
||
"Tus llaves: selecciona su carpeta": "Your keys: select their folder",
|
||
"Tus llaves: carpeta seleccionada": "Your keys: folder selected",
|
||
"Cancelar": "Cancel",
|
||
"Mostrar IPA": "Show IPA",
|
||
"Primera instalación: instala la IPA ligera y copia romfs por Finder. Para actualizar, conserva la misma cuenta y bundle ID; no desinstales la app.": "First install: install the lightweight IPA, then copy romfs using Finder. For updates, keep the same account and bundle ID; do not uninstall the game.",
|
||
"Copiar diagnóstico": "Copy diagnostics",
|
||
"Idioma de la interfaz": "Interface language",
|
||
]
|
||
static func text(_ source:String, language:EasyLanguage) -> String {
|
||
language == .spanish ? source : (english[source] ?? source)
|
||
}
|
||
}
|