8947221b27
MusicService (looping audioplayers player, independent of SFX) driven by the active season theme's new 'bgm' key; switches track on season change, pauses on app background, all failures swallowed. Separate Music on/off toggle in Settings (persisted, independent of SFX). Season packs carry bgm keys (menu/season_001/ season_002), manifest regenerated. Assets slot assets/audio/bgm/ ready — drop in menu.mp3/season_001.mp3/season_002.mp3 (CC0) and it plays; silent until then. 180 tests green, analyze clean. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
66 lines
1.6 KiB
Plaintext
66 lines
1.6 KiB
Plaintext
{
|
|
"@@locale": "en",
|
|
"appTitle": "Block Seasons",
|
|
"play": "Play",
|
|
"settings": "Settings",
|
|
"comingSoon": "Coming soon",
|
|
"stageClear": "Stage Clear!",
|
|
"stageFailed": "Stage Failed",
|
|
"outOfMoves": "Out of moves",
|
|
"boardFull": "No space left",
|
|
"watchAdContinue": "Continue (ad)",
|
|
"plusFiveMoves": "+5 moves (ad)",
|
|
"giveUp": "Give up",
|
|
"playAgain": "Play again",
|
|
"nextStage": "Next stage",
|
|
"streakMilestone": "{days}-day streak! Keep it up!",
|
|
"@streakMilestone": {
|
|
"placeholders": {
|
|
"days": {
|
|
"type": "int"
|
|
}
|
|
}
|
|
},
|
|
"almostThere": "{percent}% complete!",
|
|
"@almostThere": {
|
|
"placeholders": {
|
|
"percent": {
|
|
"type": "int"
|
|
}
|
|
}
|
|
},
|
|
"seasonLabel": "SEASON",
|
|
"seasonStages": "{count} stages",
|
|
"@seasonStages": {
|
|
"placeholders": {
|
|
"count": {
|
|
"type": "int"
|
|
}
|
|
}
|
|
},
|
|
"skip": "Skip",
|
|
"gotIt": "Got it!",
|
|
"tutorialDrag": "Drag a block onto the board!",
|
|
"tutorialClear": "Fill a row or column to clear it!",
|
|
"tutorialHud": "Hit the goal before you run out of moves. Your turn!",
|
|
"gameOver": "Game Over",
|
|
"bestScore": "Best {score}",
|
|
"@bestScore": {
|
|
"placeholders": {
|
|
"score": {
|
|
"type": "int"
|
|
}
|
|
}
|
|
},
|
|
"newBest": "NEW BEST!",
|
|
"adventure": "Adventure",
|
|
"classic": "Classic",
|
|
"removeAds": "Remove ads",
|
|
"removeAdsDescription": "Removes banners and full-screen ads. Reward ads stay available.",
|
|
"restorePurchases": "Restore purchases",
|
|
"adsRemovedThanks": "Ads removed — thank you!",
|
|
"purchaseUnavailable": "Purchases are unavailable right now.",
|
|
"soundAndVibration": "Sound & vibration",
|
|
"music": "Music"
|
|
}
|