Files
just-music-premium/justmusic/web/index.html
T
Barış Keser ffdb5e8162 v1.1.0: dil destegi (TR + EN)
- Yeni justmusic/web/i18n.js: kaynak-string cevirisi (gettext tarzi). Ic mantik/veri
  TURKCE kalir (mood etiketleri, korumali liste adlari, durum eslesmeleri) — yalniz
  GOSTERIMDE T() Ingilizce'ye cevirir. Boylece veri gocu yok, kutuphane bozulmaz.
- Sablon yedegi: exact anahtar yoksa degisken run'lar placeholder'a cevrilir —
  "5 sarki" -> "{n} sarki" -> "5 songs"; "“Foo” silinsin mi?" -> "Delete “Foo”?".
- showToast(t) iceride T() uyguladigi icin tum toast'lar (Python dahil) otomatik cevrilir;
  durum eslesmeleri (indexOf) Turkce kaynakta kaldigi icin bozulmaz.
- Ust bara dil secici (#langSel); secim settings.lang'e kaydedilir (setLanguage slotu),
  acilista initFromState uygular. index.html statik metinler data-i18n / title / placeholder
  ile applyStaticI18n'de cevrilir. Dil degisince gorunum + sidebar + sag panel + dile bagli
  select'ler (tema/uyku) yeniden cizilir.
- app.js render literalleri T() ile sarildi (butonlar, menuler, basliklar, bos-durumlar,
  komut paleti, karaoke menu, klip, stats, kisayollar, mood chip).
- Dogrulama: harness TR<->EN<->TR (statik kabuk, sidebar korumali adlar, sayisal sablon,
  toast, effects/home/palet gorunumleri, sag panel, select'ler) hepsi cevriliyor, 0 JS hatasi.
2026-09-20 13:01:30 +03:00

113 lines
6.1 KiB
HTML
Raw Permalink 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.
<!doctype html>
<html lang="tr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Just Music</title>
<link rel="stylesheet" href="fontawesome/css/all.min.css">
<link rel="stylesheet" href="app.css">
<script src="qwebchannel.js"></script>
<script src="i18n.js"></script>
</head>
<body>
<div id="ambient" class="ambient"></div>
<div id="app">
<!-- ÜST BAR -->
<header class="topbar">
<div class="topbar-left">
<button id="navBack" class="round-btn" title="Geri"><i class="fa-solid fa-chevron-left"></i></button>
<button id="navFwd" class="round-btn" title="İleri"><i class="fa-solid fa-chevron-right"></i></button>
</div>
<div class="search-wrap">
<button id="homeBtn" class="home-btn" title="Ana Sayfa"><i class="fa-solid fa-house"></i></button>
<div class="search-box">
<span class="search-ic"><i class="fa-solid fa-magnifying-glass"></i></span>
<input id="topSearch" type="text" placeholder="Ne çalmak istiyorsun?" autocomplete="off">
</div>
</div>
<div class="topbar-right">
<select id="langSel" class="mini-sel" title="Dil / Language"></select>
<select id="themeSel" class="mini-sel" title="Tema"></select>
<label class="accent-wrap" title="Özel vurgu rengi"><input type="color" id="accentPick" value="#1db954"></label>
<button id="scanBtn" class="chip-btn" title="Müzik klasörünü tara"><i class="fa-solid fa-rotate"></i> <span data-i18n="Tara">Tara</span></button>
<button id="statsBtn" class="chip-btn" title="İstatistikler"><i class="fa-solid fa-chart-simple"></i></button>
<button id="compactBtn" class="chip-btn" title="Kompakt mod (panelleri gizle)"><i class="fa-solid fa-compress"></i></button>
<button id="helpBtn" class="chip-btn" title="Klavye kısayolları (Ctrl+K komut paleti)"><i class="fa-solid fa-keyboard"></i></button>
<button id="backupBtn" class="chip-btn" title="Yedek al"><i class="fa-solid fa-floppy-disk"></i></button>
</div>
</header>
<!-- GÖVDE -->
<div class="body">
<aside class="sidebar">
<nav class="nav-links">
<button class="nav-link active" data-view="home"><i class="fa-solid fa-house"></i> <span data-i18n="Ana Sayfa">Ana Sayfa</span></button>
<button class="nav-link" data-view="search"><i class="fa-solid fa-magnifying-glass"></i> <span data-i18n="Ara">Ara</span></button>
<button class="nav-link" data-view="effects"><i class="fa-solid fa-sliders"></i> <span data-i18n="Efektler">Efektler</span></button>
</nav>
<div class="library">
<div class="library-head">
<span class="lib-title" data-i18n="📚 Kitaplığın">📚 Kitaplığın</span>
<div class="lib-actions">
<button id="importBtn" class="plus-btn" title="MP3 içe aktar"><i class="fa-solid fa-plus"></i> <span data-i18n="Ekle">Ekle</span></button>
<button id="createPlaylist" class="plus-btn" title="Çalma listesi oluştur"><i class="fa-solid fa-plus"></i></button>
</div>
</div>
<input id="libSearch" class="lib-search" type="text" placeholder="🔍 Kütüphanede ara">
<div id="playlistList" class="playlist-list"></div>
</div>
</aside>
<main class="main" id="view"></main>
<aside class="right-panel" id="rightPanel"></aside>
</div>
<!-- ALT PLAYER -->
<footer class="player">
<div class="p-left">
<img id="pCover" class="p-cover" alt="">
<div class="p-meta">
<div id="pTitle" class="p-title">Müzik Çalar Hazır</div>
<div class="p-sub-row"><span id="pArtist" class="p-artist"></span><span id="moodChip" class="mood-chip"></span></div>
</div>
<button id="pFav" class="icon-btn fav" title="Beğen"><i class="fa-regular fa-heart"></i></button>
<canvas id="playerViz" class="player-viz" title="Görselleştirici"></canvas>
</div>
<div class="p-center">
<div class="p-controls">
<button id="pShuffle" class="icon-btn" title="Karıştır"><i class="fa-solid fa-shuffle"></i></button>
<button id="pPrev" class="icon-btn" title="Önceki"><i class="fa-solid fa-backward-step"></i></button>
<button id="pPlay" class="play-btn" title="Oynat/Duraklat"><i class="fa-solid fa-play"></i></button>
<button id="pNext" class="icon-btn" title="Sonraki"><i class="fa-solid fa-forward-step"></i></button>
<button id="pRepeat" class="icon-btn" title="Tekrarla"><i class="fa-solid fa-repeat"></i></button>
</div>
<div class="p-seek">
<span id="pCur" class="time">0:00</span>
<div class="bar" id="seekBar"><div class="bar-fill" id="seekFill"></div><div class="bar-knob" id="seekKnob"></div></div>
<span id="pDur" class="time">0:00</span>
</div>
</div>
<div class="p-right">
<button id="pVideo" class="icon-btn" title="Klip izle (internetten akış — indirme yok)"><i class="fa-solid fa-film"></i></button>
<button id="pKaraoke" class="icon-btn" title="Karaoke — vokal azalt"><i class="fa-solid fa-microphone-slash"></i></button>
<button id="pAmbient" class="icon-btn" title="Ambiyans ışığı"><i class="fa-solid fa-lightbulb"></i></button>
<button id="pQueueBtn" class="icon-btn" title="Kuyruk (Sıradaki)"><i class="fa-solid fa-list-ol"></i></button>
<button id="pLyricsBtn" class="icon-btn" title="Şarkı Sözleri"><i class="fa-solid fa-align-left"></i></button>
<button id="pFsBtn" class="icon-btn" title="Tam ekran"><i class="fa-solid fa-expand"></i></button>
<button id="pPanelBtn" class="icon-btn active" title="Çalınıyor paneli"><i class="fa-solid fa-table-columns"></i></button>
<select id="speedSel" class="mini-sel" title="Hız"></select>
<select id="sleepSel" class="mini-sel" title="Uyku zamanlayıcı"></select>
<button id="pMute" class="icon-btn" title="Sessize al"><i class="fa-solid fa-volume-high"></i></button>
<div class="vol" id="volBar" title="Ses (100+ = boost)"><div class="vol-fill" id="volFill"></div></div>
</div>
</footer>
</div>
<div id="toast" class="toast"></div>
<script src="app.js"></script>
</body>
</html>