From 3900999706404c27d3902007d2833e28d6ade4c4 Mon Sep 17 00:00:00 2001 From: Simon Date: Mon, 24 Feb 2025 22:31:12 +0100 Subject: [PATCH] genz translation init --- README.md | 1 + electron/plugins/i18n.js | 4 +- electron/plugins/i18n/locales/genz.json | 13 + src/components/BaseEmojiPicker.vue | 3 +- src/helpers/data/locales.js | 4 + src/plugins/i18n.js | 14 +- src/plugins/i18n/locales/genz.json | 947 ++++++++++++++++++++++++ src/plugins/i18nCountries.js | 5 +- 8 files changed, 987 insertions(+), 4 deletions(-) create mode 100644 electron/plugins/i18n/locales/genz.json create mode 100644 src/plugins/i18n/locales/genz.json diff --git a/README.md b/README.md index 58b8c9470..b2cc03e8d 100644 --- a/README.md +++ b/README.md @@ -84,6 +84,7 @@ It retrieves audio, video and metadata from various Internet sources, such as: - 한국어 ([@DDinghoya](https://github.com/DDinghoya)) - Polski ([@Lukas-KK](https://github.com/Lukas-KK)) - Русский ([@staniel359](https://github.com/staniel359)) +- Gen Z ([@xyloflake](https://github.com/xyloflake), [@gamersi](https://github.com/gamersi)) ### Technical stack diff --git a/electron/plugins/i18n.js b/electron/plugins/i18n.js index dd0cfccd0..1421d7659 100644 --- a/electron/plugins/i18n.js +++ b/electron/plugins/i18n.js @@ -12,6 +12,7 @@ import ko from './i18n/locales/ko.json' with { type: 'json' } import pl from './i18n/locales/pl.json' with { type: 'json' } import ru from './i18n/locales/ru.json' with { type: 'json' } import zh from './i18n/locales/zh.json' with { type: 'json' } +import genz from './i18n/locales/genz.json' with { type: 'json' } // i18n @@ -32,7 +33,8 @@ const localesData = { ko, pl, ru, - zh + zh, + genz } const options = { diff --git a/electron/plugins/i18n/locales/genz.json b/electron/plugins/i18n/locales/genz.json new file mode 100644 index 000000000..914518e53 --- /dev/null +++ b/electron/plugins/i18n/locales/genz.json @@ -0,0 +1,13 @@ +{ + "show": "Spill the tea", + "hide": "Yeet it", + "about": "Abt", + "exit": "Dip", + "update": { + "message": "New update droppin', no cap", + "buttons": { + "download": "Sounds rad, i'm down", + "close": "nah, i'm good" + } + } +} diff --git a/src/components/BaseEmojiPicker.vue b/src/components/BaseEmojiPicker.vue index 38ff8331b..a78989823 100644 --- a/src/components/BaseEmojiPicker.vue +++ b/src/components/BaseEmojiPicker.vue @@ -47,7 +47,8 @@ export default { ko: en, pl, ru, - zh + zh, + genz: en } } }, diff --git a/src/helpers/data/locales.js b/src/helpers/data/locales.js index 67c7e7808..0dcf2f137 100644 --- a/src/helpers/data/locales.js +++ b/src/helpers/data/locales.js @@ -49,5 +49,9 @@ export default [ { id: 'zh', name: '中文' + }, + { + id: 'genz', + name: 'Gen Z' } ] diff --git a/src/plugins/i18n.js b/src/plugins/i18n.js index 242715b1c..5969b9500 100644 --- a/src/plugins/i18n.js +++ b/src/plugins/i18n.js @@ -13,6 +13,7 @@ import ko from './i18n/locales/ko.json' import pl from './i18n/locales/pl.json' import ru from './i18n/locales/ru.json' import zh from './i18n/locales/zh.json' +import genz from './i18n/locales/genz.json' import slavicPluralizationRule from './i18n/rules/pluralization/slavic.js' @@ -30,7 +31,8 @@ const localesData = { ko, pl, ru, - zh + zh, + genz } const pluralizationRules = { @@ -168,6 +170,16 @@ if (import.meta.hot) { ) } ) + + import.meta.hot.accept( + './i18n/locales/genz.json', + fileImport => { + i18n.global.setLocaleMessage( + 'genz', + fileImport.default + ) + } + ) } export default i18n diff --git a/src/plugins/i18n/locales/genz.json b/src/plugins/i18n/locales/genz.json new file mode 100644 index 000000000..044566c9c --- /dev/null +++ b/src/plugins/i18n/locales/genz.json @@ -0,0 +1,947 @@ +{ + "navigation": { + "home": "go go go", + "artists": "Artists", + "artist": "Artist", + "albums": "Albums", + "albumGroups": "Album groups", + "tracks": "skibidi bangers", + "tags": "Tags", + "tag": "Tag", + "similar": "Similar", + "images": "Images", + "lyrics": "Lyrics", + "videos": "Videos", + "videoChannels": "Video channels", + "videoMixes": "Video mixes", + "videoPlaylists": "Video playlists", + "related": "Related", + "top": "Top", + "topCollection": { + "artists": "Top artists", + "albums": "Top albums", + "tracks": "Top skibidi bangers", + "tags": "Top tags" + }, + "releases": "Releases", + "releasesCollection": { + "new": "New releases", + "upcoming": "Upcoming releases" + }, + "new": "New", + "upcoming": "Upcoming", + "radio": "Radio", + "multitag": "Multitag search", + "profiles": "Profiles", + "feed": "Feed", + "posts": "Posts", + "conversations": "Conversations", + "library": "Library", + "recommendations": "Recommendations", + "recommendationsCollection": { + "artists": "Recommended artists", + "tracks": "Recommended Skibidi Bangers" + }, + "savedTracks": "Saved Skibidi Bangers", + "playlists": "Playlists", + "favorites": "Favorites", + "bookmarks": "Bookmarks", + "bookmarksCollection": { + "artists": "Bookmarked artists", + "albums": "Bookmarked albums", + "tracks": "Bookmarked skibidi bangers", + "videos": "Bookmarked videos", + "videoChannels": "Bookmarked video channels", + "videoPlaylists": "Bookmarked video playlists" + }, + "communities": "Communities", + "history": "History", + "historyCollection": { + "activity": "Activity history", + "player": "Player history", + "browser": "Browser history" + }, + "activity": "Activity", + "player": "Player", + "browser": "Browser", + "settings": "Settings", + "model": { + "artists": "{modelName} artists", + "albums": "{modelName} albums", + "tracks": "{modelName} skibidi bangers", + "tags": "{modelName} tags", + "similar": "{modelName} similar", + "images": "{modelName} images", + "lyrics": "{modelName} lyrics", + "videos": "{modelName} videos", + "related": "{modelName} related", + "posts": "{modelName} posts", + "library": "{modelName} library", + "playlists": "{modelName} playlists", + "favorites": "{modelName} favorites", + "favoritesCollection": { + "artists": "{modelName} favorite artists", + "albums": "{modelName} favorite albums", + "tracks": "{modelName} favorite skibidi banger", + "videos": "{modelName} favorite videos" + }, + "communities": "{modelName} communities", + "shows": "{modelName} shows" + }, + "search": "Search", + "queue": "Queue", + "whatsNew": "latest lore drops", + "listenedRecently": "Listened recently", + "shows": "Shows", + "listeningNow": "Listening now", + "help": "Help" + }, + "errors": { + "badRequest": { + "header": "Major L", + "content": "You sent some sus data" + }, + "forbidden": { + "header": "Ghosted", + "content": "This ain't cooking, change the recipe" + }, + "notFound": { + "header": "404 vibes", + "content": "Nah fam, ain't nothing here" + }, + "internalServer": { + "header": "Server acting sus", + "content": "Need a hand? We gotchu fam" + }, + "badGateway": { + "header": "Remote server trippin", + "content": "Holup, let it cook" + }, + "gatewayTimeout": { + "header": "Remote server ghosted you", + "content": "Chill, let it skibidi bop for a sec, then we ball" + }, + "connection": { + "header": "Connection yeeted", + "content": "let the rizz marinate, then retry with sigma grindset" + }, + "client": { + "header": "Bro, your device got the Ohio virus 💀", + "content": "Device acting goofy? Situation looking grim? Call the squad" + } + }, + "actions": { + "login": "Log in", + "logout": "Log out", + "signup": "Sign up", + "add": "Add", + "create": "Create", + "edit": "Edit", + "save": "Save", + "cancel": "Cancel", + "delete": "Delete", + "clear": "Clear", + "retry": "Retry", + "post": "Post", + "send": "Send", + "next": "Next", + "upload": "Upload", + "back": "Go back", + "sendCode": "Send code", + "share": "Share", + "search": "Search", + "filter": "Filter", + "confirm": "Confirm", + "import": "Import", + "close": "Close", + "openLink": "Open link", + "play": "Play", + "shuffle": "Shuffle", + "loop": "Loop", + "addFrom": { + "search": "From search", + "library": "From library" + }, + "importFrom": { + "drive": "From drive", + "account": "From account" + }, + "searchIn": { + "source": "Search in source", + "sources": "Search in sources" + }, + "searchFor": { + "video": "Search for video", + "lyrics": "Search for lyrics" + }, + "importFromAccount": { + "lastfm": "Import from Last.FM", + "spotify": "Import from Spotify" + }, + "selectModel": { + "folder": "Select folder" + }, + "createModel": { + "playlist": "Create playlist", + "community": "Create community", + "post": "Create post" + }, + "addModel": { + "comment": "Add comment" + }, + "addTo": { + "library": "Add to library", + "playlist": "Add to playlist", + "favorites": "Add to favorites", + "bookmarks": "Add to bookmarks", + "listened": "Add to listened", + "watched": "Add to watched", + "queue": "Add to queue", + "savedTracks": "Add to saved skibidi banger" + }, + "show": { + "library": "Show in library", + "page": "Show page" + }, + "deleteFrom": { + "favorites": "Delete from favorites", + "bookmarks": "Delete from bookmarks", + "listened": "Delete from listened", + "watched": "Delete from watched" + }, + "externalLink": { + "open": "Open external link", + "original": "Original", + "streaming": "Streaming" + } + }, + "links": { + "playlists": "All playlists", + "communities": "All communities" + }, + "inputs": { + "search": "Search...", + "content": "Write something..." + }, + "modals": { + "delete": { + "header": { + "libraryModel": { + "artist": "Delete artist from library", + "album": "Delete album from library", + "track": "Delete skibidi banger from library" + }, + "recommendationModel": { + "artist": "Delete artist from recommendations", + "track": "Delete skibidi banger from recommendations" + }, + "playlist": "Delete playlist", + "playlistTrack": "Delete skibidi banger from playlist", + "savedTrack": "Delete skibidi banger from saved skibidi banger", + "favorite": { + "artist": "Delete artist from favorites", + "album": "Delete album from favorites", + "track": "Delete skibidi banger from favorites", + "video": "Delete video from favorites" + }, + "bookmark": { + "artist": "Delete artist from bookmarks", + "album": "Delete album from bookmarks", + "track": "Delete skibidi banger from bookmarks", + "video": "Delete video from bookmarks", + "videoChannel": "Delete video channel from bookmarks", + "videoPlaylist": "Delete video playlist from bookmarks" + }, + "post": "Delete post", + "comment": "Delete comment", + "community": "Delete community", + "account": "Delete account", + "library": "Delete library", + "history": { + "search": "Delete search history", + "activity": "Delete activity history", + "browser": "Delete browser history", + "player": "Delete player history" + } + }, + "going": { + "libraryModel": "You are going to delete {modelName} from your library.", + "recommendationModel": "You are going to delete {modelName} from your recommendations.", + "playlist": "You are going to delete {modelName} from your playlists.", + "playlistTrack": "You are going to delete {modelName} from {parentModelName} playlist.", + "savedTrack": "You are going to delete {modelName} from your saved skibidi bangers.", + "favorite": "You are going to delete {modelName} from your favorites.", + "bookmark": "You are going to delete {modelName} from your bookmarks.", + "post": "You are going to delete this post.", + "comment": "You are going to delete this comment.", + "community": "You are going to delete this community.", + "account": "You are going to delete your account.", + "library": "You are going to delete your library.", + "history": { + "search": "You are going to delete your search history.", + "activity": "You are going to delete your activity history.", + "browser": "You are going to delete your browser history.", + "player": "You are going to delete your player history." + } + }, + "also": { + "libraryModel": { + "artist": "This will also delete all this artist's albums and tracks.", + "album": "This will also delete all this album's tracks." + }, + "playlist": "This will also delete all this playlist's tracks.", + "community": "This will also delete all this community's posts.", + "account": [ + "This will also delete your following data:", + "- library\n- recommendations\n- playlists\n- favorites\n- bookmarks\n- listened\n- your page posts\n- subscriptions\n- history", + "This data will remain, but your nickname won't be displayed:", + "- created posts\n- created comments\n- conversations with you\n- created communities", + "And this data will remain unchanged:", + "- saved tracks\n- background images\n- settings" + ], + "library": [ + "This will delete your following data:", + "- artists\n- albums\n- tracks\n- recommendations" + ] + }, + "undo": "You can't undo this action!", + "sure": "Are you sure?" + } + }, + "forms": { + "fields": { + "email": "Email", + "password": "Password", + "passwordConfirmation": "Password confirmation", + "passwordResetCode": "Password reset code", + "nickname": "Nickname", + "title": "Title", + "description": "Description", + "gender": "Gender", + "birthdate": "Birth date", + "country": "Country", + "city": "City", + "status": "Status", + "clientId": "Client ID", + "clientSecret": "Client secret", + "genders": { + "male": "Male", + "female": "Female", + "other": "Other" + }, + "legal": { + "header": "I agree to the {privacyPolicy} and the {termsAndConditions}", + "privacyPolicy": "Privacy Policy", + "termsAndConditions": "Terms And Conditions" + }, + "remember": "Remember me", + "asCommunity": "As community" + }, + "extra": "Additional info", + "errors": { + "notFound": "Profile is not found", + "empty": { + "email": "Email is empty", + "password": "Password is empty", + "passwordConfirmation": "Password confirmation is empty", + "passwordResetCode": "Password reset code is empty", + "nickname": "Nickname is empty", + "title": "Title is empty", + "clientId": "Client ID is empty", + "clientSecret": "Client secret is empty", + "legal": "You must agree to the Privacy Policy and the Terms And Conditions" + }, + "invalid": { + "email": "Email is invalid" + }, + "taken": { + "email": "Email is taken", + "nickname": "Nickname is taken", + "title": "Title is taken" + }, + "tooShort": { + "password": "Password is too short" + }, + "tooLong": { + "nickname": "Nickname is too long" + }, + "confirmation": { + "passwordConfirmation": "Password and its confirmation don't match" + }, + "wrong": { + "password": "Wrong password", + "passwordResetCode": "Wrong password reset code" + } + }, + "confirm": { + "password": "Please confirm your password:" + } + }, + "notifications": { + "scrobbled": "Track {trackFullTitle} has been scrobbled", + "added": { + "queue": { + "track": "Track {trackFullTitle} has been added to queue", + "tracks": "{counter} has been added to queue | {counter} have been added to queue" + }, + "savedTracks": { + "track": "Track {trackFullTitle} has been added to saved tracks" + } + }, + "updated": { + "profile": "Profile has been updated", + "post": "Post has been updated", + "comment": "Comment has been updated", + "playlist": "Playlist {playlistTitle} has been updated", + "community": "Community {communityTitle} has been updated" + }, + "deleted": { + "libraryModel": { + "artist": "Artist {modelName} has been deleted from your library", + "album": "Album {modelName} has been deleted from your library", + "track": "Track {modelName} has been deleted from your library" + }, + "playlist": "Playlist {playlistTitle} has been deleted", + "community": "Community {communityTitle} has been deleted", + "account": "Your account has been deleted", + "library": "Your library has been deleted", + "history": { + "search": "Search history has been deleted", + "activity": "Activity history has been deleted", + "browser": "Browser history has been deleted", + "player": "Player history has been deleted" + } + }, + "copied": "Link is copied to clipboard", + "cleared": { + "cache": "Cache has been cleared", + "searchHistory": "Search history has been cleared" + }, + "restartToApply": "The setting has been saved and will be applied on the next application start" + }, + "counters": { + "nominative": { + "artists": "{count} artist | {count} artists", + "albums": "{count} album | {count} albums", + "tracks": "{count} track | {count} tracks", + "videos": "{count} video | {count} videos", + "files": "{count} file | {count} files", + "plays": "{count} play | {count} plays", + "followers": "{count} follower | {count} followers", + "following": "{count} following", + "members": "{count} member | {count} members", + "playlists": "{count} playlist | {count} playlists" + }, + "genitive": { + "artists": "{count} artist | {count} artists", + "albums": "{count} album | {count} albums", + "tracks": "{count} track | {count} tracks", + "files": "{count} file | {count} files", + "plays": "{count} play | {count} plays", + "playlists": "{count} playlist | {count} playlists" + }, + "accusative": { + "artists": "{count} artist | {count} artists", + "albums": "{count} album | {count} albums", + "tracks": "{count} track | {count} tracks", + "files": "{count} file | {count} files", + "playlists": "{count} playlist | {count} playlists" + } + }, + "select": { + "source": "Select source:", + "type": "Select type:", + "album": "Select album:", + "group": "Select album group:", + "artist": "Select artist:", + "track": "Select track:", + "country": "Select country:", + "video": "Select video:", + "lyrics": "Select lyrics:" + }, + "sources": { + "audio": "Audio", + "other": "Other", + "albumTypes": { + "album": "Album", + "group": "Album group", + "track": "Track" + }, + "albumsTypes": { + "album": "Albums", + "single": "Singles", + "ep": "EPs", + "singleEp": "Singles / EPs", + "compilation": "Compilations", + "video": "Videos", + "misc": "Miscellaneous", + "appearance": "Appearances", + "live": "Live" + }, + "videoTypes": { + "video": "Video", + "track": "Track" + } + }, + "player": { + "variants": "Variants ({count})", + "audio": { + "bitrate": "{value} kbit/s", + "equalizer": { + "decibel": "{value} dB", + "hertz": "{value} Hz", + "kilohertz": "{value} kHz" + } + } + }, + "settings": { + "tabs": { + "app": "App", + "profile": "Profile", + "connections": "Connections" + }, + "sections": { + "interface": "Interface", + "theme": "Theme", + "window": "Window", + "tabs": "Tabs", + "sidebar": "Sidebar", + "video": "Video", + "data": "Data", + "info": "Info", + "account": "Account", + "system": "System", + "updates": "Updates" + }, + "options": { + "app": { + "interface": { + "language": "Language", + "timezone": "Time zone", + "infiniteScroll": "Infinite scroll", + "artistPopup": "Show artist info on link hover", + "innerCounters": "Show muffon listeners counters", + "cachePages": "Cache pages", + "scale": "Scale" + }, + "theme": { + "dark": "Dark mode", + "system": "System theme", + "background": "Background", + "transparency": "Transparency" + }, + "window": { + "maximize": "Maximize on start", + "quit": "Quit on close", + "showTrayIcon": "Show tray icon" + }, + "tabs": { + "newTabSwitch": "Switch to new tab", + "closeOnQuit": "Close tabs on quit" + }, + "search": { + "source": "Source", + "scope": "Scope", + "resultsFullSize": "Show results in full size" + }, + "player": { + "audioSources": "Audio sources (by priority)", + "bitrate": "Show audio bitrate", + "album": "Show album", + "equalizer": "Show equalizer", + "focusPlaying": "Focus on current track", + "pauseOnVideoPlay": "Pause on video play" + }, + "queue": { + "autoplay": "Autoplay", + "clear": "Clear on player close" + }, + "video": { + "autoplay": "Autoplay", + "pauseOnAudioPlay": "Pause on audio play", + "openLinksInNewTab": "Open links in new tab" + }, + "recommendations": { + "hideLibraryArtists": "Hide library artists", + "tracksCount": "with tracks count", + "hideListenedArtists": "Hide listened artists", + "hideLibraryTracks": "Hide library tracks", + "hideListenedTracks": "Hide listened tracks" + }, + "top": { + "country": "Default country" + }, + "lyrics": { + "annotations": "Show annotations" + }, + "history": { + "search": { + "delete": "Delete search history" + }, + "activity": { + "delete": "Delete activity history" + }, + "player": { + "delete": "Delete player history" + }, + "browser": { + "delete": "Delete browser history" + } + }, + "system": { + "cache": { + "enable": "Enable cache", + "clear": "Clear cache" + } + }, + "updates": { + "check": "Check for new versions", + "auto": "Enable autoupdate", + "autoWarning": "Autoupdates on Linux are still in the experimental phase and may contain bugs.\nDuring the autoupdate process, the app will freeze temporarily.\nPlease avoid force-quitting the application; it will close automatically once the update is complete.\n\nFor details and tracking of this issue, visit [a link=issue]this link[/a]." + } + }, + "profile": { + "player": { + "playing": "Show current track on page" + }, + "data": { + "account": { + "delete": "Delete account" + }, + "library": { + "delete": "Delete library" + } + } + }, + "connections": { + "lastfm": { + "scrobbling": "Scrobbling", + "scrobbleNotifications": "Scrobble notifications", + "scrobblePercent": "Scrobble after" + }, + "spotify": { + "link": { + "description": "To connect your Spotify account please follow [a link=guide]this guide[/a]." + } + }, + "discord": { + "richPresence": { + "header": "Enable Rich Presence", + "client": "Before enabling make sure your Discord desktop client is running", + "buttons": { + "header": "Buttons", + "select": { + "first": "Select first:", + "second": "Select second:" + } + } + } + } + } + } + }, + "track": { + "source": "Via {source}" + }, + "recommended": { + "header": "Recommended to you", + "based": "Based on your:" + }, + "signup": { + "text": "Don't have an account?", + "link": "Sign up" + }, + "login": { + "text": "Already signed up?", + "link": "Log in" + }, + "passwordReset": { + "text": "Forgot password?", + "link": "Reset", + "code": { + "sent": "Password reset code has been sent to your email" + }, + "updated": { + "header": "Your password has been updated", + "content": "Now you may go back and login" + } + }, + "anonymous": { + "continue": "Continue anonymously", + "nickname": "Anonymous" + }, + "roles": { + "creator": "Creator" + }, + "relationships": { + "followed": "Following you", + "following": "You are following", + "follow": "Follow", + "unfollow": "Unfollow" + }, + "memberships": { + "joined": "You have joined", + "join": "Join", + "leave": "Leave" + }, + "message": { + "send": "Send message", + "sent": { + "header": "Message has been sent", + "content": "Go to conversation" + } + }, + "compatibility": { + "header": "Your compatibility level with {profileNickname}", + "common": "You have in common:" + }, + "recommendation": { + "similar": "Similar to {counter}:" + }, + "import": { + "lastfm": { + "historyVisible": "Before import make sure that your Last.FM listening history is visible." + }, + "active": "Importing {count} of {counter}...", + "success": { + "header": { + "files": "{counter} has been imported | {counter} have been imported", + "tracks": "{counter} has been imported | {counter} have been imported" + }, + "content": "You may want to check the data before saving to library" + }, + "error": { + "files": "{counter} could not be imported. Please make sure that metadata format is valid:" + } + }, + "save": { + "active": "Saving {count} of {counter}...", + "success": { + "library": { + "artists": "{counter} has been added to library | {counter} have been added to library", + "albums": "{counter} has been added to library | {counter} have been added to library", + "tracks": "{counter} has been added to library | {counter} have been added to library" + }, + "playlist": { + "artists": "{counter} has been added to playlist | {counter} have been added to playlist", + "albums": "{counter} has been added to playlist | {counter} have been added to playlist", + "tracks": "{counter} has been added to playlist | {counter} have been added to playlist" + }, + "playlists": { + "playlists": "{counter} has been added to playlists | {counter} have been added to playlists" + }, + "favorites": { + "tracks": "{counter} has been added to favorites | {counter} have been added to favorites" + } + }, + "error": "{counter} could not be added:" + }, + "delete": { + "active": "Deleting {count} of {counter}..." + }, + "connections": { + "connect": "Connect account", + "confirm": { + "token": "Your browser will now open. Confirm connection there and click this button again.", + "code": "Your browser will now open. Confirm connection there, paste the received code and click this button again." + }, + "disconnect": "Disconnect account" + }, + "accounts": { + "premium": "Premium" + }, + "noCollection": { + "header": { + "artists": "No artists", + "albums": "No albums", + "groups": "No album groups", + "tracks": "No skibidi bangers", + "similar": "No similar", + "tags": "No tags", + "posts": "No posts", + "feed": "No posts", + "conversations": "No conversations", + "messages": "No messages", + "followers": "No followers", + "following": "No following", + "recommendations": "No recommendations", + "playlists": "No playlists", + "communities": "No communities", + "members": "No members", + "videos": "No videos", + "videoChannels": "No video channels", + "videoMixes": "No video mixes", + "videoPlaylists": "No video playlists", + "related": "No related", + "listeners": "No listeners", + "images": "No images", + "events": "No events", + "profiles": "No profiles", + "shows": "No shows" + }, + "content": "Lowkey empty, no rizz detected" + }, + "deleted": { + "artist": "Artist has been deleted", + "album": "Album has been deleted", + "track": "Track has been deleted", + "recommendation": "Recommendation has been deleted", + "playlist": "Playlist has been deleted", + "post": "Post has been deleted", + "comment": "Comment has been deleted", + "video": "Video has been deleted", + "videoChannel": "Video channel has been deleted", + "videoPlaylist": "Video playlist has been deleted" + }, + "messages": { + "welcome": "Rizzpectfully, welcome {profileNickname}" + }, + "profile": { + "wasOnline": "Was online" + }, + "feed": { + "global": "Global feed" + }, + "about": { + "license": "Legally vibing under {license} license🔥💀", + "homepage": "Digital Rizz HQ", + "contact": "Blast our inbox 🚀📩" + }, + "private": { + "playlist": "Top-secret sauce 🕵️‍♂️🔥", + "profile": "Top-secret sauce 🕵️‍♂️🔥" + }, + "donate": { + "header": "Secure the bag... for us.", + "content": [ + "muffon's lowkey a charity grindset, zero ads and no paid flexes.", + "Real talk: it won't stay lit without some cash to keep the drip strong on dev and infrastructure.", + "We poured mad grind and time into building this project, so it'd be a major flex if all that hustle paid off.", + "So fam, if you're feeling the rizz, slide in to support muffon.", + "You down to drop some cash?" + ], + "actions": { + "decline": "Nah, I'm Gucci", + "later": "Maybe later, fam", + "accept": "Bet, let's go" + } + }, + "lists": { + "simple": "Simple list", + "table": "Table", + "extended": "Detailed list" + }, + "orders": { + "createdDesc": "Newest", + "createdAsc": "Oldest", + "updatedDesc": "Most recently updated", + "updatedAsc": "Least recently updated", + "artistsCountDesc": "Most artists", + "artistsCountAsc": "Least artists", + "albumsCountDesc": "Most albums", + "albumsCountAsc": "Least albums", + "tracksCountDesc": "Most tracks", + "tracksCountAsc": "Least tracks", + "followersCountDesc": "Most followers", + "followersCountAsc": "Least followers", + "joinedDesc": "Most recently joined", + "joinedAsc": "Least recently joined", + "membersCountDesc": "Most members", + "membersCountAsc": "Least members" + }, + "deletedModel": { + "profile": "Deleted profile" + }, + "events": { + "created": { + "profile": "Ayo, new profile just spawned, skibidi certified", + "bookmarkAlbum": "Album {modelName} got yeeted into the vault, fr", + "bookmarkArtist": "Artist {modelName} is now locked in, based move", + "bookmarkTrack": "Skibidi banger {modelName} just got bookmarked, quantum rizzics at work", + "bookmarkVideo": "Video {modelName} secured, big W", + "bookmarkVideoChannel": "Channel {modelName} made it to the stash, no cap", + "bookmarkVideoPlaylist": "Playlist {modelName} got saved, fam", + "favoriteAlbum": "Album {modelName} just hit top-tier status, absolute rizz", + "favoriteArtist": "Artist {modelName} entered the GOAT list, rizzlord approved", + "favoriteTrack": "Skibidi banger {modelName} just got favorited, straight heat", + "favoriteVideo": "Video {modelName} is now elite, skibidi stamped", + "libraryAlbum": "Album {modelName} pulled up to the library, mad respect", + "libraryArtist": "Artist {modelName} got added, ultimate rizz move", + "libraryTrack": "Skibidi banger {modelName} made it to the collection, we up", + "listenedAlbum": "You vibed to album {modelName}, straight-up lit", + "listenedArtist": "Artist {modelName} got streamed into existence, based decision", + "listenedTrack": "Skibidi banger {modelName} got some playtime, quantum rizzics in motion", + "watchedVideo": "Video {modelName} added to the watched list, no cap", + "playlistTrack": "Skibidi banger {modelName} secured in playlist {playlistTitle}, yeet", + "community": "Community {modelName} just spawned, skibidi bop certified", + "relationship": "You followed {modelName}, rizzed up the timeline", + "post": "Post {modelName} just dropped, straight fire", + "postComment": "Comment {modelName} sent, W take", + "playlist": "Playlist {modelName} is live, top G vibes", + "conversation": "You started a convo with {modelName}, fam we locked in", + "membership": "You just rolled into community {modelName}, skibidi rizz" + }, + "updated": { + "profile": "Profile just leveled up, skibidi certified", + "community": "Community {modelName} got a glow-up", + "post": "Post {modelName} got a remix, straight heat", + "postComment": "Comment {modelName} just got buffed, W edit", + "playlist": "Playlist {modelName} got a facelift, now it's elite" + }, + "deleted": { + "bookmarkAlbum": "Unbookmarked album {modelName}, it's gone", + "bookmarkArtist": "Yeeted artist {modelName} from bookmarks", + "bookmarkTrack": "Skibidi banger {modelName} got the boot from bookmarks", + "bookmarkVideo": "Video {modelName} is outta here", + "bookmarkVideoChannel": "Video channel {modelName} got wiped from bookmarks", + "bookmarkVideoPlaylist": "Video Playlist {modelName}? Say less, it's gone", + "favoriteAlbum": "Unfavorited album {modelName}, no more love for this one", + "favoriteArtist": "Artist {modelName} is off the favs list", + "favoriteTrack": "Skibidi banger {modelName} is no longer a fav", + "favoriteVideo": "Video {modelName} got unhearted", + "libraryAlbum": "Album {modelName} removed from the stash", + "libraryArtist": "Artist {modelName} got kicked from the stash", + "libraryTrack": "Skibidi banger {modelName} is outta the stash", + "listenedAlbum": "Album {modelName} yeeted from history", + "listenedArtist": "Artist {modelName} erased from listened list", + "listenedTrack": "Skibidi banger {modelName} just disappeared from listened", + "watchedVideo": "Video {modelName} is gone from watched", + "playlistTrack": "Skibidi banger {modelName} got ejected from playlist {playlistTitle}", + "community": "Community {modelName} got Thanos-snapped", + "recommendationArtist": "Artist {modelName} kicked from recommendations", + "recommendationTrack": "Skibidi banger {modelName} is no longer in the recs", + "relationship": "You just hit unfollow on {modelName}", + "post": "Post {modelName} got nuked", + "postComment": "Comment {modelName} got yeeted to the void", + "playlist": "Playlist {modelName} got tossed in da trash", + "membership": "Dipped out of {modelName} community" + } + }, + "created": { + "profile": "Been gridning on muffon since", + "library": "In da stash since", + "community": "Was spawned into existence" + }, + "filter": { + "include": { + "artists": "With artists", + "tags": "With tags" + }, + "exclude": { + "artists": "Without artists", + "tags": "Without tags" + } + }, + "keyboardShortcuts": { + "header": "Speedrun Controls", + "search": "Summon the search bar", + "audioBackward": "Rewind that beat", + "audioForward": "Forward the vibes", + "radioNextTrack": "Skip to the next banger" + }, + "online": "Vibing online 💻🔥", + "error": "System got no rizz 💀🛑", + "more": "Drop more heat 🔥👀", + "loading": "Skibidi buffering... 🚽💃", + "warning": "Major sus detected 🚨🤨" +} diff --git a/src/plugins/i18nCountries.js b/src/plugins/i18nCountries.js index 206f3e7d3..2d4756606 100644 --- a/src/plugins/i18nCountries.js +++ b/src/plugins/i18nCountries.js @@ -13,6 +13,8 @@ import ko from 'i18n-iso-countries/langs/ko.json' import pl from 'i18n-iso-countries/langs/pl.json' import ru from 'i18n-iso-countries/langs/ru.json' import zh from 'i18n-iso-countries/langs/zh.json' +import genz from 'i18n-iso-countries/langs/en.json' +genz.locale = 'genz' // i18n @@ -28,7 +30,8 @@ const locales = [ ko, pl, ru, - zh + zh, + genz ] function addLocale (