i18n: add Settings audio, offline library, and updates translations

Complete Spanish translations for:
- Audio settings (backend, ALSA plugin, hardware volume, streaming)
- Offline library section (repair, manage, clear)
- Updates section (check on launch, show changelog)
- Flatpak warning messages
This commit is contained in:
vicrodh committed 2026-02-02 16:29:04 -06:00
1 parent 55d383c431
commit 805fec1529
3 files changed
+126 -44

No files matched your search

+40 -40
View File
@@ -1894,8 +1894,8 @@
<div class="loading-overlay"> <div class="loading-overlay">
<div class="loading-content"> <div class="loading-content">
<Loader2 size={48} class="spinner" /> <Loader2 size={48} class="spinner" />
<p>Loading audio devices...</p> <p>{$t('settings.audio.loadingAudioDevices')}</p>
<p class="loading-subtitle">Parsing hardware information</p> <p class="loading-subtitle">{$t('settings.audio.parsingHardware')}</p>
</div> </div>
</div> </div>
{/if} {/if}
@@ -1953,15 +1953,15 @@
</div> </div>
<div class="setting-row"> <div class="setting-row">
<div class="setting-info"> <div class="setting-info">
<span class="setting-label">Limit Quality to Device</span> <span class="setting-label">{$t('settings.audio.limitQualityToDevice')}</span>
<span class="setting-desc">When enabled, overrides the quality setting above if your audio device doesn't support the selected sample rate. Prevents resampling to guarantee bit-perfect playback.</span> <span class="setting-desc">{$t('settings.audio.limitQualityToDeviceDesc')}</span>
</div> </div>
<Toggle enabled={limitQualityToDevice} onchange={handleLimitQualityToDeviceChange} /> <Toggle enabled={limitQualityToDevice} onchange={handleLimitQualityToDeviceChange} />
</div> </div>
<div class="setting-row"> <div class="setting-row">
<div class="setting-info"> <div class="setting-info">
<span class="setting-label">Audio Backend</span> <span class="setting-label">{$t('settings.audio.audioBackend')}</span>
<span class="setting-desc">Choose audio system: Auto (recommended), PipeWire (modern), ALSA Direct (bit-perfect, exclusive), or PulseAudio (legacy).</span> <span class="setting-desc">{$t('settings.audio.audioBackendDesc')}</span>
</div> </div>
<Dropdown <Dropdown
value={selectedBackend} value={selectedBackend}
@@ -1975,10 +1975,10 @@
<div class="setting-row"> <div class="setting-row">
<div class="setting-info"> <div class="setting-info">
<span class="setting-label">{$t('settings.audio.outputDevice')}</span> <span class="setting-label">{$t('settings.audio.outputDevice')}</span>
<span class="setting-desc">Select your preferred audio output device. Devices shown are from the selected backend.</span> <span class="setting-desc">{$t('settings.audio.outputDeviceDesc')}</span>
</div> </div>
{#if isLoadingDevices} {#if isLoadingDevices}
<span class="loading-text">Loading devices...</span> <span class="loading-text">{$t('settings.audio.loadingDevices')}</span>
{:else if selectedBackend === 'ALSA Direct'} {:else if selectedBackend === 'ALSA Direct'}
<div class="dropdown-with-help"> <div class="dropdown-with-help">
<DeviceDropdown <DeviceDropdown
@@ -1992,7 +1992,7 @@
<button <button
class="help-icon-btn" class="help-icon-btn"
onclick={() => showAlsaUtilsHelpModal = true} onclick={() => showAlsaUtilsHelpModal = true}
title="Help with bit-perfect device detection" title={$t('settings.audio.helpBitPerfect')}
> >
<HelpCircle size={16} /> <HelpCircle size={16} />
</button> </button>
@@ -2020,8 +2020,8 @@
{#if showAlsaPluginSelector} {#if showAlsaPluginSelector}
<div class="setting-row"> <div class="setting-row">
<div class="setting-info"> <div class="setting-info">
<span class="setting-label">ALSA Plugin</span> <span class="setting-label">{$t('settings.audio.alsaPlugin')}</span>
<span class="setting-desc">hw: Bit-perfect, exclusive. plughw: Auto-convert. pcm: Most compatible.</span> <span class="setting-desc">{$t('settings.audio.alsaPluginDesc')}</span>
</div> </div>
<Dropdown <Dropdown
value={selectedAlsaPlugin} value={selectedAlsaPlugin}
@@ -2036,8 +2036,8 @@
{#if showAlsaHardwareVolume} {#if showAlsaHardwareVolume}
<div class="setting-row"> <div class="setting-row">
<div class="setting-info"> <div class="setting-info">
<span class="setting-label">Enable Hardware Volume Control</span> <span class="setting-label">{$t('settings.audio.hardwareVolume')}</span>
<span class="setting-desc">Experimental: Controls DAC volume via ALSA mixer. Some DACs don't support this - disable for maximum compatibility. If it fails, playback continues normally.</span> <span class="setting-desc">{$t('settings.audio.hardwareVolumeDesc')}</span>
</div> </div>
<Toggle enabled={alsaHardwareVolume} onchange={handleAlsaHardwareVolumeChange} /> <Toggle enabled={alsaHardwareVolume} onchange={handleAlsaHardwareVolumeChange} />
</div> </div>
@@ -2060,24 +2060,24 @@
<div class="flatpak-warning"> <div class="flatpak-warning">
<div class="warning-icon">⚠️</div> <div class="warning-icon">⚠️</div>
<div class="warning-content"> <div class="warning-content">
<strong>Flatpak Limitation:</strong> PipeWire cannot guarantee bit-perfect playback in sandboxed environments due to daemon access restrictions. <strong>{$t('settings.audio.flatpakWarningTitle')}</strong> {$t('settings.audio.flatpakWarningDesc')}
<br /> <br />
<strong>Recommended:</strong> Switch to ALSA Direct backend for true bit-perfect audio. <strong>{$t('settings.audio.flatpakRecommended')}</strong> {$t('settings.audio.flatpakRecommendedDesc')}
</div> </div>
</div> </div>
{/if} {/if}
<div class="setting-row"> <div class="setting-row">
<div class="setting-info"> <div class="setting-info">
<span class="setting-label">Stream Uncached Tracks</span> <span class="setting-label">{$t('settings.audio.streamUncached')}</span>
<span class="setting-desc">Start playback faster when track is not in cache. Seeking may be limited during initial buffering.</span> <span class="setting-desc">{$t('settings.audio.streamUncachedDesc')}</span>
</div> </div>
<Toggle enabled={streamFirstTrack} onchange={handleStreamFirstTrackChange} /> <Toggle enabled={streamFirstTrack} onchange={handleStreamFirstTrackChange} />
</div> </div>
{#if streamFirstTrack} {#if streamFirstTrack}
<div class="setting-row"> <div class="setting-row">
<div class="setting-info"> <div class="setting-info">
<span class="setting-label">Initial Buffer Size</span> <span class="setting-label">{$t('settings.audio.initialBuffer')}</span>
<span class="setting-desc">Seconds to buffer before starting playback ({streamBufferSeconds}s)</span> <span class="setting-desc">{$t('settings.audio.initialBufferDesc', { values: { seconds: streamBufferSeconds } })}</span>
</div> </div>
<input <input
type="range" type="range"
@@ -2092,8 +2092,8 @@
{/if} {/if}
<div class="setting-row"> <div class="setting-row">
<div class="setting-info"> <div class="setting-info">
<span class="setting-label">Streaming Only</span> <span class="setting-label">{$t('settings.audio.streamingOnly')}</span>
<span class="setting-desc">Disables temporary cache. Not recommended without a fast connection. Offline library tracks always play first.</span> <span class="setting-desc">{$t('settings.audio.streamingOnlyDesc')}</span>
</div> </div>
<Toggle enabled={streamingOnly} onchange={handleStreamingOnlyChange} /> <Toggle enabled={streamingOnly} onchange={handleStreamingOnlyChange} />
</div> </div>
@@ -2312,7 +2312,7 @@
<section class="section collapsible-section" bind:this={downloadsSection}> <section class="section collapsible-section" bind:this={downloadsSection}>
<button class="section-title-btn" onclick={() => offlineLibraryCollapsed = !offlineLibraryCollapsed}> <button class="section-title-btn" onclick={() => offlineLibraryCollapsed = !offlineLibraryCollapsed}>
<h3 class="section-title">{$t('settings.offlineLibrary.title')}</h3> <h3 class="section-title">{$t('settings.offlineLibrary.title')}</h3>
<span class="section-summary">Cached tracks for offline playback</span> <span class="section-summary">{$t('settings.offlineLibrary.sectionSummary')}</span>
{#if offlineLibraryCollapsed} {#if offlineLibraryCollapsed}
<ChevronDown size={16} /> <ChevronDown size={16} />
{:else} {:else}
@@ -2333,37 +2333,37 @@
</div> </div>
<div class="setting-row"> <div class="setting-row">
<div class="setting-with-description"> <div class="setting-with-description">
<span class="setting-label">Repair Offline Library</span> <span class="setting-label">{$t('settings.offlineLibrary.repair')}</span>
<span class="setting-description">Fix offline markers lost during library scans</span> <span class="setting-description">{$t('settings.offlineLibrary.repairDesc')}</span>
</div> </div>
<button <button
class="clear-btn" class="clear-btn"
onclick={handleRepairDownloads} onclick={handleRepairDownloads}
disabled={isRepairingDownloads || !downloadStats || downloadStats.readyTracks === 0} disabled={isRepairingDownloads || !downloadStats || downloadStats.readyTracks === 0}
> >
{isRepairingDownloads ? 'Repairing...' : 'Repair'} {isRepairingDownloads ? $t('settings.offlineLibrary.repairing') : $t('actions.repair')}
</button> </button>
</div> </div>
<div class="setting-row"> <div class="setting-row">
<span class="setting-label">Clear Offline Library</span> <span class="setting-label">{$t('settings.offlineLibrary.clearCache')}</span>
<button <button
class="clear-btn" class="clear-btn"
onclick={handleClearDownloads} onclick={handleClearDownloads}
disabled={isClearingDownloads || !downloadStats || downloadStats.readyTracks === 0} disabled={isClearingDownloads || !downloadStats || downloadStats.readyTracks === 0}
> >
{isClearingDownloads ? 'Clearing...' : 'Clear All'} {isClearingDownloads ? $t('settings.storage.clearing') : $t('settings.offlineLibrary.clearCache')}
</button> </button>
</div> </div>
<div class="setting-row last"> <div class="setting-row last">
<div class="setting-with-description"> <div class="setting-with-description">
<span class="setting-label">Manage Offline Cache</span> <span class="setting-label">{$t('settings.offlineLibrary.manageCache')}</span>
<span class="setting-description">Open the cache folder in your file manager</span> <span class="setting-description">{$t('settings.offlineLibrary.manageCacheDesc')}</span>
</div> </div>
<button <button
class="clear-btn" class="clear-btn"
onclick={handleOpenCacheFolder} onclick={handleOpenCacheFolder}
> >
Open Folder {$t('settings.offlineLibrary.openFolder')}
</button> </button>
</div> </div>
{/if} {/if}
@@ -2547,11 +2547,11 @@
<!-- Updates Section --> <!-- Updates Section -->
<section class="section" bind:this={updatesSection}> <section class="section" bind:this={updatesSection}>
<h3 class="section-title">Updates</h3> <h3 class="section-title">{$t('settings.updates.title')}</h3>
<div class="setting-row"> <div class="setting-row">
<div class="setting-info"> <div class="setting-info">
<span class="setting-label">Check for new releases on launch</span> <span class="setting-label">{$t('settings.updates.checkOnLaunch')}</span>
</div> </div>
<Toggle <Toggle
enabled={updatePreferences.checkOnLaunch} enabled={updatePreferences.checkOnLaunch}
@@ -2561,7 +2561,7 @@
<div class="setting-row"> <div class="setting-row">
<div class="setting-info"> <div class="setting-info">
<span class="setting-label">Check for updates now</span> <span class="setting-label">{$t('settings.updates.checkNow')}</span>
</div> </div>
<button <button
class="connect-btn updates-check-btn" class="connect-btn updates-check-btn"
@@ -2571,16 +2571,16 @@
> >
{#if isCheckingUpdates} {#if isCheckingUpdates}
<Loader2 size={14} class="spin" /> <Loader2 size={14} class="spin" />
<span>Checking...</span> <span>{$t('settings.updates.checking')}</span>
{:else} {:else}
<span>Check</span> <span>{$t('settings.updates.check')}</span>
{/if} {/if}
</button> </button>
</div> </div>
<div class="setting-row"> <div class="setting-row">
<div class="setting-info"> <div class="setting-info">
<span class="setting-label">Show what's new on new version launch</span> <span class="setting-label">{$t('settings.updates.showWhatsNew')}</span>
</div> </div>
<Toggle <Toggle
enabled={updatePreferences.showWhatsNewOnLaunch} enabled={updatePreferences.showWhatsNewOnLaunch}
@@ -2590,9 +2590,9 @@
<div class="setting-row last"> <div class="setting-row last">
<div class="setting-info"> <div class="setting-info">
<span class="setting-label">Show changelog for current version</span> <span class="setting-label">{$t('settings.updates.showChangelog')}</span>
{#if updatesCurrentVersion} {#if updatesCurrentVersion}
<small class="setting-note">Current version: v{updatesCurrentVersion}</small> <small class="setting-note">{$t('settings.updates.currentVersion', { values: { version: updatesCurrentVersion } })}</small>
{/if} {/if}
</div> </div>
<button <button
@@ -2600,7 +2600,7 @@
onclick={handleShowCurrentChangelog} onclick={handleShowCurrentChangelog}
type="button" type="button"
> >
Show {$t('actions.show')}
</button> </button>
</div> </div>
</section> </section>
@@ -2763,7 +2763,7 @@
onclick={handleClearAllCaches} onclick={handleClearAllCaches}
disabled={isClearingAllCaches} disabled={isClearingAllCaches}
> >
{isClearingAllCaches ? $t('settings.storage.clearing') : 'Clear All'} {isClearingAllCaches ? $t('settings.storage.clearing') : $t('actions.clearAll')}
</button> </button>
</div> </div>
{/if} {/if}
+43 -2
View File
@@ -344,8 +344,10 @@
"edit": "Edit", "edit": "Edit",
"close": "Close", "close": "Close",
"open": "Open", "open": "Open",
"show": "Show",
"refresh": "Refresh", "refresh": "Refresh",
"retry": "Retry", "retry": "Retry",
"repair": "Repair",
"clear": "Clear", "clear": "Clear",
"clearAll": "Clear All", "clearAll": "Clear All",
"confirm": "Confirm", "confirm": "Confirm",
@@ -373,13 +375,36 @@
"streamingQualityDesc": "Maximum quality for streaming and playback cache", "streamingQualityDesc": "Maximum quality for streaming and playback cache",
"qualityChangedCacheCleared": "Quality changed. Playback cache cleared.", "qualityChangedCacheCleared": "Quality changed. Playback cache cleared.",
"outputDevice": "Output Device", "outputDevice": "Output Device",
"outputDeviceDesc": "Select your preferred audio output device. Devices shown are from the selected backend.",
"audioDevice": "Audio Device", "audioDevice": "Audio Device",
"exclusiveMode": "Exclusive Mode", "exclusiveMode": "Exclusive Mode",
"exclusiveModeDesc": "Lock audio device for exclusive use", "exclusiveModeDesc": "Lock audio device for exclusive use",
"dacPassthrough": "DAC Passthrough", "dacPassthrough": "DAC Passthrough",
"dacPassthroughDesc": "Bypass system mixer for bit-perfect output", "dacPassthroughDesc": "Bypass system mixer for bit-perfect output",
"currentSampleRate": "Current Sample Rate", "currentSampleRate": "Current Sample Rate",
"noActivePlayback": "No active playback" "noActivePlayback": "No active playback",
"loadingDevices": "Loading devices...",
"loadingAudioDevices": "Loading audio devices...",
"parsingHardware": "Parsing hardware information",
"limitQualityToDevice": "Limit Quality to Device",
"limitQualityToDeviceDesc": "When enabled, overrides the quality setting above if your audio device doesn't support the selected sample rate. Prevents resampling to guarantee bit-perfect playback.",
"audioBackend": "Audio Backend",
"audioBackendDesc": "Choose audio system: Auto (recommended), PipeWire (modern), ALSA Direct (bit-perfect, exclusive), or PulseAudio (legacy).",
"alsaPlugin": "ALSA Plugin",
"alsaPluginDesc": "hw: Bit-perfect, exclusive. plughw: Auto-convert. pcm: Most compatible.",
"hardwareVolume": "Enable Hardware Volume Control",
"hardwareVolumeDesc": "Experimental: Controls DAC volume via ALSA mixer. Some DACs don't support this - disable for maximum compatibility. If it fails, playback continues normally.",
"helpBitPerfect": "Help with bit-perfect device detection",
"flatpakWarningTitle": "Flatpak Limitation:",
"flatpakWarningDesc": "PipeWire cannot guarantee bit-perfect playback in sandboxed environments due to daemon access restrictions.",
"flatpakRecommended": "Recommended:",
"flatpakRecommendedDesc": "Switch to ALSA Direct backend for true bit-perfect audio.",
"streamUncached": "Stream Uncached Tracks",
"streamUncachedDesc": "Start playback faster when track is not in cache. Seeking may be limited during initial buffering.",
"initialBuffer": "Initial Buffer Size",
"initialBufferDesc": "Seconds to buffer before starting playback ({seconds}s)",
"streamingOnly": "Streaming Only",
"streamingOnlyDesc": "Disables temporary cache. Not recommended without a fast connection. Offline library tracks always play first."
}, },
"playback": { "playback": {
"title": "Playback", "title": "Playback",
@@ -465,7 +490,23 @@
"disclaimer": "The offline library is a temporary playback cache for offline listening while you have a valid Qobuz subscription. You do not receive a license to keep or redistribute the content. If your subscription becomes invalid, QBZ will remove all cached content after 3 days.", "disclaimer": "The offline library is a temporary playback cache for offline listening while you have a valid Qobuz subscription. You do not receive a license to keep or redistribute the content. If your subscription becomes invalid, QBZ will remove all cached content after 3 days.",
"cachedTracks": "Offline Tracks", "cachedTracks": "Offline Tracks",
"clearCache": "Clear All", "clearCache": "Clear All",
"openFolder": "Open Folder" "openFolder": "Open Folder",
"repair": "Repair Offline Library",
"repairDesc": "Fix offline markers lost during library scans",
"manageCache": "Manage Offline Cache",
"manageCacheDesc": "Open the cache folder in your file manager",
"sectionSummary": "Cached tracks for offline playback",
"repairing": "Repairing..."
},
"updates": {
"title": "Updates",
"checkOnLaunch": "Check for new releases on launch",
"checkNow": "Check for updates now",
"checking": "Checking...",
"check": "Check",
"showWhatsNew": "Show what's new on new version launch",
"showChangelog": "Show changelog for current version",
"currentVersion": "Current version: v{version}"
}, },
"networkCacheWarning": "The selected folder is on a network drive.", "networkCacheWarning": "The selected folder is on a network drive.",
"networkCacheWarningDetail": "Cached tracks may not be available when the network is disconnected or in offline mode. Are you sure you want to use this location?", "networkCacheWarningDetail": "Cached tracks may not be available when the network is disconnected or in offline mode. Are you sure you want to use this location?",
+43 -2
View File
@@ -344,8 +344,10 @@
"edit": "Editar", "edit": "Editar",
"close": "Cerrar", "close": "Cerrar",
"open": "Abrir", "open": "Abrir",
"show": "Mostrar",
"refresh": "Actualizar", "refresh": "Actualizar",
"retry": "Reintentar", "retry": "Reintentar",
"repair": "Reparar",
"clear": "Limpiar", "clear": "Limpiar",
"clearAll": "Limpiar Todo", "clearAll": "Limpiar Todo",
"confirm": "Confirmar", "confirm": "Confirmar",
@@ -373,13 +375,36 @@
"streamingQualityDesc": "Calidad máxima para streaming y caché de reproducción", "streamingQualityDesc": "Calidad máxima para streaming y caché de reproducción",
"qualityChangedCacheCleared": "Calidad cambiada. Caché de reproducción limpiado.", "qualityChangedCacheCleared": "Calidad cambiada. Caché de reproducción limpiado.",
"outputDevice": "Dispositivo de Salida", "outputDevice": "Dispositivo de Salida",
"outputDeviceDesc": "Selecciona tu dispositivo de audio preferido. Se muestran los dispositivos del backend seleccionado.",
"audioDevice": "Dispositivo de Audio", "audioDevice": "Dispositivo de Audio",
"exclusiveMode": "Modo Exclusivo", "exclusiveMode": "Modo Exclusivo",
"exclusiveModeDesc": "Bloquear dispositivo de audio para uso exclusivo", "exclusiveModeDesc": "Bloquear dispositivo de audio para uso exclusivo",
"dacPassthrough": "Passthrough DAC", "dacPassthrough": "Passthrough DAC",
"dacPassthroughDesc": "Bypass del mixer del sistema para salida bit-perfect", "dacPassthroughDesc": "Bypass del mixer del sistema para salida bit-perfect",
"currentSampleRate": "Tasa de Muestreo Actual", "currentSampleRate": "Tasa de Muestreo Actual",
"noActivePlayback": "Sin reproducción activa" "noActivePlayback": "Sin reproducción activa",
"loadingDevices": "Cargando dispositivos...",
"loadingAudioDevices": "Cargando dispositivos de audio...",
"parsingHardware": "Analizando información de hardware",
"limitQualityToDevice": "Limitar Calidad al Dispositivo",
"limitQualityToDeviceDesc": "Cuando está activado, anula la configuración de calidad si tu dispositivo de audio no soporta la tasa de muestreo seleccionada. Previene el remuestreo para garantizar reproducción bit-perfect.",
"audioBackend": "Backend de Audio",
"audioBackendDesc": "Elige el sistema de audio: Auto (recomendado), PipeWire (moderno), ALSA Direct (bit-perfect, exclusivo), o PulseAudio (legacy).",
"alsaPlugin": "Plugin ALSA",
"alsaPluginDesc": "hw: Bit-perfect, exclusivo. plughw: Auto-conversión. pcm: Más compatible.",
"hardwareVolume": "Habilitar Control de Volumen por Hardware",
"hardwareVolumeDesc": "Experimental: Controla el volumen del DAC vía mixer ALSA. Algunos DACs no lo soportan - desactívalo para máxima compatibilidad. Si falla, la reproducción continúa normalmente.",
"helpBitPerfect": "Ayuda con detección de dispositivos bit-perfect",
"flatpakWarningTitle": "Limitación de Flatpak:",
"flatpakWarningDesc": "PipeWire no puede garantizar reproducción bit-perfect en entornos sandbox debido a restricciones de acceso al daemon.",
"flatpakRecommended": "Recomendado:",
"flatpakRecommendedDesc": "Cambiar al backend ALSA Direct para audio bit-perfect verdadero.",
"streamUncached": "Transmitir Pistas Sin Caché",
"streamUncachedDesc": "Inicia la reproducción más rápido cuando la pista no está en caché. La búsqueda puede estar limitada durante el buffering inicial.",
"initialBuffer": "Tamaño del Buffer Inicial",
"initialBufferDesc": "Segundos a almacenar en buffer antes de iniciar reproducción ({seconds}s)",
"streamingOnly": "Solo Streaming",
"streamingOnlyDesc": "Desactiva el caché temporal. No recomendado sin una conexión rápida. Las pistas de la biblioteca offline siempre se reproducen primero."
}, },
"playback": { "playback": {
"title": "Reproducción", "title": "Reproducción",
@@ -465,7 +490,23 @@
"disclaimer": "La biblioteca offline es un caché temporal de reproducción para escucha sin conexión mientras tengas una suscripción válida de Qobuz. No recibes una licencia para conservar o redistribuir el contenido. Si tu suscripción deja de ser válida, QBZ eliminará todo el contenido en caché después de 3 días.", "disclaimer": "La biblioteca offline es un caché temporal de reproducción para escucha sin conexión mientras tengas una suscripción válida de Qobuz. No recibes una licencia para conservar o redistribuir el contenido. Si tu suscripción deja de ser válida, QBZ eliminará todo el contenido en caché después de 3 días.",
"cachedTracks": "Pistas Offline", "cachedTracks": "Pistas Offline",
"clearCache": "Limpiar Todo", "clearCache": "Limpiar Todo",
"openFolder": "Abrir Carpeta" "openFolder": "Abrir Carpeta",
"repair": "Reparar Biblioteca Offline",
"repairDesc": "Corregir marcadores offline perdidos durante escaneos de biblioteca",
"manageCache": "Administrar Caché Offline",
"manageCacheDesc": "Abrir la carpeta de caché en tu administrador de archivos",
"sectionSummary": "Pistas en caché para reproducción offline",
"repairing": "Reparando..."
},
"updates": {
"title": "Actualizaciones",
"checkOnLaunch": "Buscar nuevas versiones al iniciar",
"checkNow": "Buscar actualizaciones ahora",
"checking": "Verificando...",
"check": "Verificar",
"showWhatsNew": "Mostrar novedades al lanzar nueva versión",
"showChangelog": "Mostrar registro de cambios para la versión actual",
"currentVersion": "Versión actual: v{version}"
}, },
"networkCacheWarning": "La carpeta seleccionada está en una unidad de red.", "networkCacheWarning": "La carpeta seleccionada está en una unidad de red.",
"networkCacheWarningDetail": "Las pistas en caché pueden no estar disponibles cuando la red esté desconectada o en modo offline. ¿Estás seguro de que quieres usar esta ubicación?", "networkCacheWarningDetail": "Las pistas en caché pueden no estar disponibles cuando la red esté desconectada o en modo offline. ¿Estás seguro de que quieres usar esta ubicación?",