Files
psysonic/src/locales/ro/settings.ts
T
Psychotoxical 93166c774a feat(i18n): add Hungarian (hu) translation (#1149)
* feat(i18n): add Hungarian (hu) translation files

* feat(i18n): register Hungarian locale and language option

* docs(changelog): Hungarian translation entry and credit (#1149)

* fix(i18n): list Romanian in the Login language picker
2026-06-22 00:56:37 +02:00

719 lines
48 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
export const settings = {
title: 'Setări',
language: 'Limbă',
languageEn: 'Engleză',
languageDe: 'Germană',
languageFr: 'Franceză',
languageNl: 'Olandeză',
languageZh: 'Chineză',
languageNb: 'Norvegiană',
languageRu: 'Rusă',
languageEs: 'Spaniolă',
languageRo: 'Română',
languageJa: '日本語',
languageHu: 'Magyar',
font: 'Font',
fontHintOpenDyslexic: 'Prietenos cu dislexia · Chineza nu este suportată',
theme: 'Temă',
appearance: 'Aparență',
servers: 'Servere',
serverName: 'Nume Server',
serverUrl: 'URL Server',
serverUrlPlaceholder: '192.168.1.100:4533 sau https://music.example.com',
serverAlternateUrl: 'A doua adresă (opțional)',
serverAlternateUrlPlaceholderPublic: 'https://music.example.com',
serverAlternateUrlPlaceholderLocal: '192.168.1.100:4533',
serverAlternateUrlHintAddPublic: 'Poți adăuga o adresă publică pentru a te conecta din afara rețelei tale de acasă.',
serverAlternateUrlHintAddLocal: 'Poți adăuga o adresă locală pentru o conexiune mai rapidă acasă.',
serverBothLanError: 'Ambele adrese sunt locale — păstrează una sau adaugă o adresă publică.',
dualAddressVerifying: 'Verificăm dacă ambele adrese duc la același server…',
dualAddressMismatch: 'Cele două adrese duc la servere diferite. Verifică ortografia și încearcă din nou.',
dualAddressInsufficient: 'Nu am putut confirma că ambele adrese sunt același server. Elimină o adresă pentru a continua.',
dualAddressUnreachable: 'Nu am putut contacta {{host}}. Verifică adresa și rețeaua și încearcă din nou.',
urlRemigrationTitle: 'Muți datele bibliotecii?',
urlRemigrationMessage: 'Schimbarea adresei va muta toate datele bibliotecii, analizei și ale cache-ului de coperți de la {{oldKey}} la {{newKey}}. Această acțiune nu poate fi anulată.',
urlRemigrationConfirm: 'Mută datele',
urlRemigrationProgress: 'Mutăm datele bibliotecii…',
urlRemigrationFailureInspect: 'Nu am putut verifica ce ar fi mutat. Încearcă din nou sau deschide jurnalul de depanare.',
urlRemigrationFailureRun: 'Mutarea datelor bibliotecii a eșuat. Datele salvate sunt neschimbate — încearcă din nou.',
urlRemigrationFailureCoverRename: 'Datele bibliotecii au fost mutate, dar fișierele de copertă nu au putut fi redenumite. Coperțile vor fi reconstruite la următorul acces.',
shareUsesLocalUrl: 'Folosește adresa locală în linkurile de partajare',
shareUsesLocalUrlDesc: 'Afectează invitațiile Orbit și partajările bibliotecii. Implicit: adresa publică.',
serverUsername: 'Nume utilizator',
serverPassword: 'Parolă',
addServer: 'Adaugă Server',
addServerTitle: 'Adaugă Server nou',
editServer: 'Editează',
editServerTitle: 'Editează Server',
useServer: 'Folosește',
deleteServer: 'Șterge',
noServers: 'Niciun server salvat.',
serverActive: 'Activ',
serverVersionUnknown: 'Versiunea serverului necunoscută',
confirmDeleteServer: 'Șterge server "{{name}}"?',
serverConnecting: 'Se conectează…',
serverConnected: 'Conectat!',
serverFailed: 'Conexiune eșuată.',
testBtn: 'Testează Conexiunea',
testingBtn: 'Se testează…',
serverCompatible: 'Făcut pentru Navidrome. Alte servere compatibile cu Subsonic (Gonic, Airsonic, …) pot rula cu funcționalitate redusă, deoarece Psysonic folosește multe endpointuri API specifice Navidrome.',
userMgmtTitle: 'Gestionarea Utilizatorilor',
userMgmtDesc: 'Gestionează utilizatorii de pe acest server. Necesită privilegii admin.',
userMgmtNoAdmin: 'Ai nevoie de privilegii de admin pentru a gestiona utilizatorii de pe acest server.',
userMgmtLoadError: 'Eroare la încărcarea utilizatorilor.',
userMgmtLoadFriendly: 'Serverul nu a răspuns — acesta este de obicei un caz singular.',
userMgmtRetry: 'Reîncearcă',
userMgmtEmpty: 'Niciun utilizator găsit.',
userMgmtYouBadge: 'Tu',
userMgmtAdminBadge: 'Admin',
userMgmtAddUser: 'Adaugă Utilizator',
userMgmtAddUserTitle: 'Adaugă Nou Utilizator',
userMgmtEditUserTitle: 'Editează Utilizatorul',
userMgmtUsername: 'Nume utilizator',
userMgmtName: 'Nume afișaj',
userMgmtEmail: 'Email',
userMgmtPassword: 'Parolă',
userMgmtPasswordEditHint: 'Introdu o parolă nouă pentru a o actualiza.',
userMgmtRoleAdmin: 'Admin',
userMgmtLibraries: 'Librării',
userMgmtLibrariesAdminHint: 'Utilizatorii Admin au acces automat la toate librăriile.',
userMgmtLibrariesEmpty: 'Nicio librărie disponibilă pe acest server.',
userMgmtLibrariesValidation: 'Alege cel puțin o librărie.',
userMgmtLibrariesUpdateError: 'Utilizator salvat, dar atribuirea librăriilor a eșuat',
userMgmtNoLibraries: 'Nicio librărie asignată',
userMgmtNeverSeen: 'Niciodată',
userMgmtSave: 'Salvează',
userMgmtCancel: 'Anulează',
userMgmtDelete: 'Șterge',
userMgmtEdit: 'Editează',
userMgmtConfirmDelete: 'Șterge utilizatorul "{{username}}"? Acestă acțiune nu poate fi anulată.',
userMgmtCreateError: 'Nu s-a putut crea utilizatorul.',
userMgmtUpdateError: 'Nu s-a putut actualiza utilizatorul.',
userMgmtDeleteError: 'Nu s-a putut șterge utilizatorul.',
userMgmtCreated: 'Utilizator creat.',
userMgmtUpdated: 'Utilizator actualizat.',
userMgmtDeleted: 'Utilizator șters.',
userMgmtValidationMissing: 'Numele de utilizator, numele de afișaj și parola sunt necesare.',
userMgmtValidationMissingIdentity: 'Numele de utilizator și numele de afișaj sunt necesare.',
userMgmtMagicStringGenerate: 'Generează string-ul magic',
userMgmtSaveAndMagicString: 'Salvează și obține string-ul magic',
userMgmtMagicStringPasswordNavHint:
'Navidrome va salva această parolă pentru utilizator. Dacă diferă de cea curentă, serverul va actualiza parola de login.',
userMgmtMagicStringPlaintextWarning:
'Distribuie string-ul magic cu grijă: conține o parolă necriptată (codificarea nu este criptare). Oricine cu string-ul complet se poate conecta ca acest utilizator.',
userMgmtMagicStringCopied: 'String-ul magic copiat în clipboard.',
userMgmtMagicStringCopyFailed: 'Nu s-a putut copia în clipboard.',
userMgmtMagicStringLoginFailed: 'Verificarea parolei a eșuat — credențialele nu au putut fi verificate.',
userMgmtMagicStringModalTitle: 'Generează string-ul magic',
userMgmtMagicStringModalDesc: 'Introdu parola Subsonic pentru "{{username}}". Este inclusă în string-ul magic copiat.',
userMgmtMagicStringModalConfirm: 'Copiază string-ul',
audiomuseTitle: 'AudioMuse-AI (Navidrome)',
audiomuseBadge: 'AudioMuse-AI',
audiomuseStatusActive: 'Activ',
audiomuseStatusChecking: 'Se verifică…',
audiomuseStatusNotDetected: 'Nedetectat',
audiomuseStatusProbeFailed: 'Verificare eșuată',
audiomuseDesc:
'Pornește dacă acest server are <pluginLink>AudioMuse-AI Navidrome plugin</pluginLink> configurat. Activează Mixul Instant din piese si folosește artiști similari de pe partea de server în loc de Last.fm pe paginile de artiști.',
audiomuseIssueHint:
'Mixul Instant a eșuat recent — verifică plugin-ul Navidrome și API-ul AudioMuse. Artiștii similari sunt bazați pe Last.fm când serverul nu returnează nimic.',
connected: 'Conectat',
failed: 'Eșuat',
eqTitle: 'Egalizator',
eqEnabled: 'Activează Egalizatorul',
eqPreset: 'Preset',
eqPresetCustom: 'Personalizat',
eqPresetBuiltin: 'Preseturi încorporate',
eqPresetCustomGroup: 'Preseturile mele',
eqPresetAutoEqGroup: 'AutoEQ',
eqSavePreset: 'Salvează ca Preset',
eqPresetName: 'Nume preset…',
eqDeletePreset: 'Șterge preset',
eqResetBands: 'Resetează la Plat',
eqPreGain: 'Pre-gain',
eqResetPreGain: 'Resetează pre-gain',
eqAutoEqTitle: 'Căutare Căști AutoEQ',
eqAutoEqPlaceholder: 'Caută model căști / IEM…',
eqAutoEqSearching: 'Se caută…',
eqAutoEqNoResults: 'Niciun rezultat găsit',
eqAutoEqError: 'Căutarea a eșuat',
eqAutoEqRateLimit: 'Limita ratei GitHub a fost atinsă — încearcă din nou într-un minut',
eqAutoEqFetchError: 'Nu s-a putut lua profilul EQ',
behavior: 'Comportamentul Aplicației',
groupTray: 'Bară de sistem',
groupLinuxRendering: 'Randare Linux',
groupClock: 'Ceas',
groupDisplay: 'Afișare',
groupWindow: 'Fereastră',
cacheTitle: 'Spațiu de stocare maxim',
cacheDesc: 'Cache în browser pentru coperte și imagini de artiști (IndexedDB). Când este plin, cele mai vechi intrări sunt șterse automat.',
cacheUsedImages: 'Imagini:',
cacheUsedOffline: 'Piese offline:',
cacheUsedHot: 'Mărimea pe disc:',
hotCacheTrackCount: 'Piese în memoria cache:',
cacheMaxLabel: 'Mărimea maximă',
imageCacheScopeLabel: 'Domeniu',
imageCacheSubTitle: 'Previzualizări în browser',
coverDiskCacheSubTitle: 'Cache de coperte pe disc',
coverCacheStrategyTitle: 'Cache pentru coperte',
coverCacheStrategyDesc: 'Poți alege o strategie pentru fiecare server: Lazy — încarcă copertele la nevoie; Aggressive — încarcă la nevoie plus preîncărcare suplimentară în fundal.',
coverCacheStrategyLabel: 'Strategie',
coverCacheStrategyServerLabel: 'Server',
coverCacheStrategyProgressLabel: 'Cache',
coverCacheStrategyActionsLabel: 'Acțiuni',
coverCacheStrategyLazy: 'Lazy',
coverCacheStrategyLazyDesc: 'Încarcă copertele doar atunci când sunt necesare.',
coverCacheStrategyAggressive: 'Aggressive',
coverCacheStrategyAggressiveDesc: 'Comportamentul Lazy plus preîncărcare suplimentară în fundal.',
coverCacheStrategyDiskUsage: 'Pe disc: {{size}}',
coverCacheStrategyProgressValue: '{{percent}}% ({{done}}/{{total}}) · {{size}}',
coverCacheStrategyClearAction: 'Golește cache-ul de coperte',
coverCacheStrategyClearTitle: 'Golești cache-ul de coperte?',
coverCacheStrategyClearDesc: 'Șterge toate copertele din cache pentru {{server}}. Vor fi descărcate din nou la nevoie.',
coverCacheStrategyClearConfirm: 'Golește',
coverCacheStrategyClearCancel: 'Anulează',
coverCacheStrategyClearSuccess: 'Cache-ul de coperte a fost golit pentru acest server.',
coverCacheStrategyClearError: 'Golirea cache-ului de coperte a eșuat.',
coverCacheStrategyServerRemoved: 'server eliminat',
cacheClearBtn: 'Golește memoria cache',
waveformCacheClearBtn: 'Golește cache-ul formelor de undă',
cacheClearWarning: 'Șterge toate copertele și imaginile artiștilor din cache. Vor fi descărcate din nou la nevoie.',
cacheClearConfirm: 'Golește cache-ul de imagini',
cacheClearCancel: 'Anulează',
waveformCacheCleared: 'Cache-ul formelor de undă golit ({{count}} rows).',
waveformCacheClearFailed: 'Golirea cache-ului formelor de undă a eșuat.',
mediaDirTitle: 'Folder media',
mediaDirDesc: 'Folder rădăcină pentru redare locală. Librărie offline: library/; buffer coadă: cache/.',
mediaDirDefault: 'Implicit (App Data)',
mediaDirChange: 'Schimbă folderul',
mediaDirClear: 'Resetează la implicit',
mediaDirHint: 'Descărcările noi folosesc această locație. Fișierele existente rămân la calea originală până le ștergi.',
offlineStorageTitle: 'Stocare offline',
offlineDirTitle: 'Librărie offline (În Aplicație)',
offlineDirDesc: 'Locația stocării pieselor pe care le faci disponibile offline în Psysonic.',
offlineDirDefault: 'Implicit (App Data)',
offlineDirChange: 'Schimbă directorul',
offlineDirClear: 'Resetează la implicit',
offlineDirHint: 'Noile descărcări vor folosi această locație. Descărcările existente rămân la adresa originală.',
hotCacheTitle: 'Cache-ul hot playback',
hotCacheDisclaimer: 'Preîncarcă piesele ce urmează din coadă și păstrează anterioarele. Când este pornit, folosește spațiu pe disc și rețea.',
hotCacheDirDefault: 'Implicit (App Data)',
hotCacheDirChange: 'Schimbă folderul',
hotCacheDirClear: 'Resetează la implicit',
hotCacheDirHint: 'Schimbarea folderului resetează indexul din aplicație; fișierele aflate deja pe disc stau unde sunt până când le ștergi.',
hotCacheEnabled: 'Activează cache-ul hot playback cache',
hotCacheMaxMb: 'Mărimea maximă cache',
hotCacheDebounce: 'Debounce la schimbarea cozii',
hotCacheDebounceImmediate: 'Imediat',
hotCacheDebounceSeconds: '{{n}} s',
hotCacheClearBtn: 'Golește hot cache',
audioOutputDevice: 'Dispozitiv de ieșire audio',
audioOutputDeviceDesc: 'Alege prin ce dispozitiv audio să redea Psysonic. Schimbările au efect imediat și re-încep piesa curentă.',
audioOutputDeviceDefault: 'Implicit sistem',
audioOutputDeviceRefresh: 'Reîmprospătează lista dispozitivelor',
audioOutputDeviceOsDefaultNow: 'ieșirea curentă a sistemului',
audioOutputDeviceListError: 'Nu s-a putut încărca lista dispozitivelor audio',
audioOutputDeviceNotInCurrentList: 'nu există în lista curentă',
audioOutputDeviceRememberEq: 'Reține egalizatorul per dispozitiv',
audioOutputDeviceRememberEqDesc: 'Salvează setările egalizatorului pentru fiecare dispozitiv de ieșire audio și le restaurează automat la schimbarea dispozitivului. Profilurile se schimbă doar când alegi un dispozitiv aici; ieșirea implicită a sistemului folosește un singur profil comun.',
hiResTitle: 'Playback Hi-Res nativ',
hiResEnabled: 'Pornește playback-ul hi-res nativ',
hiResDesc: "Redă fiecare piesă la rata sa de eșantionare originală în loc să reeșantioneze totul la 44.1 kHz, comutând dispozitivul de ieșire pentru a se potrivi cu fișierul (88.2 kHz și peste). Pornește doar dacă hardware-ul și rețeaua gestionează fiabil rate mari de eșantionare.",
showArtistImages: 'Afișează Imagini Artist',
showArtistImagesDesc: 'Încarcă și afișează imagini artist în Prezentarea generală a Artiștilor. Oprit implicit pentru a reduce I/O pe server și încărcarea rețelei pe librării mari.',
showOrbitTrigger: 'Afișează "Orbit" în antet',
showOrbitTriggerDesc: 'Declanșatorul din bara de sus pentru a începe sau intra într-o sesiune de ascultare distribuită. Ascunde-l dacă nu folosești Orbit - îl poți porni înapoi aici.',
showTrayIcon: 'Afișează Iconița Tavă',
showTrayIconDesc: 'Afișează iconița Psysonic în zona notificărilor de sistem / bara de meniu.',
minimizeToTray: 'Minimizează în Tavă',
minimizeToTrayDesc: 'La închiderea ferestrei, continuă rularea Psysonic în tava de sistem în loc de ieșire',
clockFormat: 'Format Oră',
clockFormatDesc: 'Format al ceasului folosit pentru ETA-ul cozii și previzualizarea cronometrului de somn.',
clockFormatAuto: 'Automat (limba sistemului)',
clockFormatTwentyFour: '24 de ore',
clockFormatTwelve: '12 ore (AM/PM)',
preloadMiniPlayer: 'Preîncarcă mini player',
preloadMiniPlayerDesc: 'Crează fereastra mini player în fundal la deschiderea aplicației pentru a arăta conținut instantaneu la prima deschidere. Folosește puțină extra memorie.',
discordRichPresence: 'Prezență Discord Rich',
discordRichPresenceDesc: 'Arată piesa redată curent pe profilul tău de Discord. Necesită Discord să ruleze.',
discordRichPresenceNotice: 'Atenție: aceasta este Discord Rich Presence integrată în Psysonic. Dacă preferi să folosești pluginul oficial Discord Rich Presence de la Navidrome, lasă această funcție dezactivată și activează în schimb „Se afișează în Now Playing" mai jos pe această pagină.',
useCustomTitlebar: 'Bară de titlu personalizată',
useCustomTitlebarDesc: 'Înlocuiește bara de titlu a sistemului cu una care corespunde cu tema aplicației. Dezactivează pentru a folosi bara de titlu nativ GNOME/GTK.',
windowButtonStyle: 'Butoane de fereastră',
windowButtonStyleDesc: 'Alege aspectul butoanelor de minimizare, maximizare și închidere.',
windowButtonsDots: 'Puncte',
windowButtonsDotsGlyph: 'Puncte + pictograme',
windowButtonsFlat: 'Plat',
windowButtonsPill: 'Pastilă',
windowButtonsOutline: 'Contur',
windowButtonsGlyph: 'Minimal',
showMinimizeButton: 'Afișează butonul de minimizare',
showMinimizeButtonDesc: 'Dezactivează pentru a afișa doar maximizare și închidere.',
linuxWebkitSmoothScroll: 'Rotiță lină (Linux)',
linuxWebkitSmoothScrollDesc: 'Pornit: scroll inert. Oprit: linie cu linie, în stil GTK.',
linuxWebkitInputForceRepaint: 'Redesenare câmpuri la focus (Linux)',
linuxWebkitInputForceRepaintDesc: 'Soluție pentru WebKitGTK 2.50.x unde câmpurile text îngheață la clic. Pictogramele lupă pâlpâie scurt la focus.',
linuxWaylandTextRender: 'Randare text Wayland (Linux)',
linuxWaylandTextRenderDesc:
'Netezirea în interfață se aplică imediat. Accelerația hardware WebKit (ascuțit/GPU) este salvată și aplicată la următoarea pornire a aplicației — comutarea în timpul rulării poate îngheța WebKitGTK.',
linuxWaylandTextRenderBalanced: 'Echilibrat',
linuxWaylandTextRenderSharp: 'Ascuțit (prietenos cu CPU)',
linuxWaylandTextRenderGpu: 'Prioritate GPU',
linuxWaylandTextRenderMinimal: 'Minim (netezire CSS implicită)',
discordCoverTitle: 'Sursa coperții',
discordCoverDesc: 'De unde provine coperta afișată pe profilul tău Discord.',
discordCoverNone: 'Niciuna (doar iconița aplicației)',
discordCoverServer: 'Server (prin informații album)',
discordCoverApple: 'Apple Music',
discordOptions: 'Opțiuni avansate Discord',
discordTemplates: 'Șablon text personalizat',
discordTemplatesDesc: 'Personalizează ce informații sunt afișate pe profilul tău de Discord. Variabile: {title}, {artist}, {album}',
discordTemplateDetails: 'Linia principală (detalii)',
discordTemplateState: 'Linia secundară (status)',
discordTemplateLargeText: 'Tooltip album (largeText)',
discordTemplateName: 'Linia din listă (name)',
nowPlayingEnabled: 'Se afișează în Now Playing',
nowPlayingEnabledDesc: 'Difuzează piesa redată curent către vizualizatorul de ascultare live a serverului. Dezactivează pentru a opri trimiterea datelor de redare.',
nowPlayingPluginNote: 'Necesar la utilizarea pluginului oficial Discord Rich Presence de la Navidrome.',
externalArtwork: 'Scraper de imagini extern',
externalArtworkDesc: 'Preia fundaluri și bannere de artist la rezoluție înaltă de pe fanart.tv pentru playerul pe tot ecranul și paginile de artist. Dezactivat implicit.',
externalArtworkNote: 'Când este activat, trimite numele artistului (și al albumului curent) către musicbrainz.org pentru a identifica artistul, apoi preia imagini de pe fanart.tv — la cerere și doar pentru citire; etichetele din biblioteca ta nu sunt niciodată modificate. Imaginile sunt furnizate de fanart.tv și colaboratorii săi.',
externalArtworkByokTitle: 'Cheie API personală (BYOK)',
externalArtworkByokDesc: 'Opțional. Introdu aici propria ta cheie API personală fanart.tv — este trimisă pe lângă cheia aplicației.',
externalArtworkByokSaved: 'Salvat — trimis cu cheia aplicației cât timp scraperul este activ.',
enableBandsintown: 'Date de turneu Bandsintown',
enableBandsintownDesc: 'Arată concertele următoare pentru artisul curent în tab-ul Informații. Datele sunt preluate din API-ul public Bandsintown.',
lyricsServerFirst: 'Preferă versurile de pe server',
lyricsServerFirstDesc: 'Verifică versurile furnizate de server (tag-uri încorporate, fișiere sidecar) înainte de interogarea LRCLIB. Dezactivează pentru a folosi LRCLIB primul.',
enableNeteaselyrics: 'Versuri Netease Cloud Music',
enableNeteaselyricsDesc: 'Folosește Netease Cloud Music ca ultimă soluție pentru versuri când serverul și LRCLIB nu returnează nimic. Cea mai bună acoperire pentru muzică Asiatică și internațională.',
lyricsSourcesTitle: 'Sursă versuri',
lyricsSourcesDesc: 'Alege ce surse se interoghează pentru versuri și în ce ordine. Trage pentru a reordona. Sursele dezactivate sunt ignorate complet.',
lyricsSourceServer: 'Server',
lyricsSourceLrclib: 'LRCLIB',
lyricsSourceNetease: 'Netease Cloud Music',
lyricsYouLyPlus: 'YouLyPlus (Karaoke)',
lyricsYouLyPlusDesc: 'Sincronizare cuvânt-cu-cuvânt dintr-un backend comunitar (Apple Music, Spotify, Musixmatch, QQ). Încercat primul; sursele activate de mai jos servesc drept rezervă.',
lyricsSourcesFallbackHint: 'Folosite ca rezervă când YouLyPlus nu găsește nimic. Trage pentru a reordona.',
lyricsSourcesPrimaryHint: 'Încercate în ordine. Trage pentru a reordona. Toate dezactivate = versuri dezactivate.',
lyricsStaticOnly: 'Afișează versurile doar ca text static',
lyricsStaticOnlyDesc: 'Redă versurile sincronizate fără scroll automat și fără evidențierea cuvintelor.',
downloadsTitle: 'Export ZIP & Arhivare',
downloadsFolderDesc: 'Folder destinație pentru albumele pe care le descarci ca fișiere ZIP în calculator.',
downloadsDefault: 'Folderul Download Implicit',
pickFolder: 'Selectează',
pickFolderTitle: 'Selectează Folderul de Download',
clearFolder: 'Golește folderul de download',
logout: 'Deconectare',
aboutTitle: 'Despre Psysonic',
aboutDesc: 'Un player muzical desktop modern făcut pentru Navidrome. Folosește API-ul Subsonic plus extensiile specifice Navidrome. Construit cu Tauri v2 cu un motor audio nativ Rust — ușor și rapid, dar împachetat cu funcționalități: bară de redare cu forme de undă, versuri sincronizate, integrare Last.fm, EQ 10 benzi, crossfade, redare fără spațiu între piese, Replay Gain, navigarea pe gen, și o librărie largă de teme.',
aboutLicense: 'Licență',
aboutLicenseText: 'GNU GPL v3 — liber de utilizat, modificat, și distribuit sub aceeași licență.',
aboutRepo: 'Cod Sursă pe GitHub',
aboutVersion: 'Versiune',
aboutBuiltWith: 'Construit cu Tauri · React · TypeScript · Rust/rodio',
aboutMaintainersLabel: 'Dezvoltatori',
aboutReleaseNotesLabel: 'Notițe lansare',
aboutReleaseNotesLink: "Deschide ce e nou pentru această versiune",
aboutContributorsLabel: 'Contribuabili',
showChangelogOnUpdate: "Arată 'Ce este nou' în update",
showChangelogOnUpdateDesc: "Arată un banner discret cu lista modificărilor deasupra Now Playing după un update. Apasă pentru a deschide lista modificărilor; X îl respinge.",
libraryGridMaxColumnsTitle: 'Grile cu carduri în bibliotecă',
libraryGridMaxColumnsPerfHint: 'Mai multe coloane înseamnă mai multe plăcuțe pe rând și mai multă muncă de layout și desen — se simte pe biblioteci foarte mari sau hardware lent.',
libraryGridMaxColumnsRangeLabel: 'Număr maxim de coloane ({{min}}{{max}})',
libraryGridMaxColumnsDesc: 'Se aplică la albume, artiști, liste de redare, radio, offline și alte ecrane cu carduri. Mai puține coloane = plăcuțe mai mari și de obicei mai puțină încărcare pe CPU.',
libraryIndexTitle: 'Index local al bibliotecii (previzualizare)',
libraryIndexDesc: 'Păstrează o copie locală a bazei de piese a fiecărui server, astfel încât navigarea și căutarea rămân rapide și funcționează offline. Sincronizarea inițială rulează pentru toate serverele configurate; serverele offline sunt reîncercate automat.',
libraryIndexDeltaHint: 'Sincronizarea delta în fundal verifică serverele legate la fiecare 30 de secunde și rulează când este cazul — de obicei la 545 de minute, în funcție de dimensiunea bibliotecii și încărcare.',
libraryIndexEnable: 'Activează indexul local al bibliotecii',
libraryIndexEnableAllDesc: 'Indexează și sincronizează toate serverele configurate în fundal.',
libraryIndexNoServer: 'Adaugă mai întâi un server.',
libraryIndexServerListTitle: 'Servere indexate',
libraryIndexAllExcluded: 'Toate serverele sunt excluse din sincronizare. Reactivează indexul sau adaugă un server.',
libraryIndexServerOffline: 'Server offline — sincronizare amânată',
libraryIndexServerSyncing: 'Se sincronizează…',
libraryIndexFullResync: 'Resincronizare completă',
libraryIndexDeltaSync: 'Sincronizare delta',
libraryIndexExcludeServer: 'Exclude din sincronizare',
libraryIndexExcludingServer: 'Se exclude…',
libraryIndexExcludedTitle: 'Excluse din sincronizare',
libraryIndexIncludeServer: 'Include din nou',
libraryIndexIncludingServer: 'Se include…',
libraryIndexStatus: 'Stare',
libraryIndexStatusIdle: 'Inactiv',
libraryIndexStatusProbing: 'Se verifică serverul…',
libraryIndexStatusInitial: 'Sincronizare inițială…',
libraryIndexStatusReady: 'Gata ({{count}} piese)',
libraryIndexStatusError: 'Eroare — vezi jurnalele',
libraryIndexProgressIngest: '{{count}} piese indexate…',
libraryIndexProgressVerify: '{{checked}} verificate ({{deleted}} eliminate)',
libraryIndexSyncNow: 'Sincronizează acum',
libraryIndexVerify: 'Verifică integritatea bibliotecii',
libraryIndexCancel: 'Anulează',
libraryIndexAutoReconcile: 'Reconciliere automată la scăderea numărului',
libraryIndexAutoReconcileDesc: 'Verifică automat piesele eliminate când serverul raportează mai puține decât se așteaptă.',
libraryIndexSyncError: 'Sincronizarea bibliotecii a eșuat: {{error}}',
libraryIndexBindError: 'Indexul nu a putut fi activat: {{error}}',
randomMixTitle: 'Lista neagră Mix Aleatoriu',
luckyMixMenuTitle: 'Arată Mixul Norocos în meniu',
luckyMixMenuDesc: 'Activează Mixul Norocos în Construiește un Mix și ca un element separat în meniu când navigarea împărțită este pornită. Vizibil doar când AudioMuse este activat pe serverul activ.',
randomMixBlacklistTitle: 'Cuvinte cheie personalizate pentru filtre',
randomMixBlacklistDesc: 'Piesele sunt excluse când orice cuvânt cheie corespunde cu genul, titlul, albumul sau artistul lor (activ când checkbox-ul de deasupra este pornit).',
randomMixBlacklistPlaceholder: 'Adaugă cuvânt cheie…',
randomMixBlacklistAdd: 'Adaugă',
randomMixBlacklistEmpty: 'Niciun cuvânt cheie adăugat încă.',
randomMixHardcodedTitle: 'Cuvinte cheie predefinite (activ când checkbox-ul este pornit)',
tabAudio: 'Audio',
tabStorage: 'Offline & Cache',
tabAppearance: 'Aparență',
tabThemes: 'Teme',
themesYourThemesTitle: 'Temele tale',
themesCvdTooltip: 'Sigur pentru daltonism deuteranopie, protanopie, tritanopie',
themeAnimationWarning: 'Această temă folosește animații care pot crește utilizarea procesorului pe configurația ta (Nvidia/Linux sau compositing dezactivat).',
themeStoreTitle: 'Magazin de teme',
themeStoreSubmitText: 'Ți-ai creat propria temă? Împărtășește-o cu comunitatea — mai multe informații în depozitul de teme.',
themeStoreSubmitLink: 'Deschide depozitul de teme',
themeStoreNetworkNotice: 'Theme Store încarcă catalogul și previzualizările de la GitHub. Nu se trimit date personale.',
themeStoreStatsNotice: 'Datele privind ultima modificare se actualizează o dată pe zi (în jurul orei 04:17 UTC).',
themeStoreSearchPlaceholder: 'Caută teme…',
themeStoreFilterMode: 'Filtrează după mod',
themeStoreModeAll: 'Toate',
themeStoreModeDark: 'Întunecat',
themeStoreModeLight: 'Luminos',
themeStoreRefresh: 'Reîmprospătează',
themeStoreLoading: 'Se încarcă temele…',
themeStoreError: 'Magazinul de teme nu a putut fi încărcat. Verifică conexiunea.',
themeStoreRetry: 'Reîncearcă',
themeStoreOfflineTitle: 'Theme Store este offline',
themeStoreEmpty: 'Nicio temă nu corespunde filtrelor tale.',
themeStoreActive: 'Activă',
themeStoreEnlarge: 'Mărește previzualizarea',
themeStoreSortNewest: 'Cele mai noi',
themeStoreSortName: 'Alfabetic',
themeStoreAnimAll: 'Toate',
themeStoreAnimAnimated: 'Animate',
themeStoreAnimStatic: 'Statice',
themeStoreByAuthor: 'de {{author}}',
themeStoreLastChanged: 'Ultima modificare',
themeMigrationNoticeTitle: 'Tema a fost mutată în magazin',
themeMigrationNoticeBody: '{{themes}} nu mai este inclusă în aplicație. O poți reinstala din Magazinul de Teme (Setări → Teme) sau poți alege altă temă.',
themeMigrationNoticeOpen: 'Deschide Magazinul de Teme',
themeStoreOffline: 'Se afișează ultimul catalog din cache — pari să fii offline.',
themeStoreInstall: 'Instalează',
themeStoreInstalling: 'Se instalează…',
themeStoreApply: 'Aplică',
themeStoreUpdate: 'Actualizează',
themeStoreUpdating: 'Se actualizează…',
themeStoreUninstall: 'Dezinstalează',
themeStoreInstallFailed: 'Instalarea a eșuat',
themeStorePagePrev: 'Pagina anterioară',
themeStorePageNext: 'Pagina următoare',
themeStorePageStatus: 'Pagina {{page}} din {{total}}',
themeImportTitle: 'Importă o temă',
themeImportButton: 'Importă tema…',
themeImporting: 'Se importă…',
themeImportHint: 'Încarcă o temă împachetată ca .zip (manifest.json + theme.css).',
themeImportSuccess: '„{{name}}” importată.',
themeImportErrorTitle: 'Această temă nu a putut fi importată',
themeImportErrorBody: 'Nu corespunde formatului de teme Psysonic. Poate a fost creată pentru altă versiune sau fișierul este incomplet — verifică dacă ai ales arhiva .zip corectă sau întreabă autorul temei.',
themeImportErrorDetails: 'Detalii tehnice',
themeImportConfirmTitle: 'Instalezi tema?',
themeImportConfirmBody: 'Instalezi „{{name}}” de {{author}}?',
themeImportConfirmRisk: 'Temele importate nu sunt verificate — instalează doar teme în care ai încredere.',
tabLibrary: 'Librărie',
tabServers: 'Servere',
tabLyrics: 'Versuri',
tabPersonalisation: 'Personalizare',
tabIntegrations: 'Integrări',
inputKeybindingsTitle: 'Scurtături tastatură',
aboutContributorsCount_one: '{{count}} contribuție',
aboutContributorsCount_other: '{{count}} contribuții',
searchPlaceholder: 'Caută setări…',
searchNoResults: 'Nicio setare nu corespunde cu ce ai căutat.',
integrationsPrivacyTitle: 'Notificare de confidențialitate',
integrationsPrivacyBody: 'Toate integrările din acest tab sunt <strong>opționale</strong> și trimit date către servicii externe sau server-ul tău Navidrome când sunt activate. Last.fm primește istoricul ascultărilor tale, Discord arată piesa redată curent în profilul tău, Bandsintown e interogat per artist pentru a aduce date de turnee, și distribuirea Now-Playing publică piesa curentă către alți useri din server-ul tău Navidrome. Dacă nu vrei vreo opțiune, doar lasă secțiunea corespunzătoare dezactivată',
homeCustomizerTitle: 'Scena Principală',
queueSettingsTitle: 'Setări coadă',
queueModeTitle: 'Mod de afișare a cozii',
queueModeQueueSub: 'Arată doar piesele următoare. Piesa curentă rămâne în antet și iese din listă după ce a fost redată.',
queueModePlaylistSub: 'Păstrează toată coada în listă, cu piesa curentă evidențiată sus; piesele redate rămân.',
queueModeTimelineSub: 'Centrează piesa curentă, cu istoricul redat deasupra și piesele următoare (în ordine aleatorie) dedesubt.',
queueToolbarTitle: 'Toolbar Coadă',
queueToolbarReset: 'Resetează la implicit',
queueToolbarSeparator: 'Separator',
sidebarTitle: 'Bara laterală',
sidebarReset: 'Resetează la implicit',
artistLayoutTitle: 'Secțiunile paginii artistului',
artistLayoutDesc: 'Trage pentru a reordona, comutați pentru a ascunde secțiuni individuale ale paginii de artist. Secțiunile fără date sunt ignorate automat.',
artistLayoutReset: 'Resetează la implicit',
artistLayoutBio: 'Biografie artist',
artistLayoutTopTracks: 'Top piese',
artistLayoutSimilar: 'Artiști similari',
artistLayoutAlbums: 'Albume',
artistLayoutFeatured: 'Prezentat și pe',
playlistLayoutTitle: 'Aspect pagină playlist',
playlistLayoutDesc: 'Afișează sau ascunde elemente individuale pe pagina playlistului.',
playlistLayoutReset: 'Resetare la implicit',
playerBarTitle: 'Bara de redare',
playerBarReset: 'Resetare la implicit',
playerBarStarRating: 'Evaluare cu stele',
playerBarFavorite: 'Favorit (inimă)',
playerBarLastfmLove: 'Buton de apreciere',
playerBarPlaybackRate: 'Viteză redare',
playerBarEqualizer: 'Egalizator',
playerBarMiniPlayer: 'Mini player',
playbackRateTitle: 'Viteză redare',
playbackRateEnabled: 'Activează viteza de redare',
playbackRateEnabledDesc: 'Viteză globală pentru toate piesele. Nu se aplică la radio și previzualizări.',
playbackRateStrategy: 'Strategie',
playbackRateStrategySpeed: 'Viteză',
playbackRateStrategyVarispeed: 'Cu ton',
playbackRateStrategyVarispeedSemitones: 'Semitonuri',
playbackRateStrategyPreserve: 'Ton',
playbackRateStrategySpeedTip: 'Schimbă tempoul; tonul este corectat automat.',
playbackRateStrategyVarispeedTip: 'Viteza și tonul se schimbă împreună, ca la bandă. Ton în funcție de viteză: 12 × log2(viteză).',
playbackRateStrategyVarispeedSemitonesTip: 'La fel ca « Cu ton », dar reglat direct în semitonuri. Viteză = 2^(st/12).',
playbackRateStrategyPreserveTip: 'Tempo reglabil plus o deplasare manuală a tonului (±12 st).',
playbackRateSpeed: 'Viteză',
playbackRatePitch: 'Ton',
playbackRateDerivedPitch: 'Deplasare ton din viteză: {{value}}',
playbackRateDerivedSpeed: 'Viteză din semitonuri: {{value}}',
playbackRateFineStep: 'Reglaj fin',
playbackRateFineStepDesc: 'Pași mai mici ai glisorului: 0,01× pentru viteză și 0,01 st pentru ton.',
playbackRateAutoPitch: 'Tonul este corectat automat.',
playbackRateHint: '« Viteză » păstrează tonul natural. « Cu ton » schimbă tonul odată cu viteza. « Cu ton (semitonuri) » setează această schimbare direct în semitonuri. « Ton » adaugă o deplasare manuală. Consumă mai mult CPU decât « Cu ton ». Nu pentru radio, previzualizări sau Orbit.',
playbackRateNeutral: 'La 1,0× și fără deplasare de ton, redarea este normală.',
playbackRateOrbitPaused: 'Nu se aplică în sesiunile Orbit — redarea rămâne la 1,0× pentru sincronizare.',
playbackRateOrbitPausedShort: 'Orbit: 1,0× pentru sync.',
advancedMode: 'Avansat',
advancedModeTooltip: 'Afișează opțiuni avansate în toate filele de setări. Contribuții ale comunității care nu reflectă neapărat filozofia de design a mentenanților Psysonic.',
advancedBadge: 'Avansat',
sidebarDrag: 'Trage pentru a reordona',
sidebarFixed: 'Mereu vizibil',
nowPlayingTopTitle: '"Se Redă Acum" sus',
nowPlayingTopDesc: 'Fixează intrarea "Se Redă Acum" în partea de sus a barei laterale în loc de jos.',
randomNavSplitTitle: 'Navigare Mix împărțită',
randomNavSplitDesc: 'Arată "Mix Aleatoriu", "Albume Aleatorii", și "Mix Norocos" ca intrări separate în bara laterală în loc de hub-ul "Construiește un Mix".',
tabInput: 'Input',
tabUsers: 'Useri',
tabSystem: 'Sistem',
loggingTitle: 'Logging',
loggingModeDesc: 'Controlează verbozitatea log-urilor din backend în terminal.',
loggingModeOff: 'Oprit',
loggingModeNormal: 'Normal',
loggingModeDebug: 'Debug',
loggingExport: 'Exportă log-uri',
loggingExportSuccess: 'Log-uri exportate ({{count}} linii).',
loggingExportError: 'Nu s-au putut exporta log-urile.',
ratingsSectionTitle: 'Ratinguri',
ratingsSkipStarTitle: 'Sari peste 1 stea',
ratingsSkipStarDesc:
'După mai multe salturi la rând, setează ratingul piesei la 1★. Doar pentru piesele care nu au fost deja evaluate.',
ratingsSkipStarThresholdLabel: 'Salturi',
ratingsMixFilterTitle: 'Filtrează după rating',
ratingsMixFilterDesc:
'Filtrează elementele cu scor mic în {{mix}} și {{albums}}. Apasă pe steaua selectată din nou pentru a opri limita.',
ratingsMixMinSong: 'Piese',
ratingsMixMinAlbum: 'Albume',
ratingsMixMinArtist: 'Artiști',
ratingsMixMinThresholdAria: 'Stele minime: {{label}}',
backupTitle: 'Backup & Restaurare',
backupExport: 'Setări de export',
backupExportDesc: 'Salvează toate setările, profilele de server, configurări Last.fm, teme, EQ și combinații de taste către un fișier .psybkp. Parolele sunt stocate ca text — păstrează fișierul în siguranță.',
backupImport: 'Setări de Import',
backupImportDesc: 'Restaurează setări dintr-in fișier .psybkp. Aplicația se va reîncărca după import.',
backupImportConfirm: 'Aceasta va suprascrie toate setările curente. Continuați?',
backupSuccess: 'Backup salvat',
backupImportSuccess: 'Setări restaurate — se reîncarcă…',
backupImportError: 'Fișier de backup invalid sau corupt.',
shortcutsReset: 'Resetează la implicite',
shortcutListening: 'Apasă o tastă…',
shortcutUnbound: '—',
globalShortcutsTitle: 'Scurtături globale',
globalShortcutsNote: 'Funcționează la nivel de sistem și când Psysonic este în fundal. Necesită Ctrl, Alt, sau Super ca un modificator.',
shortcutClear: 'Golește',
shortcutPlayPause: 'Redă / Pauză',
shortcutNext: 'Următoarea piesă',
shortcutPrev: 'Piesa anterioară',
shortcutVolumeUp: 'Ridică volumul',
shortcutVolumeDown: 'Coboară volumul',
shortcutSeekForward: 'Dă înainte 10s',
shortcutSeekBackward: 'Dă înapoi 10s',
shortcutToggleQueue: 'Comutați coada',
shortcutOpenFolderBrowser: 'Deschide {{folderBrowser}}',
shortcutFullscreenPlayer: 'Player pe ecran complet',
shortcutNativeFullscreen: 'Ecran complet nativ',
shortcutOpenMiniPlayer: 'Deschide mini player',
shortcutStartSearch: 'Începe o căutare',
shortcutStartAdvancedSearch: 'Începe o căutare avansată',
shortcutToggleSidebar: 'Comutați bara laterală',
shortcutMuteSound: 'Opriți sunetul',
shortcutToggleEqualizer: 'Porniți / Comutați Egalizatorul',
shortcutToggleRepeat: 'Comutați repetarea',
shortcutOpenNowPlaying: 'Deschide "Now Playing"',
shortcutShowLyrics: 'Arată Versurile',
shortcutFavoriteCurrentTrack: 'Adaugă piesa curentă la favorite',
shortcutOpenHelp: 'Ajutor',
playbackTitle: 'Redare',
replayGain: 'Replay Gain',
replayGainDesc: 'Normalizează volumul pieselor folosind metadata ReplayGain',
replayGainMode: 'Mod',
replayGainAuto: 'Auto',
replayGainAutoDesc: 'Alege volumul albumului când piesele vecine din coadă sunt din același album, altfel volumul piesei.',
replayGainTrack: 'Piesă',
replayGainAlbum: 'Album',
replayGainPreGain: 'Pre-Gain (fișiere etichetate)',
replayGainPreGainDesc: 'Boost universal adăugat peste fiecare calculare ReplayGain. Folosește pentru a compensa dacă librăria ta se simte prea liniștită per total.',
replayGainFallback: 'Rezervă (neetichetat / radio)',
replayGainFallbackDesc: 'Aplicat la piesele (și stream-urile radio) care nu au tag-uri ReplayGain deloc, pentru ca conținutul neetichetat să nu se audă mai gălăgios decât restul.',
normalization: 'Normalizare',
normalizationDesc: 'Aliniază volumul perceput peste piese, albume și radio.',
normalizationOff: 'Oprit',
normalizationReplayGain: 'ReplayGain',
normalizationLufs: 'LUFS',
loudnessTargetLufs: 'Țintă LUFS',
loudnessTargetLufsDesc: 'Volumul de referință la care toate piesele sunt ajustate. Numere mai mici = volum mai mare. Serviciile de streaming sunt setate în mod obișnuit la -14 LUFS.',
loudnessPreAnalysisAttenuation: 'Atenuare pre-analiză',
loudnessPreAnalysisAttenuationDesc:
'Extra coborâre a volumului până când nivelul pentru această piesă este salvat. Streaming apoi folosește presupuneri aproximative, nu o măsurătoare completă. 0 dB = oprit; mai jos = mai încet. Numărul din dreapta este nivelul dB efectif pentru ținta curentă.',
loudnessPreAnalysisAttenuationRef: '{{eff}} dB efectiv cu ținta {{tgt}} LUFS.',
loudnessPreAnalysisAttenuationReset: 'Resetează la implicit',
loudnessFirstPlayNote:
'Prima redate a unei piese noi își poate schimba brusc volumul cât este măsurată. Următoarea redare folosește măsurătoarea stocată și este stabilă. Piesele următoare din coadă sunt de obicei pre-analizate în timpul piesei anterioare, deci acest fenomen se întâmplă rar în practică.',
crossfade: 'Crossfade',
crossfadeSecs: '{{n}} s',
autoDj: 'AutoDJ',
autoDjDesc: 'Fără durată fixă — AutoDJ urmează sunetul real și se suprapune peste estompările și introducerile reale, în loc de un număr fix de secunde. Pentru rezultate fiabile, activează Cache-ul hot playback.',
autodjSmoothSkip: 'Salt lin',
autodjSmoothSkipDesc: 'La trecerea la piesa următoare sau anterioară în timpul redării, piesa curentă se estompează scurt în loc să fie tăiată brusc.',
gapless: 'Playback Gapless',
transitionsTitle: 'Tranziții între piese',
transitionsDesc: 'Cum se îmbină piesele consecutive. Doar un mod poate fi activ la un moment dat.',
transitionOff: 'Dezactivat',
queueBehaviourTitle: 'Comportamentul cozii',
preservePlayNextOrder: 'Prezervă ordinea "Redă următoarea"',
preservePlayNextOrderDesc: 'Elementele Redă Următoarea noi adăugate sunt puse după cele adăugate mai devreme în loc să sară în față.',
trackPreviewsTitle: 'Previzualizări Piese',
trackPreviewsToggle: 'Pornește previzualizările pieselor',
trackPreviewsDesc: 'Arată butoanele de Redare și Pre-vizualizare în rând în listele de piese pentru o mostră rapidă din mijlocul piesei.',
trackPreviewStart: 'Poziția de începere',
trackPreviewStartDesc: 'Cât de departe în piesă să înceapă pre-vizualizarea (% din lungimea piesei).',
trackPreviewDuration: 'Durată',
trackPreviewDurationDesc: 'Cât de mult se redă fiecare pre-vizualizare până se oprește.',
trackPreviewDurationSecs: '{{n}} s',
trackPreviewLocationsTitle: 'Unde apar pre-vizualizările',
trackPreviewLocationsDesc: 'Alege ce liste arată butoanele de pre-vizualizare în linie.',
trackPreviewLocation_suggestions: 'Sugestii în playlist',
trackPreviewLocation_albums: 'Liste de piese în album',
trackPreviewLocation_playlists: 'În playlist-uri',
trackPreviewLocation_favorites: 'În favorite',
trackPreviewLocation_artist: 'În top piese ale artistului',
trackPreviewLocation_randomMix: 'În Mixul Aleatoriu',
nextTrackBufferingTitle: 'Preîncarcă',
infiniteQueue: 'Coadă Infinită',
infiniteQueueDesc: 'Adaugă automat piese aleatorii când coada se golește',
experimental: 'Experimental',
sidebarLyricsStyle: 'Stilul derulării versurilor',
sidebarLyricsStyleClassic: 'Clasic',
sidebarLyricsStyleClassicDesc: 'Derulează linia activă în centru.',
sidebarLyricsStyleApple: 'Ca Apple Music',
sidebarLyricsStyleAppleDesc: 'Linia activă este ancorată aproape de vârf cu animații netede.',
seekbarStyle: 'Stilul barei de redare',
seekbarStyleDesc: 'Alege aspectul barei de redare a playerului',
seekbarTruewave: 'Truewave',
seekbarPseudowave: 'Pseudowave',
seekbarLinedot: 'Linie & Punct',
seekbarBar: 'Bară',
seekbarThick: 'Bară groasă',
seekbarSegmented: 'Segmentat',
seekbarNeon: 'Strălucire Neon',
seekbarPulsewave: 'Undă de Puls',
seekbarParticletrail: 'Urmă de Particule',
seekbarLiquidfill: 'Lichid',
seekbarRetrotape: 'Bandă Retro',
themeSchedulerTitle: 'Schimbă Tema automat',
themeSchedulerEnable: 'Pornește temele programate',
themeSchedulerEnableSub: 'Schimbă automat între două teme pe baza orei din zi',
themeSchedulerDayTheme: 'Temă de zi',
themeSchedulerDayStart: 'Ziua începe la',
themeSchedulerNightTheme: 'Temă de noapte',
themeSchedulerNightStart: 'Noaptea începe la',
themeSchedulerActiveHint: 'Temele programate sunt active - aceste schimbări de teme sunt gestionate automat.',
visualOptionsTitle: 'Opțiuni vizuale',
coverArtBackground: 'Arta de fundal a copertei',
coverArtBackgroundSub: 'Arată arta de copertă blurată ca fundal în antetele albumelor/playlisturilor',
playlistCoverPhoto: 'Poza de copertă a playlistului',
playlistCoverPhotoSub: 'Arată poza grilă de copertă în afișajul de detalii al playlistului',
showBitrate: 'Arată Bitrate',
showBitrateSub: 'Arată bitrate-ul audio în listările de piese',
floatingPlayerBar: 'Bară Player plutitoare',
floatingPlayerBarSub: 'Păstrează bara playerului plutind deasupra conținutului',
uiScaleTitle: 'Scara interfaței',
uiScaleLabel: 'Zoom',
confirmDeleteServerLibrary: 'Ștergi și indexul local al bibliotecii pentru acest server? Apasă Anulează pentru a păstra copia din cache pentru utilizare offline.',
analyticsStrategyTitle: 'Strategii de analiză',
analyticsStrategyDesc: 'Alege stilul de analiză pentru bibliotecă.',
analyticsStrategyLabel: 'Strategie',
analyticsStrategyLazy: 'Leneșă',
analyticsStrategyLazyDesc: 'Analizează doar când piesele sunt redate sau intră în cache-ul hot/offline — consum minim de CPU și rețea.',
analyticsStrategyAdvanced: 'Agresivă',
analyticsStrategyAdvancedDesc: 'Scanare de fundal mai agresivă. După finalizare, primești BPM pentru toate piesele și încărcare instantă pentru loudness și waveform.',
analyticsStrategyPriorityTitle: 'Prioritate analiză (mereu activă)',
analyticsStrategyPriorityHigh: '1 — Redare curentă: descarcă și analizează mai întâi (bytes de playback, loudness backfill sau HTTP când e nevoie).',
analyticsStrategyPriorityMiddle: '2 — Urmează: următoarele ~5 piese din coadă și vecinii din hot-cache — analiză din cache/descărcări când se poate; backfill HTTP doar la miss.',
analyticsStrategyPriorityLow: '3 — Lot bibliotecă (doar Agresivă): coadă automată în fundal la final; reumplere pe watermark (~3× workers) fără a aștepta golirea cozii.',
analyticsStrategyServerLabel: 'Server',
analyticsStrategyProgressLabel: 'Progres analiză:',
analyticsStrategyProgressValue: '{{percent}}% ({{done}}/{{total}})',
analyticsStrategyActionsLabel: 'Acțiuni',
analyticsStrategyParallelismLabel: 'Workeri paraleli',
analyticsStrategyParallelismValue: '{{n}} thread-uri',
analyticsStrategyParallelismDesc: 'Câte piese se descarcă și se analizează simultan (HTTP + CPU). Valori mai mari accelerează procesarea bibliotecii, dar folosesc mai multă rețea și CPU.',
analyticsStrategyAdvancedWarning: 'Modul agresiv folosește mai mult CPU și lățime de bandă cât timp lotul bibliotecii rulează în fundal.',
analyticsStrategyServerRemoved: 'Server eliminat',
analyticsStrategyClearAction: 'Șterge analiza',
analyticsStrategyClearTitle: 'Ștergi analiza?',
analyticsStrategyClearDesc: 'Ștergerea analizei pentru {{server}} elimină waveforms și loudness din cache. Dacă readaugi serverul mai târziu, poate necesita reindexare îndelungată.',
analyticsStrategyClearCancel: 'Anulează',
analyticsStrategyClearConfirm: 'Șterge analiza',
analyticsStrategyClearSuccess: 'Analiza a fost ștearsă pentru serverul eliminat.',
analyticsStrategyClearError: 'Nu s-a putut șterge analiza pentru serverul eliminat.',
analyticsStrategyProgressEmptyAfterFailed: '100% (0/0, blocat de piese eșuate)',
analyticsFailedTracksOpenTitle: 'Piese eșuate: {{count}}',
analyticsFailedTracksTitle: 'Piese cu analiză eșuată — {{server}}',
analyticsFailedTracksDesc: 'Aceste piese au eșuat repetat la decode/enrichment și sunt excluse din analiza automată în fundal.',
analyticsFailedTracksLoading: 'Se încarcă lista pieselor eșuate…',
analyticsFailedTracksEmpty: 'Nu există piese eșuate pentru acest server.',
analyticsFailedTracksClose: 'Închide',
analyticsFailedTracksExport: 'Exportă lista',
analyticsFailedTracksExportSuccess: 'Lista pieselor eșuate a fost exportată ({{count}}).',
analyticsFailedTracksExportError: 'Nu s-a putut exporta lista pieselor eșuate.',
analyticsFailedTracksRescan: 'Rescan pentru piese eșuate',
analyticsFailedTracksRescanSuccess: 'Rescan programat pentru {{count}} piese eșuate.',
analyticsFailedTracksRescanError: 'Nu s-a putut porni rescan-ul pentru piesele eșuate.',
analyticsFailedTracksLoadError: 'Nu s-au putut încărca piesele eșuate.',
backupImportAny: 'Importă backup',
backupImportAnyConfirm: 'Importă fișierul de backup selectat și aplică conținutul (setări, baze de date bibliotecă sau complet). Continui?',
backupModeFull: 'Complet',
backupModeLibrary: 'Baze de date bibliotecă',
backupModeConfig: 'Configurație',
backupFullDesc: 'Arhivează setările și bazele de date ale bibliotecii într-un singur fișier backup.',
backupFullExport: 'Exportă backup complet',
backupFullImport: 'Importă backup complet',
backupFullImportConfirm: 'Acest lucru va suprascrie setările, va înlocui bazele de date curente și le va muta în .bak. Continui?',
backupFullExportSuccess: 'Backup complet exportat.',
backupFullImportSuccess: 'Backup complet importat — reîncărcare…',
backupFullImportError: 'Nu s-a putut importa backup-ul complet.',
backupLibraryExport: 'Exportă bazele de date',
backupLibraryExportDesc: 'Creează o arhivă comprimată cu snapshot-uri SQLite curate ale bazelor de date de bibliotecă.',
backupLibraryImport: 'Importă bazele de date',
backupLibraryImportDesc: 'Restaurează bazele de date ale bibliotecii dintr-un fișier arhivă. Bazele curente sunt mutate în .bak înainte de comutare.',
backupLibraryImportConfirm: 'Acest lucru va înlocui bazele de date curente și le va muta în .bak. Continui?',
backupLibraryExportSuccess: 'Backup-ul bazelor de date a fost exportat.',
backupLibraryImportSuccess: 'Backup-ul bazelor de date a fost importat.',
backupLibraryImportError: 'Nu s-a putut importa backup-ul bazelor de date.',
backupOverlayExportTitle: 'Se creează backup-ul…',
backupOverlayImportTitle: 'Se restaurează backup-ul…',
backupOverlayHint: 'Poți lăsa fereastra deschisă cât timp procesăm fișierele. Introducerea este blocată temporar.',
};