mirror of
https://github.com/kilyabin/psysonic.git
synced 2026-07-22 06:25:41 +00:00
refactor(settings): thematic tab regroup + accordion sub-sections + in-page search (closes #257) (#259)
* refactor(settings): regroup tabs thematically + accordion sub-sections (progress on #257) New tab structure: Servers (first) · Library · Audio · Lyrics · Appearance · Personalisation · Integrations · Input · Storage · System · Users. Reusable SettingsSubSection (native <details>) wraps related settings per tab, with an optional action slot for per-section reset buttons. Moved: - Lyrics sources + sidebar lyrics style → Lyrics - Sidebar / artist layout / home customisers → Personalisation - Last.fm / Discord / Bandsintown / Now-playing share → Integrations (with an opt-in privacy banner at the top) - Tray / minimize / Linux smooth-scroll → System (new App-Verhalten group) - Preload mini-player / custom titlebar / show artist images → Appearance visual options - Language picker → System Audio, Appearance and System tabs are now fully accordion-grouped. Library tab reduced to Random Mix + Ratings accordions. Servers tab is its own home (server cards + AudioMuse + logout) and the default landing tab. Indicators in the titlebar and offline banner route to the right tab. EN + DE translations added for the new tab labels and privacy banner; other locales fall back to English until the full i18n pass lands. * refactor(settings): audio/input/storage/system accordions, in-page search, Navidrome focus Settings refactor progress — every tab is now accordion-grouped: - Audio: Output · Hi-Res · EQ · Playback · Next-track buffer - Input: Keybindings · Global shortcuts (reset in accordion action slot) - Storage: Offline · Downloads - System: Language (default open) · Behavior · Backup · Logging · About · Contributors - Contributors: own card grid with per-contributor expand, sorted by contribution count. Changelog accordion removed (release-notes link and "show changelog on update" toggle now live inside About). - About: Navidrome focus; AI credit and Special Thanks removed; new Maintainers row (Psychotoxical + cucadmuh). In-page search: magnifier icon next to the Settings title. Click opens a 240px search field. Filters the active tab's sub-sections by title match (data-settings-search). Cross-tab search is tracked as a follow-up. serverCompatible updated in all 8 locales from "Compatible with: Navidrome Gonic Airsonic Subsonic" to a Navidrome-first wording that warns other Subsonic-compatible servers may have reduced functionality. Full i18n pass (tabLyrics/tabPersonalisation/tabIntegrations, aboutDesc, privacy banner, etc. in fr/nl/zh/nb/ru/es) follows in a separate commit after visual review. * i18n(settings): complete localisation pass for refactored tabs Added in all 8 locales (fr, nl, zh, nb, ru, es — en+de already in place): - Tab labels: tabLibrary, tabServers, tabLyrics, tabPersonalisation, tabIntegrations - inputKeybindingsTitle, searchPlaceholder, searchNoResults, aboutMaintainersLabel - integrationsPrivacyTitle, integrationsPrivacyBody - aboutContributorsCount_one/_other (ru also _few/_many for proper plural forms) - aboutDesc rewritten to describe a Navidrome-focused player instead of a generic Subsonic-compatible one. Removed dead keys in all 8 locales: - aboutAiCredit, aboutSpecialThanksLabel — no longer rendered - changelog — inline changelog accordion removed - tabServer, tabGeneral — superseded by new tab structure --------- Co-authored-by: Psychotoxical <dev@psysonic.app>
This commit is contained in:
committed by
GitHub
parent
f6f76723d8
commit
2a496c600b
+15
-7
@@ -469,7 +469,7 @@ export const esTranslation = {
|
||||
serverFailed: 'Conexión fallida.',
|
||||
testBtn: 'Probar Conexión',
|
||||
testingBtn: 'Probando…',
|
||||
serverCompatible: 'Compatible con: Navidrome · Gonic · Airsonic · Subsonic',
|
||||
serverCompatible: 'Diseñado para Navidrome. Otros servidores compatibles con Subsonic (Gonic, Airsonic, …) pueden funcionar con funcionalidad reducida, ya que Psysonic utiliza muchos endpoints específicos de la API de Navidrome.',
|
||||
userMgmtTitle: 'Gestión de usuarios',
|
||||
userMgmtDesc: 'Administra los usuarios de este servidor. Requiere privilegios de administrador.',
|
||||
userMgmtNoAdmin: 'Necesitas privilegios de administrador para gestionar usuarios en este servidor.',
|
||||
@@ -646,18 +646,15 @@ export const esTranslation = {
|
||||
clearFolder: 'Limpiar carpeta de descarga',
|
||||
logout: 'Cerrar Sesión',
|
||||
aboutTitle: 'Acerca de Psysonic',
|
||||
aboutDesc: 'Un reproductor de música moderno para escritorio compatible con servidores Subsonic (Navidrome, Gonic y otros). Construido en Tauri v2 con motor de audio nativo en Rust — ligero y rápido, pero lleno de características: barra de progreso tipo onda, letras sincronizadas, integración Last.fm, ecualizador de 10 bandas, crossfade, reproducción gapless, Replay Gain, navegación por géneros, y una gran biblioteca de temas.',
|
||||
aboutDesc: 'Un reproductor de música de escritorio moderno creado para Navidrome. Utiliza la API de Subsonic más extensiones específicas de Navidrome. Construido en Tauri v2 con motor de audio nativo en Rust — ligero y rápido, pero lleno de características: barra de progreso tipo onda, letras sincronizadas, integración Last.fm, ecualizador de 10 bandas, crossfade, reproducción gapless, Replay Gain, navegación por géneros, y una gran biblioteca de temas.',
|
||||
aboutLicense: 'Licencia',
|
||||
aboutLicenseText: 'GNU GPL v3 — libre para usar, modificar y distribuir bajo la misma licencia.',
|
||||
aboutRepo: 'Código Fuente en GitHub',
|
||||
aboutVersion: 'Versión',
|
||||
aboutBuiltWith: 'Construido con Tauri · React · TypeScript · Rust/rodio',
|
||||
aboutAiCredit: 'Desarrollado con el apoyo de Claude Code by Anthropic',
|
||||
aboutReleaseNotesLabel: 'Notas de la versión',
|
||||
aboutReleaseNotesLink: 'Abrir las novedades de esta versión',
|
||||
aboutContributorsLabel: 'Contribuidores',
|
||||
aboutSpecialThanksLabel: 'Agradecimientos Especiales',
|
||||
changelog: 'Registro de Cambios',
|
||||
showChangelogOnUpdate: "Mostrar 'Novedades' al actualizar",
|
||||
showChangelogOnUpdateDesc: 'Muestra un discreto banner de changelog encima de Now Playing tras una actualización. Clic abre las notas de la versión; X lo oculta.',
|
||||
randomMixTitle: 'Mezcla Aleatoria',
|
||||
@@ -670,6 +667,19 @@ export const esTranslation = {
|
||||
tabAudio: 'Audio',
|
||||
tabStorage: 'Almacenamiento y Descargas',
|
||||
tabAppearance: 'Apariencia',
|
||||
tabLibrary: 'Biblioteca',
|
||||
tabServers: 'Servidores',
|
||||
tabLyrics: 'Letras',
|
||||
tabPersonalisation: 'Personalización',
|
||||
tabIntegrations: 'Integraciones',
|
||||
inputKeybindingsTitle: 'Atajos de teclado',
|
||||
aboutContributorsCount_one: '{{count}} contribución',
|
||||
aboutContributorsCount_other: '{{count}} contribuciones',
|
||||
searchPlaceholder: 'Buscar en ajustes…',
|
||||
searchNoResults: 'No hay ajustes coincidentes en esta pestaña. Prueba con otra.',
|
||||
aboutMaintainersLabel: 'Mantenedores',
|
||||
integrationsPrivacyTitle: 'Aviso de privacidad',
|
||||
integrationsPrivacyBody: 'Todas las integraciones de esta pestaña son <strong>opt-in</strong> y, una vez activadas, envían datos a servicios externos o a tu servidor Navidrome. Last.fm recibe tu historial de escucha, Discord muestra la pista actual en tu perfil, Bandsintown se consulta por artista para obtener fechas de gira, y la compartición «En reproducción» publica tu pista actual para otros usuarios de tu servidor Navidrome. Si no quieres nada de esto, simplemente deja desactivada la sección correspondiente.',
|
||||
homeCustomizerTitle: 'Página de Inicio',
|
||||
sidebarTitle: 'Barra Lateral',
|
||||
sidebarReset: 'Restablecer a predeterminado',
|
||||
@@ -686,7 +696,6 @@ export const esTranslation = {
|
||||
randomNavSplitTitle: 'Dividir navegación Mix',
|
||||
randomNavSplitDesc: 'Mostrar "Mezcla Aleatoria" y "Álbumes Aleatorios" como entradas separadas en la barra lateral en lugar del hub "Crear Mezcla".',
|
||||
tabInput: 'Entrada',
|
||||
tabServer: 'Servidor',
|
||||
tabUsers: 'Usuarios',
|
||||
tabSystem: 'Sistema',
|
||||
loggingTitle: 'Registro',
|
||||
@@ -697,7 +706,6 @@ export const esTranslation = {
|
||||
loggingExport: 'Exportar logs',
|
||||
loggingExportSuccess: 'Logs exportados ({{count}} líneas).',
|
||||
loggingExportError: 'No se pudieron exportar los logs.',
|
||||
tabGeneral: 'General',
|
||||
ratingsSectionTitle: 'Calificaciones',
|
||||
ratingsSkipStarTitle: 'Saltar para 1 estrella',
|
||||
ratingsSkipStarDesc:
|
||||
|
||||
Reference in New Issue
Block a user