From 97d930985582deef8da4719f3c91a8a78d3c7a63 Mon Sep 17 00:00:00 2001 From: herrrta <73949927+herrrta@users.noreply.github.com> Date: Mon, 22 Sep 2025 19:34:18 -0400 Subject: [PATCH 1/2] fix: missing optional chaining for plugin setting (#1062) --- components/settings/DownloadSettings.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/settings/DownloadSettings.tsx b/components/settings/DownloadSettings.tsx index 483d895b..6c12440c 100644 --- a/components/settings/DownloadSettings.tsx +++ b/components/settings/DownloadSettings.tsx @@ -13,7 +13,7 @@ export default function DownloadSettings({ ...props }) { const allDisabled = useMemo( () => pluginSettings?.remuxConcurrentLimit?.locked === true && - pluginSettings?.autoDownload.locked === true, + pluginSettings?.autoDownload?.locked === true, [pluginSettings], ); From 74c83c4f0099cfa09a3ee72bcdc64693972d189c Mon Sep 17 00:00:00 2001 From: asmithrsa <84108607+asmithrsa@users.noreply.github.com> Date: Mon, 22 Sep 2025 20:19:20 -0400 Subject: [PATCH 2/2] feat: standardize capitalization for english menu options (#1068) Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Uruk Co-authored-by: Gauvain <68083474+Gauvino@users.noreply.github.com> --- translations/en.json | 294 +++++++++++++++++-------------------------- 1 file changed, 116 insertions(+), 178 deletions(-) diff --git a/translations/en.json b/translations/en.json index 6373fc79..f6efdc68 100644 --- a/translations/en.json +++ b/translations/en.json @@ -1,46 +1,46 @@ { "login": { - "username_required": "Username is required", + "username_required": "Username Is Required", "error_title": "Error", - "login_title": "Log in", + "login_title": "Log In", "login_to_title": "Log in to", "username_placeholder": "Username", "password_placeholder": "Password", - "login_button": "Log in", + "login_button": "Log In", "quick_connect": "Quick Connect", "enter_code_to_login": "Enter code {{code}} to login", "failed_to_initiate_quick_connect": "Failed to initiate Quick Connect", - "got_it": "Got it", - "connection_failed": "Connection failed", + "got_it": "Got It", + "connection_failed": "Connection Failed", "could_not_connect_to_server": "Could not connect to the server. Please check the URL and your network connection.", - "an_unexpected_error_occured": "An unexpected error occurred", - "change_server": "Change server", - "invalid_username_or_password": "Invalid username or password", + "an_unexpected_error_occured": "An Unexpected Error Occurred", + "change_server": "Change Server", + "invalid_username_or_password": "Invalid Username or Password", "user_does_not_have_permission_to_log_in": "User does not have permission to log in", "server_is_taking_too_long_to_respond_try_again_later": "Server is taking too long to respond, try again later", "server_received_too_many_requests_try_again_later": "Server received too many requests, try again later.", "there_is_a_server_error": "There is a server error", "an_unexpected_error_occured_did_you_enter_the_correct_url": "An unexpected error occurred. Did you enter the server URL correctly?", - "too_old_server_text": "Unsupported jellyfin server discovered", - "too_old_server_description": "Please update jellyfin to the latest version" + "too_old_server_text": "Unsupported Jellyfin Server Discovered", + "too_old_server_description": "Please update Jellyfin to the latest version" }, "server": { "enter_url_to_jellyfin_server": "Enter the URL to your Jellyfin server", "server_url_placeholder": "http(s)://your-server.com", "connect_button": "Connect", - "previous_servers": "previous servers", + "previous_servers": "Previous Servers", "clear_button": "Clear", - "search_for_local_servers": "Search for local servers", + "search_for_local_servers": "Search for Local Servers", "searching": "Searching...", "servers": "Servers" }, "home": { "checking_server_connection": "Checking server connection...", "no_internet": "No Internet", - "no_items": "No items", + "no_items": "No Items", "no_internet_message": "No worries, you can still watch\ndownloaded content.", "checking_server_connection_message": "Checking connection to server", - "go_to_downloads": "Go to downloads", + "go_to_downloads": "Go to Downloads", "retry": "Retry", "server_unreachable": "Server Unreachable", "server_unreachable_message": "Could not reach the server.\nPlease check your network connection.", @@ -53,7 +53,7 @@ "suggested_episodes": "Suggested Episodes", "intro": { "welcome_to_streamyfin": "Welcome to Streamyfin", - "a_free_and_open_source_client_for_jellyfin": "A free and open-source client for Jellyfin.", + "a_free_and_open_source_client_for_jellyfin": "A Free and Open-Source Client for Jellyfin.", "features_title": "Features", "features_description": "Streamyfin has a bunch of features and integrates with a wide array of software which you can find in the settings menu, these include:", "jellyseerr_feature_description": "Connect to your Jellyseerr instance and request movies directly in the app.", @@ -63,12 +63,12 @@ "centralised_settings_plugin_title": "Centralised Settings Plugin", "centralised_settings_plugin_description": "Configure settings from a centralised location on your Jellyfin server. All client settings for all users will be synced automatically.", "done_button": "Done", - "go_to_settings_button": "Go to settings", - "read_more": "Read more" + "go_to_settings_button": "Go to Settings", + "read_more": "Read More" }, "settings": { "settings_title": "Settings", - "log_out_button": "Log out", + "log_out_button": "Log Out", "user_info": { "user_info_title": "User Info", "user": "User", @@ -81,41 +81,41 @@ "authorize_button": "Authorize Quick Connect", "enter_the_quick_connect_code": "Enter the quick connect code...", "success": "Success", - "quick_connect_autorized": "Quick Connect authorized", + "quick_connect_autorized": "Quick Connect Authorized", "error": "Error", - "invalid_code": "Invalid code", + "invalid_code": "Invalid Code", "authorize": "Authorize" }, "media_controls": { "media_controls_title": "Media Controls", - "forward_skip_length": "Forward skip length", - "rewind_length": "Rewind length", + "forward_skip_length": "Forward Skip Length", + "rewind_length": "Rewind Length", "seconds_unit": "s" }, "gesture_controls": { "gesture_controls_title": "Gesture Controls", - "horizontal_swipe_skip": "Horizontal swipe to skip", + "horizontal_swipe_skip": "Horizontal Swipe to Skip", "horizontal_swipe_skip_description": "Swipe left/right when controls are hidden to skip", - "left_side_brightness": "Left side brightness control", + "left_side_brightness": "Left Side Brightness Control", "left_side_brightness_description": "Swipe up/down on left side to adjust brightness", - "right_side_volume": "Right side volume control", + "right_side_volume": "Right Side Volume Control", "right_side_volume_description": "Swipe up/down on right side to adjust volume" }, "audio": { "audio_title": "Audio", "set_audio_track": "Set Audio Track From Previous Item", - "audio_language": "Audio language", + "audio_language": "Audio Language", "audio_hint": "Choose a default audio language.", "none": "None", "language": "Language" }, "subtitles": { "subtitle_title": "Subtitles", - "subtitle_language": "Subtitle language", + "subtitle_language": "Subtitle Language", "subtitle_mode": "Subtitle Mode", "set_subtitle_track": "Set Subtitle Track From Previous Item", "subtitle_size": "Subtitle Size", - "subtitle_hint": "Configure subtitle preference.", + "subtitle_hint": "Configure Subtitle Preference.", "none": "None", "language": "Language", "loading": "Loading", @@ -124,13 +124,13 @@ "Smart": "Smart", "Always": "Always", "None": "None", - "OnlyForced": "OnlyForced" + "OnlyForced": "Only Forced" } }, "other": { "other_title": "Other", - "follow_device_orientation": "Auto rotate", - "video_orientation": "Video orientation", + "follow_device_orientation": "Auto Rotate", + "video_orientation": "Video Orientation", "orientation": "Orientation", "orientations": { "DEFAULT": "Default", @@ -144,8 +144,8 @@ "OTHER": "Other", "UNKNOWN": "Unknown" }, - "safe_area_in_controls": "Safe area in controls", - "video_player": "Video player", + "safe_area_in_controls": "Safe Area in Controls", + "video_player": "Video Player", "video_players": { "VLC_3": "VLC 3", "VLC_4": "VLC 4 (Experimental + PiP)" @@ -154,24 +154,13 @@ "hide_libraries": "Hide Libraries", "select_liraries_you_want_to_hide": "Select the libraries you want to hide from the Library tab and home page sections.", "disable_haptic_feedback": "Disable Haptic Feedback", - "default_quality": "Default quality", - "max_auto_play_episode_count": "Max auto play episode count", + "default_quality": "Default Quality", + "max_auto_play_episode_count": "Max Auto Play Episode Count", "disabled": "Disabled" }, "downloads": { "downloads_title": "Downloads", - "download_method": "Download method", - "remux_max_download": "Remux max download", - "auto_download": "Auto download", - "optimized_versions_server": "Optimized versions server", - "save_button": "Save", - "optimized_server": "Optimized Server", - "optimized": "Optimized", - "default": "Default", - "optimized_version_hint": "Enter the URL for the optimize server. The URL should include http or https and optionally the port.", - "read_more_about_optimized_server": "Read more about the optimize server.", - "url": "URL", - "server_url_placeholder": "http(s)://domain.org:port" + "remux_max_download": "Remux Max Download" }, "plugins": { "plugins_title": "Plugins", @@ -182,17 +171,15 @@ "server_url_placeholder": "Jellyseerr URL...", "password": "Password", "password_placeholder": "Enter password for Jellyfin user {{username}}", - "save_button": "Save", - "clear_button": "Clear", "login_button": "Login", - "total_media_requests": "Total media requests", - "movie_quota_limit": "Movie quota limit", - "movie_quota_days": "Movie quota days", - "tv_quota_limit": "TV quota limit", - "tv_quota_days": "TV quota days", - "reset_jellyseerr_config_button": "Reset Jellyseerr config", + "total_media_requests": "Total Media Requests", + "movie_quota_limit": "Movie Quota Limit", + "movie_quota_days": "Movie Quota Days", + "tv_quota_limit": "TV Quota Limit", + "tv_quota_days": "TV Quota Days", + "reset_jellyseerr_config_button": "Reset Jellyseerr Config", "unlimited": "Unlimited", - "plus_n_more": "+{{n}} more", + "plus_n_more": "+{{n}} More", "order_by": { "DEFAULT": "Default", "VOTE_COUNT_AND_AVERAGE": "Vote count and average", @@ -204,7 +191,7 @@ "url": "URL", "server_url_placeholder": "http(s)://domain.org:port", "marlin_search_hint": "Enter the URL for the Marlin server. The URL should include http or https and optionally the port.", - "read_more_about_marlin": "Read more about Marlin.", + "read_more_about_marlin": "Read More About Marlin.", "save_button": "Save", "toasts": { "saved": "Saved" @@ -215,39 +202,33 @@ "storage_title": "Storage", "app_usage": "App {{usedSpace}}%", "device_usage": "Device {{availableSpace}}%", - "size_used": "{{used}} of {{total}} used", + "size_used": "{{used}} of {{total}} Used", "delete_all_downloaded_files": "Delete All Downloaded Files" }, "intro": { - "show_intro": "Show intro", - "reset_intro": "Reset intro" + "show_intro": "Show Intro", + "reset_intro": "Reset Intro" }, "logs": { "logs_title": "Logs", - "export_logs": "Export logs", - "click_for_more_info": "Click for more info", + "export_logs": "Export Logs", + "click_for_more_info": "Click for More Info", "level": "Level", - "no_logs_available": "No logs available", - "delete_all_logs": "Delete all logs" + "no_logs_available": "No Logs Available", + "delete_all_logs": "Delete All Logs" }, "languages": { "title": "Languages", - "app_language": "App language", - "app_language_description": "Select the language for the app.", + "app_language": "App Language", "system": "System" }, "toasts": { - "error_deleting_files": "Error deleting files", - "background_downloads_enabled": "Background downloads enabled", - "background_downloads_disabled": "Background downloads disabled", - "connected": "Connected", - "could_not_connect": "Could not connect", - "invalid_url": "Invalid URL" + "error_deleting_files": "Error Deleting Files" } }, "sessions": { "title": "Sessions", - "no_active_sessions": "No active sessions" + "no_active_sessions": "No Active Sessions" }, "downloads": { "downloads_title": "Downloads", @@ -255,116 +236,80 @@ "movies": "Movies", "queue": "Queue", "queue_hint": "Queue and downloads will be lost on app restart", - "no_items_in_queue": "No items in queue", - "no_downloaded_items": "No downloaded items", - "delete_all_movies_button": "Delete all Movies", - "delete_all_tvseries_button": "Delete all TV-Series", - "delete_all_button": "Delete all", - "active_download": "Active download", - "no_active_downloads": "No active downloads", - "active_downloads": "Active downloads", + "no_items_in_queue": "No Items in Queue", + "no_downloaded_items": "No Downloaded Items", + "delete_all_movies_button": "Delete All Movies", + "delete_all_tvseries_button": "Delete All TV-Series", + "delete_all_button": "Delete All", + "active_download": "Active Download", + "no_active_downloads": "No Active Downloads", + "active_downloads": "Active Downloads", "new_app_version_requires_re_download": "New app version requires re-download", "new_app_version_requires_re_download_description": "The new update requires content to be downloaded again. Please remove all downloaded content and try again.", "back": "Back", "delete": "Delete", - "something_went_wrong": "Something went wrong", + "something_went_wrong": "Something Went Wrong", "could_not_get_stream_url_from_jellyfin": "Could not get the stream URL from Jellyfin", "eta": "ETA {{eta}}", - "methods": "Methods", "toasts": { "you_are_not_allowed_to_download_files": "You are not allowed to download files.", - "deleted_all_movies_successfully": "Deleted all movies successfully!", - "failed_to_delete_all_movies": "Failed to delete all movies", - "deleted_all_tvseries_successfully": "Deleted all TV-Series successfully!", - "failed_to_delete_all_tvseries": "Failed to delete all TV-Series", - "download_deleted": "Download deleted", - "could_not_delete_download": "Could not delete download", - "download_paused": "Download paused", - "could_not_pause_download": "Could not pause download", - "download_resumed": "Download resumed", - "could_not_resume_download": "Could not resume download", - "download_completed": "Download completed", - "download_started_for": "Download started for {{item}}", - "item_is_ready_to_be_downloaded": "{{item}} is ready to be downloaded", - "download_stated_for_item": "Download started for {{item}}", + "deleted_all_movies_successfully": "Deleted All Movies Successfully!", + "failed_to_delete_all_movies": "Failed to Delete All Movies", + "deleted_all_tvseries_successfully": "Deleted All TV-Series Successfully!", + "failed_to_delete_all_tvseries": "Failed to Delete All TV-Series", + "download_deleted": "Download Deleted", + "could_not_delete_download": "Could Not Delete Download", + "download_paused": "Download Paused", + "could_not_pause_download": "Could Not Pause Download", + "download_resumed": "Download Resumed", + "could_not_resume_download": "Could Not Resume Download", + "download_completed": "Download Completed", "download_failed_for_item": "Download failed for {{item}} - {{error}}", - "download_completed_for_item": "Download completed for {{item}}", - "queued_item_for_optimization": "Queued {{item}} for optimization", - "failed_to_start_download_for_item": "Failed to start downloading for {{item}}: {{message}}", - "server_responded_with_status_code": "Server responded with status {{statusCode}}", - "no_response_received_from_server": "No response received from the server", - "error_setting_up_the_request": "Error setting up the request", - "failed_to_start_download_for_item_unexpected_error": "Failed to start downloading for {{item}}: Unexpected error", + "download_completed_for_item": "Download Completed for {{item}}", "all_files_folders_and_jobs_deleted_successfully": "All files, folders, and jobs deleted successfully", - "an_error_occured_while_deleting_files_and_jobs": "An error occurred while deleting files and jobs", - "go_to_downloads": "Go to downloads" + "go_to_downloads": "Go to Downloads" } } }, "search": { - "search_here": "Search here...", "search": "Search...", - "x_items": "{{count}} items", + "x_items": "{{count}} Items", "library": "Library", "discover": "Discover", - "no_results": "No results", - "no_results_found_for": "No results found for", + "no_results": "No Results", + "no_results_found_for": "No Results Found For", "movies": "Movies", "series": "Series", "episodes": "Episodes", "collections": "Collections", "actors": "Actors", "request_movies": "Request Movies", - "request_series": "Request Series", - "recently_added": "Recently Added", - "recent_requests": "Recent Requests", - "plex_watchlist": "Plex Watchlist", - "trending": "Trending", - "popular_movies": "Popular Movies", - "movie_genres": "Movie Genres", - "upcoming_movies": "Upcoming Movies", - "studios": "Studios", - "popular_tv": "Popular TV", - "tv_genres": "TV Genres", - "upcoming_tv": "Upcoming TV", - "networks": "Networks", - "tmdb_movie_keyword": "TMDB Movie Keyword", - "tmdb_movie_genre": "TMDB Movie Genre", - "tmdb_tv_keyword": "TMDB TV Keyword", - "tmdb_tv_genre": "TMDB TV Genre", - "tmdb_search": "TMDB Search", - "tmdb_studio": "TMDB Studio", - "tmdb_network": "TMDB Network", - "tmdb_movie_streaming_services": "TMDB Movie Streaming Services", - "tmdb_tv_streaming_services": "TMDB TV Streaming Services" + "request_series": "Request Series" }, "library": { - "no_items_found": "No items found", - "no_results": "No results", - "no_libraries_found": "No libraries found", + "no_results": "No Results", + "no_libraries_found": "No Libraries Found", "item_types": { - "movies": "movies", - "series": "series", - "boxsets": "box sets", - "items": "items" + "movies": "Movies", + "series": "Series", + "boxsets": "Box Sets", + "items": "Items" }, "options": { "display": "Display", "row": "Row", "list": "List", - "image_style": "Image style", + "image_style": "Image Style", "poster": "Poster", "cover": "Cover", - "show_titles": "Show titles", - "show_stats": "Show stats" + "show_titles": "Show Titles", + "show_stats": "Show Stats" }, "filters": { "genres": "Genres", "years": "Years", "sort_by": "Sort By", "sort_order": "Sort Order", - "asc": "Ascending", - "desc": "Descending", "tags": "Tags" } }, @@ -375,34 +320,30 @@ "videos": "Videos", "boxsets": "Boxsets", "playlists": "Playlists", - "noDataTitle": "No favorites yet", + "noDataTitle": "No Favorites Yet", "noData": "Mark items as favorites to see them appear here for quick access." }, "custom_links": { - "no_links": "No links" + "no_links": "No Links" }, "player": { "error": "Error", "failed_to_get_stream_url": "Failed to get the stream URL", "an_error_occured_while_playing_the_video": "An error occurred while playing the video. Check logs in settings.", - "client_error": "Client error", + "client_error": "Client Error", "could_not_create_stream_for_chromecast": "Could not create a stream for Chromecast", - "message_from_server": "Message from server: {{message}}", - "video_has_finished_playing": "Video has finished playing!", - "no_video_source": "No video source...", + "message_from_server": "Message from Server: {{message}}", "next_episode": "Next Episode", "refresh_tracks": "Refresh Tracks", - "subtitle_tracks": "Subtitle Tracks:", "audio_tracks": "Audio Tracks:", "playback_state": "Playback State:", - "no_data_available": "No data available", "index": "Index:", "continue_watching": "Continue Watching", - "go_back": "Go back" + "go_back": "Go Back" }, "item_card": { - "next_up": "Next up", - "no_items_to_display": "No items to display", + "next_up": "Next Up", + "no_items_to_display": "No Items to Display", "cast_and_crew": "Cast & Crew", "series": "Series", "seasons": "Seasons", @@ -410,36 +351,33 @@ "no_episodes_for_this_season": "No episodes for this season", "overview": "Overview", "more_with": "More with {{name}}", - "similar_items": "Similar items", - "no_similar_items_found": "No similar items found", + "similar_items": "Similar Items", + "no_similar_items_found": "No Similar Items Found", "video": "Video", - "more_details": "More details", + "more_details": "More Details", "quality": "Quality", "audio": "Audio", "subtitles": "Subtitle", - "show_more": "Show more", - "show_less": "Show less", - "appeared_in": "Appeared in", - "could_not_load_item": "Could not load item", + "show_more": "Show More", + "show_less": "Show Less", + "appeared_in": "Appeared In", + "could_not_load_item": "Could Not Load Item", "none": "None", "download": { "download_season": "Download Season", "download_series": "Download Series", "download_episode": "Download Episode", "download_movie": "Download Movie", - "download_x_item": "Download {{item_count}} items", + "download_x_item": "Download {{item_count}} Items", "download_unwatched_only": "Unwatched Only", - "download_button": "Download", - "using_optimized_server": "Using optimized server", - "using_default_method": "Using default method" + "download_button": "Download" } }, "live_tv": { "next": "Next", "previous": "Previous", - "live_tv": "Live TV", - "coming_soon": "Coming soon", - "on_now": "On now", + "coming_soon": "Coming Soon", + "on_now": "On Now", "shows": "Shows", "movies": "Movies", "sports": "Sports", @@ -450,16 +388,16 @@ "confirm": "Confirm", "cancel": "Cancel", "yes": "Yes", - "whats_wrong": "What's wrong?", - "issue_type": "Issue type", - "select_an_issue": "Select an issue", + "whats_wrong": "What's Wrong?", + "issue_type": "Issue Type", + "select_an_issue": "Select an Issue", "types": "Types", - "describe_the_issue": "(optional) Describe the issue...", + "describe_the_issue": "(Optional) Describe the Issue...", "submit_button": "Submit", - "report_issue_button": "Report issue", + "report_issue_button": "Report Issue", "request_button": "Request", "are_you_sure_you_want_to_request_all_seasons": "Are you sure you want to request all seasons?", - "failed_to_login": "Failed to login", + "failed_to_login": "Failed to Login", "cast": "Cast", "details": "Details", "status": "Status", @@ -474,13 +412,13 @@ "production_country": "Production Country", "studios": "Studios", "network": "Network", - "currently_streaming_on": "Currently Streaming on", + "currently_streaming_on": "Currently Streaming On", "advanced": "Advanced", "request_as": "Request As", "tags": "Tags", "quality_profile": "Quality Profile", "root_folder": "Root Folder", - "season_all": "Season (all)", + "season_all": "Season (All)", "season_number": "Season {{season_number}}", "number_episodes": "{{episode_number}} Episodes", "born": "Born", @@ -489,7 +427,7 @@ "jellyseer_does_not_meet_requirements": "Jellyseerr server does not meet minimum version requirements! Please update to at least 2.0.0", "jellyseerr_test_failed": "Jellyseerr test failed. Please try again.", "failed_to_test_jellyseerr_server_url": "Failed to test jellyseerr server url", - "issue_submitted": "Issue submitted!", + "issue_submitted": "Issue Submitted!", "requested_item": "Requested {{item}}!", "you_dont_have_permission_to_request": "You don't have permission to request!", "something_went_wrong_requesting_media": "Something went wrong requesting media!"