ci / api / api (push) Successful in 55s
release / release (версия и заметки) (push) Successful in 5s
ci / mobile / mobile (Metro-бандл Android) (push) Successful in 1m21s
ci / ts / ts (packages + web) (push) Successful in 2m19s
release / android (APK в релиз) (push) Successful in 4m45s
release / desktop (Linux и Windows в релиз) (push) Successful in 20m58s
release / prune (старые файлы и прогоны) (push) Successful in 9s
ci / module boundaries / boundaries (push) Successful in 7s
ci / contract / contract (сгенерированный код совпадает с openapi.yaml) (push) Successful in 1m35s
ci / db / db (push) Successful in 59s
370 lines
13 KiB
JSON
370 lines
13 KiB
JSON
{
|
||
"genius": {
|
||
"description": "Lyrics, annotations and missing artwork from Genius. Local artwork takes priority.",
|
||
"loading": "Loading…", "disabled": "Not configured", "paused": "Paused", "cooldown": "Waiting after Genius rate limit", "running": "Processing", "waiting": "Waiting for new tracks",
|
||
"configure": "Add GENIUS_ACCESS_TOKEN to deploy/.env and recreate the API container.",
|
||
"total": "Total tracks", "pending": "Queued", "matched": "Matched on Genius", "lyrics": "Lyrics", "annotations": "With annotations", "images": "With artwork", "unmatched": "No exact match", "errors": "Errors / incomplete data",
|
||
"last_error": "Last error", "token_error": "Genius rejected the token. Check it and restart the API.", "access_error": "Genius restricted access. Processing is paused.", "no_lyrics": "Lyrics are currently unavailable.", "request_error": "Some data could not be retrieved. A retry is scheduled automatically.", "resume_at": "Retry no earlier than",
|
||
"start": "Resume", "pause": "Pause", "retry": "Retry errors and unmatched", "pending_text": "This track is waiting for Genius processing.", "about": "About the song", "explanations": "Song annotations", "verified": "Verified on Genius"
|
||
},
|
||
"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": {
|
||
"skip": "Skip to content",
|
||
"more": "More",
|
||
"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",
|
||
"download_apps": "Download apps"
|
||
},
|
||
"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": {
|
||
"share": "Share track",
|
||
"link_copied": "Track link copied",
|
||
"share_error": "Could not share the link. Please try again.",
|
||
"track_page": "Track",
|
||
"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}}",
|
||
"queue_wave": "The wave never ends: next tracks are picked as you listen",
|
||
"now_playing": "Now playing",
|
||
"expand": "Open player"
|
||
},
|
||
"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",
|
||
"search_position": "Search position",
|
||
"search_left": "Left",
|
||
"search_center": "Center",
|
||
"search_right": "Right",
|
||
"search_collapse": "Collapse search",
|
||
"home_activities": "Activity picker on home",
|
||
"home_moods": "Mood picker on home",
|
||
"normalize": "Loudness normalization",
|
||
"crossfade": "Crossfade, {{seconds}} s"
|
||
},
|
||
"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",
|
||
"searching": "Searching…",
|
||
"type_query": "Type a query in the search field above",
|
||
"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"
|
||
},
|
||
"onboarding": {
|
||
"title": "What do you like to listen to?",
|
||
"subtitle": "Pick a few artists and genres to start My Wave. After that it learns from what you play.",
|
||
"artists": "Artists",
|
||
"genres": "Genres",
|
||
"skip": "Skip",
|
||
"done": "Done — to the wave",
|
||
"pick_more_one": "Pick {{count}} more artist",
|
||
"pick_more_few": "Pick {{count}} more artists",
|
||
"pick_more_many": "Pick {{count}} more artists",
|
||
"pick_more_other": "Pick {{count}} more artists",
|
||
"gender": "Gender",
|
||
"age_group": "Age group",
|
||
"unspecified": "Prefer not to say",
|
||
"edit": "Recommendation preferences",
|
||
"age_hint": "Your group will advance approximately from the year selected. You can correct it in your profile.",
|
||
"genders": {
|
||
"male": "Male",
|
||
"female": "Female",
|
||
"other": "Other"
|
||
},
|
||
"ages": {
|
||
"under_13": "До 13",
|
||
"13_19": "13–19",
|
||
"20_29": "20–29",
|
||
"30_39": "30–39",
|
||
"40_49": "40–49",
|
||
"50_59": "50–59",
|
||
"60_plus": "60+"
|
||
}
|
||
},
|
||
"playlists": {
|
||
"share": "Share playlist",
|
||
"link_copied": "Playlist link copied",
|
||
"shared": "Shared by link",
|
||
"revoke_share": "Disable link access",
|
||
"share_hint": "Anyone with an account on this server and this link can listen. Only you can edit the playlist.",
|
||
"name": "Name",
|
||
"delete_confirm": "Delete playlist “{{name}}”? Tracks will remain in your library.",
|
||
"manage": "Manage tracks",
|
||
"title": "Playlists",
|
||
"move_down": "Move {{name}} down",
|
||
"edit": "Edit playlist",
|
||
"description": "Description",
|
||
"add": "Add to playlist",
|
||
"search": "Search playlists",
|
||
"create": "Create playlist",
|
||
"find_tracks": "Find music",
|
||
"remove_track": "Remove {{name}} from playlist",
|
||
"save": "Save",
|
||
"private": "Private playlist",
|
||
"empty": "Your playlists will appear here. Create your first and add your favourite music.",
|
||
"empty_tracks": "No tracks yet. Use Add to playlist in search, albums or your collection.",
|
||
"loading": "Loading playlists…",
|
||
"move_up": "Move {{name}} up",
|
||
"delete": "Delete playlist",
|
||
"no_results": "No playlists found"
|
||
}
|
||
}
|