Desktop: background store reads from the tray (no document.hidden skip, backoff), notifications by kind (rejected, approved, live, halted, crash, reviews) with switches, quiet hours and mute, click-through on next show; tray menu with apps and their states, read now, mute, updates, settings, tooltip summary and attention dot; tray_update command; tests

This commit is contained in:
CRTkafa 2026-10-22 22:24:05 +08:00
parent 5d8a0f5e9a
commit 03ef999dac
27 changed files with 1050 additions and 55 deletions

View file

@ -782,6 +782,41 @@ export const en = {
'notify.lowTitle': '{name}: {count} new low ratings',
'notify.lowTitle_one': '{name}: a new low rating',
'notify.crashTitle': '{name}: over the Play threshold',
'notify.rejectedTitle': '{name}: rejected by {store}',
'notify.rejectedBody': 'Version {version} was rejected.',
'notify.approvedTitle': '{name}: approved',
'notify.approvedBody': '{store} {version} passed review and is ready for release.',
'notify.liveTitle': '{name}: live',
'notify.liveBody': '{store} {version} is live.',
'notify.haltedTitle': '{name}: rollout halted',
'notify.haltedBody': '{store} {version} was halted.',
'tray.open': 'Open storebound',
'tray.readNow': 'Read the stores now',
'tray.apps': 'Apps',
'tray.noApps': 'No apps yet',
'tray.noState': 'no release read yet',
'tray.mute': 'Mute notifications for 1 hour',
'tray.unmute': 'Unmute notifications',
'tray.update': 'Check for updates',
'tray.settings': 'Settings',
'tray.quit': 'Quit storebound',
'tray.tipReview': '{count} in review',
'tray.tipAttention': '{count} needs you',
'tray.mutedTip': 'muted',
'set.nRejected': 'Rejected',
'set.nRejectedHint': 'A version the store rejected, with its reason when the store gives one',
'set.nApproved': 'Approved and ready for release',
'set.nApprovedHint': 'A version passed review',
'set.nLive': 'Live',
'set.nLiveHint': 'A version reached the store page or a rollout',
'set.quiet': 'Quiet hours',
'set.quietHint': 'No notifications in this window (they are dropped, not saved for later)',
'set.quietFrom': 'From',
'set.quietTo': 'To',
'set.muteHour': 'Mute for 1 hour',
'set.unmute': 'Unmute ({until})',
'set.muted': 'Muted until {until}',
'set.clickNote': "Clicking a notification does not open the app on desktop; the next time you open the window from the tray, it goes to that app's Releases tab.",
'set.lead': 'Studios, accounts, store reads, the offline cache, language, theme, notifications and more. Everything stays on this computer.',
'set.sections': 'Settings sections',
'set.studios': 'Studios & accounts',
@ -854,11 +889,11 @@ export const en = {
'set.always': 'Always',
'set.notifications': 'Notifications',
'set.notificationsSub': 'After a read, when something changed since the previous one',
'set.nReview': 'Review and release state changes',
'set.nReviewHint': 'In review, approved, rejected, live, halted',
'set.nReview': 'Other release state changes',
'set.nReviewHint': 'Submitted, in review',
'set.nLow': 'New 1 or 2 star reviews',
'set.nLowHint': 'When the Reviews tab reads new ones',
'set.nCrash': 'Crash or ANR rate over the threshold',
'set.nCrash': 'Rollout halted, or crash / ANR over the threshold',
'set.nCrashHint': 'Google Play bad behavior thresholds',
'set.testNotify': 'Send a test notification',
'set.testTitle': 'storebound',

View file

@ -784,6 +784,41 @@ export const tr: Record<keyof typeof en, string> = {
'notify.lowTitle': '{name}: {count} yeni düşük puan',
'notify.lowTitle_one': '{name}: yeni bir düşük puan',
'notify.crashTitle': '{name}: Play eşiğinin üstünde',
'notify.rejectedTitle': '{name}: {store} reddetti',
'notify.rejectedBody': '{version} sürümü reddedildi.',
'notify.approvedTitle': '{name}: onaylandı',
'notify.approvedBody': '{store} {version} incelemeyi geçti, yayına hazır.',
'notify.liveTitle': '{name}: yayında',
'notify.liveBody': '{store} {version} yayında.',
'notify.haltedTitle': '{name}: kademeli yayın durduruldu',
'notify.haltedBody': '{store} {version} durduruldu.',
'tray.open': "storebound'u aç",
'tray.readNow': 'Mağazaları şimdi oku',
'tray.apps': 'Uygulamalar',
'tray.noApps': 'Henüz uygulama yok',
'tray.noState': 'henüz okunmadı',
'tray.mute': 'Bildirimleri 1 saat sustur',
'tray.unmute': 'Bildirimlerin sesini aç',
'tray.update': 'Güncellemeleri denetle',
'tray.settings': 'Ayarlar',
'tray.quit': "storebound'dan çık",
'tray.tipReview': '{count} incelemede',
'tray.tipAttention': '{count} sizi bekliyor',
'tray.mutedTip': 'sessiz',
'set.nRejected': 'Reddedildi',
'set.nRejectedHint': 'Mağazanın reddettiği sürüm; mağaza verirse gerekçesiyle',
'set.nApproved': 'Onaylandı, yayına hazır',
'set.nApprovedHint': 'Bir sürüm incelemeyi geçti',
'set.nLive': 'Yayında',
'set.nLiveHint': 'Bir sürüm mağaza sayfasına ya da kademeli yayına ulaştı',
'set.quiet': 'Sessiz saatler',
'set.quietHint': 'Bu aralıkta bildirim gelmez (sonraya saklanmaz, atılır)',
'set.quietFrom': 'Başlangıç',
'set.quietTo': 'Bitiş',
'set.muteHour': '1 saat sustur',
'set.unmute': 'Sesi aç ({until})',
'set.muted': '{until} saatine kadar sessiz',
'set.clickNote': 'Masaüstünde bildirime tıklamak uygulamayı açmaz; pencereyi bir sonraki sefer tepsiden açtığınızda o uygulamanın Yayınlar sekmesine gider.',
'set.lead': 'Stüdyolar, hesaplar, mağaza okumaları, çevrimdışı önbellek, dil, tema, bildirimler ve dahası. Hepsi bu bilgisayarda kalır.',
'set.sections': 'Ayar bölümleri',
'set.studios': 'Stüdyolar ve hesaplar',
@ -856,11 +891,11 @@ export const tr: Record<keyof typeof en, string> = {
'set.always': 'Her zaman',
'set.notifications': 'Bildirimler',
'set.notificationsSub': 'Bir okumadan sonra, öncekinden beri bir şey değiştiyse',
'set.nReview': 'İnceleme ve yayın durumu değişiklikleri',
'set.nReviewHint': 'İncelemede, onaylandı, reddedildi, yayında, durduruldu',
'set.nReview': 'Diğer yayın durumu değişiklikleri',
'set.nReviewHint': 'Gönderildi, incelemede',
'set.nLow': 'Yeni 1 ya da 2 yıldızlı yorumlar',
'set.nLowHint': 'Yorumlar sekmesi yenilerini okuduğunda',
'set.nCrash': 'Çökme ya da ANR oranı eşiğin üstünde',
'set.nCrash': 'Kademeli yayın durdu, ya da çökme / ANR eşiğin üstünde',
'set.nCrashHint': 'Google Play kötü davranış eşikleri',
'set.testNotify': 'Deneme bildirimi gönder',
'set.testTitle': 'storebound',