mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-08 17:06:15 -08:00
Update info-overlay template to read simplified EPG fields and avoid indexing into arrays for title, icon and description so bindings are resilient and clearer: - Use epgProgram?.iconUrl instead of epgProgram?.icon?.[0]?.src - Use epgProgram?.title instead of epgProgram?.title?.[0]?.value - Use epgProgram?.desc instead of epgProgram?.desc?.[0]?.value - Guard description rendering with epgProgram?.desc Adjust multi-epg header layout and add search UI styles to support desktop window chrome and draggable regions: - Add left padding to #epg-navigation for macOS traffic lights, enable backdrop drag via -webkit-app-region: drag and set z-index to keep header above content. - Exclude interactive elements (buttons, search inputs) from drag by applying -webkit-app-region: no-drag to maintain native interactions. - Add extensive styles for a channel search container (search input, icons, clear button, filter count, animations) and scaffold a program search container. These changes improve robustness of EPG data rendering and add styled search controls while ensuring proper window dragging behavior on desktop builds.
417 lines
19 KiB
JSON
417 lines
19 KiB
JSON
{
|
|
"CLOSE": "Close",
|
|
"PLAYLISTS": "Playlists",
|
|
"HOME": {
|
|
"TITLE": "IPTVnator",
|
|
"SUBTITLE": "Please select a playlist from the list or add a new playlist",
|
|
"TABS": {
|
|
"RECENTLY_ADDED": "Recently added playlists",
|
|
"FILE_UPLOAD": "Add via file upload",
|
|
"URL_UPLOAD": "Add via URL",
|
|
"TEXT_IMPORT": "Import from text",
|
|
"XTREME_IMPORT": "Add Xtreme Code",
|
|
"STALKER_PORTAL_IMPORT": "Add Stalker Portal"
|
|
},
|
|
"PLAYLISTS": {
|
|
"NO_PLAYLISTS": "No playlists were added",
|
|
"ADD_FIRST": "Please add your first playlist",
|
|
"WELCOME_TITLE": "Welcome to IPTVnator",
|
|
"WELCOME_DESCRIPTION": "Start your streaming journey by adding your first playlist. Connect to your favorite IPTV service and enjoy live TV, movies, and series.",
|
|
"ADD_YOUR_FIRST": "Add Your First Playlist",
|
|
"FEATURE_M3U": "M3U/M3U8 Files",
|
|
"FEATURE_XTREAM": "Xtream Codes",
|
|
"FEATURE_STALKER": "Stalker Portal",
|
|
"NO_RESULTS_TITLE": "No playlists found",
|
|
"NO_RESULTS_DESCRIPTION": "No playlists match your search. Try adjusting your search terms or clear the filter to see all playlists.",
|
|
"ADDED_VIA_URL": "Added via URL upload. URL:",
|
|
"ADDED_VIA_FILE": "Added via file upload",
|
|
"XTREAM_PLAYLIST": "Xtream playlist",
|
|
"STALKER_PORTAL": "Stalker portal",
|
|
"CHANNELS": "Channels",
|
|
"ADDED": "Added",
|
|
"SHOW_DETAILS": "Show playlist details",
|
|
"REMOVE": "Remove playlist",
|
|
"SEARCH_PLAYLISTS": "Search playlists by title",
|
|
"INFO_DIALOG": {
|
|
"PLAYLIST_DETAILS": "Playlist details",
|
|
"TITLE": "Title",
|
|
"FROM_URL": "Added from the URL",
|
|
"IMPORT_DATE": "Import date",
|
|
"CHANNELS": "Number of channels",
|
|
"CLOSE": "Close",
|
|
"SAVE": "Save",
|
|
"USER_AGENT": "User agent",
|
|
"ORIGINAL_FILENAME": "Original filename",
|
|
"FILE_PATH": "File path",
|
|
"UPDATE_FAILED": "Last playlist update failed",
|
|
"AUTO_UPDATE": "Auto-update",
|
|
"AUTO_UPDATE_DESCRIPTION": "If the auto-refresh function is activated, the playlist will be updated automatically each time the app is started.",
|
|
"CUSTOM_USER_AGENT": "Some IPTV providers need a specific user-agent in order to play their playlist.",
|
|
"EXPORT_PLAYLIST": "Export playlist as m3u",
|
|
"SERVER_URL": "Server URL",
|
|
"USERNAME": "Username",
|
|
"PASSWORD": "Password",
|
|
"MAC_ADDRESS": "Mac Address",
|
|
"PLAYLIST_EXPORT_SUCCESS": "Playlist was exported successfully.",
|
|
"PLAYLIST_EXPORT_ERROR": "Error: Playlist export failed.",
|
|
"COPY_URL": "Copy URL to clipboard",
|
|
"URL_COPIED": "URL copied to clipboard"
|
|
},
|
|
"REMOVE_DIALOG": {
|
|
"TITLE": "Remove playlist",
|
|
"MESSAGE": "Are you sure you want to delete this playlist completely?",
|
|
"SUCCESS": "Playlist was removed successfully"
|
|
},
|
|
"UPDATED": "Updated",
|
|
"REFRESH": "Refresh playlist",
|
|
"REFRESH_XTREAM": "Refresh Xtream playlist from remote",
|
|
"REFRESH_XTREAM_DIALOG": {
|
|
"TITLE": "Refresh Xtream Playlist",
|
|
"MESSAGE": "This will delete locally cached categories and streams and re-import everything from the remote server. Your favorites and recently viewed items will be preserved. Are you sure you want to continue?",
|
|
"STARTED": "Refresh started. Navigating to playlist...",
|
|
"ERROR": "Failed to refresh playlist. Please try again."
|
|
},
|
|
"GLOBAL_FAVORITES": "Global favorites",
|
|
"GLOBAL_FAVORITES_DESCRIPTION": "Auto-generated playlist with aggregated favorites from all playlists",
|
|
"MY_PLAYLISTS": "My playlists",
|
|
"MY_PLAYLISTS_SUBTITLE": "all available playlists",
|
|
"PLAYLIST_UPDATE_SUCCESS": "Success! The playlist was successfully updated.",
|
|
"PLAYLIST_UPDATE_ERROR": "Error updating playlist details.",
|
|
"AUTO_REFRESH_UPDATE_SUCCESS": "Success! The playlists were successfully updated",
|
|
"AUTO_REFRESH_ENABLED": "Auto-refresh enabled"
|
|
},
|
|
"FILE_UPLOAD": {
|
|
"DRAG_DROP": "Drag & drop files here",
|
|
"OR": "or",
|
|
"CHOOSE_PLAYLIST": "choose a playlist",
|
|
"REJECTED": "File was rejected, unsupported file format {{filename}}."
|
|
},
|
|
"URL_UPLOAD": {
|
|
"PLAYLIST_URL": "Playlist URL (m3u, m3u8)",
|
|
"ADD_PLAYLIST": "Add playlist",
|
|
"CORS_NOTE": "Note: In order to avoid CORS issues at this point the application uses a public CORS Proxy service. If you want to upload a playlist with sensitive data, it's more secure to import it from a file."
|
|
},
|
|
"TEXT_IMPORT": {
|
|
"LABEL": "Insert m3u(8) playlist as text",
|
|
"BUTTON_LABEL": "Import"
|
|
},
|
|
"XTREAM_PLAYLIST": {
|
|
"TITLE": "Playlist title",
|
|
"SERVER_URL": "Server URL",
|
|
"USERNAME": "Username",
|
|
"PASSWORD": "Password",
|
|
"ADD": "Add",
|
|
"TEST_CREDENTIALS": "Test credentials",
|
|
"URL_VALIDATION_ERROR": "Should be a valid url with protocol (e.g. http://example.com or https://example.com:4324)"
|
|
},
|
|
"STALKER_PORTAL": {
|
|
"TITLE": "Title",
|
|
"MAC_ADDRESS": "Mac Address",
|
|
"SERVER_URL": "Server URL",
|
|
"URL_VALIDATION_ERROR": "Should be a valid url with protocol (e.g. http://example.com/c or https://example.com/stalker_portal/c)",
|
|
"ADD": "Add"
|
|
},
|
|
"FILTER_BY_NAME": "Filter by name",
|
|
"FILTER_BY_TYPE": "Playlist Types",
|
|
"FILTER_AND_SORT": "Filter & Sort",
|
|
"SORT_PLAYLISTS": "Sort playlists",
|
|
"SORT_BY": "Sort By",
|
|
"SORT_OPTIONS": {
|
|
"NAME_ASC": "Name (A-Z)",
|
|
"NAME_DESC": "Name (Z-A)",
|
|
"NEWEST": "Date added (Newest first)",
|
|
"OLDEST": "Date added (Oldest first)"
|
|
},
|
|
"PLAYLIST_TYPES": {
|
|
"M3U": "M3U (local, url, text)",
|
|
"XTREAM": "Xtream",
|
|
"STALKER": "Stalker"
|
|
},
|
|
"IMPORTED_AS_TEXT": "Imported as text",
|
|
"PARSING_ERROR": "Error: Parsing failed, not a valid playlist:"
|
|
},
|
|
"SETTINGS": {
|
|
"TITLE": "Settings",
|
|
"SUBTITLE": "Change the configuration of the application",
|
|
"DESCRIPTION": "Please adapt the options from the list below and confirm with the save changes button",
|
|
"EPG_URL_LABEL": "EPG Url (*.xml or *.xml.gz)",
|
|
"EPG_URL_PLACEHOLDER": "Enter an URL",
|
|
"REFRESH_EPG": "Refresh EPG",
|
|
"VIDEO_PLAYER_LABEL": "Video player",
|
|
"VIDEO_PLAYER_PLACEHOLDER": "Select an option",
|
|
"VERSION": "Version",
|
|
"SAVE_CHANGES": "Save changes",
|
|
"BACK_TO_HOME": "Back",
|
|
"NEW_VERSION_AVAILABLE": "There is a new version available",
|
|
"LATEST_VERSION": "You are using the latest version",
|
|
"STREAM_FORMAT": "Stream Format",
|
|
"LANGUAGE": "Language",
|
|
"SETTINGS_SAVED": "Success! Configuration was saved.",
|
|
"THEME": "Visual theme",
|
|
"SHOW_CAPTIONS": "Show subtitles",
|
|
"ADD_EPG_SOURCE": "Add EPG source",
|
|
"CLEAR_EPG_DATA": "Clear EPG data",
|
|
"CLEAR_EPG_DIALOG": {
|
|
"TITLE": "Clear EPG data",
|
|
"MESSAGE": "Are you sure you want to remove all EPG (Electronic Program Guide) data from the database? This will delete all cached program schedules."
|
|
},
|
|
"EPG_DATA_CLEARED": "EPG data has been cleared",
|
|
"EPG_URL_ERROR": "The value is not a valid URL",
|
|
"VIDEO_PLAYER_DESCRIPTION": "Select default video player",
|
|
"STREAM_FORMAT_DESCRIPTION": "Select default stream format (xtream)",
|
|
"LANGUAGE_DESCRIPTION": "Select language of the application",
|
|
"THEME_DESCRIPTION": "Select visual theme of the application",
|
|
"SHOW_CAPTIONS_DESCRIPTION": "Show or hide subtitles by default",
|
|
"VERSION_DESCRIPTION": "Current version of the application",
|
|
"EPG_NOTE": "Currently EPG is available only in the electron-based version of IPTVnator.",
|
|
"EPG_NOTE_URL_TEXT": "Check it here",
|
|
"IMPORT_EXPORT_DATA": "Import/export playlists",
|
|
"IMPORT_EXPORT_DATA_DESCRIPTION": "Export or import playlists in the JSON format used within the application.",
|
|
"IMPORT_DATA": "Import",
|
|
"EXPORT_DATA": "Export",
|
|
"REMOVE_ALL": "Remove playlists",
|
|
"REMOVE_ALL_BUTTON": "Remove",
|
|
"REMOVE_ALL_DESCRIPTION": "It will remove all existing playlists from the application.",
|
|
"REMOVE_DIALOG": {
|
|
"TITLE": "Remove all playlists",
|
|
"MESSAGE": "Are you sure you want to delete all playlist from the application?"
|
|
},
|
|
"IMPORT_ERROR": "Import error, please try with another file.",
|
|
"PLAYLISTS_REMOVED": "All playlists were removed.",
|
|
"MPV_PLAYER_PATH_LABEL": "mpv path",
|
|
"MPV_PLAYER_PATH_DESCRIPTION": "Set path to mpv player in your system. It will use the provided path to a mpv binary instead of using the one found in $PATH.",
|
|
"MPV_PLAYER_PATH": "mpv player path",
|
|
"MPV_REUSE_INSTANCE_LABEL": "Reuse MPV instance",
|
|
"MPV_REUSE_INSTANCE_DESCRIPTION": "When enabled, the same MPV window will be reused for playing different streams. When disabled, each stream opens in a new MPV window.",
|
|
"VLC_PLAYER_PATH_LABEL": "VLC path",
|
|
"VLC_PLAYER_PATH_DESCRIPTION": "Set path to VLC player in your system. It will use the provided path to a VLC binary instead of the default path for our system.",
|
|
"VLC_PLAYER_PATH": "VLC player path",
|
|
"REMOTE_CONTROL": "Remote control",
|
|
"REMOTE_CONTROL_DESCRIPTION": "Enable remote control of the application.",
|
|
"REMOTE_CONTROL_PORT": "Remote control port",
|
|
"REMOTE_CONTROL_PORT_DESCRIPTION": "Port used for remote control of the application. Port 8765 is used by default.",
|
|
"REMOTE_CONTROL_URL": "Remote control URL",
|
|
"REMOTE_CONTROL_URL_DESCRIPTION": "Access the remote control from another device on the same network.",
|
|
"SHOW_QR_CODE": "Show QR code",
|
|
"PORT_REQUIRED": "Port is required",
|
|
"PORT_MIN": "Port must be at least 1",
|
|
"PORT_MAX": "Port must be at most 65535",
|
|
"PORT_PATTERN": "Only digits are allowed"
|
|
},
|
|
"THEMES": {
|
|
"DARK_THEME": "Dark theme",
|
|
"LIGHT_THEME": "Light theme"
|
|
},
|
|
"CHANNELS": {
|
|
"SEARCH_CHANNEL": "Search channel",
|
|
"UPLOAD_OR_SELECT_OTHER_PLAYLIST": "Upload or select other playlist",
|
|
"ALL_CHANNELS": "All channels",
|
|
"GROUPS": "Groups",
|
|
"UNGROUPED": "Ungrouped",
|
|
"UNNAMED_CHANNEL": "Unnamed Channel",
|
|
"FAVORITES": "Favorites",
|
|
"NO_FAVORITES": "No favorites yet",
|
|
"USE_STAR_TO_FAVORITE": "Please use 'star' icon to add channels to your favorites.",
|
|
"REMOVE_FAVORITE": "Remove from favorites",
|
|
"FAVORITES_UPDATED": "Favorites were updated!",
|
|
"SORT_BY": "Sort by",
|
|
"SORT_BY_DATE": "Sort by Date Added (Newest First)",
|
|
"SORT_BY_RATING": "Sort by Rating",
|
|
"SORT_BY_NAME": "Sort by Name (A-Z)"
|
|
},
|
|
"TOP_MENU": {
|
|
"OPEN_CHANNELS_LIST": "Open channel list",
|
|
"TOGGLE_FAVORITE_FLAG": "Toggle favorite flag",
|
|
"OPEN_EPG_LIST": "Open EPG list",
|
|
"OPEN_MULTI_EPG": "Open Multi-EPG view",
|
|
"SHOW_INFO": "Show program info (Press I)"
|
|
},
|
|
"EPG": {
|
|
"TITLE": "Electronic Program Guide",
|
|
"NEXT_DAY": "Next day",
|
|
"PREVIOUS_DAY": "Previous day",
|
|
"LIVE_NOW": "Live now",
|
|
"LIVE_STREAM": "Live stream",
|
|
"TIMESHIFT_AVAILABLE": "Timeshift is available, click to play",
|
|
"EPG_NOT_AVAILABLE_DATE": "Ooops, EPG is not available for the selected date",
|
|
"EPG_NOT_AVAILABLE_CHANNEL_TITLE": "Ooops, EPG is not available for this channel.",
|
|
"EPG_NOT_AVAILABLE_CHANNEL_DESCRIPTION": "Please add/change the URL of the EPG list in the settings of the app.",
|
|
"FETCH_EPG": "Fetching EPG data...",
|
|
"ERROR": "Ooops, EPG could not be loaded.",
|
|
"DOWNLOAD_SUCCESS": "EPG was successfully downloaded.",
|
|
"NO_PROGRAM_INFO": "No program information available",
|
|
"PROGRAM_DIALOG": {
|
|
"PROGRAM_DETAILS": "Details about the TV program",
|
|
"TITLE": "Title",
|
|
"CATEGORY": "Category",
|
|
"PARENTAL_RATING_SYSTEM": "Rating",
|
|
"DESCRIPTION": "Description",
|
|
"LANGUAGE": "Language",
|
|
"SHOW_PROGRAM_DETAILS": "Show details about this program",
|
|
"EPISODE": "Episode",
|
|
"DURATION": "Duration"
|
|
},
|
|
"FETCH_SUCCESS": "EPG was fetched successfully",
|
|
"IMPORT_PROGRESS": "EPG Import",
|
|
"CHANNELS": "channels",
|
|
"PROGRAMS": "programs",
|
|
"LOADING": "Loading",
|
|
"QUEUED": "Queued"
|
|
},
|
|
"LANGUAGES": {
|
|
"ARABIC": "العربية",
|
|
"MOROCCAN_ARABIC": "العربية (اللهجة المغربية)",
|
|
"ENGLISH": "English",
|
|
"KOREAN": "한국어",
|
|
"RUSSIAN": "Русский",
|
|
"GERMAN": "Deutsch",
|
|
"SPANISH": "Español",
|
|
"CHINESE": "简体中文",
|
|
"TRADITIONAL_CHINESE": "繁體中文",
|
|
"FRENCH": "Français",
|
|
"ITALIAN": "Italiano",
|
|
"TURKISH": "Türkçe",
|
|
"JAPANESE": "日本語",
|
|
"DUTCH": "Nederlands",
|
|
"BELARUSIAN": "Беларуская",
|
|
"POLISH": "Polski",
|
|
"PORTUGUESE": "Português"
|
|
},
|
|
"YES": "Yes",
|
|
"NO": "No",
|
|
"MENU": {
|
|
"OPEN": "Open menu",
|
|
"SUPPORT_ARIA": "Support IPTVnator on GitHub",
|
|
"SETTINGS": "Settings",
|
|
"SETTINGS_ARIA": "Open settings",
|
|
"BUG_REPORT": "Report a bug",
|
|
"WHAT_IS_NEW": "What is new",
|
|
"ABOUT": "About",
|
|
"ABOUT_ARIA": "About the application",
|
|
"SUPPORT_PROJECT": "Support project"
|
|
},
|
|
"ABOUT": {
|
|
"TITLE": "About IPTVnator",
|
|
"DESCRIPTION": "Cross-platform IPTV player application with multiple features, such as support of m3u and m3u8 playlists, favorites, TV guide, TV archive/catchup and more.",
|
|
"VERSION": "Version",
|
|
"GITHUB_TOOLTIP": "ITPVnator repository on GitHub",
|
|
"BUY_ME_A_COFFEE_TOOLTIP": "Buy me a coffee",
|
|
"TWITTER_TOOLTIP": "Share on Twitter"
|
|
},
|
|
"UPDATE_AVAILABLE": "Update available",
|
|
"REFRESH": "Refresh",
|
|
"XTREAM": {
|
|
"PLAY": "Play",
|
|
"OPENING_PLAYER": "Opening player...",
|
|
"NAME": "Name",
|
|
"RELEASE_DATE": "Release date",
|
|
"GENRE": "Genre",
|
|
"COUNTRY": "Country",
|
|
"ACTORS": "Actors",
|
|
"DIRECTOR": "Director",
|
|
"DURATION": "Duration",
|
|
"CAST": "Cast",
|
|
"EPISODE_RUN_TIME": "Episode run time",
|
|
"RATING": "Rating",
|
|
"IMDB_RATING": " Rating IMDB",
|
|
"KINOPOISK_RATING": "Rating Kinopoisk",
|
|
"DESCRIPTION": "Description",
|
|
"YEAR": "Year",
|
|
"AGE": "Age",
|
|
"YOUTUBE_TRAILER": "YouTube Trailer",
|
|
"EPISODE": "Episode",
|
|
"ACCOUNT_INFO": {
|
|
"TITLE": "Account Information",
|
|
"USER_INFO": "User Information",
|
|
"STATUS": "Status",
|
|
"USERNAME": "Username",
|
|
"ACTIVE_CONNECTIONS": "Active Connections",
|
|
"CREATED": "Created",
|
|
"EXPIRES": "Expires",
|
|
"TRIAL_ACCOUNT": "Trial Account",
|
|
"YES": "Yes",
|
|
"NO": "No",
|
|
"ALLOWED_FORMATS": "Allowed Formats",
|
|
"SERVER_INFO": "Server Information",
|
|
"LIVE_TV": "Live TV",
|
|
"MOVIES": "Movies",
|
|
"TV_SERIES": "TV Series",
|
|
"URL": "URL",
|
|
"PROTOCOL": "Protocol",
|
|
"TIMEZONE": "Timezone",
|
|
"SERVER_TIME": "Server Time",
|
|
"PORTS": "Ports",
|
|
"HTTP_PORT": "HTTP",
|
|
"HTTPS_PORT": "HTTPS",
|
|
"RTMP_PORT": "RTMP"
|
|
}
|
|
},
|
|
"PORTALS": {
|
|
"ALL_CATEGORIES": "All categories",
|
|
"MY_FAVORITES": "My favorites",
|
|
"ADD_TO_FAVORITES": "Add to favorites",
|
|
"REMOVE_FROM_FAVORITES": "Remove from favorites",
|
|
"REMOVED_FROM_FAVORITES": "Removed from favorites",
|
|
"ADDED_TO_FAVORITES": "Added to favorites",
|
|
"SIDEBAR": {
|
|
"MAIN": "Main",
|
|
"MOVIES": "Movies",
|
|
"LIVE_TV": "Live TV",
|
|
"SERIES": "Series",
|
|
"LIBRARY": "Library",
|
|
"SEARCH": "Search",
|
|
"RECENT": "Recent",
|
|
"FAVORITES": "Favorites",
|
|
"HOME": "Home",
|
|
"PLAYLIST_INFO": "Playlist info",
|
|
"ACCOUNT_INFO": "Account info"
|
|
},
|
|
"ERROR_VIEW": {
|
|
"ACCOUNT_EXPIRED": {
|
|
"TITLE": "Account expired",
|
|
"DESCRIPTION": "This account has been expired. Please check the credentials in playlist settings or remove it."
|
|
},
|
|
"UNAUTHORIZED": {
|
|
"TITLE": "Unauthorized",
|
|
"DESCRIPTION": "Please check the credentials in playlist settings or remove it."
|
|
},
|
|
"NOT_FOUND": {
|
|
"TITLE": "Portal not found",
|
|
"DESCRIPTION": "Please check the credentials and portal url in playlist settings or remove it."
|
|
},
|
|
"EMPTY_CATEGORY": {
|
|
"TITLE": "Empty category",
|
|
"DESCRIPTION": "This category has no content, please select another category or change the content type"
|
|
},
|
|
"UNKNOWN_ERROR": {
|
|
"TITLE": "Something went wrong",
|
|
"DESCRIPTION": "Unknown error, please try again later"
|
|
},
|
|
"NO_CATEGORY_SELECTED": {
|
|
"TITLE": "No category selected",
|
|
"DESCRIPTION": "Please select a category to see the content"
|
|
},
|
|
"PLAYLIST_SETTINGS": "Playlist Settings",
|
|
"HOME": "Home",
|
|
"DELETE": "Delete"
|
|
},
|
|
"EMPTY_LIST_VIEW": {
|
|
"TITLE": "No results found",
|
|
"NO_SEARCH_RESULTS": "Nothing found, try to change you search request"
|
|
},
|
|
"STREAM_URL_COPIED": "Stream URL copied to clipboard",
|
|
"COPY_STREAM_URL": "Copy Stream URL",
|
|
"SELECT_CATEGORY": "Select a category",
|
|
"PAGE": "Page"
|
|
},
|
|
"INFORMATION": "Information",
|
|
"REMOTE_CONTROL": {
|
|
"TITLE": "Remote control",
|
|
"SUBTITLE": "Control your IPTV player remotely",
|
|
"UP_CHANNEL": "Channel Up",
|
|
"DOWN_CHANNEL": "Channel Down",
|
|
"HEADER": "IPTVNator Remote Control",
|
|
"FOOTER": "IPTVNator Remote Control"
|
|
}
|
|
}
|