- Ambient background in the app shell: three drifting blurred blobs,
the third one tinted with the current track's cover; can be turned off
in settings and stays still with reduced motion.
- Island player variant (floating glass panel) next to the bar, chosen
in settings; player source line ("Album · …", "My Wave"), reactions
around the transport controls, queue drawer.
- Sidebar: like / dislike counters, pending uploads badge on Queue,
admin Settings page holding the upload queue limits.
- Collection: header tile with kicker, underline tabs, time / number
lead column with an equalizer for the current track, album column,
dimmed dislikes with undo, Play all / Shuffle pills.
- Album: cover-tinted header and Play / Shuffle; artist: artist wave,
Play and popular tracks (new GET /artists/{id}/top-tracks).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
283 lines
9.3 KiB
JSON
283 lines
9.3 KiB
JSON
{
|
|
"app": {
|
|
"name": "pipu",
|
|
"tagline": "Your music from your own server"
|
|
},
|
|
"server": {
|
|
"title": "Server",
|
|
"checking": "Checking the server…",
|
|
"online": "Server {{version}} is online",
|
|
"offline": "The server is not responding. Check the address and your network.",
|
|
"address": "Server address",
|
|
"check": "Check",
|
|
"invalid_address": "Enter the server address, e.g. https://music.home.lan",
|
|
"unsupported_app": "This app version is too old for the server — please update the app"
|
|
},
|
|
"language": {
|
|
"label": "Language",
|
|
"ru": "Русский",
|
|
"en": "English"
|
|
},
|
|
"nav": {
|
|
"main": "Navigation",
|
|
"home": "Home",
|
|
"admin": "Admin",
|
|
"users": "Users",
|
|
"audit": "Audit log",
|
|
"library": "Library",
|
|
"sources": "Storage",
|
|
"collection": "Collection",
|
|
"history": "History",
|
|
"likes": "Likes",
|
|
"dislikes": "Dislikes",
|
|
"uploads": "Uploads",
|
|
"suggest": "Suggest tracks",
|
|
"my_uploads": "My uploads",
|
|
"upload_queue": "Queue",
|
|
"admin_settings": "Settings"
|
|
},
|
|
"profile": {
|
|
"menu": "Profile menu",
|
|
"settings": "Settings",
|
|
"logout": "Sign out"
|
|
},
|
|
"roles": {
|
|
"admin": "Administrator",
|
|
"moderator": "Moderator",
|
|
"user": "User"
|
|
},
|
|
"home": {
|
|
"greeting": "Hi, {{name}}!",
|
|
"wave": "My Wave",
|
|
"wave_soon": "An endless stream tuned to your taste will appear once the server has a library."
|
|
},
|
|
"player": {
|
|
"empty": "Nothing is playing",
|
|
"label": "Player",
|
|
"play": "Play",
|
|
"pause": "Pause",
|
|
"next": "Next",
|
|
"prev": "Previous",
|
|
"like": "Like",
|
|
"unlike": "Remove from likes",
|
|
"dislike": "Dislike",
|
|
"undislike": "Remove dislike",
|
|
"volume": "Volume",
|
|
"mute": "Mute",
|
|
"unmute": "Unmute",
|
|
"shuffle": "Shuffle",
|
|
"repeat_off": "Repeat off",
|
|
"repeat_all": "Repeat queue",
|
|
"repeat_one": "Repeat track",
|
|
"progress": "Position",
|
|
"unavailable": "Track is unavailable — skipping",
|
|
"error": "Could not play the track",
|
|
"source_album": "Album · {{label}}",
|
|
"source_artist": "Artist · {{label}}",
|
|
"source_search": "Search · {{label}}",
|
|
"source_history": "History",
|
|
"source_likes": "Likes",
|
|
"source_dislikes": "Dislikes",
|
|
"source_wave": "My Wave",
|
|
"source_queue": "Queue",
|
|
"queue": "Queue",
|
|
"source_wave_seed": "Artist wave · {{label}}"
|
|
},
|
|
"settings": {
|
|
"title": "Settings",
|
|
"account": "Account",
|
|
"display_name": "Display name",
|
|
"save": "Save",
|
|
"saved": "Saved",
|
|
"appearance": "Appearance",
|
|
"theme": "Theme",
|
|
"theme_dark": "Dark",
|
|
"theme_light": "Light",
|
|
"theme_system": "System",
|
|
"password": "Password",
|
|
"current_password": "Current password",
|
|
"new_password": "New password",
|
|
"repeat_password": "Repeat the password",
|
|
"change_password": "Change password",
|
|
"password_changed": "Password changed. Other devices have been signed out.",
|
|
"sessions": "Devices",
|
|
"session_current": "This device",
|
|
"session_last_used": "Active: {{date}}",
|
|
"session_end": "Sign out",
|
|
"logout_all": "Sign out everywhere",
|
|
"wave_variant": "Wave style",
|
|
"wave_orb": "Orb",
|
|
"wave_liquid": "Liquid",
|
|
"player_view": "Player style",
|
|
"player_bar": "Bar",
|
|
"player_island": "Island",
|
|
"ambient": "Ambient background",
|
|
"on": "On",
|
|
"off": "Off"
|
|
},
|
|
"form": {
|
|
"show_password": "Show password",
|
|
"hide_password": "Hide password",
|
|
"passwords_mismatch": "Passwords don't match",
|
|
"required": "Fill in this field",
|
|
"cancel": "Cancel",
|
|
"close": "Close",
|
|
"copy": "Copy",
|
|
"copied": "Copied"
|
|
},
|
|
"loading": "Loading…",
|
|
"route_error": {
|
|
"reload": "Reload the page"
|
|
},
|
|
"search": {
|
|
"placeholder": "Artists, albums, tracks",
|
|
"label": "Search",
|
|
"artists": "Artists",
|
|
"albums": "Albums",
|
|
"tracks": "Tracks",
|
|
"all": "All",
|
|
"nothing": "Nothing found",
|
|
"corrected": "Showing results for “{{query}}”",
|
|
"show_all": "All results",
|
|
"title": "Search: {{query}}",
|
|
"more": "Show more",
|
|
"artist_kind": "Artist",
|
|
"hint": "Press / to search"
|
|
},
|
|
"catalog": {
|
|
"albums": "Albums",
|
|
"appears_on": "Appears on",
|
|
"album_count_one": "{{count}} album",
|
|
"album_count_other": "{{count}} albums",
|
|
"album_count_few": "{{count}} albums",
|
|
"album_count_many": "{{count}} albums",
|
|
"track_count_one": "{{count}} track",
|
|
"track_count_other": "{{count}} tracks",
|
|
"track_count_few": "{{count}} tracks",
|
|
"track_count_many": "{{count}} tracks",
|
|
"unavailable": "Unavailable: storage is offline or the file is gone",
|
|
"not_found": "Nothing here — it may have been removed by the last scan",
|
|
"disc": "Disc {{n}}",
|
|
"col_title": "Title",
|
|
"col_album": "Album",
|
|
"col_duration": "Time",
|
|
"back_home": "Back home",
|
|
"artist": "Artist",
|
|
"album": "Album",
|
|
"play": "Play",
|
|
"artist_wave": "Artist wave",
|
|
"top_tracks": "Popular tracks"
|
|
},
|
|
"collection": {
|
|
"title": "Collection",
|
|
"history": "History",
|
|
"likes": "Likes",
|
|
"dislikes": "Dislikes",
|
|
"clear_history": "Clear history",
|
|
"clear_confirm": "Clear your listening history? Recommendations will still take it into account.",
|
|
"today": "Today",
|
|
"yesterday": "Yesterday",
|
|
"empty_history": "What you listen to will show up here",
|
|
"empty_likes": "Tap the heart on tracks — they will gather here",
|
|
"empty_dislikes": "Disliked tracks stay out of the wave. None so far",
|
|
"play_all": "Play all",
|
|
"more": "Show more",
|
|
"sub_history": "Everything you listened to, by day. Click a track to play it.",
|
|
"sub_likes_one": "{{count}} track · they shape My Wave the most",
|
|
"sub_likes_few": "{{count}} tracks · they shape My Wave the most",
|
|
"sub_likes_many": "{{count}} tracks · they shape My Wave the most",
|
|
"sub_likes_other": "{{count}} tracks · they shape My Wave the most",
|
|
"sub_dislikes": "These tracks never get into the wave or recommendations. Remove the dislike if you change your mind.",
|
|
"shuffle": "Shuffle"
|
|
},
|
|
"wave": {
|
|
"title": "My Wave",
|
|
"for_you": "Tuned to your taste",
|
|
"start": "Start My Wave",
|
|
"pause": "Pause My Wave",
|
|
"activity_label": "Activity",
|
|
"mood_label": "Mood",
|
|
"reset": "Reset",
|
|
"empty": "Nothing to suggest yet — the library is empty",
|
|
"fallback": "Recommendations are simplified for now",
|
|
"activities": {
|
|
"running": "Running",
|
|
"workout": "Workout",
|
|
"waking_up": "Waking up",
|
|
"focus": "Focus",
|
|
"commute": "Commute",
|
|
"chill": "Chilling",
|
|
"sleep": "Falling asleep"
|
|
},
|
|
"moods": {
|
|
"energetic": "Energetic",
|
|
"happy": "Happy",
|
|
"calm": "Calm",
|
|
"sad": "Sad"
|
|
}
|
|
},
|
|
"mobile": {
|
|
"connect": "Connect",
|
|
"servers": "Recent servers",
|
|
"change_server": "Another server",
|
|
"server": "Server",
|
|
"open_admin": "Admin — opens in the browser",
|
|
"version": "App version {{version}}",
|
|
"offline": "No connection to the server",
|
|
"profile": "Profile",
|
|
"search": "Search",
|
|
"recent_searches": "Recent searches",
|
|
"clear_recent": "Clear",
|
|
"now_playing": "Now playing",
|
|
"open_player": "Open the player",
|
|
"close_player": "Collapse the player",
|
|
"queue": "Queue",
|
|
"forget_server": "Forget server",
|
|
"update_check": "Check for updates",
|
|
"update_checking": "Checking…",
|
|
"update_latest": "You have the latest version",
|
|
"update_title": "Version {{version}} is available",
|
|
"update_required": "The server no longer supports this version — please update the app",
|
|
"update_size": "Size {{size}} MB",
|
|
"update_install": "Download and install",
|
|
"update_later": "Later",
|
|
"update_downloading": "Downloading {{percent}}%",
|
|
"update_verifying": "Verifying the file…",
|
|
"update_bad_checksum": "The file is corrupted — try again",
|
|
"update_failed": "Could not download the update",
|
|
"update_allow": "Allow installing apps from this app in Android settings",
|
|
"update_open_settings": "Open settings",
|
|
"dl_title": "Downloads",
|
|
"dl_download": "Download",
|
|
"dl_remove": "Remove from device",
|
|
"dl_album": "Download album",
|
|
"dl_all_likes": "Download all likes",
|
|
"dl_wifi_only": "Download over Wi-Fi only",
|
|
"dl_auto_likes": "Download new likes",
|
|
"dl_usage": "{{used}} MB used · {{free}} GB free on the phone",
|
|
"dl_pending_one": "{{count}} track queued",
|
|
"dl_pending_other": "{{count}} tracks queued",
|
|
"dl_waiting_wifi": "Downloads are waiting for Wi-Fi ({{count}})",
|
|
"dl_waiting_network": "Downloads are waiting for a connection ({{count}})",
|
|
"dl_retry": "Retry failed",
|
|
"dl_empty": "Download tracks, albums and likes to listen without a connection",
|
|
"dl_pending_few": "{{count}} tracks queued",
|
|
"dl_pending_many": "{{count}} tracks queued",
|
|
"player_view": "Player view",
|
|
"player_cover": "Cover",
|
|
"player_wave": "Wave",
|
|
"quality": "Sound quality",
|
|
"quality_wifi": "On Wi-Fi",
|
|
"quality_cellular": "On mobile data",
|
|
"quality_download": "Downloads",
|
|
"quality_hint": "The new quality applies to the next tracks; downloaded tracks are not re-downloaded.",
|
|
"q_original": "Original",
|
|
"q_high": "High",
|
|
"q_medium": "Medium",
|
|
"q_low": "Low",
|
|
"cache": "Recent tracks cache",
|
|
"cache_clear": "Clear ({{size}} MB)",
|
|
"cache_pending": "Will be cleared on next launch"
|
|
}
|
|
}
|