diff --git a/translations/ar.json b/translations/ar.json index 5adb977e0..4806d49ea 100644 --- a/translations/ar.json +++ b/translations/ar.json @@ -4,6 +4,9 @@ "error_title": "خطأ", "login_title": "تسجيل الدخول", "login_to_title": "تسجيل الدخول إلى", + "select_user": "Select a user to log in", + "add_user_to_login": "Add a user to log in", + "add_user": "Add User", "username_placeholder": "اسم المستخدم", "password_placeholder": "كلمة المرور", "login_button": "تسجيل الدخول", @@ -30,48 +33,54 @@ "connect_button": "اتصل", "previous_servers": "الخوادم السابقة", "clear_button": "مسح", - "swipe_to_remove": "Swipe to remove", + "swipe_to_remove": "مرر للإزالة", "search_for_local_servers": "البحث عن الخوادم المحلية", "searching": "جاري البحث...", "servers": "الخوادم", - "saved": "Saved", - "session_expired": "Session Expired", - "please_login_again": "Your saved session has expired. Please log in again.", - "remove_saved_login": "Remove Saved Login", - "remove_saved_login_description": "This will remove your saved credentials for this server. You'll need to enter your username and password again next time.", - "accounts_count": "{{count}} accounts", - "select_account": "Select Account", - "add_account": "Add Account", - "remove_account_description": "This will remove the saved credentials for {{username}}." + "saved": "تم الحفظ", + "session_expired": "انتهت الجلسة", + "please_login_again": "انتهت مدة صلاحية جلستك. الرجاء تسجيل الدخول مرة أخرى.", + "remove_saved_login": "إزالة تسجيل دخول محفوظ", + "remove_saved_login_description": "سيؤدي هذا إلى إزالة بيانات تسجيل الدخول الخاص بك المحفوظة لهذا الخادم. ستحتاج إلى إدخال اسم المستخدم وكلمة المرور مرة أخرى في المرة القادمة.", + "accounts_count": "الحسابات {{count}}", + "select_account": "اختر الحساب", + "add_account": "إضافة حساب", + "remove_account_description": "سيؤدي هذا إلى إزالة بيانات تسجيل الدخول لـ {{username}}.", + "remove_server": "Remove Server", + "remove_server_description": "This will remove {{server}} and all saved accounts from your list.", + "select_your_server": "Select Your Server", + "add_server_to_get_started": "Add a server to get started", + "add_server": "Add Server", + "change_server": "Change Server" }, "save_account": { - "title": "Save Account", - "save_for_later": "Save this account", - "security_option": "Security Option", - "no_protection": "No protection", - "no_protection_desc": "Quick login without authentication", - "pin_code": "PIN code", - "pin_code_desc": "4-digit PIN required when switching", - "password": "Re-enter password", - "password_desc": "Password required when switching", - "save_button": "Save", - "cancel_button": "Cancel" + "title": "حفظ الحساب", + "save_for_later": "حفظ هذا الحساب", + "security_option": "‮خيارات الأمان", + "no_protection": "بدون حماية", + "no_protection_desc": "تسجيل دخول سريع بدون مصادقة", + "pin_code": "رمز PIN", + "pin_code_desc": "رمز PIN مكون من 4 أرقام مطلوب عند التبديل", + "password": "أعد إدخال كلمة المرور", + "password_desc": "كلمة المرور مطلوبة عند التبديل", + "save_button": "حفظ", + "cancel_button": "إلغاء" }, "pin": { - "enter_pin": "Enter PIN", - "enter_pin_for": "Enter PIN for {{username}}", - "enter_4_digits": "Enter 4 digits", - "invalid_pin": "Invalid PIN", - "setup_pin": "Set Up PIN", - "confirm_pin": "Confirm PIN", - "pins_dont_match": "PINs don't match", - "forgot_pin": "Forgot PIN?", - "forgot_pin_desc": "Your saved credentials will be removed" + "enter_pin": "‏أدخل رمز PIN", + "enter_pin_for": "أدخل رمز PIN لـ {{username}}", + "enter_4_digits": "ادخل 4 أرقام", + "invalid_pin": "PIN غير صالح", + "setup_pin": "تعيين رمز PIN", + "confirm_pin": "تأكيد رمز PIN", + "pins_dont_match": "رموز PIN غير متطابقة", + "forgot_pin": "نسيت رمز PIN؟", + "forgot_pin_desc": "سيتم إزالة بيانات تسجيل الدخول المحفوظة الخاصة بك" }, "password": { - "enter_password": "Enter Password", - "enter_password_for": "Enter password for {{username}}", - "invalid_password": "Invalid password" + "enter_password": "أدخل كلمة المرور", + "enter_password_for": "أدخل كلمة المرور لـ {{username}}", + "invalid_password": "كلمة المرور غير صحيحة" }, "home": { "checking_server_connection": "التحقق من اتصال الخادم...", @@ -86,8 +95,9 @@ "oops": "عفوًا!", "error_message": "حدث خطأ ما.\nيرجى تسجيل الخروج ثم الدخول مرة أخرى.", "continue_watching": "متابعة المشاهدة", + "continue": "Continue", "next_up": "التالي", - "continue_and_next_up": "Continue & Next Up", + "continue_and_next_up": "تابع و التالي", "recently_added_in": "أضيف مؤخراً في {{libraryName}}", "suggested_movies": "أفلام مقترحة", "suggested_episodes": "حلقات مقترحة", @@ -109,6 +119,12 @@ "settings": { "settings_title": "الإعدادات", "log_out_button": "تسجيل الخروج", + "switch_user": { + "title": "Switch User", + "account": "Account", + "switch_user": "Switch User on This Server", + "current": "current" + }, "categories": { "title": "الأقسام" }, @@ -120,36 +136,45 @@ }, "appearance": { "title": "المظهر", - "merge_next_up_continue_watching": "Merge Continue Watching & Next Up", - "hide_remote_session_button": "Hide Remote Session Button" + "merge_next_up_continue_watching": "دمج تابع المشاهدة والتالي", + "hide_remote_session_button": "إخفاء زر جلسة البث عن بُعد", + "show_home_backdrop": "Dynamic Home Backdrop", + "show_hero_carousel": "Hero Carousel", + "show_series_poster_on_episode": "Show Series Poster on Episodes", + "theme_music": "Theme Music", + "display_size": "Display Size", + "display_size_small": "Small", + "display_size_default": "Default", + "display_size_large": "Large", + "display_size_extra_large": "Extra Large" }, "network": { - "title": "Network", - "local_network": "Local Network", - "auto_switch_enabled": "Auto-switch when at home", - "auto_switch_description": "Automatically switch to local URL when connected to home WiFi", - "local_url": "Local URL", - "local_url_hint": "Enter your local server address (e.g., http://192.168.1.100:8096)", + "title": "الشبكة", + "local_network": "الشبكة المحلية", + "auto_switch_enabled": "التبديل التلقائي عند المنزل", + "auto_switch_description": "التبديل تلقائياً إلى رابط URL محلي عند الاتصال بشبكة WiFi المنزلية", + "local_url": "رابط محلي", + "local_url_hint": "أدخل عنوان الخادم المحلي الخاص بك (على سبيل المثال http://192.168.1.100:8096)", "local_url_placeholder": "http://192.168.1.100:8096", - "home_wifi_networks": "Home WiFi Networks", - "add_current_network": "Add \"{{ssid}}\"", - "not_connected_to_wifi": "Not connected to WiFi", - "no_networks_configured": "No networks configured", - "add_network_hint": "Add your home WiFi network to enable auto-switching", - "current_wifi": "Current WiFi", - "using_url": "Using", - "local": "Local URL", - "remote": "Remote URL", - "not_connected": "Not connected", - "current_server": "Current Server", - "remote_url": "Remote URL", - "active_url": "Active URL", - "not_configured": "Not configured", - "network_added": "Network added", - "network_already_added": "Network already added", - "no_wifi_connected": "Not connected to WiFi", - "permission_denied": "Location permission denied", - "permission_denied_explanation": "Location permission is required to detect WiFi network for auto-switching. Please enable it in Settings." + "home_wifi_networks": "شبكات WiFi المنزل", + "add_current_network": "إضافة \"{{ssid}}\"", + "not_connected_to_wifi": "غير متصل بشبكة WiFi", + "no_networks_configured": "لا توجد شبكات مكونة", + "add_network_hint": "إضافة شبكة WiFi المنزلية الخاصة بك لتمكين التبديل التلقائي", + "current_wifi": "شبكة WiFi الحالية", + "using_url": "استخدام", + "local": "رابط محلي", + "remote": "الـ URL الخارجي", + "not_connected": "غير متصل", + "current_server": "الخادم الحالي", + "remote_url": "الـ URL الخارجي", + "active_url": "الرابط النشط", + "not_configured": "لم يتم تكوينه", + "network_added": "تمت إضافة الشبكة", + "network_already_added": "الشبكة مضافة مسبقاً", + "no_wifi_connected": "غير متصل بشبكة WiFi", + "permission_denied": "تم رفض إذن الوصول إلى الموقع", + "permission_denied_explanation": "يتطلب التعرف على شبكة WiFi للتبديل التلقائي الحصول على إذن الوصول إلى الموقع. يرجى تفعيله من الإعدادات." }, "user_info": { "user_info_title": "معلومات المستخدم", @@ -174,6 +199,22 @@ "rewind_length": "مدة الترجيع", "seconds_unit": "ث" }, + "buffer": { + "title": "Buffer Settings", + "cache_mode": "Cache Mode", + "cache_auto": "Auto", + "cache_yes": "Enabled", + "cache_no": "Disabled", + "buffer_duration": "Buffer Duration", + "max_cache_size": "Max Cache Size", + "max_backward_cache": "Max Backward Cache" + }, + "vo_driver": { + "title": "Video Output", + "vo_mode": "VO Driver", + "gpu_next": "gpu-next (Recommended)", + "gpu": "gpu" + }, "gesture_controls": { "gesture_controls_title": "التحكم بالإيماءات", "horizontal_swipe_skip": "السحب الأفقي للتخطي", @@ -182,10 +223,10 @@ "left_side_brightness_description": "اسحب لأعلى/لأسفل على الجانب الأيسر لضبط السطوع", "right_side_volume": "التحكم في مستوى الصوت من الجانب الأيمن", "right_side_volume_description": "اسحب لأعلى/لأسفل على الجانب الأيمن لضبط مستوى الصوت", - "hide_volume_slider": "Hide Volume Slider", - "hide_volume_slider_description": "Hide the volume slider in the video player", - "hide_brightness_slider": "Hide Brightness Slider", - "hide_brightness_slider_description": "Hide the brightness slider in the video player" + "hide_volume_slider": "إخفاء شريط مستوى الصوت", + "hide_volume_slider_description": "إخفاء شريط التحكم في مستوى الصوت في مشغل الفيديو", + "hide_brightness_slider": "إخفاء شريط السطوع", + "hide_brightness_slider_description": "إخفاء شريط التحكم في السطوع في مشغل الفيديو" }, "audio": { "audio_title": "الصوت", @@ -195,12 +236,12 @@ "none": "لا شيء", "language": "اللغة", "transcode_mode": { - "title": "Audio Transcoding", - "description": "Controls how surround audio (7.1, TrueHD, DTS-HD) is handled", - "auto": "Auto", - "stereo": "Force Stereo", - "5_1": "Allow 5.1", - "passthrough": "Passthrough" + "title": "تحويل ترميز الصوت", + "description": "يتحكم في كيفية التعامل مع الصوت المحيطي (7.1، TrueHD، DTS-HD)", + "auto": "تلقائي", + "stereo": "إجبار تشغيل ستيريو", + "5_1": "السماح بـ 5.1", + "passthrough": "تمرير الصوت" } }, "subtitles": { @@ -251,29 +292,45 @@ "Normal": "عادي", "Thick": "سميك" }, - "subtitle_color": "Subtitle Color", - "subtitle_background_color": "Background Color", - "subtitle_font": "Subtitle Font", - "ksplayer_title": "KSPlayer Settings", - "hardware_decode": "Hardware Decoding", - "hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues." + "subtitle_color": "لون الترجمة", + "subtitle_background_color": "لون الخلفية", + "subtitle_font": "خط الترجمة", + "ksplayer_title": "إعدادات KSPlayer", + "hardware_decode": "فك الترميز بواسطة الجهاز", + "hardware_decode_description": "استخدم تسريع العتاد لفك ترميز الفيديو. قم بتعطيله إذا واجهت مشكلات في التشغيل.", + "opensubtitles_title": "OpenSubtitles", + "opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.", + "opensubtitles_api_key": "API Key", + "opensubtitles_api_key_placeholder": "Enter API key...", + "opensubtitles_get_key": "Get your free API key at opensubtitles.com/en/consumers", + "mpv_subtitle_scale": "Subtitle Scale", + "mpv_subtitle_margin_y": "Vertical Margin", + "mpv_subtitle_align_x": "Horizontal Align", + "mpv_subtitle_align_y": "Vertical Align", + "align": { + "left": "Left", + "center": "Center", + "right": "Right", + "top": "Top", + "bottom": "Bottom" + } }, "vlc_subtitles": { - "title": "VLC Subtitle Settings", - "hint": "Customize subtitle appearance for VLC player. Changes take effect on next playback.", - "text_color": "Text Color", - "background_color": "Background Color", - "background_opacity": "Background Opacity", - "outline_color": "Outline Color", - "outline_opacity": "Outline Opacity", - "outline_thickness": "Outline Thickness", - "bold": "Bold Text", - "margin": "Bottom Margin" + "title": "إعدادات ترجمة VLC", + "hint": "تخصيص مظهر الترجمة لمشغل VLC. تصبح التغييرات سارية المفعول عند التشغيل التالي.", + "text_color": "لون النص", + "background_color": "لون الخلفية", + "background_opacity": "شفافية الخلفية", + "outline_color": "لون إطار الخط", + "outline_opacity": "شفافية إطار الخط", + "outline_thickness": "سمك إطار الخط", + "bold": "خط عريض", + "margin": "الهامش السفلي" }, "video_player": { - "title": "Video Player", - "video_player": "Video Player", - "video_player_description": "Choose which video player to use on iOS.", + "title": "مشغل الفيديو", + "video_player": "مشغل الفيديو", + "video_player_description": "اختر مشغل الفيديو الذي سيتم استخدامه على نظام iOS.", "ksplayer": "KSPlayer", "vlc": "VLC" }, @@ -305,8 +362,8 @@ "select_liraries_you_want_to_hide": "اختر المكتبات التي تريد إخفاءها من تبويب المكتبة وأقسام الصفحة الرئيسية.", "disable_haptic_feedback": "تعطيل ردود الفعل اللمسية", "default_quality": "الجودة الافتراضية", - "default_playback_speed": "Default Playback Speed", - "auto_play_next_episode": "Auto-play Next Episode", + "default_playback_speed": "سرعة التشغيل الافتراضية", + "auto_play_next_episode": "تشغيل الحلقة التالية تلقائياً", "max_auto_play_episode_count": "الحد الأقصى لعدد الحلقات التي يتم تشغيلها تلقائيًا", "disabled": "معطل" }, @@ -314,15 +371,15 @@ "downloads_title": "التنزيلات" }, "music": { - "title": "Music", - "playback_title": "Playback", - "playback_description": "Configure how music is played.", - "prefer_downloaded": "Prefer Downloaded Songs", - "caching_title": "Caching", - "caching_description": "Automatically cache upcoming tracks for smoother playback.", - "lookahead_enabled": "Enable Look-Ahead Caching", - "lookahead_count": "Tracks to Pre-cache", - "max_cache_size": "Max Cache Size" + "title": "الموسيقى", + "playback_title": "التشغيل", + "playback_description": "ضبط كيفية تشغيل الموسيقى.", + "prefer_downloaded": "تفضيل الأغاني التي تم تنزيلها", + "caching_title": "التخزين المؤقت", + "caching_description": "تخزين الأغاني التالية مؤقتاً تلقائياً لضمان تشغيل أكثر سلاسة.", + "lookahead_enabled": "تفعيل التخزين المؤقت الاستباقي", + "lookahead_count": "عدد الأغاني المراد تخزينها مسبقاً", + "max_cache_size": "الحد الأقصى لحجم التخزين المؤقت" }, "plugins": { "plugins_title": "الإضافات", @@ -357,39 +414,39 @@ "save_button": "حفظ", "toasts": { "saved": "تم الحفظ", - "refreshed": "Settings refreshed from server" + "refreshed": "تم تحديث الإعدادات من الخادم" }, - "refresh_from_server": "Refresh Settings from Server" + "refresh_from_server": "تحديث الإعدادات من الخادم" }, "streamystats": { - "enable_streamystats": "Enable Streamystats", - "disable_streamystats": "Disable Streamystats", - "enable_search": "Use for Search", - "url": "URL", + "enable_streamystats": "تفعيل Streamystats", + "disable_streamystats": "تعطيل Streamystats", + "enable_search": "استخدم للبحث", + "url": "الرابط", "server_url_placeholder": "http(s)://streamystats.example.com", - "streamystats_search_hint": "Enter the URL for your Streamystats server. The URL should include http or https and optionally the port.", - "read_more_about_streamystats": "Read More About Streamystats.", - "save_button": "Save", - "save": "Save", - "features_title": "Features", - "home_sections_title": "Home Sections", - "enable_movie_recommendations": "Movie Recommendations", - "enable_series_recommendations": "Series Recommendations", - "enable_promoted_watchlists": "Promoted Watchlists", - "hide_watchlists_tab": "Hide Watchlists Tab", - "home_sections_hint": "Show personalized recommendations and promoted watchlists from Streamystats on the home page.", - "recommended_movies": "Recommended Movies", - "recommended_series": "Recommended Series", + "streamystats_search_hint": "أدخل رابط خادم Streamystats الخاص بك. يجب أن يتضمن الرابط البروتوكول http أو https مع رقم المنفذ اختيارياً.", + "read_more_about_streamystats": "اقرأ المزيد عن Streamystats.", + "save_button": "حفظ", + "save": "حفظ", + "features_title": "المميزات", + "home_sections_title": "أقسام الرئيسية", + "enable_movie_recommendations": "توصيات الأفلام", + "enable_series_recommendations": "توصيات المسلسلات", + "enable_promoted_watchlists": "قوائم مشاهدة مختارة", + "hide_watchlists_tab": "إخفاء تبويب قوائم المشاهدة", + "home_sections_hint": "إظهار التوصيات المخصصة وقوائم المشاهدة المختارة من Streamystats في الصفحة الرئيسية.", + "recommended_movies": "أفلام موصى بها", + "recommended_series": "مسلسلات موصى بها", "toasts": { - "saved": "Saved", - "refreshed": "Settings refreshed from server", - "disabled": "Streamystats disabled" + "saved": "تم الحفظ", + "refreshed": "تم تحديث الإعدادات من الخادم", + "disabled": "تم تعطيل Streamystats" }, - "refresh_from_server": "Refresh Settings from Server" + "refresh_from_server": "تحديث الإعدادات من الخادم" }, "kefinTweaks": { - "watchlist_enabler": "Enable our Watchlist integration", - "watchlist_button": "Toggle Watchlist integration" + "watchlist_enabler": "تفعيل الربط مع قائمة المشاهدة الخاصة بنا", + "watchlist_button": "تبديل حالة ربط قائمة المشاهدة" } }, "storage": { @@ -398,15 +455,21 @@ "device_usage": "الجهاز {{availableSpace}}%", "size_used": "تم استخدام {{used}} من {{total}}", "delete_all_downloaded_files": "حذف جميع الملفات التي تم تنزيلها", - "music_cache_title": "Music Cache", - "music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support", - "enable_music_cache": "Enable Music Cache", - "clear_music_cache": "Clear Music Cache", - "music_cache_size": "{{size}} cached", - "music_cache_cleared": "Music cache cleared", - "delete_all_downloaded_songs": "Delete All Downloaded Songs", - "downloaded_songs_size": "{{size}} downloaded", - "downloaded_songs_deleted": "Downloaded songs deleted" + "music_cache_title": "التخزين المؤقت للموسيقى", + "music_cache_description": "تخزين الأغاني تلقائياً أثناء الاستماع لضمان تشغيل أكثر سلاسة ودعم الاستماع بدون اتصال", + "enable_music_cache": "تمكين التخزين المؤقت للموسيقى", + "clear_music_cache": "مسح التخزين المؤقت للموسيقى", + "music_cache_size": "تم تخزين {{size}} مؤقتاً", + "music_cache_cleared": "تم مسح التخزين المؤقت للموسيقى", + "delete_all_downloaded_songs": "حذف جميع الأغاني التي تم تنزيلها", + "downloaded_songs_size": "تم تنزيل {{size}}", + "downloaded_songs_deleted": "تم حذف الأغاني التي تم تنزيلها", + "clear_all_cache": "Clear All Cache", + "clear_all_cache_confirm": "Clear All Cache?", + "clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.", + "clear_all_cache_success": "Cache Cleared", + "clear_all_cache_success_desc": "All cache has been cleared successfully.", + "clear_all_cache_error_desc": "An error occurred while clearing the cache." }, "intro": { "title": "المقدمة", @@ -430,6 +493,21 @@ "error_deleting_files": "خطأ في حذف الملفات", "background_downloads_enabled": "تم تفعيل التنزيلات في الخلفية", "background_downloads_disabled": "تم تعطيل التنزيلات في الخلفية" + }, + "security": { + "title": "Security", + "inactivity_timeout": { + "title": "Inactivity Timeout", + "description": "Auto logout after inactivity", + "disabled": "Disabled", + "1_minute": "1 minute", + "5_minutes": "5 minutes", + "15_minutes": "15 minutes", + "30_minutes": "30 minutes", + "1_hour": "1 hour", + "4_hours": "4 hours", + "24_hours": "24 hours" + } } }, "sessions": { @@ -492,6 +570,7 @@ } }, "common": { + "no_results": "No Results", "select": "اختر", "no_trailer_available": "لا يوجد مقطع دعائي متوفر", "video": "فيديو", @@ -499,15 +578,18 @@ "subtitle": "الترجمة", "play": "تشغيل", "none": "لا شيء", - "track": "Track", - "cancel": "Cancel", - "delete": "Delete", - "ok": "OK", - "remove": "Remove", - "next": "Next", - "back": "Back", - "continue": "Continue", - "verifying": "Verifying..." + "track": "أغنية", + "cancel": "إلغاء", + "stop": "Stop", + "delete": "حذف", + "ok": "حسناً", + "remove": "إزالة", + "next": "التالي", + "back": "رجوع", + "continue": "متابعة", + "verifying": "جارٍ التحقق...", + "login": "Login", + "refresh": "Refresh" }, "search": { "search": "بحث...", @@ -521,10 +603,10 @@ "episodes": "حلقات", "collections": "مجموعات", "actors": "ممثلون", - "artists": "Artists", - "albums": "Albums", - "songs": "Songs", - "playlists": "Playlists", + "artists": "الفنانون", + "albums": "الألبومات", + "songs": "الأغاني", + "playlists": "قوائم التشغيل", "request_movies": "طلب أفلام", "request_series": "طلب مسلسلات", "recently_added": "أضيف مؤخرًا", @@ -556,6 +638,7 @@ "movies": "أفلام", "series": "مسلسلات", "boxsets": "مجموعات", + "playlists": "Playlists", "items": "عناصر" }, "options": { @@ -572,9 +655,13 @@ "genres": "الأنواع", "years": "السنوات", "sort_by": "ترتيب حسب", - "filter_by": "Filter By", + "filter_by": "تصفية حسب", "sort_order": "اتجاه الترتيب", - "tags": "الوسوم" + "tags": "الوسوم", + "all": "All", + "reset": "Reset", + "asc": "Ascending", + "desc": "Descending" } }, "favorites": { @@ -591,6 +678,7 @@ "no_links": "لا توجد روابط" }, "player": { + "live": "LIVE", "error": "خطأ", "failed_to_get_stream_url": "فشل في الحصول على رابط البث", "an_error_occured_while_playing_the_video": "حدث خطأ أثناء تشغيل الفيديو. تحقق من السجلات في الإعدادات.", @@ -604,11 +692,39 @@ "index": "الفِهْرِس:", "continue_watching": "متابعة المشاهدة", "go_back": "رجوع", - "downloaded_file_title": "You have this file downloaded", + "downloaded_file_title": "تم تنزيل هذا الملف", "downloaded_file_message": "هل تريد تشغيل الملف الذي تم تنزيله؟", "downloaded_file_yes": "نعم", "downloaded_file_no": "لا", - "downloaded_file_cancel": "Cancel" + "downloaded_file_cancel": "إلغاء", + "swipe_down_settings": "Swipe down for settings", + "ends_at": "ends at", + "search_subtitles": "Search Subtitles", + "subtitle_tracks": "Tracks", + "subtitle_search": "Search & Download", + "download": "Download", + "subtitle_download_hint": "Downloaded subtitles will be saved to your library", + "using_jellyfin_server": "Using Jellyfin Server", + "language": "Language", + "results": "Results", + "searching": "Searching...", + "search_failed": "Search failed", + "no_subtitle_provider": "No subtitle provider configured on server", + "no_subtitles_found": "No subtitles found", + "add_opensubtitles_key_hint": "Add OpenSubtitles API key in settings for client-side fallback", + "settings": "Settings", + "skip_intro": "Skip Intro", + "skip_credits": "Skip Credits", + "stopPlayback": "Stop Playback", + "stopPlayingTitle": "Stop playing \"{{title}}\"?", + "stopPlayingConfirm": "Are you sure you want to stop playback?", + "downloaded": "Downloaded" + }, + "chapters": { + "title": "Chapters", + "chapter_number": "Chapter {{number}}", + "open": "Open chapters", + "close": "Close chapters" }, "item_card": { "next_up": "التالي", @@ -617,6 +733,11 @@ "series": "مسلسلات", "seasons": "مواسم", "season": "موسم", + "from_this_series": "From This Series", + "more_from_this_season": "More from this Season", + "view_series": "View Series", + "view_season": "View Season", + "select_season": "Select Season", "no_episodes_for_this_season": "لا توجد حلقات لهذا الموسم", "overview": "نظرة عامة", "more_with": "المزيد مع {{name}}", @@ -624,13 +745,24 @@ "no_similar_items_found": "لم يتم العثور على عناصر مشابهة", "video": "فيديو", "more_details": "المزيد من التفاصيل", - "media_options": "Media Options", + "media_options": "خيارات الوسائط", "quality": "الجودة", "audio": "الصوت", - "subtitles": "الترجمة", + "subtitles": { + "label": "Subtitle", + "none": "None", + "tracks": "Tracks" + }, "show_more": "عرض المزيد", "show_less": "عرض أقل", + "left": "left", + "more_info": "More Info", + "director": "Director", + "cast": "Cast", + "technical_details": "Technical Details", "appeared_in": "ظهر في", + "movies": "Movies", + "shows": "Shows", "could_not_load_item": "تعذر تحميل العنصر", "none": "لا شيء", "download": { @@ -641,7 +773,13 @@ "download_x_item": "تنزيل {{item_count}} عناصر", "download_unwatched_only": "غير المشاهدة فقط", "download_button": "تنزيل" - } + }, + "mark_played": "Mark as Watched", + "mark_unplayed": "Mark as Unwatched", + "resume_playback": "Resume Playback", + "resume_playback_description": "Do you want to continue where you left off or start from the beginning?", + "play_from_start": "Play from Start", + "continue_from": "Continue from {{time}}" }, "live_tv": { "next": "التالي", @@ -652,7 +790,18 @@ "movies": "أفلام", "sports": "رياضة", "for_kids": "للأطفال", - "news": "أخبار" + "news": "أخبار", + "page_of": "Page {{current}} of {{total}}", + "no_programs": "No programs available", + "no_channels": "No channels available", + "tabs": { + "programs": "Programs", + "guide": "Guide", + "channels": "Channels", + "recordings": "Recordings", + "schedule": "Schedule", + "series": "Series" + } }, "jellyseerr": { "confirm": "تأكيد", @@ -697,6 +846,12 @@ "decline": "رفض", "requested_by": "مطلوب من {{user}}", "unknown_user": "مستخدم غير معروف", + "select": "Select", + "request_all": "Request All", + "request_seasons": "Request Seasons", + "select_seasons": "Select Seasons", + "request_selected": "Request Selected", + "n_selected": "{{count}} selected", "toasts": { "jellyseer_does_not_meet_requirements": "خادم Seerr لا يستوفي الحد الأدنى للإصدار المطلوب! يرجى التحديث إلى إصدار 2.0.0 على الأقل", "jellyseerr_test_failed": "فشل اختبار Seerr. يرجى المحاولة مرة أخرى.", @@ -716,130 +871,162 @@ "search": "بحث", "library": "المكتبة", "custom_links": "روابط مخصصة", - "favorites": "المفضلة" + "favorites": "المفضلة", + "settings": "Settings" }, "music": { - "title": "Music", + "title": "الموسيقى", "tabs": { - "suggestions": "Suggestions", - "albums": "Albums", - "artists": "Artists", - "playlists": "Playlists", - "tracks": "tracks" + "suggestions": "الإقتراحات", + "albums": "الألبومات", + "artists": "الفنانون", + "playlists": "قوائم التشغيل", + "tracks": "الأغاني" }, "filters": { - "all": "All" + "all": "الكل" }, - "recently_added": "Recently Added", - "recently_played": "Recently Played", - "frequently_played": "Frequently Played", - "explore": "Explore", - "top_tracks": "Top Tracks", - "play": "Play", - "shuffle": "Shuffle", - "play_top_tracks": "Play Top Tracks", - "no_suggestions": "No suggestions available", - "no_albums": "No albums found", - "no_artists": "No artists found", - "no_playlists": "No playlists found", - "album_not_found": "Album not found", - "artist_not_found": "Artist not found", - "playlist_not_found": "Playlist not found", + "recently_added": "أضيف مؤخرًا", + "recently_played": "تم تشغيله مؤخرًا", + "frequently_played": "الأكثر تشغيلاً", + "explore": "اكتشف", + "top_tracks": "أفضل الأغاني", + "play": "تشغيل", + "shuffle": "ترتيب عشوائي", + "play_top_tracks": "تشغيل أفضل الأغاني", + "no_suggestions": "لا توجد مقترحات متاحة", + "no_albums": "لا توجد ألبومات", + "no_artists": "لا يوجد فنانون", + "no_playlists": "لا توجد قوائم تشغيل", + "album_not_found": "الألبوم غير موجود", + "artist_not_found": "الفنان غير موجود", + "playlist_not_found": "قائمة التشغيل غير موجودة", "track_options": { - "play_next": "Play Next", - "add_to_queue": "Add to Queue", - "add_to_playlist": "Add to Playlist", - "download": "Download", - "downloaded": "Downloaded", - "downloading": "Downloading...", - "cached": "Cached", - "delete_download": "Delete Download", - "delete_cache": "Remove from Cache", - "go_to_artist": "Go to Artist", - "go_to_album": "Go to Album", - "add_to_favorites": "Add to Favorites", - "remove_from_favorites": "Remove from Favorites", - "remove_from_playlist": "Remove from Playlist" + "play_next": "تشغيل التالي", + "add_to_queue": "إضافة إلى قائمة الانتظار", + "add_to_playlist": "أضف إلى قائمة التشغيل", + "download": "تنزيل", + "downloaded": "تم التنزيل", + "downloading": "جارٍ التنزيل...", + "cached": "تم التخزين مؤقتاً", + "delete_download": "حذف ملف التنزيل", + "delete_cache": "إزالة من التخزين المؤقت", + "go_to_artist": "انتقال إلى الفنان", + "go_to_album": "انتقال إلى الألبوم", + "add_to_favorites": "إضافة إلى المفضلة", + "remove_from_favorites": "إزالة من المفضلة", + "remove_from_playlist": "إزالة من قائمة التشغيل" }, "playlists": { - "create_playlist": "Create Playlist", - "playlist_name": "Playlist Name", - "enter_name": "Enter playlist name", - "create": "Create", - "search_playlists": "Search playlists...", - "added_to": "Added to {{name}}", - "added": "Added to playlist", - "removed_from": "Removed from {{name}}", - "removed": "Removed from playlist", - "created": "Playlist created", - "create_new": "Create New Playlist", - "failed_to_add": "Failed to add to playlist", - "failed_to_remove": "Failed to remove from playlist", - "failed_to_create": "Failed to create playlist", - "delete_playlist": "Delete Playlist", - "delete_confirm": "Are you sure you want to delete \"{{name}}\"? This action cannot be undone.", - "deleted": "Playlist deleted", - "failed_to_delete": "Failed to delete playlist" + "create_playlist": "إنشاء قائمة التشغيل", + "playlist_name": "اسم قائمة التشغيل", + "enter_name": "أدخل اسم قائمة التشغيل", + "create": "إنشاء", + "search_playlists": "البحث عن قوائم التشغيل...", + "added_to": "تمت الإضافة إلى {{name}}", + "added": "تمت الإضافة إلى قائمة التشغيل", + "removed_from": "تمت الإزالة من {{name}}", + "removed": "تمت الازالة من قائمة التشغيل", + "created": "تم إنشاء قائمة التشغيل", + "create_new": "إنشاء قائمة تشغيل جديدة", + "failed_to_add": "فشلت الإضافة إلى قائمة التشغيل", + "failed_to_remove": "فشلت الإزالة من قائمة التشغيل", + "failed_to_create": "فشل إنشاء قائمة التشغيل", + "delete_playlist": "حذف قائمة التشغيل", + "delete_confirm": "هل أنت متأكد من رغبتك في حذف {{name}}؟ لا يمكن التراجع عن هذا الإجراء.", + "deleted": "تم حذف قائمة التشغيل", + "failed_to_delete": "فشل إنشاء قائمة التشغيل" }, "sort": { - "title": "Sort By", - "alphabetical": "Alphabetical", - "date_created": "Date Created" + "title": "ترتيب حسب", + "alphabetical": "أبجدي", + "date_created": "تاريخ الإنشاء" } }, "watchlists": { - "title": "Watchlists", - "my_watchlists": "My Watchlists", - "public_watchlists": "Public Watchlists", - "create_title": "Create Watchlist", - "edit_title": "Edit Watchlist", - "create_button": "Create Watchlist", - "save_button": "Save Changes", - "delete_button": "Delete", - "remove_button": "Remove", - "cancel_button": "Cancel", - "name_label": "Name", - "name_placeholder": "Enter watchlist name", - "description_label": "Description", - "description_placeholder": "Enter description (optional)", - "is_public_label": "Public Watchlist", - "is_public_description": "Allow others to view this watchlist", - "allowed_type_label": "Content Type", - "sort_order_label": "Default Sort Order", - "empty_title": "No Watchlists", - "empty_description": "Create your first watchlist to start organizing your media", - "empty_watchlist": "This watchlist is empty", - "empty_watchlist_hint": "Add items from your library to this watchlist", - "not_configured_title": "Streamystats Not Configured", - "not_configured_description": "Configure Streamystats in settings to use watchlists", - "go_to_settings": "Go to Settings", - "add_to_watchlist": "Add to Watchlist", - "remove_from_watchlist": "Remove from Watchlist", - "select_watchlist": "Select Watchlist", - "create_new": "Create New Watchlist", - "item": "item", - "items": "items", - "public": "Public", - "private": "Private", - "you": "You", - "by_owner": "By another user", - "not_found": "Watchlist not found", - "delete_confirm_title": "Delete Watchlist", - "delete_confirm_message": "Are you sure you want to delete \"{{name}}\"? This action cannot be undone.", - "remove_item_title": "Remove from Watchlist", - "remove_item_message": "Remove \"{{name}}\" from this watchlist?", - "loading": "Loading watchlists...", - "no_compatible_watchlists": "No compatible watchlists", - "create_one_first": "Create a watchlist that accepts this content type" + "title": "قوائم المشاهدة", + "my_watchlists": "قوائم المشاهدة الخاصة بي", + "public_watchlists": "قوائم مشاهدة عامة", + "create_title": "إنشاء قائمة مشاهدة", + "edit_title": "تعديل قائمة المشاهدة", + "create_button": "إنشاء قائمة مشاهدة", + "save_button": "حفظ التغييرات", + "delete_button": "حذف", + "remove_button": "إزالة", + "cancel_button": "إلغاء", + "name_label": "الاسم", + "name_placeholder": "أدخل اسم قائمة المشاهدة", + "description_label": "الوصف", + "description_placeholder": "أدخل الوصف (اختياري)", + "is_public_label": "قائمة مشاهدة عامة", + "is_public_description": "السماح للآخرين بعرض قائمة المشاهدة هذه", + "allowed_type_label": "نوع المحتوى", + "sort_order_label": "الترتيب الافتراضي", + "empty_title": "لا توجد قوائم مشاهدة", + "empty_description": "قم بإنشاء أول قائمة مشاهدة لبدء تنظيم الوسائط الخاصة بك", + "empty_watchlist": "قائمة المشاهدة هذه فارغة", + "empty_watchlist_hint": "إضافة عناصر من مكتبتك إلى قائمة المشاهدة هذه", + "not_configured_title": "لم يتم ضبط Streamystats", + "not_configured_description": "اضبط Streamystats في الإعدادات لاستخدام قوائم المشاهدة", + "go_to_settings": "الذهاب إلى الإعدادات", + "add_to_watchlist": "إضافة إلى قائمة المشاهدة", + "remove_from_watchlist": "إزالة من قائمة المشاهدة", + "select_watchlist": "تحديد قائمة المشاهدة", + "create_new": "إنشاء قائمة مشاهدة جديدة", + "item": "عنصر", + "items": "عناصر", + "public": "عامة", + "private": "خاصة", + "you": "أنت", + "by_owner": "بواسطة مستخدم آخر", + "not_found": "قائمة المشاهدة غير موجودة", + "delete_confirm_title": "حذف قائمة المشاهدة", + "delete_confirm_message": "هل أنت متأكد من رغبتك في حذف \"{{name}}\"؟ لا يمكن التراجع عن هذا الإجراء.", + "remove_item_title": "إزالة من قائمة المشاهدة", + "remove_item_message": "إزالة \"{{name}}\" من قائمة المشاهدة هذه؟", + "loading": "تحميل قوائم المشاهدة...", + "no_compatible_watchlists": "لا توجد قوائم مشاهدة متوافقة", + "create_one_first": "إنشاء قائمة مشاهدة تقبل نوع المحتوى هذا" }, "playback_speed": { - "title": "Playback Speed", - "apply_to": "Apply To", - "speed": "Speed", + "title": "سرعة التشغيل", + "apply_to": "تطبيق على", + "speed": "السرعة", "scope": { - "media": "This media only", - "show": "This show", - "all": "All media (default)" + "media": "الوسائط هذه فقط", + "show": "هذا المسلسل", + "all": "جميع الوسائط (الافتراضي)" } + }, + "companion_login": { + "title": "Pair with TV", + "align_qr": "Align the QR code within the frame", + "enter_code_manually": "Enter code manually", + "pairing_enter_credentials": "Enter credentials for TV", + "pairing_code_label": "Pairing code", + "server": "Server", + "authorize_button": "Authorize", + "authorizing": "Authorizing...", + "scan_again": "Scan Again", + "done": "Done", + "success_title": "Authorization Sent", + "pairing_tv_connecting": "The TV is connecting to your account", + "error_title": "Authorization Failed", + "error_invalid_qr": "Invalid QR code. Please scan the TV pairing code.", + "error_generic": "Something went wrong. Please try again.", + "error_permission_denied": "Camera permission is required to scan QR codes.", + "login_as": "Log in as {{username}}?", + "on_server": "on {{server}}", + "use_different_user": "Use a different user", + "open_settings": "Open Settings" + }, + "pairing": { + "pair_with_phone": "Pair with Phone", + "pair_with_phone_title": "Login TV", + "pair_with_phone_description": "Scan the QR code displayed on your TV to log in", + "waiting_for_phone": "Waiting for phone...", + "scan_with_phone": "Scan with the Streamyfin app on your phone", + "logging_in": "Logging in...", + "logging_in_description": "Connecting to your server" } } diff --git a/translations/ca.json b/translations/ca.json index 4629fd0fb..5204a25a4 100644 --- a/translations/ca.json +++ b/translations/ca.json @@ -4,6 +4,9 @@ "error_title": "Error", "login_title": "Inicia sessió", "login_to_title": "Inicia sessió a", + "select_user": "Select a user to log in", + "add_user_to_login": "Add a user to log in", + "add_user": "Add User", "username_placeholder": "Nom d'usuari", "password_placeholder": "Contrasenya", "login_button": "Inicia sessió", @@ -42,7 +45,13 @@ "accounts_count": "{{count}} accounts", "select_account": "Select Account", "add_account": "Add Account", - "remove_account_description": "This will remove the saved credentials for {{username}}." + "remove_account_description": "This will remove the saved credentials for {{username}}.", + "remove_server": "Remove Server", + "remove_server_description": "This will remove {{server}} and all saved accounts from your list.", + "select_your_server": "Select Your Server", + "add_server_to_get_started": "Add a server to get started", + "add_server": "Add Server", + "change_server": "Change Server" }, "save_account": { "title": "Save Account", @@ -86,6 +95,7 @@ "oops": "Oops!", "error_message": "Alguna cosa ha anat malament.\nTanqueu la sessió i torneu-la a iniciar.", "continue_watching": "Continua veient", + "continue": "Continue", "next_up": "A continuació", "continue_and_next_up": "Continue & Next Up", "recently_added_in": "Afegit recentment a {{libraryName}}", @@ -109,6 +119,12 @@ "settings": { "settings_title": "Configuració", "log_out_button": "Tanca sessió", + "switch_user": { + "title": "Switch User", + "account": "Account", + "switch_user": "Switch User on This Server", + "current": "current" + }, "categories": { "title": "Categories" }, @@ -121,7 +137,16 @@ "appearance": { "title": "Appearance", "merge_next_up_continue_watching": "Merge Continue Watching & Next Up", - "hide_remote_session_button": "Hide Remote Session Button" + "hide_remote_session_button": "Hide Remote Session Button", + "show_home_backdrop": "Dynamic Home Backdrop", + "show_hero_carousel": "Hero Carousel", + "show_series_poster_on_episode": "Show Series Poster on Episodes", + "theme_music": "Theme Music", + "display_size": "Display Size", + "display_size_small": "Small", + "display_size_default": "Default", + "display_size_large": "Large", + "display_size_extra_large": "Extra Large" }, "network": { "title": "Network", @@ -174,6 +199,22 @@ "rewind_length": "Durada del rebobinat", "seconds_unit": "s" }, + "buffer": { + "title": "Buffer Settings", + "cache_mode": "Cache Mode", + "cache_auto": "Auto", + "cache_yes": "Enabled", + "cache_no": "Disabled", + "buffer_duration": "Buffer Duration", + "max_cache_size": "Max Cache Size", + "max_backward_cache": "Max Backward Cache" + }, + "vo_driver": { + "title": "Video Output", + "vo_mode": "VO Driver", + "gpu_next": "gpu-next (Recommended)", + "gpu": "gpu" + }, "gesture_controls": { "gesture_controls_title": "Gesture Controls", "horizontal_swipe_skip": "Horizontal Swipe to Skip", @@ -256,7 +297,23 @@ "subtitle_font": "Subtitle Font", "ksplayer_title": "KSPlayer Settings", "hardware_decode": "Hardware Decoding", - "hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues." + "hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues.", + "opensubtitles_title": "OpenSubtitles", + "opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.", + "opensubtitles_api_key": "API Key", + "opensubtitles_api_key_placeholder": "Enter API key...", + "opensubtitles_get_key": "Get your free API key at opensubtitles.com/en/consumers", + "mpv_subtitle_scale": "Subtitle Scale", + "mpv_subtitle_margin_y": "Vertical Margin", + "mpv_subtitle_align_x": "Horizontal Align", + "mpv_subtitle_align_y": "Vertical Align", + "align": { + "left": "Left", + "center": "Center", + "right": "Right", + "top": "Top", + "bottom": "Bottom" + } }, "vlc_subtitles": { "title": "VLC Subtitle Settings", @@ -406,7 +463,13 @@ "music_cache_cleared": "Music cache cleared", "delete_all_downloaded_songs": "Delete All Downloaded Songs", "downloaded_songs_size": "{{size}} downloaded", - "downloaded_songs_deleted": "Downloaded songs deleted" + "downloaded_songs_deleted": "Downloaded songs deleted", + "clear_all_cache": "Clear All Cache", + "clear_all_cache_confirm": "Clear All Cache?", + "clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.", + "clear_all_cache_success": "Cache Cleared", + "clear_all_cache_success_desc": "All cache has been cleared successfully.", + "clear_all_cache_error_desc": "An error occurred while clearing the cache." }, "intro": { "title": "Intro", @@ -430,6 +493,21 @@ "error_deleting_files": "Error en suprimir fitxers", "background_downloads_enabled": "Descàrregues en segon pla activades", "background_downloads_disabled": "Descàrregues en segon pla desactivades" + }, + "security": { + "title": "Security", + "inactivity_timeout": { + "title": "Inactivity Timeout", + "description": "Auto logout after inactivity", + "disabled": "Disabled", + "1_minute": "1 minute", + "5_minutes": "5 minutes", + "15_minutes": "15 minutes", + "30_minutes": "30 minutes", + "1_hour": "1 hour", + "4_hours": "4 hours", + "24_hours": "24 hours" + } } }, "sessions": { @@ -492,6 +570,7 @@ } }, "common": { + "no_results": "No Results", "select": "Select", "no_trailer_available": "No trailer available", "video": "Vídeo", @@ -501,13 +580,16 @@ "none": "None", "track": "Track", "cancel": "Cancel", + "stop": "Stop", "delete": "Delete", "ok": "OK", "remove": "Remove", "next": "Next", "back": "Back", "continue": "Continue", - "verifying": "Verifying..." + "verifying": "Verifying...", + "login": "Login", + "refresh": "Refresh" }, "search": { "search": "Cerca...", @@ -556,6 +638,7 @@ "movies": "pel·lícules", "series": "sèries", "boxsets": "col·leccions", + "playlists": "Playlists", "items": "elements" }, "options": { @@ -574,7 +657,11 @@ "sort_by": "Ordenar per", "filter_by": "Filter By", "sort_order": "Ordre", - "tags": "Etiquetes" + "tags": "Etiquetes", + "all": "All", + "reset": "Reset", + "asc": "Ascending", + "desc": "Descending" } }, "favorites": { @@ -591,6 +678,7 @@ "no_links": "No hi ha enllaços" }, "player": { + "live": "LIVE", "error": "Error", "failed_to_get_stream_url": "No s'ha pogut obtenir l'URL del flux", "an_error_occured_while_playing_the_video": "S'ha produït un error en reproduir el vídeo. Consulteu els registres a la configuració.", @@ -608,7 +696,35 @@ "downloaded_file_message": "Do you want to play the downloaded file?", "downloaded_file_yes": "Yes", "downloaded_file_no": "No", - "downloaded_file_cancel": "Cancel" + "downloaded_file_cancel": "Cancel", + "swipe_down_settings": "Swipe down for settings", + "ends_at": "ends at", + "search_subtitles": "Search Subtitles", + "subtitle_tracks": "Tracks", + "subtitle_search": "Search & Download", + "download": "Download", + "subtitle_download_hint": "Downloaded subtitles will be saved to your library", + "using_jellyfin_server": "Using Jellyfin Server", + "language": "Language", + "results": "Results", + "searching": "Searching...", + "search_failed": "Search failed", + "no_subtitle_provider": "No subtitle provider configured on server", + "no_subtitles_found": "No subtitles found", + "add_opensubtitles_key_hint": "Add OpenSubtitles API key in settings for client-side fallback", + "settings": "Settings", + "skip_intro": "Skip Intro", + "skip_credits": "Skip Credits", + "stopPlayback": "Stop Playback", + "stopPlayingTitle": "Stop playing \"{{title}}\"?", + "stopPlayingConfirm": "Are you sure you want to stop playback?", + "downloaded": "Downloaded" + }, + "chapters": { + "title": "Chapters", + "chapter_number": "Chapter {{number}}", + "open": "Open chapters", + "close": "Close chapters" }, "item_card": { "next_up": "A continuació", @@ -617,6 +733,11 @@ "series": "Sèries", "seasons": "Temporades", "season": "Temporada", + "from_this_series": "From This Series", + "more_from_this_season": "More from this Season", + "view_series": "View Series", + "view_season": "View Season", + "select_season": "Select Season", "no_episodes_for_this_season": "No hi ha episodis per a aquesta temporada", "overview": "Descripció general", "more_with": "Més amb {{name}}", @@ -627,10 +748,21 @@ "media_options": "Media Options", "quality": "Qualitat", "audio": "Àudio", - "subtitles": "Subtítols", + "subtitles": { + "label": "Subtitle", + "none": "None", + "tracks": "Tracks" + }, "show_more": "Mostra més", "show_less": "Mostra menys", + "left": "left", + "more_info": "More Info", + "director": "Director", + "cast": "Cast", + "technical_details": "Technical Details", "appeared_in": "Va aparèixer a", + "movies": "Movies", + "shows": "Shows", "could_not_load_item": "No s'ha pogut carregar l'element", "none": "Cap", "download": { @@ -641,7 +773,13 @@ "download_x_item": "Descarrega {{item_count}} elements", "download_unwatched_only": "Unwatched Only", "download_button": "Descarrega" - } + }, + "mark_played": "Mark as Watched", + "mark_unplayed": "Mark as Unwatched", + "resume_playback": "Resume Playback", + "resume_playback_description": "Do you want to continue where you left off or start from the beginning?", + "play_from_start": "Play from Start", + "continue_from": "Continue from {{time}}" }, "live_tv": { "next": "Següent", @@ -652,7 +790,18 @@ "movies": "Pel·lícules", "sports": "Esports", "for_kids": "Infantil", - "news": "Notícies" + "news": "Notícies", + "page_of": "Page {{current}} of {{total}}", + "no_programs": "No programs available", + "no_channels": "No channels available", + "tabs": { + "programs": "Programs", + "guide": "Guide", + "channels": "Channels", + "recordings": "Recordings", + "schedule": "Schedule", + "series": "Series" + } }, "jellyseerr": { "confirm": "Confirma", @@ -697,6 +846,12 @@ "decline": "Decline", "requested_by": "Requested by {{user}}", "unknown_user": "Unknown User", + "select": "Select", + "request_all": "Request All", + "request_seasons": "Request Seasons", + "select_seasons": "Select Seasons", + "request_selected": "Request Selected", + "n_selected": "{{count}} selected", "toasts": { "jellyseer_does_not_meet_requirements": "El servidor Jellyseerr no compleix els requisits mínims de versió! Actualitzeu-lo almenys a la versió 2.0.0", "jellyseerr_test_failed": "Ha fallat la prova de Jellyseerr. Torneu-ho a provar.", @@ -716,7 +871,8 @@ "search": "Cercar", "library": "Biblioteca", "custom_links": "Enllaços personalitzats", - "favorites": "Preferits" + "favorites": "Preferits", + "settings": "Settings" }, "music": { "title": "Music", @@ -841,5 +997,36 @@ "show": "This show", "all": "All media (default)" } + }, + "companion_login": { + "title": "Pair with TV", + "align_qr": "Align the QR code within the frame", + "enter_code_manually": "Enter code manually", + "pairing_enter_credentials": "Enter credentials for TV", + "pairing_code_label": "Pairing code", + "server": "Server", + "authorize_button": "Authorize", + "authorizing": "Authorizing...", + "scan_again": "Scan Again", + "done": "Done", + "success_title": "Authorization Sent", + "pairing_tv_connecting": "The TV is connecting to your account", + "error_title": "Authorization Failed", + "error_invalid_qr": "Invalid QR code. Please scan the TV pairing code.", + "error_generic": "Something went wrong. Please try again.", + "error_permission_denied": "Camera permission is required to scan QR codes.", + "login_as": "Log in as {{username}}?", + "on_server": "on {{server}}", + "use_different_user": "Use a different user", + "open_settings": "Open Settings" + }, + "pairing": { + "pair_with_phone": "Pair with Phone", + "pair_with_phone_title": "Login TV", + "pair_with_phone_description": "Scan the QR code displayed on your TV to log in", + "waiting_for_phone": "Waiting for phone...", + "scan_with_phone": "Scan with the Streamyfin app on your phone", + "logging_in": "Logging in...", + "logging_in_description": "Connecting to your server" } } diff --git a/translations/cs.json b/translations/cs.json index 4ff10c30e..e499ec3dd 100644 --- a/translations/cs.json +++ b/translations/cs.json @@ -4,6 +4,9 @@ "error_title": "Chyba", "login_title": "Přihlásit se", "login_to_title": "Přihlásit se do", + "select_user": "Select a user to log in", + "add_user_to_login": "Add a user to log in", + "add_user": "Add User", "username_placeholder": "Uživatelské jméno", "password_placeholder": "Heslo", "login_button": "Přihlásit se", @@ -42,7 +45,13 @@ "accounts_count": "{{count}} accounts", "select_account": "Select Account", "add_account": "Add Account", - "remove_account_description": "This will remove the saved credentials for {{username}}." + "remove_account_description": "This will remove the saved credentials for {{username}}.", + "remove_server": "Remove Server", + "remove_server_description": "This will remove {{server}} and all saved accounts from your list.", + "select_your_server": "Select Your Server", + "add_server_to_get_started": "Add a server to get started", + "add_server": "Add Server", + "change_server": "Change Server" }, "save_account": { "title": "Save Account", @@ -86,6 +95,7 @@ "oops": "Jejda!", "error_message": "Něco se pokazilo.\nOdhlaste se a znovu se prosím.", "continue_watching": "Pokračovat ve sledování", + "continue": "Continue", "next_up": "Další nahoru", "continue_and_next_up": "Continue & Next Up", "recently_added_in": "Nedávno přidané v {{libraryName}}", @@ -109,6 +119,12 @@ "settings": { "settings_title": "Nastavení", "log_out_button": "Odhlásit se", + "switch_user": { + "title": "Switch User", + "account": "Account", + "switch_user": "Switch User on This Server", + "current": "current" + }, "categories": { "title": "Categories" }, @@ -121,7 +137,16 @@ "appearance": { "title": "Appearance", "merge_next_up_continue_watching": "Merge Continue Watching & Next Up", - "hide_remote_session_button": "Hide Remote Session Button" + "hide_remote_session_button": "Hide Remote Session Button", + "show_home_backdrop": "Dynamic Home Backdrop", + "show_hero_carousel": "Hero Carousel", + "show_series_poster_on_episode": "Show Series Poster on Episodes", + "theme_music": "Theme Music", + "display_size": "Display Size", + "display_size_small": "Small", + "display_size_default": "Default", + "display_size_large": "Large", + "display_size_extra_large": "Extra Large" }, "network": { "title": "Network", @@ -174,6 +199,22 @@ "rewind_length": "Délka zpětného větru", "seconds_unit": "s" }, + "buffer": { + "title": "Buffer Settings", + "cache_mode": "Cache Mode", + "cache_auto": "Auto", + "cache_yes": "Enabled", + "cache_no": "Disabled", + "buffer_duration": "Buffer Duration", + "max_cache_size": "Max Cache Size", + "max_backward_cache": "Max Backward Cache" + }, + "vo_driver": { + "title": "Video Output", + "vo_mode": "VO Driver", + "gpu_next": "gpu-next (Recommended)", + "gpu": "gpu" + }, "gesture_controls": { "gesture_controls_title": "Ovládání gest", "horizontal_swipe_skip": "Horizontální přejetím přeskočit", @@ -256,7 +297,23 @@ "subtitle_font": "Subtitle Font", "ksplayer_title": "KSPlayer Settings", "hardware_decode": "Hardware Decoding", - "hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues." + "hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues.", + "opensubtitles_title": "OpenSubtitles", + "opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.", + "opensubtitles_api_key": "API Key", + "opensubtitles_api_key_placeholder": "Enter API key...", + "opensubtitles_get_key": "Get your free API key at opensubtitles.com/en/consumers", + "mpv_subtitle_scale": "Subtitle Scale", + "mpv_subtitle_margin_y": "Vertical Margin", + "mpv_subtitle_align_x": "Horizontal Align", + "mpv_subtitle_align_y": "Vertical Align", + "align": { + "left": "Left", + "center": "Center", + "right": "Right", + "top": "Top", + "bottom": "Bottom" + } }, "vlc_subtitles": { "title": "VLC Subtitle Settings", @@ -406,7 +463,13 @@ "music_cache_cleared": "Music cache cleared", "delete_all_downloaded_songs": "Delete All Downloaded Songs", "downloaded_songs_size": "{{size}} downloaded", - "downloaded_songs_deleted": "Downloaded songs deleted" + "downloaded_songs_deleted": "Downloaded songs deleted", + "clear_all_cache": "Clear All Cache", + "clear_all_cache_confirm": "Clear All Cache?", + "clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.", + "clear_all_cache_success": "Cache Cleared", + "clear_all_cache_success_desc": "All cache has been cleared successfully.", + "clear_all_cache_error_desc": "An error occurred while clearing the cache." }, "intro": { "title": "Intro", @@ -430,6 +493,21 @@ "error_deleting_files": "Chyba při mazání souborů", "background_downloads_enabled": "Stahování na pozadí povoleno", "background_downloads_disabled": "Stahování na pozadí zakázáno" + }, + "security": { + "title": "Security", + "inactivity_timeout": { + "title": "Inactivity Timeout", + "description": "Auto logout after inactivity", + "disabled": "Disabled", + "1_minute": "1 minute", + "5_minutes": "5 minutes", + "15_minutes": "15 minutes", + "30_minutes": "30 minutes", + "1_hour": "1 hour", + "4_hours": "4 hours", + "24_hours": "24 hours" + } } }, "sessions": { @@ -492,6 +570,7 @@ } }, "common": { + "no_results": "No Results", "select": "Vybrat", "no_trailer_available": "Přípojné vozidlo není k dispozici", "video": "Video", @@ -501,13 +580,16 @@ "none": "None", "track": "Track", "cancel": "Cancel", + "stop": "Stop", "delete": "Delete", "ok": "OK", "remove": "Remove", "next": "Next", "back": "Back", "continue": "Continue", - "verifying": "Verifying..." + "verifying": "Verifying...", + "login": "Login", + "refresh": "Refresh" }, "search": { "search": "Hledat...", @@ -556,6 +638,7 @@ "movies": "Filmy", "series": "Série", "boxsets": "Sada boxů", + "playlists": "Playlists", "items": "Položky" }, "options": { @@ -574,7 +657,11 @@ "sort_by": "Seřadit podle", "filter_by": "Filter By", "sort_order": "Řazení", - "tags": "Štítky" + "tags": "Štítky", + "all": "All", + "reset": "Reset", + "asc": "Ascending", + "desc": "Descending" } }, "favorites": { @@ -591,6 +678,7 @@ "no_links": "Žádné odkazy" }, "player": { + "live": "LIVE", "error": "Chyba", "failed_to_get_stream_url": "Nepodařilo se získat URL streamu", "an_error_occured_while_playing_the_video": "Při přehrávání videa došlo k chybě. Zkontrolujte logy v nastavení.", @@ -608,7 +696,35 @@ "downloaded_file_message": "Do you want to play the downloaded file?", "downloaded_file_yes": "Yes", "downloaded_file_no": "No", - "downloaded_file_cancel": "Cancel" + "downloaded_file_cancel": "Cancel", + "swipe_down_settings": "Swipe down for settings", + "ends_at": "ends at", + "search_subtitles": "Search Subtitles", + "subtitle_tracks": "Tracks", + "subtitle_search": "Search & Download", + "download": "Download", + "subtitle_download_hint": "Downloaded subtitles will be saved to your library", + "using_jellyfin_server": "Using Jellyfin Server", + "language": "Language", + "results": "Results", + "searching": "Searching...", + "search_failed": "Search failed", + "no_subtitle_provider": "No subtitle provider configured on server", + "no_subtitles_found": "No subtitles found", + "add_opensubtitles_key_hint": "Add OpenSubtitles API key in settings for client-side fallback", + "settings": "Settings", + "skip_intro": "Skip Intro", + "skip_credits": "Skip Credits", + "stopPlayback": "Stop Playback", + "stopPlayingTitle": "Stop playing \"{{title}}\"?", + "stopPlayingConfirm": "Are you sure you want to stop playback?", + "downloaded": "Downloaded" + }, + "chapters": { + "title": "Chapters", + "chapter_number": "Chapter {{number}}", + "open": "Open chapters", + "close": "Close chapters" }, "item_card": { "next_up": "Další nahoru", @@ -617,6 +733,11 @@ "series": "Série", "seasons": "Série", "season": "Sezóna", + "from_this_series": "From This Series", + "more_from_this_season": "More from this Season", + "view_series": "View Series", + "view_season": "View Season", + "select_season": "Select Season", "no_episodes_for_this_season": "Žádné epizody pro tuto sezónu", "overview": "Přehled", "more_with": "Více s {{name}}", @@ -627,10 +748,21 @@ "media_options": "Media Options", "quality": "Kvalita", "audio": "Zvuk", - "subtitles": "Podtitulek", + "subtitles": { + "label": "Subtitle", + "none": "None", + "tracks": "Tracks" + }, "show_more": "Zobrazit více", "show_less": "Zobrazit méně", + "left": "left", + "more_info": "More Info", + "director": "Director", + "cast": "Cast", + "technical_details": "Technical Details", "appeared_in": "Zobrazeno v", + "movies": "Movies", + "shows": "Shows", "could_not_load_item": "Nelze načíst položku", "none": "Nic", "download": { @@ -641,7 +773,13 @@ "download_x_item": "Stáhnout položky {{item_count}}", "download_unwatched_only": "Pouze nezhlédnuté", "download_button": "Stáhnout" - } + }, + "mark_played": "Mark as Watched", + "mark_unplayed": "Mark as Unwatched", + "resume_playback": "Resume Playback", + "resume_playback_description": "Do you want to continue where you left off or start from the beginning?", + "play_from_start": "Play from Start", + "continue_from": "Continue from {{time}}" }, "live_tv": { "next": "Další", @@ -652,7 +790,18 @@ "movies": "Filmy", "sports": "Sporty", "for_kids": "Pro děti", - "news": "Novinky" + "news": "Novinky", + "page_of": "Page {{current}} of {{total}}", + "no_programs": "No programs available", + "no_channels": "No channels available", + "tabs": { + "programs": "Programs", + "guide": "Guide", + "channels": "Channels", + "recordings": "Recordings", + "schedule": "Schedule", + "series": "Series" + } }, "jellyseerr": { "confirm": "Potvrdit", @@ -697,6 +846,12 @@ "decline": "Decline", "requested_by": "Requested by {{user}}", "unknown_user": "Unknown User", + "select": "Select", + "request_all": "Request All", + "request_seasons": "Request Seasons", + "select_seasons": "Select Seasons", + "request_selected": "Request Selected", + "n_selected": "{{count}} selected", "toasts": { "jellyseer_does_not_meet_requirements": "Seerr server nesplňuje minimální požadavky na verzi! Aktualizujte prosím alespoň na 2.0.0", "jellyseerr_test_failed": "Seerr test se nezdařil. Zkuste to prosím znovu.", @@ -716,7 +871,8 @@ "search": "Hledat", "library": "Knihovna", "custom_links": "Vlastní odkazy", - "favorites": "Oblíbené" + "favorites": "Oblíbené", + "settings": "Settings" }, "music": { "title": "Music", @@ -841,5 +997,36 @@ "show": "This show", "all": "All media (default)" } + }, + "companion_login": { + "title": "Pair with TV", + "align_qr": "Align the QR code within the frame", + "enter_code_manually": "Enter code manually", + "pairing_enter_credentials": "Enter credentials for TV", + "pairing_code_label": "Pairing code", + "server": "Server", + "authorize_button": "Authorize", + "authorizing": "Authorizing...", + "scan_again": "Scan Again", + "done": "Done", + "success_title": "Authorization Sent", + "pairing_tv_connecting": "The TV is connecting to your account", + "error_title": "Authorization Failed", + "error_invalid_qr": "Invalid QR code. Please scan the TV pairing code.", + "error_generic": "Something went wrong. Please try again.", + "error_permission_denied": "Camera permission is required to scan QR codes.", + "login_as": "Log in as {{username}}?", + "on_server": "on {{server}}", + "use_different_user": "Use a different user", + "open_settings": "Open Settings" + }, + "pairing": { + "pair_with_phone": "Pair with Phone", + "pair_with_phone_title": "Login TV", + "pair_with_phone_description": "Scan the QR code displayed on your TV to log in", + "waiting_for_phone": "Waiting for phone...", + "scan_with_phone": "Scan with the Streamyfin app on your phone", + "logging_in": "Logging in...", + "logging_in_description": "Connecting to your server" } } diff --git a/translations/da.json b/translations/da.json index cd0edb2f0..f9c414ae6 100644 --- a/translations/da.json +++ b/translations/da.json @@ -4,6 +4,9 @@ "error_title": "Fejl", "login_title": "Log ind", "login_to_title": "Log ind på", + "select_user": "Select a user to log in", + "add_user_to_login": "Add a user to log in", + "add_user": "Add User", "username_placeholder": "Brugernavn", "password_placeholder": "Adgangskode", "login_button": "Log ind", @@ -42,7 +45,13 @@ "accounts_count": "{{count}} accounts", "select_account": "Select Account", "add_account": "Add Account", - "remove_account_description": "This will remove the saved credentials for {{username}}." + "remove_account_description": "This will remove the saved credentials for {{username}}.", + "remove_server": "Remove Server", + "remove_server_description": "This will remove {{server}} and all saved accounts from your list.", + "select_your_server": "Select Your Server", + "add_server_to_get_started": "Add a server to get started", + "add_server": "Add Server", + "change_server": "Change Server" }, "save_account": { "title": "Save Account", @@ -86,6 +95,7 @@ "oops": "Ups!", "error_message": "Noget gik galt.\nLog venligst ud og ind igen.", "continue_watching": "Fortsæt med at se", + "continue": "Continue", "next_up": "Næste", "continue_and_next_up": "Continue & Next Up", "recently_added_in": "Senest tilføjet i {{libraryName}}", @@ -109,6 +119,12 @@ "settings": { "settings_title": "Indstillinger", "log_out_button": "Log ud", + "switch_user": { + "title": "Switch User", + "account": "Account", + "switch_user": "Switch User on This Server", + "current": "current" + }, "categories": { "title": "Categories" }, @@ -121,7 +137,16 @@ "appearance": { "title": "Appearance", "merge_next_up_continue_watching": "Merge Continue Watching & Next Up", - "hide_remote_session_button": "Hide Remote Session Button" + "hide_remote_session_button": "Hide Remote Session Button", + "show_home_backdrop": "Dynamic Home Backdrop", + "show_hero_carousel": "Hero Carousel", + "show_series_poster_on_episode": "Show Series Poster on Episodes", + "theme_music": "Theme Music", + "display_size": "Display Size", + "display_size_small": "Small", + "display_size_default": "Default", + "display_size_large": "Large", + "display_size_extra_large": "Extra Large" }, "network": { "title": "Network", @@ -174,6 +199,22 @@ "rewind_length": "Spol tilbage længde", "seconds_unit": "s" }, + "buffer": { + "title": "Buffer Settings", + "cache_mode": "Cache Mode", + "cache_auto": "Auto", + "cache_yes": "Enabled", + "cache_no": "Disabled", + "buffer_duration": "Buffer Duration", + "max_cache_size": "Max Cache Size", + "max_backward_cache": "Max Backward Cache" + }, + "vo_driver": { + "title": "Video Output", + "vo_mode": "VO Driver", + "gpu_next": "gpu-next (Recommended)", + "gpu": "gpu" + }, "gesture_controls": { "gesture_controls_title": "Bevægelsesstyring", "horizontal_swipe_skip": "Vandret Stryg for at springe over", @@ -256,7 +297,23 @@ "subtitle_font": "Subtitle Font", "ksplayer_title": "KSPlayer Settings", "hardware_decode": "Hardware Decoding", - "hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues." + "hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues.", + "opensubtitles_title": "OpenSubtitles", + "opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.", + "opensubtitles_api_key": "API Key", + "opensubtitles_api_key_placeholder": "Enter API key...", + "opensubtitles_get_key": "Get your free API key at opensubtitles.com/en/consumers", + "mpv_subtitle_scale": "Subtitle Scale", + "mpv_subtitle_margin_y": "Vertical Margin", + "mpv_subtitle_align_x": "Horizontal Align", + "mpv_subtitle_align_y": "Vertical Align", + "align": { + "left": "Left", + "center": "Center", + "right": "Right", + "top": "Top", + "bottom": "Bottom" + } }, "vlc_subtitles": { "title": "VLC Subtitle Settings", @@ -406,7 +463,13 @@ "music_cache_cleared": "Music cache cleared", "delete_all_downloaded_songs": "Delete All Downloaded Songs", "downloaded_songs_size": "{{size}} downloaded", - "downloaded_songs_deleted": "Downloaded songs deleted" + "downloaded_songs_deleted": "Downloaded songs deleted", + "clear_all_cache": "Clear All Cache", + "clear_all_cache_confirm": "Clear All Cache?", + "clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.", + "clear_all_cache_success": "Cache Cleared", + "clear_all_cache_success_desc": "All cache has been cleared successfully.", + "clear_all_cache_error_desc": "An error occurred while clearing the cache." }, "intro": { "title": "Intro", @@ -430,6 +493,21 @@ "error_deleting_files": "Fejl ved sletning af filer", "background_downloads_enabled": "Baggrundsdownloads aktiveret", "background_downloads_disabled": "Baggrundsdownloads deaktiveret" + }, + "security": { + "title": "Security", + "inactivity_timeout": { + "title": "Inactivity Timeout", + "description": "Auto logout after inactivity", + "disabled": "Disabled", + "1_minute": "1 minute", + "5_minutes": "5 minutes", + "15_minutes": "15 minutes", + "30_minutes": "30 minutes", + "1_hour": "1 hour", + "4_hours": "4 hours", + "24_hours": "24 hours" + } } }, "sessions": { @@ -492,6 +570,7 @@ } }, "common": { + "no_results": "No Results", "select": "Vælg", "no_trailer_available": "Intet påhængskøretøj tilgængeligt", "video": "Video", @@ -501,13 +580,16 @@ "none": "None", "track": "Track", "cancel": "Cancel", + "stop": "Stop", "delete": "Delete", "ok": "OK", "remove": "Remove", "next": "Next", "back": "Back", "continue": "Continue", - "verifying": "Verifying..." + "verifying": "Verifying...", + "login": "Login", + "refresh": "Refresh" }, "search": { "search": "Søg...", @@ -556,6 +638,7 @@ "movies": "film", "series": "serier", "boxsets": "box sæt", + "playlists": "Playlists", "items": "elementer" }, "options": { @@ -574,7 +657,11 @@ "sort_by": "Sortér efter", "filter_by": "Filter By", "sort_order": "Sorteringsrækkefølge", - "tags": "Mærker" + "tags": "Mærker", + "all": "All", + "reset": "Reset", + "asc": "Ascending", + "desc": "Descending" } }, "favorites": { @@ -591,6 +678,7 @@ "no_links": "Ingen links" }, "player": { + "live": "LIVE", "error": "Fejl", "failed_to_get_stream_url": "Kunne ikke hente stream URL'en", "an_error_occured_while_playing_the_video": "Der opstod en fejl under afspilning af videoen. Tjek logfilerne i indstillinger.", @@ -608,7 +696,35 @@ "downloaded_file_message": "Do you want to play the downloaded file?", "downloaded_file_yes": "Yes", "downloaded_file_no": "No", - "downloaded_file_cancel": "Cancel" + "downloaded_file_cancel": "Cancel", + "swipe_down_settings": "Swipe down for settings", + "ends_at": "ends at", + "search_subtitles": "Search Subtitles", + "subtitle_tracks": "Tracks", + "subtitle_search": "Search & Download", + "download": "Download", + "subtitle_download_hint": "Downloaded subtitles will be saved to your library", + "using_jellyfin_server": "Using Jellyfin Server", + "language": "Language", + "results": "Results", + "searching": "Searching...", + "search_failed": "Search failed", + "no_subtitle_provider": "No subtitle provider configured on server", + "no_subtitles_found": "No subtitles found", + "add_opensubtitles_key_hint": "Add OpenSubtitles API key in settings for client-side fallback", + "settings": "Settings", + "skip_intro": "Skip Intro", + "skip_credits": "Skip Credits", + "stopPlayback": "Stop Playback", + "stopPlayingTitle": "Stop playing \"{{title}}\"?", + "stopPlayingConfirm": "Are you sure you want to stop playback?", + "downloaded": "Downloaded" + }, + "chapters": { + "title": "Chapters", + "chapter_number": "Chapter {{number}}", + "open": "Open chapters", + "close": "Close chapters" }, "item_card": { "next_up": "Næste", @@ -617,6 +733,11 @@ "series": "Serier", "seasons": "Sæsoner", "season": "Sæson", + "from_this_series": "From This Series", + "more_from_this_season": "More from this Season", + "view_series": "View Series", + "view_season": "View Season", + "select_season": "Select Season", "no_episodes_for_this_season": "Ingen episoder for denne sæson", "overview": "Oversigt", "more_with": "Mere med {{name}}", @@ -627,10 +748,21 @@ "media_options": "Media Options", "quality": "Kvalitet", "audio": "Lyd", - "subtitles": "Undertekster", + "subtitles": { + "label": "Subtitle", + "none": "None", + "tracks": "Tracks" + }, "show_more": "Vis mere", "show_less": "Vis mindre", + "left": "left", + "more_info": "More Info", + "director": "Director", + "cast": "Cast", + "technical_details": "Technical Details", "appeared_in": "Medvirket i", + "movies": "Movies", + "shows": "Shows", "could_not_load_item": "Kunne ikke indlæse elementet", "none": "Ingen", "download": { @@ -641,7 +773,13 @@ "download_x_item": "Download {{item_count}} elementer", "download_unwatched_only": "Kun Usete", "download_button": "Hent" - } + }, + "mark_played": "Mark as Watched", + "mark_unplayed": "Mark as Unwatched", + "resume_playback": "Resume Playback", + "resume_playback_description": "Do you want to continue where you left off or start from the beginning?", + "play_from_start": "Play from Start", + "continue_from": "Continue from {{time}}" }, "live_tv": { "next": "Næste", @@ -652,7 +790,18 @@ "movies": "Film", "sports": "Sport", "for_kids": "For børn", - "news": "Nyheder" + "news": "Nyheder", + "page_of": "Page {{current}} of {{total}}", + "no_programs": "No programs available", + "no_channels": "No channels available", + "tabs": { + "programs": "Programs", + "guide": "Guide", + "channels": "Channels", + "recordings": "Recordings", + "schedule": "Schedule", + "series": "Series" + } }, "jellyseerr": { "confirm": "Bekræft", @@ -697,6 +846,12 @@ "decline": "Decline", "requested_by": "Requested by {{user}}", "unknown_user": "Unknown User", + "select": "Select", + "request_all": "Request All", + "request_seasons": "Request Seasons", + "select_seasons": "Select Seasons", + "request_selected": "Request Selected", + "n_selected": "{{count}} selected", "toasts": { "jellyseer_does_not_meet_requirements": "Jellyseerr serveren opfylder ikke minimumskravene! Opdater venligst til mindst 2.0.0", "jellyseerr_test_failed": "Jellyseerr test mislykkedes. Prøv venligst igen.", @@ -716,7 +871,8 @@ "search": "Søg", "library": "Bibliotek", "custom_links": "Tilpassede links", - "favorites": "Favoritter" + "favorites": "Favoritter", + "settings": "Settings" }, "music": { "title": "Music", @@ -841,5 +997,36 @@ "show": "This show", "all": "All media (default)" } + }, + "companion_login": { + "title": "Pair with TV", + "align_qr": "Align the QR code within the frame", + "enter_code_manually": "Enter code manually", + "pairing_enter_credentials": "Enter credentials for TV", + "pairing_code_label": "Pairing code", + "server": "Server", + "authorize_button": "Authorize", + "authorizing": "Authorizing...", + "scan_again": "Scan Again", + "done": "Done", + "success_title": "Authorization Sent", + "pairing_tv_connecting": "The TV is connecting to your account", + "error_title": "Authorization Failed", + "error_invalid_qr": "Invalid QR code. Please scan the TV pairing code.", + "error_generic": "Something went wrong. Please try again.", + "error_permission_denied": "Camera permission is required to scan QR codes.", + "login_as": "Log in as {{username}}?", + "on_server": "on {{server}}", + "use_different_user": "Use a different user", + "open_settings": "Open Settings" + }, + "pairing": { + "pair_with_phone": "Pair with Phone", + "pair_with_phone_title": "Login TV", + "pair_with_phone_description": "Scan the QR code displayed on your TV to log in", + "waiting_for_phone": "Waiting for phone...", + "scan_with_phone": "Scan with the Streamyfin app on your phone", + "logging_in": "Logging in...", + "logging_in_description": "Connecting to your server" } } diff --git a/translations/de.json b/translations/de.json index 3d3001dcd..ad07d684f 100644 --- a/translations/de.json +++ b/translations/de.json @@ -4,6 +4,9 @@ "error_title": "Fehler", "login_title": "Anmelden", "login_to_title": "Anmelden bei", + "select_user": "Select a user to log in", + "add_user_to_login": "Add a user to log in", + "add_user": "Add User", "username_placeholder": "Benutzername", "password_placeholder": "Passwort", "login_button": "Anmelden", @@ -42,7 +45,13 @@ "accounts_count": "{{count}} Konten", "select_account": "Konto auswählen", "add_account": "Konto hinzufügen", - "remove_account_description": "Hiermit werden die gespeicherten Zugangsdaten für {{username}} entfernt." + "remove_account_description": "Hiermit werden die gespeicherten Zugangsdaten für {{username}} entfernt.", + "remove_server": "Remove Server", + "remove_server_description": "This will remove {{server}} and all saved accounts from your list.", + "select_your_server": "Select Your Server", + "add_server_to_get_started": "Add a server to get started", + "add_server": "Add Server", + "change_server": "Change Server" }, "save_account": { "title": "Konto speichern", @@ -86,6 +95,7 @@ "oops": "Ups!", "error_message": "Etwas ist schiefgelaufen.\nBitte melde dich ab und wieder an.", "continue_watching": "Weiterschauen", + "continue": "Continue", "next_up": "Als nächstes", "continue_and_next_up": "\"Weiterschauen\" und \"Als Nächstes\"", "recently_added_in": "Kürzlich hinzugefügt in {{libraryName}}", @@ -109,6 +119,12 @@ "settings": { "settings_title": "Einstellungen", "log_out_button": "Abmelden", + "switch_user": { + "title": "Switch User", + "account": "Account", + "switch_user": "Switch User on This Server", + "current": "current" + }, "categories": { "title": "Kategorien" }, @@ -121,7 +137,16 @@ "appearance": { "title": "Aussehen", "merge_next_up_continue_watching": "\"Weiterschauen\" und \"Als Nächstes\" kombinieren", - "hide_remote_session_button": "Button für Remote-Sitzung ausblenden" + "hide_remote_session_button": "Button für Remote-Sitzung ausblenden", + "show_home_backdrop": "Dynamic Home Backdrop", + "show_hero_carousel": "Hero Carousel", + "show_series_poster_on_episode": "Show Series Poster on Episodes", + "theme_music": "Theme Music", + "display_size": "Display Size", + "display_size_small": "Small", + "display_size_default": "Default", + "display_size_large": "Large", + "display_size_extra_large": "Extra Large" }, "network": { "title": "Netzwerk", @@ -174,6 +199,22 @@ "rewind_length": "Rückspullänge", "seconds_unit": "s" }, + "buffer": { + "title": "Buffer Settings", + "cache_mode": "Cache Mode", + "cache_auto": "Auto", + "cache_yes": "Enabled", + "cache_no": "Disabled", + "buffer_duration": "Buffer Duration", + "max_cache_size": "Max Cache Size", + "max_backward_cache": "Max Backward Cache" + }, + "vo_driver": { + "title": "Video Output", + "vo_mode": "VO Driver", + "gpu_next": "gpu-next (Recommended)", + "gpu": "gpu" + }, "gesture_controls": { "gesture_controls_title": "Gestensteuerung", "horizontal_swipe_skip": "Horizontal Wischen zum Überspringen", @@ -256,7 +297,23 @@ "subtitle_font": "Untertitel-Schriftart", "ksplayer_title": "KSPlayer Einstellungen", "hardware_decode": "Hardware Decoding", - "hardware_decode_description": "Hardwarebeschleunigung für Video Decoding verwenden. Deaktivieren wenn Wiedergabeprobleme auftreten." + "hardware_decode_description": "Hardwarebeschleunigung für Video Decoding verwenden. Deaktivieren wenn Wiedergabeprobleme auftreten.", + "opensubtitles_title": "OpenSubtitles", + "opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.", + "opensubtitles_api_key": "API Key", + "opensubtitles_api_key_placeholder": "Enter API key...", + "opensubtitles_get_key": "Get your free API key at opensubtitles.com/en/consumers", + "mpv_subtitle_scale": "Subtitle Scale", + "mpv_subtitle_margin_y": "Vertical Margin", + "mpv_subtitle_align_x": "Horizontal Align", + "mpv_subtitle_align_y": "Vertical Align", + "align": { + "left": "Left", + "center": "Center", + "right": "Right", + "top": "Top", + "bottom": "Bottom" + } }, "vlc_subtitles": { "title": "VLC Untertitel-Einstellungen", @@ -406,7 +463,13 @@ "music_cache_cleared": "Musik-Cache geleert", "delete_all_downloaded_songs": "Alle heruntergeladenen Titel löschen", "downloaded_songs_size": "{{size}} heruntergeladen", - "downloaded_songs_deleted": "Heruntergeladene Titel gelöscht" + "downloaded_songs_deleted": "Heruntergeladene Titel gelöscht", + "clear_all_cache": "Clear All Cache", + "clear_all_cache_confirm": "Clear All Cache?", + "clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.", + "clear_all_cache_success": "Cache Cleared", + "clear_all_cache_success_desc": "All cache has been cleared successfully.", + "clear_all_cache_error_desc": "An error occurred while clearing the cache." }, "intro": { "title": "Einführung", @@ -430,6 +493,21 @@ "error_deleting_files": "Fehler beim Löschen von Dateien", "background_downloads_enabled": "Hintergrunddownloads aktiviert", "background_downloads_disabled": "Hintergrunddownloads deaktiviert" + }, + "security": { + "title": "Security", + "inactivity_timeout": { + "title": "Inactivity Timeout", + "description": "Auto logout after inactivity", + "disabled": "Disabled", + "1_minute": "1 minute", + "5_minutes": "5 minutes", + "15_minutes": "15 minutes", + "30_minutes": "30 minutes", + "1_hour": "1 hour", + "4_hours": "4 hours", + "24_hours": "24 hours" + } } }, "sessions": { @@ -492,6 +570,7 @@ } }, "common": { + "no_results": "No Results", "select": "Auswählen", "no_trailer_available": "Kein Trailer verfügbar", "video": "Video", @@ -501,13 +580,16 @@ "none": "Keine", "track": "Spur", "cancel": "Abbrechen", + "stop": "Stop", "delete": "Löschen", "ok": "OK", "remove": "Entfernen", "next": "Weiter", "back": "Zurück", "continue": "Fortsetzen", - "verifying": "Verifiziere..." + "verifying": "Verifiziere...", + "login": "Login", + "refresh": "Refresh" }, "search": { "search": "Suchen...", @@ -556,6 +638,7 @@ "movies": "Filme", "series": "Serien", "boxsets": "Boxsets", + "playlists": "Playlists", "items": "Elemente" }, "options": { @@ -574,7 +657,11 @@ "sort_by": "Sortieren nach", "filter_by": "Filtern nach", "sort_order": "Sortierreihenfolge", - "tags": "Tags" + "tags": "Tags", + "all": "All", + "reset": "Reset", + "asc": "Ascending", + "desc": "Descending" } }, "favorites": { @@ -591,6 +678,7 @@ "no_links": "Keine Links" }, "player": { + "live": "LIVE", "error": "Fehler", "failed_to_get_stream_url": "Fehler beim Abrufen der Stream-URL", "an_error_occured_while_playing_the_video": "Ein Fehler ist beim Abspielen des Videos aufgetreten. Logs in den Einstellungen überprüfen.", @@ -608,7 +696,35 @@ "downloaded_file_message": "Heruntergeladene Datei abspielen?", "downloaded_file_yes": "Ja", "downloaded_file_no": "Nein", - "downloaded_file_cancel": "Abbrechen" + "downloaded_file_cancel": "Abbrechen", + "swipe_down_settings": "Swipe down for settings", + "ends_at": "ends at", + "search_subtitles": "Search Subtitles", + "subtitle_tracks": "Tracks", + "subtitle_search": "Search & Download", + "download": "Download", + "subtitle_download_hint": "Downloaded subtitles will be saved to your library", + "using_jellyfin_server": "Using Jellyfin Server", + "language": "Language", + "results": "Results", + "searching": "Searching...", + "search_failed": "Search failed", + "no_subtitle_provider": "No subtitle provider configured on server", + "no_subtitles_found": "No subtitles found", + "add_opensubtitles_key_hint": "Add OpenSubtitles API key in settings for client-side fallback", + "settings": "Settings", + "skip_intro": "Skip Intro", + "skip_credits": "Skip Credits", + "stopPlayback": "Stop Playback", + "stopPlayingTitle": "Stop playing \"{{title}}\"?", + "stopPlayingConfirm": "Are you sure you want to stop playback?", + "downloaded": "Downloaded" + }, + "chapters": { + "title": "Chapters", + "chapter_number": "Chapter {{number}}", + "open": "Open chapters", + "close": "Close chapters" }, "item_card": { "next_up": "Als Nächstes", @@ -617,6 +733,11 @@ "series": "Serien", "seasons": "Staffeln", "season": "Staffel", + "from_this_series": "From This Series", + "more_from_this_season": "More from this Season", + "view_series": "View Series", + "view_season": "View Season", + "select_season": "Select Season", "no_episodes_for_this_season": "Keine Episoden für diese Staffel", "overview": "Überblick", "more_with": "Mehr mit {{name}}", @@ -627,10 +748,21 @@ "media_options": "Medienoptionen", "quality": "Qualität", "audio": "Audio", - "subtitles": "Untertitel", + "subtitles": { + "label": "Subtitle", + "none": "None", + "tracks": "Tracks" + }, "show_more": "Mehr anzeigen", "show_less": "Weniger anzeigen", + "left": "left", + "more_info": "More Info", + "director": "Director", + "cast": "Cast", + "technical_details": "Technical Details", "appeared_in": "Erschien in", + "movies": "Movies", + "shows": "Shows", "could_not_load_item": "Konnte Element nicht laden", "none": "Keine", "download": { @@ -641,7 +773,13 @@ "download_x_item": "{{item_count}} Elemente herunterladen", "download_unwatched_only": "Nur Ungesehene", "download_button": "Herunterladen" - } + }, + "mark_played": "Mark as Watched", + "mark_unplayed": "Mark as Unwatched", + "resume_playback": "Resume Playback", + "resume_playback_description": "Do you want to continue where you left off or start from the beginning?", + "play_from_start": "Play from Start", + "continue_from": "Continue from {{time}}" }, "live_tv": { "next": "Nächste", @@ -652,7 +790,18 @@ "movies": "Filme", "sports": "Sport", "for_kids": "Für Kinder", - "news": "Nachrichten" + "news": "Nachrichten", + "page_of": "Page {{current}} of {{total}}", + "no_programs": "No programs available", + "no_channels": "No channels available", + "tabs": { + "programs": "Programs", + "guide": "Guide", + "channels": "Channels", + "recordings": "Recordings", + "schedule": "Schedule", + "series": "Series" + } }, "jellyseerr": { "confirm": "Bestätigen", @@ -697,6 +846,12 @@ "decline": "Ablehnen", "requested_by": "Angefragt von {{user}}", "unknown_user": "Unbekannter Nutzer", + "select": "Select", + "request_all": "Request All", + "request_seasons": "Request Seasons", + "select_seasons": "Select Seasons", + "request_selected": "Request Selected", + "n_selected": "{{count}} selected", "toasts": { "jellyseer_does_not_meet_requirements": "Seerr-Server erfüllt nicht die minimalen Versionsanforderungen. Bitte den Seerr-Server auf mindestens 2.0.0 aktualisieren.", "jellyseerr_test_failed": "Seerr-Test fehlgeschlagen. Bitte erneut versuchen.", @@ -716,7 +871,8 @@ "search": "Suche", "library": "Bibliothek", "custom_links": "Links", - "favorites": "Favoriten" + "favorites": "Favoriten", + "settings": "Settings" }, "music": { "title": "Musik", @@ -841,5 +997,36 @@ "show": "Nur diese Serie", "all": "Alle (Standard)" } + }, + "companion_login": { + "title": "Pair with TV", + "align_qr": "Align the QR code within the frame", + "enter_code_manually": "Enter code manually", + "pairing_enter_credentials": "Enter credentials for TV", + "pairing_code_label": "Pairing code", + "server": "Server", + "authorize_button": "Authorize", + "authorizing": "Authorizing...", + "scan_again": "Scan Again", + "done": "Done", + "success_title": "Authorization Sent", + "pairing_tv_connecting": "The TV is connecting to your account", + "error_title": "Authorization Failed", + "error_invalid_qr": "Invalid QR code. Please scan the TV pairing code.", + "error_generic": "Something went wrong. Please try again.", + "error_permission_denied": "Camera permission is required to scan QR codes.", + "login_as": "Log in as {{username}}?", + "on_server": "on {{server}}", + "use_different_user": "Use a different user", + "open_settings": "Open Settings" + }, + "pairing": { + "pair_with_phone": "Pair with Phone", + "pair_with_phone_title": "Login TV", + "pair_with_phone_description": "Scan the QR code displayed on your TV to log in", + "waiting_for_phone": "Waiting for phone...", + "scan_with_phone": "Scan with the Streamyfin app on your phone", + "logging_in": "Logging in...", + "logging_in_description": "Connecting to your server" } } diff --git a/translations/el.json b/translations/el.json index e66d1a9ff..6568a0ef5 100644 --- a/translations/el.json +++ b/translations/el.json @@ -4,6 +4,9 @@ "error_title": "Σφάλμα", "login_title": "Σύνδεση", "login_to_title": "Συνδεθείτε στο", + "select_user": "Select a user to log in", + "add_user_to_login": "Add a user to log in", + "add_user": "Add User", "username_placeholder": "Όνομα Χρήστη", "password_placeholder": "Κωδικός", "login_button": "Σύνδεση", @@ -42,7 +45,13 @@ "accounts_count": "{{count}} accounts", "select_account": "Select Account", "add_account": "Add Account", - "remove_account_description": "This will remove the saved credentials for {{username}}." + "remove_account_description": "This will remove the saved credentials for {{username}}.", + "remove_server": "Remove Server", + "remove_server_description": "This will remove {{server}} and all saved accounts from your list.", + "select_your_server": "Select Your Server", + "add_server_to_get_started": "Add a server to get started", + "add_server": "Add Server", + "change_server": "Change Server" }, "save_account": { "title": "Save Account", @@ -86,6 +95,7 @@ "oops": "Ωχ!", "error_message": "Something went wrong.\nPlease log out and in again.", "continue_watching": "Συνέχεια Παρακολούθησης", + "continue": "Continue", "next_up": "Επόμενο Επάνω", "continue_and_next_up": "Continue & Next Up", "recently_added_in": "Προστέθηκε πρόσφατα στο {{libraryName}}", @@ -109,6 +119,12 @@ "settings": { "settings_title": "Ρυθμίσεις", "log_out_button": "Αποσύνδεση", + "switch_user": { + "title": "Switch User", + "account": "Account", + "switch_user": "Switch User on This Server", + "current": "current" + }, "categories": { "title": "Categories" }, @@ -121,7 +137,16 @@ "appearance": { "title": "Appearance", "merge_next_up_continue_watching": "Merge Continue Watching & Next Up", - "hide_remote_session_button": "Hide Remote Session Button" + "hide_remote_session_button": "Hide Remote Session Button", + "show_home_backdrop": "Dynamic Home Backdrop", + "show_hero_carousel": "Hero Carousel", + "show_series_poster_on_episode": "Show Series Poster on Episodes", + "theme_music": "Theme Music", + "display_size": "Display Size", + "display_size_small": "Small", + "display_size_default": "Default", + "display_size_large": "Large", + "display_size_extra_large": "Extra Large" }, "network": { "title": "Network", @@ -174,6 +199,22 @@ "rewind_length": "Επαναφορά Μήκους", "seconds_unit": "ίνα" }, + "buffer": { + "title": "Buffer Settings", + "cache_mode": "Cache Mode", + "cache_auto": "Auto", + "cache_yes": "Enabled", + "cache_no": "Disabled", + "buffer_duration": "Buffer Duration", + "max_cache_size": "Max Cache Size", + "max_backward_cache": "Max Backward Cache" + }, + "vo_driver": { + "title": "Video Output", + "vo_mode": "VO Driver", + "gpu_next": "gpu-next (Recommended)", + "gpu": "gpu" + }, "gesture_controls": { "gesture_controls_title": "Έλεγχοι Χειρονομιών", "horizontal_swipe_skip": "Οριζόντια σάρωση για παράλειψη", @@ -256,7 +297,23 @@ "subtitle_font": "Subtitle Font", "ksplayer_title": "KSPlayer Settings", "hardware_decode": "Hardware Decoding", - "hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues." + "hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues.", + "opensubtitles_title": "OpenSubtitles", + "opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.", + "opensubtitles_api_key": "API Key", + "opensubtitles_api_key_placeholder": "Enter API key...", + "opensubtitles_get_key": "Get your free API key at opensubtitles.com/en/consumers", + "mpv_subtitle_scale": "Subtitle Scale", + "mpv_subtitle_margin_y": "Vertical Margin", + "mpv_subtitle_align_x": "Horizontal Align", + "mpv_subtitle_align_y": "Vertical Align", + "align": { + "left": "Left", + "center": "Center", + "right": "Right", + "top": "Top", + "bottom": "Bottom" + } }, "vlc_subtitles": { "title": "VLC Subtitle Settings", @@ -406,7 +463,13 @@ "music_cache_cleared": "Music cache cleared", "delete_all_downloaded_songs": "Delete All Downloaded Songs", "downloaded_songs_size": "{{size}} downloaded", - "downloaded_songs_deleted": "Downloaded songs deleted" + "downloaded_songs_deleted": "Downloaded songs deleted", + "clear_all_cache": "Clear All Cache", + "clear_all_cache_confirm": "Clear All Cache?", + "clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.", + "clear_all_cache_success": "Cache Cleared", + "clear_all_cache_success_desc": "All cache has been cleared successfully.", + "clear_all_cache_error_desc": "An error occurred while clearing the cache." }, "intro": { "title": "Intro", @@ -430,6 +493,21 @@ "error_deleting_files": "Σφάλμα Διαγραφής Αρχείων", "background_downloads_enabled": "Οι λήψεις στο παρασκήνιο ενεργοποιήθηκαν", "background_downloads_disabled": "Οι λήψεις παρασκηνίου απενεργοποιήθηκαν" + }, + "security": { + "title": "Security", + "inactivity_timeout": { + "title": "Inactivity Timeout", + "description": "Auto logout after inactivity", + "disabled": "Disabled", + "1_minute": "1 minute", + "5_minutes": "5 minutes", + "15_minutes": "15 minutes", + "30_minutes": "30 minutes", + "1_hour": "1 hour", + "4_hours": "4 hours", + "24_hours": "24 hours" + } } }, "sessions": { @@ -492,6 +570,7 @@ } }, "common": { + "no_results": "No Results", "select": "Επιλογή", "no_trailer_available": "Δεν υπάρχει διαθέσιμο ρυμουλκούμενο", "video": "Βίντεο", @@ -501,13 +580,16 @@ "none": "None", "track": "Track", "cancel": "Cancel", + "stop": "Stop", "delete": "Delete", "ok": "OK", "remove": "Remove", "next": "Next", "back": "Back", "continue": "Continue", - "verifying": "Verifying..." + "verifying": "Verifying...", + "login": "Login", + "refresh": "Refresh" }, "search": { "search": "Αναζήτηση...", @@ -556,6 +638,7 @@ "movies": "Ταινίες", "series": "Σειρά", "boxsets": "Σύνολα Πλαισίων", + "playlists": "Playlists", "items": "Στοιχεία" }, "options": { @@ -574,7 +657,11 @@ "sort_by": "Ταξινόμηση Κατά", "filter_by": "Filter By", "sort_order": "Σειρά Ταξινόμησης", - "tags": "Ετικέτες" + "tags": "Ετικέτες", + "all": "All", + "reset": "Reset", + "asc": "Ascending", + "desc": "Descending" } }, "favorites": { @@ -591,6 +678,7 @@ "no_links": "Δεν Υπάρχουν Σύνδεσμοι" }, "player": { + "live": "LIVE", "error": "Σφάλμα", "failed_to_get_stream_url": "Αποτυχία λήψης του URL ροής", "an_error_occured_while_playing_the_video": "Παρουσιάστηκε σφάλμα κατά την αναπαραγωγή του βίντεο. Ελέγξτε τα αρχεία καταγραφής στις ρυθμίσεις.", @@ -608,7 +696,35 @@ "downloaded_file_message": "Do you want to play the downloaded file?", "downloaded_file_yes": "Yes", "downloaded_file_no": "No", - "downloaded_file_cancel": "Cancel" + "downloaded_file_cancel": "Cancel", + "swipe_down_settings": "Swipe down for settings", + "ends_at": "ends at", + "search_subtitles": "Search Subtitles", + "subtitle_tracks": "Tracks", + "subtitle_search": "Search & Download", + "download": "Download", + "subtitle_download_hint": "Downloaded subtitles will be saved to your library", + "using_jellyfin_server": "Using Jellyfin Server", + "language": "Language", + "results": "Results", + "searching": "Searching...", + "search_failed": "Search failed", + "no_subtitle_provider": "No subtitle provider configured on server", + "no_subtitles_found": "No subtitles found", + "add_opensubtitles_key_hint": "Add OpenSubtitles API key in settings for client-side fallback", + "settings": "Settings", + "skip_intro": "Skip Intro", + "skip_credits": "Skip Credits", + "stopPlayback": "Stop Playback", + "stopPlayingTitle": "Stop playing \"{{title}}\"?", + "stopPlayingConfirm": "Are you sure you want to stop playback?", + "downloaded": "Downloaded" + }, + "chapters": { + "title": "Chapters", + "chapter_number": "Chapter {{number}}", + "open": "Open chapters", + "close": "Close chapters" }, "item_card": { "next_up": "Επόμενο Επάνω", @@ -617,6 +733,11 @@ "series": "Σειρά", "seasons": "Περίοδοι", "season": "Σεζόν", + "from_this_series": "From This Series", + "more_from_this_season": "More from this Season", + "view_series": "View Series", + "view_season": "View Season", + "select_season": "Select Season", "no_episodes_for_this_season": "Δεν υπάρχουν επεισόδια για αυτή τη σεζόν", "overview": "Επισκόπηση", "more_with": "More with {{name}}", @@ -627,10 +748,21 @@ "media_options": "Media Options", "quality": "Ποιότητα", "audio": "Ήχος", - "subtitles": "Υπότιτλος", + "subtitles": { + "label": "Subtitle", + "none": "None", + "tracks": "Tracks" + }, "show_more": "Εμφάνιση Περισσότερων", "show_less": "Εμφάνιση Λιγότερων", + "left": "left", + "more_info": "More Info", + "director": "Director", + "cast": "Cast", + "technical_details": "Technical Details", "appeared_in": "Εμφανίστηκε Σε", + "movies": "Movies", + "shows": "Shows", "could_not_load_item": "Αδύνατη Η Φόρτωση Του Στοιχείου", "none": "Κανένα", "download": { @@ -641,7 +773,13 @@ "download_x_item": "Λήψη Αντικειμένων {{item_count}}", "download_unwatched_only": "Μόνο Χωρίς Παρακολούθηση", "download_button": "Λήψη" - } + }, + "mark_played": "Mark as Watched", + "mark_unplayed": "Mark as Unwatched", + "resume_playback": "Resume Playback", + "resume_playback_description": "Do you want to continue where you left off or start from the beginning?", + "play_from_start": "Play from Start", + "continue_from": "Continue from {{time}}" }, "live_tv": { "next": "Επόμενο", @@ -652,7 +790,18 @@ "movies": "Ταινίες", "sports": "Αθλητισμός", "for_kids": "Για Παιδιά", - "news": "Νέα" + "news": "Νέα", + "page_of": "Page {{current}} of {{total}}", + "no_programs": "No programs available", + "no_channels": "No channels available", + "tabs": { + "programs": "Programs", + "guide": "Guide", + "channels": "Channels", + "recordings": "Recordings", + "schedule": "Schedule", + "series": "Series" + } }, "jellyseerr": { "confirm": "Επιβεβαίωση", @@ -697,6 +846,12 @@ "decline": "Decline", "requested_by": "Requested by {{user}}", "unknown_user": "Unknown User", + "select": "Select", + "request_all": "Request All", + "request_seasons": "Request Seasons", + "select_seasons": "Select Seasons", + "request_selected": "Request Selected", + "n_selected": "{{count}} selected", "toasts": { "jellyseer_does_not_meet_requirements": "Ο διακομιστής Seerr δεν πληροί τις ελάχιστες απαιτήσεις έκδοσης! Παρακαλούμε ενημερώστε τουλάχιστον σε 2.0.0", "jellyseerr_test_failed": "Ο έλεγχος Seerr απέτυχε. Παρακαλώ προσπαθήστε ξανά.", @@ -716,7 +871,8 @@ "search": "Αναζήτηση", "library": "Βιβλιοθήκη", "custom_links": "Προσαρμοσμένοι Σύνδεσμοι", - "favorites": "Αγαπημένα" + "favorites": "Αγαπημένα", + "settings": "Settings" }, "music": { "title": "Music", @@ -841,5 +997,36 @@ "show": "This show", "all": "All media (default)" } + }, + "companion_login": { + "title": "Pair with TV", + "align_qr": "Align the QR code within the frame", + "enter_code_manually": "Enter code manually", + "pairing_enter_credentials": "Enter credentials for TV", + "pairing_code_label": "Pairing code", + "server": "Server", + "authorize_button": "Authorize", + "authorizing": "Authorizing...", + "scan_again": "Scan Again", + "done": "Done", + "success_title": "Authorization Sent", + "pairing_tv_connecting": "The TV is connecting to your account", + "error_title": "Authorization Failed", + "error_invalid_qr": "Invalid QR code. Please scan the TV pairing code.", + "error_generic": "Something went wrong. Please try again.", + "error_permission_denied": "Camera permission is required to scan QR codes.", + "login_as": "Log in as {{username}}?", + "on_server": "on {{server}}", + "use_different_user": "Use a different user", + "open_settings": "Open Settings" + }, + "pairing": { + "pair_with_phone": "Pair with Phone", + "pair_with_phone_title": "Login TV", + "pair_with_phone_description": "Scan the QR code displayed on your TV to log in", + "waiting_for_phone": "Waiting for phone...", + "scan_with_phone": "Scan with the Streamyfin app on your phone", + "logging_in": "Logging in...", + "logging_in_description": "Connecting to your server" } } diff --git a/translations/es.json b/translations/es.json index c98493d93..509812805 100644 --- a/translations/es.json +++ b/translations/es.json @@ -4,6 +4,9 @@ "error_title": "Error", "login_title": "Iniciar sesión", "login_to_title": "Iniciar sesión en", + "select_user": "Select a user to log in", + "add_user_to_login": "Add a user to log in", + "add_user": "Add User", "username_placeholder": "Nombre de usuario", "password_placeholder": "Contraseña", "login_button": "Iniciar sesión", @@ -42,7 +45,13 @@ "accounts_count": "{{count}} cuentas", "select_account": "Seleccione una cuenta", "add_account": "Añadir cuenta", - "remove_account_description": "Esto eliminará las credenciales guardadas para {{username}}." + "remove_account_description": "Esto eliminará las credenciales guardadas para {{username}}.", + "remove_server": "Remove Server", + "remove_server_description": "This will remove {{server}} and all saved accounts from your list.", + "select_your_server": "Select Your Server", + "add_server_to_get_started": "Add a server to get started", + "add_server": "Add Server", + "change_server": "Change Server" }, "save_account": { "title": "Guardar Cuenta", @@ -86,6 +95,7 @@ "oops": "¡Vaya!", "error_message": "Algo ha salido mal.\nPor favor, cierra la sesión y vuelve a iniciar.", "continue_watching": "Seguir viendo", + "continue": "Continue", "next_up": "A continuación", "continue_and_next_up": "Continuar y siguiente", "recently_added_in": "Recientemente añadido en {{libraryName}}", @@ -109,6 +119,12 @@ "settings": { "settings_title": "Configuración", "log_out_button": "Cerrar sesión", + "switch_user": { + "title": "Switch User", + "account": "Account", + "switch_user": "Switch User on This Server", + "current": "current" + }, "categories": { "title": "Categorías" }, @@ -121,7 +137,16 @@ "appearance": { "title": "Apariencia", "merge_next_up_continue_watching": "Fusionar continuar viendo y siguiente", - "hide_remote_session_button": "Ocultar botón de sesión remota" + "hide_remote_session_button": "Ocultar botón de sesión remota", + "show_home_backdrop": "Dynamic Home Backdrop", + "show_hero_carousel": "Hero Carousel", + "show_series_poster_on_episode": "Show Series Poster on Episodes", + "theme_music": "Theme Music", + "display_size": "Display Size", + "display_size_small": "Small", + "display_size_default": "Default", + "display_size_large": "Large", + "display_size_extra_large": "Extra Large" }, "network": { "title": "Cadena", @@ -174,6 +199,22 @@ "rewind_length": "Longitud de retroceso", "seconds_unit": "s" }, + "buffer": { + "title": "Buffer Settings", + "cache_mode": "Cache Mode", + "cache_auto": "Auto", + "cache_yes": "Enabled", + "cache_no": "Disabled", + "buffer_duration": "Buffer Duration", + "max_cache_size": "Max Cache Size", + "max_backward_cache": "Max Backward Cache" + }, + "vo_driver": { + "title": "Video Output", + "vo_mode": "VO Driver", + "gpu_next": "gpu-next (Recommended)", + "gpu": "gpu" + }, "gesture_controls": { "gesture_controls_title": "Controles de gestos", "horizontal_swipe_skip": "Deslizar horizontal para omitir", @@ -256,7 +297,23 @@ "subtitle_font": "Fuente de los subtítulos", "ksplayer_title": "Ajustes de KSPlayer", "hardware_decode": "Decodificación de hardware", - "hardware_decode_description": "Utilizar la aceleración de hardware para la decodificación de vídeo. Deshabilite si experimenta problemas de reproducción." + "hardware_decode_description": "Utilizar la aceleración de hardware para la decodificación de vídeo. Deshabilite si experimenta problemas de reproducción.", + "opensubtitles_title": "OpenSubtitles", + "opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.", + "opensubtitles_api_key": "API Key", + "opensubtitles_api_key_placeholder": "Enter API key...", + "opensubtitles_get_key": "Get your free API key at opensubtitles.com/en/consumers", + "mpv_subtitle_scale": "Subtitle Scale", + "mpv_subtitle_margin_y": "Vertical Margin", + "mpv_subtitle_align_x": "Horizontal Align", + "mpv_subtitle_align_y": "Vertical Align", + "align": { + "left": "Left", + "center": "Center", + "right": "Right", + "top": "Top", + "bottom": "Bottom" + } }, "vlc_subtitles": { "title": "Configuración de subtítulos VLC", @@ -406,7 +463,13 @@ "music_cache_cleared": "Caché de música eliminado", "delete_all_downloaded_songs": "Eliminar todas las descargas", "downloaded_songs_size": "{{tamaño}} descargado", - "downloaded_songs_deleted": "Canciones descargadas eliminadas" + "downloaded_songs_deleted": "Canciones descargadas eliminadas", + "clear_all_cache": "Clear All Cache", + "clear_all_cache_confirm": "Clear All Cache?", + "clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.", + "clear_all_cache_success": "Cache Cleared", + "clear_all_cache_success_desc": "All cache has been cleared successfully.", + "clear_all_cache_error_desc": "An error occurred while clearing the cache." }, "intro": { "title": "Intro", @@ -430,6 +493,21 @@ "error_deleting_files": "Error al eliminar archivos", "background_downloads_enabled": "Descargas en segundo plano habilitadas", "background_downloads_disabled": "Descargas en segundo plano deshabilitadas" + }, + "security": { + "title": "Security", + "inactivity_timeout": { + "title": "Inactivity Timeout", + "description": "Auto logout after inactivity", + "disabled": "Disabled", + "1_minute": "1 minute", + "5_minutes": "5 minutes", + "15_minutes": "15 minutes", + "30_minutes": "30 minutes", + "1_hour": "1 hour", + "4_hours": "4 hours", + "24_hours": "24 hours" + } } }, "sessions": { @@ -492,6 +570,7 @@ } }, "common": { + "no_results": "No Results", "select": "Seleccionar", "no_trailer_available": "No hay tráiler disponible", "video": "Vídeo", @@ -501,13 +580,16 @@ "none": "Nada", "track": "Pista", "cancel": "Cancelar", + "stop": "Stop", "delete": "Borrar", "ok": "Aceptar", "remove": "Eliminar", "next": "Siguiente", "back": "Atrás", "continue": "Continuar", - "verifying": "Verificando..." + "verifying": "Verificando...", + "login": "Login", + "refresh": "Refresh" }, "search": { "search": "Buscar...", @@ -556,6 +638,7 @@ "movies": "Películas", "series": "Series", "boxsets": "Colecciones", + "playlists": "Playlists", "items": "Elementos" }, "options": { @@ -574,7 +657,11 @@ "sort_by": "Ordenar por", "filter_by": "Filtrar por", "sort_order": "Ordenar", - "tags": "Etiquetas" + "tags": "Etiquetas", + "all": "All", + "reset": "Reset", + "asc": "Ascending", + "desc": "Descending" } }, "favorites": { @@ -591,6 +678,7 @@ "no_links": "Sin enlaces" }, "player": { + "live": "LIVE", "error": "Error", "failed_to_get_stream_url": "Error al obtener la URL del Steam", "an_error_occured_while_playing_the_video": "Ha ocurrido un error al reproducir el vídeo. Comprueba los registros en la configuración.", @@ -608,7 +696,35 @@ "downloaded_file_message": "¿Quieres reproducir el archivo descargado?", "downloaded_file_yes": "Sí", "downloaded_file_no": "No", - "downloaded_file_cancel": "Cancelar" + "downloaded_file_cancel": "Cancelar", + "swipe_down_settings": "Swipe down for settings", + "ends_at": "ends at", + "search_subtitles": "Search Subtitles", + "subtitle_tracks": "Tracks", + "subtitle_search": "Search & Download", + "download": "Download", + "subtitle_download_hint": "Downloaded subtitles will be saved to your library", + "using_jellyfin_server": "Using Jellyfin Server", + "language": "Language", + "results": "Results", + "searching": "Searching...", + "search_failed": "Search failed", + "no_subtitle_provider": "No subtitle provider configured on server", + "no_subtitles_found": "No subtitles found", + "add_opensubtitles_key_hint": "Add OpenSubtitles API key in settings for client-side fallback", + "settings": "Settings", + "skip_intro": "Skip Intro", + "skip_credits": "Skip Credits", + "stopPlayback": "Stop Playback", + "stopPlayingTitle": "Stop playing \"{{title}}\"?", + "stopPlayingConfirm": "Are you sure you want to stop playback?", + "downloaded": "Downloaded" + }, + "chapters": { + "title": "Chapters", + "chapter_number": "Chapter {{number}}", + "open": "Open chapters", + "close": "Close chapters" }, "item_card": { "next_up": "A continuación", @@ -617,6 +733,11 @@ "series": "Series", "seasons": "Temporadas", "season": "Temporada", + "from_this_series": "From This Series", + "more_from_this_season": "More from this Season", + "view_series": "View Series", + "view_season": "View Season", + "select_season": "Select Season", "no_episodes_for_this_season": "No hay episodios para esta temporada", "overview": "Resumen", "more_with": "Más con {{name}}", @@ -627,10 +748,21 @@ "media_options": "Opciones de medios", "quality": "Calidad", "audio": "Audio", - "subtitles": "Subtítulos", + "subtitles": { + "label": "Subtitle", + "none": "None", + "tracks": "Tracks" + }, "show_more": "Mostrar más", "show_less": "Mostrar menos", + "left": "left", + "more_info": "More Info", + "director": "Director", + "cast": "Cast", + "technical_details": "Technical Details", "appeared_in": "Apareció en", + "movies": "Movies", + "shows": "Shows", "could_not_load_item": "No se pudo cargar el ítem", "none": "Ninguno", "download": { @@ -641,7 +773,13 @@ "download_x_item": "Descargar {{item_count}} ítems", "download_unwatched_only": "No visto", "download_button": "Descargar" - } + }, + "mark_played": "Mark as Watched", + "mark_unplayed": "Mark as Unwatched", + "resume_playback": "Resume Playback", + "resume_playback_description": "Do you want to continue where you left off or start from the beginning?", + "play_from_start": "Play from Start", + "continue_from": "Continue from {{time}}" }, "live_tv": { "next": "Siguiente", @@ -652,7 +790,18 @@ "movies": "Películas", "sports": "Deportes", "for_kids": "Para niños", - "news": "Noticias" + "news": "Noticias", + "page_of": "Page {{current}} of {{total}}", + "no_programs": "No programs available", + "no_channels": "No channels available", + "tabs": { + "programs": "Programs", + "guide": "Guide", + "channels": "Channels", + "recordings": "Recordings", + "schedule": "Schedule", + "series": "Series" + } }, "jellyseerr": { "confirm": "Confirmar", @@ -697,6 +846,12 @@ "decline": "Rechazar", "requested_by": "Solicitado por {{user}}", "unknown_user": "Usuario desconocido", + "select": "Select", + "request_all": "Request All", + "request_seasons": "Request Seasons", + "select_seasons": "Select Seasons", + "request_selected": "Request Selected", + "n_selected": "{{count}} selected", "toasts": { "jellyseer_does_not_meet_requirements": "¡Jellyseer no cumple con los requisitos! Por favor, actualízalo al menos a la versión 2.0.0.", "jellyseerr_test_failed": "La prueba de Jellyseerr ha fallado. Por favor inténtalo de nuevo.", @@ -716,7 +871,8 @@ "search": "Buscar", "library": "Bibliotecas", "custom_links": "Enlaces personalizados", - "favorites": "Favoritos" + "favorites": "Favoritos", + "settings": "Settings" }, "music": { "title": "Música", @@ -841,5 +997,36 @@ "show": "Este programa", "all": "Todos los medios (por defecto)" } + }, + "companion_login": { + "title": "Pair with TV", + "align_qr": "Align the QR code within the frame", + "enter_code_manually": "Enter code manually", + "pairing_enter_credentials": "Enter credentials for TV", + "pairing_code_label": "Pairing code", + "server": "Server", + "authorize_button": "Authorize", + "authorizing": "Authorizing...", + "scan_again": "Scan Again", + "done": "Done", + "success_title": "Authorization Sent", + "pairing_tv_connecting": "The TV is connecting to your account", + "error_title": "Authorization Failed", + "error_invalid_qr": "Invalid QR code. Please scan the TV pairing code.", + "error_generic": "Something went wrong. Please try again.", + "error_permission_denied": "Camera permission is required to scan QR codes.", + "login_as": "Log in as {{username}}?", + "on_server": "on {{server}}", + "use_different_user": "Use a different user", + "open_settings": "Open Settings" + }, + "pairing": { + "pair_with_phone": "Pair with Phone", + "pair_with_phone_title": "Login TV", + "pair_with_phone_description": "Scan the QR code displayed on your TV to log in", + "waiting_for_phone": "Waiting for phone...", + "scan_with_phone": "Scan with the Streamyfin app on your phone", + "logging_in": "Logging in...", + "logging_in_description": "Connecting to your server" } } diff --git a/translations/fi.json b/translations/fi.json index 67e1da4db..9c8c1f68d 100644 --- a/translations/fi.json +++ b/translations/fi.json @@ -4,6 +4,9 @@ "error_title": "Virhe", "login_title": "Kirjaudu sisään", "login_to_title": "Kirjaudu sisään palveluun", + "select_user": "Select a user to log in", + "add_user_to_login": "Add a user to log in", + "add_user": "Add User", "username_placeholder": "Käyttäjätunnus", "password_placeholder": "Salasana", "login_button": "Kirjaudu sisään", @@ -42,7 +45,13 @@ "accounts_count": "{{count}} accounts", "select_account": "Select Account", "add_account": "Add Account", - "remove_account_description": "This will remove the saved credentials for {{username}}." + "remove_account_description": "This will remove the saved credentials for {{username}}.", + "remove_server": "Remove Server", + "remove_server_description": "This will remove {{server}} and all saved accounts from your list.", + "select_your_server": "Select Your Server", + "add_server_to_get_started": "Add a server to get started", + "add_server": "Add Server", + "change_server": "Change Server" }, "save_account": { "title": "Save Account", @@ -86,6 +95,7 @@ "oops": "Ups!", "error_message": "Jotain meni pieleen.\nKirjaudu ulos ja takaisin sisään.", "continue_watching": "Jatka katsomista", + "continue": "Continue", "next_up": "Seuraavaksi", "continue_and_next_up": "Continue & Next Up", "recently_added_in": "Äskettäin lisätty {{libraryName}}-kirjastoon", @@ -109,6 +119,12 @@ "settings": { "settings_title": "Asetukset", "log_out_button": "Kirjaudu ulos", + "switch_user": { + "title": "Switch User", + "account": "Account", + "switch_user": "Switch User on This Server", + "current": "current" + }, "categories": { "title": "Kategoriat" }, @@ -121,7 +137,16 @@ "appearance": { "title": "Ulkoasu", "merge_next_up_continue_watching": "Merge Continue Watching & Next Up", - "hide_remote_session_button": "Hide Remote Session Button" + "hide_remote_session_button": "Hide Remote Session Button", + "show_home_backdrop": "Dynamic Home Backdrop", + "show_hero_carousel": "Hero Carousel", + "show_series_poster_on_episode": "Show Series Poster on Episodes", + "theme_music": "Theme Music", + "display_size": "Display Size", + "display_size_small": "Small", + "display_size_default": "Default", + "display_size_large": "Large", + "display_size_extra_large": "Extra Large" }, "network": { "title": "Network", @@ -174,6 +199,22 @@ "rewind_length": "Taaksepäin hyppäämisen pituus", "seconds_unit": "s" }, + "buffer": { + "title": "Buffer Settings", + "cache_mode": "Cache Mode", + "cache_auto": "Auto", + "cache_yes": "Enabled", + "cache_no": "Disabled", + "buffer_duration": "Buffer Duration", + "max_cache_size": "Max Cache Size", + "max_backward_cache": "Max Backward Cache" + }, + "vo_driver": { + "title": "Video Output", + "vo_mode": "VO Driver", + "gpu_next": "gpu-next (Recommended)", + "gpu": "gpu" + }, "gesture_controls": { "gesture_controls_title": "Ele Ohjaus", "horizontal_swipe_skip": "Ohita vaakatasossa pyyhkäisemällä", @@ -256,7 +297,23 @@ "subtitle_font": "Subtitle Font", "ksplayer_title": "KSPlayer Settings", "hardware_decode": "Hardware Decoding", - "hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues." + "hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues.", + "opensubtitles_title": "OpenSubtitles", + "opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.", + "opensubtitles_api_key": "API Key", + "opensubtitles_api_key_placeholder": "Enter API key...", + "opensubtitles_get_key": "Get your free API key at opensubtitles.com/en/consumers", + "mpv_subtitle_scale": "Subtitle Scale", + "mpv_subtitle_margin_y": "Vertical Margin", + "mpv_subtitle_align_x": "Horizontal Align", + "mpv_subtitle_align_y": "Vertical Align", + "align": { + "left": "Left", + "center": "Center", + "right": "Right", + "top": "Top", + "bottom": "Bottom" + } }, "vlc_subtitles": { "title": "VLC Subtitle Settings", @@ -406,7 +463,13 @@ "music_cache_cleared": "Music cache cleared", "delete_all_downloaded_songs": "Delete All Downloaded Songs", "downloaded_songs_size": "{{size}} downloaded", - "downloaded_songs_deleted": "Downloaded songs deleted" + "downloaded_songs_deleted": "Downloaded songs deleted", + "clear_all_cache": "Clear All Cache", + "clear_all_cache_confirm": "Clear All Cache?", + "clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.", + "clear_all_cache_success": "Cache Cleared", + "clear_all_cache_success_desc": "All cache has been cleared successfully.", + "clear_all_cache_error_desc": "An error occurred while clearing the cache." }, "intro": { "title": "Esittely", @@ -430,6 +493,21 @@ "error_deleting_files": "Virhe tiedostojen poistamisessa", "background_downloads_enabled": "Taustalataukset käytössä", "background_downloads_disabled": "Taustalataukset pois käytöstä" + }, + "security": { + "title": "Security", + "inactivity_timeout": { + "title": "Inactivity Timeout", + "description": "Auto logout after inactivity", + "disabled": "Disabled", + "1_minute": "1 minute", + "5_minutes": "5 minutes", + "15_minutes": "15 minutes", + "30_minutes": "30 minutes", + "1_hour": "1 hour", + "4_hours": "4 hours", + "24_hours": "24 hours" + } } }, "sessions": { @@ -492,6 +570,7 @@ } }, "common": { + "no_results": "No Results", "select": "Valitse", "no_trailer_available": "Perävaunua ei saatavilla", "video": "Video", @@ -501,13 +580,16 @@ "none": "Ei mitään", "track": "Track", "cancel": "Cancel", + "stop": "Stop", "delete": "Delete", "ok": "OK", "remove": "Remove", "next": "Next", "back": "Back", "continue": "Continue", - "verifying": "Verifying..." + "verifying": "Verifying...", + "login": "Login", + "refresh": "Refresh" }, "search": { "search": "Haku...", @@ -556,6 +638,7 @@ "movies": "elokuvat", "series": "sarjat", "boxsets": "bokset", + "playlists": "Playlists", "items": "kohteet" }, "options": { @@ -574,7 +657,11 @@ "sort_by": "Lajittele", "filter_by": "Filter By", "sort_order": "Lajittelujärjestys", - "tags": "Tunnisteet" + "tags": "Tunnisteet", + "all": "All", + "reset": "Reset", + "asc": "Ascending", + "desc": "Descending" } }, "favorites": { @@ -591,6 +678,7 @@ "no_links": "Ei Linkkejä" }, "player": { + "live": "LIVE", "error": "Virhe", "failed_to_get_stream_url": "Lähetyksen URL-osoitteen haku epäonnistui", "an_error_occured_while_playing_the_video": "Videon toiston yhteydessä tapahtui virhe. Tarkista lokit asetuksista.", @@ -608,7 +696,35 @@ "downloaded_file_message": "Haluatko toistaa ladatun tiedoston?", "downloaded_file_yes": "Kyllä", "downloaded_file_no": "Ei", - "downloaded_file_cancel": "Peruuta" + "downloaded_file_cancel": "Peruuta", + "swipe_down_settings": "Swipe down for settings", + "ends_at": "ends at", + "search_subtitles": "Search Subtitles", + "subtitle_tracks": "Tracks", + "subtitle_search": "Search & Download", + "download": "Download", + "subtitle_download_hint": "Downloaded subtitles will be saved to your library", + "using_jellyfin_server": "Using Jellyfin Server", + "language": "Language", + "results": "Results", + "searching": "Searching...", + "search_failed": "Search failed", + "no_subtitle_provider": "No subtitle provider configured on server", + "no_subtitles_found": "No subtitles found", + "add_opensubtitles_key_hint": "Add OpenSubtitles API key in settings for client-side fallback", + "settings": "Settings", + "skip_intro": "Skip Intro", + "skip_credits": "Skip Credits", + "stopPlayback": "Stop Playback", + "stopPlayingTitle": "Stop playing \"{{title}}\"?", + "stopPlayingConfirm": "Are you sure you want to stop playback?", + "downloaded": "Downloaded" + }, + "chapters": { + "title": "Chapters", + "chapter_number": "Chapter {{number}}", + "open": "Open chapters", + "close": "Close chapters" }, "item_card": { "next_up": "Seuraavaksi", @@ -617,6 +733,11 @@ "series": "Sarjat", "seasons": "Kaudet", "season": "Kausi", + "from_this_series": "From This Series", + "more_from_this_season": "More from this Season", + "view_series": "View Series", + "view_season": "View Season", + "select_season": "Select Season", "no_episodes_for_this_season": "Ei jaksoja tälle kaudelle", "overview": "Yleiskatsaus", "more_with": "Enemmän {{name}} kanssa", @@ -627,10 +748,21 @@ "media_options": "Media-asetukset", "quality": "Laatu", "audio": "Ääni", - "subtitles": "Tekstitys", + "subtitles": { + "label": "Subtitle", + "none": "None", + "tracks": "Tracks" + }, "show_more": "Näytä Lisää", "show_less": "Näytä Vähemmän", + "left": "left", + "more_info": "More Info", + "director": "Director", + "cast": "Cast", + "technical_details": "Technical Details", "appeared_in": "Esiintyy Sisään", + "movies": "Movies", + "shows": "Shows", "could_not_load_item": "Kohdetta Ei Voitu Ladata", "none": "Ei mitään", "download": { @@ -641,7 +773,13 @@ "download_x_item": "Lataa {{item_count}} Kohteita", "download_unwatched_only": "Vain Katsomattomat", "download_button": "Lataa" - } + }, + "mark_played": "Mark as Watched", + "mark_unplayed": "Mark as Unwatched", + "resume_playback": "Resume Playback", + "resume_playback_description": "Do you want to continue where you left off or start from the beginning?", + "play_from_start": "Play from Start", + "continue_from": "Continue from {{time}}" }, "live_tv": { "next": "Seuraava", @@ -652,7 +790,18 @@ "movies": "Elokuvat", "sports": "Urheilu", "for_kids": "Lapsille", - "news": "Uutiset" + "news": "Uutiset", + "page_of": "Page {{current}} of {{total}}", + "no_programs": "No programs available", + "no_channels": "No channels available", + "tabs": { + "programs": "Programs", + "guide": "Guide", + "channels": "Channels", + "recordings": "Recordings", + "schedule": "Schedule", + "series": "Series" + } }, "jellyseerr": { "confirm": "Vahvista", @@ -697,6 +846,12 @@ "decline": "Hylkää", "requested_by": "Käyttäjän {{user}} pyynnöstä", "unknown_user": "Tuntematon käyttäjä", + "select": "Select", + "request_all": "Request All", + "request_seasons": "Request Seasons", + "select_seasons": "Select Seasons", + "request_selected": "Request Selected", + "n_selected": "{{count}} selected", "toasts": { "jellyseer_does_not_meet_requirements": "Jellyseerr-palvelin ei täytä vähimmäisversiovaatimuksia! Päivitä vähintään versioon 2.0.0", "jellyseerr_test_failed": "Jellyseerr-testi epäonnistui. Yritä uudelleen.", @@ -716,7 +871,8 @@ "search": "Haku", "library": "Kirjasto", "custom_links": "Mukautetut linkit", - "favorites": "Suosikit" + "favorites": "Suosikit", + "settings": "Settings" }, "music": { "title": "Music", @@ -841,5 +997,36 @@ "show": "This show", "all": "All media (default)" } + }, + "companion_login": { + "title": "Pair with TV", + "align_qr": "Align the QR code within the frame", + "enter_code_manually": "Enter code manually", + "pairing_enter_credentials": "Enter credentials for TV", + "pairing_code_label": "Pairing code", + "server": "Server", + "authorize_button": "Authorize", + "authorizing": "Authorizing...", + "scan_again": "Scan Again", + "done": "Done", + "success_title": "Authorization Sent", + "pairing_tv_connecting": "The TV is connecting to your account", + "error_title": "Authorization Failed", + "error_invalid_qr": "Invalid QR code. Please scan the TV pairing code.", + "error_generic": "Something went wrong. Please try again.", + "error_permission_denied": "Camera permission is required to scan QR codes.", + "login_as": "Log in as {{username}}?", + "on_server": "on {{server}}", + "use_different_user": "Use a different user", + "open_settings": "Open Settings" + }, + "pairing": { + "pair_with_phone": "Pair with Phone", + "pair_with_phone_title": "Login TV", + "pair_with_phone_description": "Scan the QR code displayed on your TV to log in", + "waiting_for_phone": "Waiting for phone...", + "scan_with_phone": "Scan with the Streamyfin app on your phone", + "logging_in": "Logging in...", + "logging_in_description": "Connecting to your server" } } diff --git a/translations/fr.json b/translations/fr.json index b2663cd6e..fd93a9e4f 100644 --- a/translations/fr.json +++ b/translations/fr.json @@ -4,6 +4,9 @@ "error_title": "Erreur", "login_title": "Se connecter", "login_to_title": "Se connecter à", + "select_user": "Select a user to log in", + "add_user_to_login": "Add a user to log in", + "add_user": "Add User", "username_placeholder": "Nom d'utilisateur", "password_placeholder": "Mot de passe", "login_button": "Se connecter", @@ -42,7 +45,13 @@ "accounts_count": "Comptes {{count}}", "select_account": "Sélectionnez un compte", "add_account": "Ajouter un compte", - "remove_account_description": "Cela supprimera les identifiants enregistrés pour {{username}}." + "remove_account_description": "Cela supprimera les identifiants enregistrés pour {{username}}.", + "remove_server": "Remove Server", + "remove_server_description": "This will remove {{server}} and all saved accounts from your list.", + "select_your_server": "Select Your Server", + "add_server_to_get_started": "Add a server to get started", + "add_server": "Add Server", + "change_server": "Change Server" }, "save_account": { "title": "Sauvegarder le compte", @@ -86,6 +95,7 @@ "oops": "Oups !", "error_message": "Quelque chose s'est mal passé.\nVeuillez vous reconnecter à nouveau.", "continue_watching": "Continuer à regarder", + "continue": "Continue", "next_up": "À suivre", "continue_and_next_up": "Continuer de regarder et à suivre", "recently_added_in": "Ajoutés récemment dans {{libraryName}}", @@ -109,6 +119,12 @@ "settings": { "settings_title": "Paramètres", "log_out_button": "Déconnexion", + "switch_user": { + "title": "Switch User", + "account": "Account", + "switch_user": "Switch User on This Server", + "current": "current" + }, "categories": { "title": "Catégories" }, @@ -121,7 +137,16 @@ "appearance": { "title": "Apparence", "merge_next_up_continue_watching": "Fusionner, continuer à regarder et à suivre", - "hide_remote_session_button": "Masquer le bouton de session distante" + "hide_remote_session_button": "Masquer le bouton de session distante", + "show_home_backdrop": "Dynamic Home Backdrop", + "show_hero_carousel": "Hero Carousel", + "show_series_poster_on_episode": "Show Series Poster on Episodes", + "theme_music": "Theme Music", + "display_size": "Display Size", + "display_size_small": "Small", + "display_size_default": "Default", + "display_size_large": "Large", + "display_size_extra_large": "Extra Large" }, "network": { "title": "Réseau", @@ -174,6 +199,22 @@ "rewind_length": "Durée de retour en arrière", "seconds_unit": "s" }, + "buffer": { + "title": "Buffer Settings", + "cache_mode": "Cache Mode", + "cache_auto": "Auto", + "cache_yes": "Enabled", + "cache_no": "Disabled", + "buffer_duration": "Buffer Duration", + "max_cache_size": "Max Cache Size", + "max_backward_cache": "Max Backward Cache" + }, + "vo_driver": { + "title": "Video Output", + "vo_mode": "VO Driver", + "gpu_next": "gpu-next (Recommended)", + "gpu": "gpu" + }, "gesture_controls": { "gesture_controls_title": "Commandes gestuelles", "horizontal_swipe_skip": "Glisser horizontalement pour passer", @@ -256,7 +297,23 @@ "subtitle_font": "Police des sous-titres", "ksplayer_title": "Paramètres de KSPlayer", "hardware_decode": "Décodage matériel", - "hardware_decode_description": "Utilisez l’accélération matérielle pour le décodage vidéo. Désactivez si vous rencontrez des problèmes de lecture." + "hardware_decode_description": "Utilisez l’accélération matérielle pour le décodage vidéo. Désactivez si vous rencontrez des problèmes de lecture.", + "opensubtitles_title": "OpenSubtitles", + "opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.", + "opensubtitles_api_key": "API Key", + "opensubtitles_api_key_placeholder": "Enter API key...", + "opensubtitles_get_key": "Get your free API key at opensubtitles.com/en/consumers", + "mpv_subtitle_scale": "Subtitle Scale", + "mpv_subtitle_margin_y": "Vertical Margin", + "mpv_subtitle_align_x": "Horizontal Align", + "mpv_subtitle_align_y": "Vertical Align", + "align": { + "left": "Left", + "center": "Center", + "right": "Right", + "top": "Top", + "bottom": "Bottom" + } }, "vlc_subtitles": { "title": "Paramètres des sous-titres VLC", @@ -406,7 +463,13 @@ "music_cache_cleared": "Cache de musique effacé", "delete_all_downloaded_songs": "Supprimer toutes les musiques téléchargées", "downloaded_songs_size": "{{size}} téléchargé", - "downloaded_songs_deleted": "Chansons téléchargées supprimées" + "downloaded_songs_deleted": "Chansons téléchargées supprimées", + "clear_all_cache": "Clear All Cache", + "clear_all_cache_confirm": "Clear All Cache?", + "clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.", + "clear_all_cache_success": "Cache Cleared", + "clear_all_cache_success_desc": "All cache has been cleared successfully.", + "clear_all_cache_error_desc": "An error occurred while clearing the cache." }, "intro": { "title": "Introduction", @@ -430,6 +493,21 @@ "error_deleting_files": "Erreur lors de la suppression des fichiers", "background_downloads_enabled": "Téléchargements en arrière-plan activés", "background_downloads_disabled": "Téléchargements en arrière-plan désactivés" + }, + "security": { + "title": "Security", + "inactivity_timeout": { + "title": "Inactivity Timeout", + "description": "Auto logout after inactivity", + "disabled": "Disabled", + "1_minute": "1 minute", + "5_minutes": "5 minutes", + "15_minutes": "15 minutes", + "30_minutes": "30 minutes", + "1_hour": "1 hour", + "4_hours": "4 hours", + "24_hours": "24 hours" + } } }, "sessions": { @@ -492,6 +570,7 @@ } }, "common": { + "no_results": "No Results", "select": "Sélectionner", "no_trailer_available": "Aucune bande-annonce disponible", "video": "Vidéo", @@ -501,13 +580,16 @@ "none": "Aucun", "track": "Suivre", "cancel": "Annuler", + "stop": "Stop", "delete": "Supprimer", "ok": "Ok", "remove": "Retirer", "next": "Suivant", "back": "Précédent", "continue": "Continuer", - "verifying": "Vérification..." + "verifying": "Vérification...", + "login": "Login", + "refresh": "Refresh" }, "search": { "search": "Rechercher...", @@ -556,6 +638,7 @@ "movies": "Films", "series": "Séries", "boxsets": "Coffrets ", + "playlists": "Playlists", "items": "Médias" }, "options": { @@ -574,7 +657,11 @@ "sort_by": "Trier par", "filter_by": "Filtrer par", "sort_order": "Ordre de tri", - "tags": "Tags" + "tags": "Tags", + "all": "All", + "reset": "Reset", + "asc": "Ascending", + "desc": "Descending" } }, "favorites": { @@ -591,6 +678,7 @@ "no_links": "Aucuns liens" }, "player": { + "live": "LIVE", "error": "Erreur", "failed_to_get_stream_url": "Échec de l'obtention de l'URL du flux", "an_error_occured_while_playing_the_video": "Une erreur s’est produite lors de la lecture de la vidéo. Vérifiez les journaux dans les paramètres.", @@ -608,7 +696,35 @@ "downloaded_file_message": "Voulez-vous lire le fichier téléchargé ?", "downloaded_file_yes": "Oui", "downloaded_file_no": "Non", - "downloaded_file_cancel": "Annuler" + "downloaded_file_cancel": "Annuler", + "swipe_down_settings": "Swipe down for settings", + "ends_at": "ends at", + "search_subtitles": "Search Subtitles", + "subtitle_tracks": "Tracks", + "subtitle_search": "Search & Download", + "download": "Download", + "subtitle_download_hint": "Downloaded subtitles will be saved to your library", + "using_jellyfin_server": "Using Jellyfin Server", + "language": "Language", + "results": "Results", + "searching": "Searching...", + "search_failed": "Search failed", + "no_subtitle_provider": "No subtitle provider configured on server", + "no_subtitles_found": "No subtitles found", + "add_opensubtitles_key_hint": "Add OpenSubtitles API key in settings for client-side fallback", + "settings": "Settings", + "skip_intro": "Skip Intro", + "skip_credits": "Skip Credits", + "stopPlayback": "Stop Playback", + "stopPlayingTitle": "Stop playing \"{{title}}\"?", + "stopPlayingConfirm": "Are you sure you want to stop playback?", + "downloaded": "Downloaded" + }, + "chapters": { + "title": "Chapters", + "chapter_number": "Chapter {{number}}", + "open": "Open chapters", + "close": "Close chapters" }, "item_card": { "next_up": "À suivre", @@ -617,6 +733,11 @@ "series": "Séries", "seasons": "Saisons", "season": "Saison", + "from_this_series": "From This Series", + "more_from_this_season": "More from this Season", + "view_series": "View Series", + "view_season": "View Season", + "select_season": "Select Season", "no_episodes_for_this_season": "Aucun épisode pour cette saison", "overview": "Aperçu", "more_with": "Plus avec {{name}}", @@ -627,10 +748,21 @@ "media_options": "Options média", "quality": "Qualité", "audio": "Audio", - "subtitles": "Sous-titres", + "subtitles": { + "label": "Subtitle", + "none": "None", + "tracks": "Tracks" + }, "show_more": "Afficher plus", "show_less": "Afficher moins", + "left": "left", + "more_info": "More Info", + "director": "Director", + "cast": "Cast", + "technical_details": "Technical Details", "appeared_in": "Apparu dans", + "movies": "Movies", + "shows": "Shows", "could_not_load_item": "Impossible de charger le média", "none": "Aucun", "download": { @@ -641,7 +773,13 @@ "download_x_item": "Télécharger {{item_count}} médias", "download_unwatched_only": "Non visionné uniquement", "download_button": "Télécharger" - } + }, + "mark_played": "Mark as Watched", + "mark_unplayed": "Mark as Unwatched", + "resume_playback": "Resume Playback", + "resume_playback_description": "Do you want to continue where you left off or start from the beginning?", + "play_from_start": "Play from Start", + "continue_from": "Continue from {{time}}" }, "live_tv": { "next": "Suivant", @@ -652,7 +790,18 @@ "movies": "Films", "sports": "Sports", "for_kids": "Pour enfants", - "news": "Actualités" + "news": "Actualités", + "page_of": "Page {{current}} of {{total}}", + "no_programs": "No programs available", + "no_channels": "No channels available", + "tabs": { + "programs": "Programs", + "guide": "Guide", + "channels": "Channels", + "recordings": "Recordings", + "schedule": "Schedule", + "series": "Series" + } }, "jellyseerr": { "confirm": "Confirmer", @@ -697,6 +846,12 @@ "decline": "Refuser", "requested_by": "Demandé par {{user}}", "unknown_user": "Utilisateur inconnu", + "select": "Select", + "request_all": "Request All", + "request_seasons": "Request Seasons", + "select_seasons": "Select Seasons", + "request_selected": "Request Selected", + "n_selected": "{{count}} selected", "toasts": { "jellyseer_does_not_meet_requirements": "Seerr ne répond pas aux exigences ! Veuillez mettre à jour au moins vers la version 2.0.0.", "jellyseerr_test_failed": "Le test Seerr a échoué. Veuillez réessayer.", @@ -716,7 +871,8 @@ "search": "Recherche", "library": "Bibliothèque", "custom_links": "Liens personnalisés", - "favorites": "Favoris" + "favorites": "Favoris", + "settings": "Settings" }, "music": { "title": "Musique", @@ -788,8 +944,8 @@ } }, "watchlists": { - "title": "Watchlists", - "my_watchlists": "My Watchlists", + "title": "Listes de lecture", + "my_watchlists": "Mes listes de lecture", "public_watchlists": "Watchlist publique", "create_title": "Créer une Watchlist", "edit_title": "Modifier la Watchlist", @@ -802,7 +958,7 @@ "name_placeholder": "Entrer le nom de la playlist", "description_label": "Description", "description_placeholder": "Entrez la description (facultatif)", - "is_public_label": "Public Watchlist", + "is_public_label": "Liste de lecture Publique", "is_public_description": "Autoriser d'autres personnes à voir cette liste de suivi", "allowed_type_label": "Type de contenu", "sort_order_label": "Ordre de tri par défaut", @@ -841,5 +997,36 @@ "show": "Cette série", "all": "Tous les médias (par défaut)" } + }, + "companion_login": { + "title": "Pair with TV", + "align_qr": "Align the QR code within the frame", + "enter_code_manually": "Enter code manually", + "pairing_enter_credentials": "Enter credentials for TV", + "pairing_code_label": "Pairing code", + "server": "Server", + "authorize_button": "Authorize", + "authorizing": "Authorizing...", + "scan_again": "Scan Again", + "done": "Done", + "success_title": "Authorization Sent", + "pairing_tv_connecting": "The TV is connecting to your account", + "error_title": "Authorization Failed", + "error_invalid_qr": "Invalid QR code. Please scan the TV pairing code.", + "error_generic": "Something went wrong. Please try again.", + "error_permission_denied": "Camera permission is required to scan QR codes.", + "login_as": "Log in as {{username}}?", + "on_server": "on {{server}}", + "use_different_user": "Use a different user", + "open_settings": "Open Settings" + }, + "pairing": { + "pair_with_phone": "Pair with Phone", + "pair_with_phone_title": "Login TV", + "pair_with_phone_description": "Scan the QR code displayed on your TV to log in", + "waiting_for_phone": "Waiting for phone...", + "scan_with_phone": "Scan with the Streamyfin app on your phone", + "logging_in": "Logging in...", + "logging_in_description": "Connecting to your server" } } diff --git a/translations/he.json b/translations/he.json index 3db49f1fe..f65f6172b 100644 --- a/translations/he.json +++ b/translations/he.json @@ -4,6 +4,9 @@ "error_title": "שגיאה", "login_title": "התחבר", "login_to_title": "התחבר אל", + "select_user": "Select a user to log in", + "add_user_to_login": "Add a user to log in", + "add_user": "Add User", "username_placeholder": "שם משתמש", "password_placeholder": "סיסמה", "login_button": "התחבר", @@ -39,10 +42,16 @@ "please_login_again": "Your saved session has expired. Please log in again.", "remove_saved_login": "Remove Saved Login", "remove_saved_login_description": "This will remove your saved credentials for this server. You'll need to enter your username and password again next time.", - "accounts_count": "{{count}} accounts", + "accounts_count": "{{count}} חשבונות", "select_account": "Select Account", "add_account": "Add Account", - "remove_account_description": "This will remove the saved credentials for {{username}}." + "remove_account_description": "This will remove the saved credentials for {{username}}.", + "remove_server": "Remove Server", + "remove_server_description": "This will remove {{server}} and all saved accounts from your list.", + "select_your_server": "Select Your Server", + "add_server_to_get_started": "Add a server to get started", + "add_server": "Add Server", + "change_server": "Change Server" }, "save_account": { "title": "Save Account", @@ -86,6 +95,7 @@ "oops": "אופס!", "error_message": "קרתה תקלה. אנא התנתק והתחבר מחדש.", "continue_watching": "המשך לצפות", + "continue": "Continue", "next_up": "הבא בתור", "continue_and_next_up": "Continue & Next Up", "recently_added_in": "התווסף לאחרונה ב-{{libraryName}}", @@ -109,19 +119,34 @@ "settings": { "settings_title": "הגדרות", "log_out_button": "התנתק", + "switch_user": { + "title": "Switch User", + "account": "Account", + "switch_user": "Switch User on This Server", + "current": "current" + }, "categories": { - "title": "Categories" + "title": "קטגוריות" }, "playback_controls": { "title": "Playback & Controls" }, "audio_subtitles": { - "title": "Audio & Subtitles" + "title": "שמע וכתוביות" }, "appearance": { - "title": "Appearance", + "title": "מראה", "merge_next_up_continue_watching": "Merge Continue Watching & Next Up", - "hide_remote_session_button": "Hide Remote Session Button" + "hide_remote_session_button": "Hide Remote Session Button", + "show_home_backdrop": "Dynamic Home Backdrop", + "show_hero_carousel": "Hero Carousel", + "show_series_poster_on_episode": "Show Series Poster on Episodes", + "theme_music": "Theme Music", + "display_size": "Display Size", + "display_size_small": "Small", + "display_size_default": "Default", + "display_size_large": "Large", + "display_size_extra_large": "Extra Large" }, "network": { "title": "Network", @@ -174,6 +199,22 @@ "rewind_length": "אורך הזזה אחורה", "seconds_unit": "שנ'" }, + "buffer": { + "title": "Buffer Settings", + "cache_mode": "Cache Mode", + "cache_auto": "Auto", + "cache_yes": "Enabled", + "cache_no": "Disabled", + "buffer_duration": "Buffer Duration", + "max_cache_size": "Max Cache Size", + "max_backward_cache": "Max Backward Cache" + }, + "vo_driver": { + "title": "Video Output", + "vo_mode": "VO Driver", + "gpu_next": "gpu-next (Recommended)", + "gpu": "gpu" + }, "gesture_controls": { "gesture_controls_title": "פקדי מחוות", "horizontal_swipe_skip": "החלקה אופקית לדילוג", @@ -188,7 +229,7 @@ "hide_brightness_slider_description": "Hide the brightness slider in the video player" }, "audio": { - "audio_title": "אודיו", + "audio_title": "שמע", "set_audio_track": "בחר רצועת שמע מהפריט הקודם", "audio_language": "שפת שמע", "audio_hint": "בחר שפת שמע אוטומטית.", @@ -256,7 +297,23 @@ "subtitle_font": "Subtitle Font", "ksplayer_title": "KSPlayer Settings", "hardware_decode": "Hardware Decoding", - "hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues." + "hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues.", + "opensubtitles_title": "OpenSubtitles", + "opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.", + "opensubtitles_api_key": "API Key", + "opensubtitles_api_key_placeholder": "Enter API key...", + "opensubtitles_get_key": "Get your free API key at opensubtitles.com/en/consumers", + "mpv_subtitle_scale": "Subtitle Scale", + "mpv_subtitle_margin_y": "Vertical Margin", + "mpv_subtitle_align_x": "Horizontal Align", + "mpv_subtitle_align_y": "Vertical Align", + "align": { + "left": "Left", + "center": "Center", + "right": "Right", + "top": "Top", + "bottom": "Bottom" + } }, "vlc_subtitles": { "title": "VLC Subtitle Settings", @@ -271,8 +328,8 @@ "margin": "Bottom Margin" }, "video_player": { - "title": "Video Player", - "video_player": "Video Player", + "title": "נגן וידאו", + "video_player": "נגן וידאו", "video_player_description": "Choose which video player to use on iOS.", "ksplayer": "KSPlayer", "vlc": "VLC" @@ -314,7 +371,7 @@ "downloads_title": "הורדות" }, "music": { - "title": "Music", + "title": "מוזיקה", "playback_title": "Playback", "playback_description": "Configure how music is played.", "prefer_downloaded": "Prefer Downloaded Songs", @@ -406,10 +463,16 @@ "music_cache_cleared": "Music cache cleared", "delete_all_downloaded_songs": "Delete All Downloaded Songs", "downloaded_songs_size": "{{size}} downloaded", - "downloaded_songs_deleted": "Downloaded songs deleted" + "downloaded_songs_deleted": "Downloaded songs deleted", + "clear_all_cache": "Clear All Cache", + "clear_all_cache_confirm": "Clear All Cache?", + "clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.", + "clear_all_cache_success": "Cache Cleared", + "clear_all_cache_success_desc": "All cache has been cleared successfully.", + "clear_all_cache_error_desc": "An error occurred while clearing the cache." }, "intro": { - "title": "Intro", + "title": "הקדמה", "show_intro": "הצג פתיח", "reset_intro": "אפס פתיח" }, @@ -430,6 +493,21 @@ "error_deleting_files": "שגיאה במחיקת קבצים", "background_downloads_enabled": "הורדה ברקע מופעלת", "background_downloads_disabled": "הורדה ברקע כבויה" + }, + "security": { + "title": "Security", + "inactivity_timeout": { + "title": "Inactivity Timeout", + "description": "Auto logout after inactivity", + "disabled": "Disabled", + "1_minute": "1 minute", + "5_minutes": "5 minutes", + "15_minutes": "15 minutes", + "30_minutes": "30 minutes", + "1_hour": "1 hour", + "4_hours": "4 hours", + "24_hours": "24 hours" + } } }, "sessions": { @@ -492,22 +570,26 @@ } }, "common": { + "no_results": "No Results", "select": "בחר", "no_trailer_available": "אין טריילר זמין", "video": "וידאו", - "audio": "אודיו", + "audio": "שמע", "subtitle": "כתובית", "play": "נגן", "none": "ללא", "track": "Track", "cancel": "Cancel", + "stop": "Stop", "delete": "Delete", "ok": "OK", "remove": "Remove", "next": "Next", "back": "Back", "continue": "Continue", - "verifying": "Verifying..." + "verifying": "Verifying...", + "login": "Login", + "refresh": "Refresh" }, "search": { "search": "חפש...", @@ -521,9 +603,9 @@ "episodes": "פרקים", "collections": "אוספים", "actors": "שחקנים", - "artists": "Artists", - "albums": "Albums", - "songs": "Songs", + "artists": "אומנים", + "albums": "אלבומים", + "songs": "שירים", "playlists": "Playlists", "request_movies": "סרטים מבוקשים", "request_series": "סדרות מבוקשים", @@ -556,6 +638,7 @@ "movies": "סרטים", "series": "סדרות", "boxsets": "אוסף", + "playlists": "Playlists", "items": "פריטים" }, "options": { @@ -574,7 +657,11 @@ "sort_by": "מיין לפי", "filter_by": "Filter By", "sort_order": "סדר מיון", - "tags": "תגים" + "tags": "תגים", + "all": "All", + "reset": "Reset", + "asc": "Ascending", + "desc": "Descending" } }, "favorites": { @@ -591,6 +678,7 @@ "no_links": "אין קישורים" }, "player": { + "live": "LIVE", "error": "שגיאה", "failed_to_get_stream_url": "נכשל בהשגת קישור הזרם", "an_error_occured_while_playing_the_video": "קרתה תקלה במהלך הניגון של הקובץ. בדוק את הלוגים בהגדרות.", @@ -606,9 +694,37 @@ "go_back": "חזור", "downloaded_file_title": "You have this file downloaded", "downloaded_file_message": "Do you want to play the downloaded file?", - "downloaded_file_yes": "Yes", - "downloaded_file_no": "No", - "downloaded_file_cancel": "Cancel" + "downloaded_file_yes": "כן", + "downloaded_file_no": "לא", + "downloaded_file_cancel": "Cancel", + "swipe_down_settings": "Swipe down for settings", + "ends_at": "ends at", + "search_subtitles": "Search Subtitles", + "subtitle_tracks": "Tracks", + "subtitle_search": "Search & Download", + "download": "Download", + "subtitle_download_hint": "Downloaded subtitles will be saved to your library", + "using_jellyfin_server": "Using Jellyfin Server", + "language": "Language", + "results": "Results", + "searching": "Searching...", + "search_failed": "Search failed", + "no_subtitle_provider": "No subtitle provider configured on server", + "no_subtitles_found": "No subtitles found", + "add_opensubtitles_key_hint": "Add OpenSubtitles API key in settings for client-side fallback", + "settings": "Settings", + "skip_intro": "Skip Intro", + "skip_credits": "Skip Credits", + "stopPlayback": "Stop Playback", + "stopPlayingTitle": "Stop playing \"{{title}}\"?", + "stopPlayingConfirm": "Are you sure you want to stop playback?", + "downloaded": "Downloaded" + }, + "chapters": { + "title": "Chapters", + "chapter_number": "Chapter {{number}}", + "open": "Open chapters", + "close": "Close chapters" }, "item_card": { "next_up": "הבא בתור", @@ -617,6 +733,11 @@ "series": "סדרות", "seasons": "עונות", "season": "עונה", + "from_this_series": "From This Series", + "more_from_this_season": "More from this Season", + "view_series": "View Series", + "view_season": "View Season", + "select_season": "Select Season", "no_episodes_for_this_season": "אין פרקים בעונה זו", "overview": "סקירה", "more_with": "עוד עם {{name}}", @@ -626,11 +747,22 @@ "more_details": "פרטים נוספים", "media_options": "Media Options", "quality": "איכות", - "audio": "אודיו", - "subtitles": "כתובית", + "audio": "שמע", + "subtitles": { + "label": "Subtitle", + "none": "None", + "tracks": "Tracks" + }, "show_more": "הצג עוד", "show_less": "הצג פחות", + "left": "left", + "more_info": "More Info", + "director": "Director", + "cast": "Cast", + "technical_details": "Technical Details", "appeared_in": "הופיע ב-", + "movies": "Movies", + "shows": "Shows", "could_not_load_item": "נכשל בטעינת פריט", "none": "ללא", "download": { @@ -641,7 +773,13 @@ "download_x_item": "הורד {{item_count}} פריטים", "download_unwatched_only": "רק שלא נצפו", "download_button": "הורד" - } + }, + "mark_played": "Mark as Watched", + "mark_unplayed": "Mark as Unwatched", + "resume_playback": "Resume Playback", + "resume_playback_description": "Do you want to continue where you left off or start from the beginning?", + "play_from_start": "Play from Start", + "continue_from": "Continue from {{time}}" }, "live_tv": { "next": "הבא", @@ -652,7 +790,18 @@ "movies": "סרטים", "sports": "ספורט", "for_kids": "לילדים", - "news": "חדשות" + "news": "חדשות", + "page_of": "Page {{current}} of {{total}}", + "no_programs": "No programs available", + "no_channels": "No channels available", + "tabs": { + "programs": "Programs", + "guide": "Guide", + "channels": "Channels", + "recordings": "Recordings", + "schedule": "Schedule", + "series": "Series" + } }, "jellyseerr": { "confirm": "אשר", @@ -697,6 +846,12 @@ "decline": "Decline", "requested_by": "Requested by {{user}}", "unknown_user": "Unknown User", + "select": "Select", + "request_all": "Request All", + "request_seasons": "Request Seasons", + "select_seasons": "Select Seasons", + "request_selected": "Request Selected", + "n_selected": "{{count}} selected", "toasts": { "jellyseer_does_not_meet_requirements": "שרת ה-Seerr לא תואם את הגרסה המינימלית הנרדת! אנא עדכן לפחות לגרסה 2.0.0", "jellyseerr_test_failed": "בדיקת ה-Seerr נכשלה. אנא נסה שוב.", @@ -716,13 +871,14 @@ "search": "חיפוש", "library": "ספריה", "custom_links": "קישורים מותאמים אישית", - "favorites": "מועדפים" + "favorites": "מועדפים", + "settings": "Settings" }, "music": { - "title": "Music", + "title": "מוזיקה", "tabs": { "suggestions": "Suggestions", - "albums": "Albums", + "albums": "אלבומים", "artists": "Artists", "playlists": "Playlists", "tracks": "tracks" @@ -798,9 +954,9 @@ "delete_button": "Delete", "remove_button": "Remove", "cancel_button": "Cancel", - "name_label": "Name", + "name_label": "שם", "name_placeholder": "Enter watchlist name", - "description_label": "Description", + "description_label": "תיאור", "description_placeholder": "Enter description (optional)", "is_public_label": "Public Watchlist", "is_public_description": "Allow others to view this watchlist", @@ -817,10 +973,10 @@ "remove_from_watchlist": "Remove from Watchlist", "select_watchlist": "Select Watchlist", "create_new": "Create New Watchlist", - "item": "item", - "items": "items", - "public": "Public", - "private": "Private", + "item": "פריט", + "items": "פריטים", + "public": "ציבורי", + "private": "פרטי", "you": "You", "by_owner": "By another user", "not_found": "Watchlist not found", @@ -835,11 +991,42 @@ "playback_speed": { "title": "Playback Speed", "apply_to": "Apply To", - "speed": "Speed", + "speed": "מהירות", "scope": { "media": "This media only", "show": "This show", "all": "All media (default)" } + }, + "companion_login": { + "title": "Pair with TV", + "align_qr": "Align the QR code within the frame", + "enter_code_manually": "Enter code manually", + "pairing_enter_credentials": "Enter credentials for TV", + "pairing_code_label": "Pairing code", + "server": "Server", + "authorize_button": "Authorize", + "authorizing": "Authorizing...", + "scan_again": "Scan Again", + "done": "Done", + "success_title": "Authorization Sent", + "pairing_tv_connecting": "The TV is connecting to your account", + "error_title": "Authorization Failed", + "error_invalid_qr": "Invalid QR code. Please scan the TV pairing code.", + "error_generic": "Something went wrong. Please try again.", + "error_permission_denied": "Camera permission is required to scan QR codes.", + "login_as": "Log in as {{username}}?", + "on_server": "on {{server}}", + "use_different_user": "Use a different user", + "open_settings": "Open Settings" + }, + "pairing": { + "pair_with_phone": "Pair with Phone", + "pair_with_phone_title": "Login TV", + "pair_with_phone_description": "Scan the QR code displayed on your TV to log in", + "waiting_for_phone": "Waiting for phone...", + "scan_with_phone": "Scan with the Streamyfin app on your phone", + "logging_in": "Logging in...", + "logging_in_description": "Connecting to your server" } } diff --git a/translations/hu.json b/translations/hu.json index 357bb82ff..9b2d48708 100644 --- a/translations/hu.json +++ b/translations/hu.json @@ -4,6 +4,9 @@ "error_title": "Hiba", "login_title": "Bejelentkezés", "login_to_title": "Bejelentkezés ide", + "select_user": "Select a user to log in", + "add_user_to_login": "Add a user to log in", + "add_user": "Add User", "username_placeholder": "Felhasználónév", "password_placeholder": "Jelszó", "login_button": "Bejelentkezés", @@ -42,7 +45,13 @@ "accounts_count": "{{count}} accounts", "select_account": "Select Account", "add_account": "Add Account", - "remove_account_description": "This will remove the saved credentials for {{username}}." + "remove_account_description": "This will remove the saved credentials for {{username}}.", + "remove_server": "Remove Server", + "remove_server_description": "This will remove {{server}} and all saved accounts from your list.", + "select_your_server": "Select Your Server", + "add_server_to_get_started": "Add a server to get started", + "add_server": "Add Server", + "change_server": "Change Server" }, "save_account": { "title": "Save Account", @@ -86,6 +95,7 @@ "oops": "Hoppá!", "error_message": "Valami nem stimmel.\nKérjük, jelentkezz ki, majd újra be.", "continue_watching": "Nézd Tovább", + "continue": "Continue", "next_up": "Következő", "continue_and_next_up": "Continue & Next Up", "recently_added_in": "Új a(z) {{libraryName}} könyvtárban", @@ -109,6 +119,12 @@ "settings": { "settings_title": "Beállítások", "log_out_button": "Kijelentkezés", + "switch_user": { + "title": "Switch User", + "account": "Account", + "switch_user": "Switch User on This Server", + "current": "current" + }, "categories": { "title": "Categories" }, @@ -121,7 +137,16 @@ "appearance": { "title": "Appearance", "merge_next_up_continue_watching": "Merge Continue Watching & Next Up", - "hide_remote_session_button": "Hide Remote Session Button" + "hide_remote_session_button": "Hide Remote Session Button", + "show_home_backdrop": "Dynamic Home Backdrop", + "show_hero_carousel": "Hero Carousel", + "show_series_poster_on_episode": "Show Series Poster on Episodes", + "theme_music": "Theme Music", + "display_size": "Display Size", + "display_size_small": "Small", + "display_size_default": "Default", + "display_size_large": "Large", + "display_size_extra_large": "Extra Large" }, "network": { "title": "Network", @@ -174,6 +199,22 @@ "rewind_length": "Visszatekerés Hossza", "seconds_unit": "mp" }, + "buffer": { + "title": "Buffer Settings", + "cache_mode": "Cache Mode", + "cache_auto": "Auto", + "cache_yes": "Enabled", + "cache_no": "Disabled", + "buffer_duration": "Buffer Duration", + "max_cache_size": "Max Cache Size", + "max_backward_cache": "Max Backward Cache" + }, + "vo_driver": { + "title": "Video Output", + "vo_mode": "VO Driver", + "gpu_next": "gpu-next (Recommended)", + "gpu": "gpu" + }, "gesture_controls": { "gesture_controls_title": "Gesztusvezérlés", "horizontal_swipe_skip": "Vízszintes Húzás Ugráshoz", @@ -256,7 +297,23 @@ "subtitle_font": "Subtitle Font", "ksplayer_title": "KSPlayer Settings", "hardware_decode": "Hardware Decoding", - "hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues." + "hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues.", + "opensubtitles_title": "OpenSubtitles", + "opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.", + "opensubtitles_api_key": "API Key", + "opensubtitles_api_key_placeholder": "Enter API key...", + "opensubtitles_get_key": "Get your free API key at opensubtitles.com/en/consumers", + "mpv_subtitle_scale": "Subtitle Scale", + "mpv_subtitle_margin_y": "Vertical Margin", + "mpv_subtitle_align_x": "Horizontal Align", + "mpv_subtitle_align_y": "Vertical Align", + "align": { + "left": "Left", + "center": "Center", + "right": "Right", + "top": "Top", + "bottom": "Bottom" + } }, "vlc_subtitles": { "title": "VLC Subtitle Settings", @@ -406,7 +463,13 @@ "music_cache_cleared": "Music cache cleared", "delete_all_downloaded_songs": "Delete All Downloaded Songs", "downloaded_songs_size": "{{size}} downloaded", - "downloaded_songs_deleted": "Downloaded songs deleted" + "downloaded_songs_deleted": "Downloaded songs deleted", + "clear_all_cache": "Clear All Cache", + "clear_all_cache_confirm": "Clear All Cache?", + "clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.", + "clear_all_cache_success": "Cache Cleared", + "clear_all_cache_success_desc": "All cache has been cleared successfully.", + "clear_all_cache_error_desc": "An error occurred while clearing the cache." }, "intro": { "title": "Intro", @@ -430,6 +493,21 @@ "error_deleting_files": "Hiba a Fájlok Törlésekor", "background_downloads_enabled": "Background downloads enabled", "background_downloads_disabled": "Background downloads disabled" + }, + "security": { + "title": "Security", + "inactivity_timeout": { + "title": "Inactivity Timeout", + "description": "Auto logout after inactivity", + "disabled": "Disabled", + "1_minute": "1 minute", + "5_minutes": "5 minutes", + "15_minutes": "15 minutes", + "30_minutes": "30 minutes", + "1_hour": "1 hour", + "4_hours": "4 hours", + "24_hours": "24 hours" + } } }, "sessions": { @@ -492,6 +570,7 @@ } }, "common": { + "no_results": "No Results", "select": "Select", "no_trailer_available": "No trailer available", "video": "Videó", @@ -501,13 +580,16 @@ "none": "None", "track": "Track", "cancel": "Cancel", + "stop": "Stop", "delete": "Delete", "ok": "OK", "remove": "Remove", "next": "Next", "back": "Back", "continue": "Continue", - "verifying": "Verifying..." + "verifying": "Verifying...", + "login": "Login", + "refresh": "Refresh" }, "search": { "search": "Keresés...", @@ -556,6 +638,7 @@ "movies": "Filmek", "series": "Sorozatok", "boxsets": "Gyűjtemények", + "playlists": "Playlists", "items": "Elemek" }, "options": { @@ -574,7 +657,11 @@ "sort_by": "Rendezés", "filter_by": "Filter By", "sort_order": "Rendezés Iránya", - "tags": "Címkék" + "tags": "Címkék", + "all": "All", + "reset": "Reset", + "asc": "Ascending", + "desc": "Descending" } }, "favorites": { @@ -591,6 +678,7 @@ "no_links": "Nincsenek Linkek" }, "player": { + "live": "LIVE", "error": "Hiba", "failed_to_get_stream_url": "Nem sikerült lekérni a stream URL-t", "an_error_occured_while_playing_the_video": "Hiba történt a videó lejátszása közben. Ellenőrizd a naplókat a beállításokban.", @@ -608,7 +696,35 @@ "downloaded_file_message": "Do you want to play the downloaded file?", "downloaded_file_yes": "Yes", "downloaded_file_no": "No", - "downloaded_file_cancel": "Cancel" + "downloaded_file_cancel": "Cancel", + "swipe_down_settings": "Swipe down for settings", + "ends_at": "ends at", + "search_subtitles": "Search Subtitles", + "subtitle_tracks": "Tracks", + "subtitle_search": "Search & Download", + "download": "Download", + "subtitle_download_hint": "Downloaded subtitles will be saved to your library", + "using_jellyfin_server": "Using Jellyfin Server", + "language": "Language", + "results": "Results", + "searching": "Searching...", + "search_failed": "Search failed", + "no_subtitle_provider": "No subtitle provider configured on server", + "no_subtitles_found": "No subtitles found", + "add_opensubtitles_key_hint": "Add OpenSubtitles API key in settings for client-side fallback", + "settings": "Settings", + "skip_intro": "Skip Intro", + "skip_credits": "Skip Credits", + "stopPlayback": "Stop Playback", + "stopPlayingTitle": "Stop playing \"{{title}}\"?", + "stopPlayingConfirm": "Are you sure you want to stop playback?", + "downloaded": "Downloaded" + }, + "chapters": { + "title": "Chapters", + "chapter_number": "Chapter {{number}}", + "open": "Open chapters", + "close": "Close chapters" }, "item_card": { "next_up": "Következő", @@ -617,6 +733,11 @@ "series": "Sorozat", "seasons": "Évadok", "season": "Évad", + "from_this_series": "From This Series", + "more_from_this_season": "More from this Season", + "view_series": "View Series", + "view_season": "View Season", + "select_season": "Select Season", "no_episodes_for_this_season": "Ehhez az évadhoz nincs epizód", "overview": "Áttekintés", "more_with": "További {{name}} Alkotások", @@ -627,10 +748,21 @@ "media_options": "Media Options", "quality": "Minőség", "audio": "Hang", - "subtitles": "Felirat", + "subtitles": { + "label": "Subtitle", + "none": "None", + "tracks": "Tracks" + }, "show_more": "Több Megjelenítése", "show_less": "Kevesebb Megjelenítése", + "left": "left", + "more_info": "More Info", + "director": "Director", + "cast": "Cast", + "technical_details": "Technical Details", "appeared_in": "Megjelent:", + "movies": "Movies", + "shows": "Shows", "could_not_load_item": "Nem Sikerült Betölteni az Elemet", "none": "Nincs", "download": { @@ -641,7 +773,13 @@ "download_x_item": "{{item_count}} Elem Letöltése", "download_unwatched_only": "Csak Nem Megtekintett", "download_button": "Letöltés" - } + }, + "mark_played": "Mark as Watched", + "mark_unplayed": "Mark as Unwatched", + "resume_playback": "Resume Playback", + "resume_playback_description": "Do you want to continue where you left off or start from the beginning?", + "play_from_start": "Play from Start", + "continue_from": "Continue from {{time}}" }, "live_tv": { "next": "Következő", @@ -652,7 +790,18 @@ "movies": "Filmek", "sports": "Sport", "for_kids": "Gyerekeknek", - "news": "Hírek" + "news": "Hírek", + "page_of": "Page {{current}} of {{total}}", + "no_programs": "No programs available", + "no_channels": "No channels available", + "tabs": { + "programs": "Programs", + "guide": "Guide", + "channels": "Channels", + "recordings": "Recordings", + "schedule": "Schedule", + "series": "Series" + } }, "jellyseerr": { "confirm": "Megerősítés", @@ -697,6 +846,12 @@ "decline": "Decline", "requested_by": "Requested by {{user}}", "unknown_user": "Unknown User", + "select": "Select", + "request_all": "Request All", + "request_seasons": "Request Seasons", + "select_seasons": "Select Seasons", + "request_selected": "Request Selected", + "n_selected": "{{count}} selected", "toasts": { "jellyseer_does_not_meet_requirements": "A Jellyseerr szerver nem felel meg a minimum verziókövetelményeknek! Kérlek frissítsd legalább 2.0.0-ra.", "jellyseerr_test_failed": "A Jellyseerr teszt sikertelen. Próbáld újra.", @@ -716,7 +871,8 @@ "search": "Keresés", "library": "Könyvtár", "custom_links": "Egyéni Linkek", - "favorites": "Kedvencek" + "favorites": "Kedvencek", + "settings": "Settings" }, "music": { "title": "Music", @@ -841,5 +997,36 @@ "show": "This show", "all": "All media (default)" } + }, + "companion_login": { + "title": "Pair with TV", + "align_qr": "Align the QR code within the frame", + "enter_code_manually": "Enter code manually", + "pairing_enter_credentials": "Enter credentials for TV", + "pairing_code_label": "Pairing code", + "server": "Server", + "authorize_button": "Authorize", + "authorizing": "Authorizing...", + "scan_again": "Scan Again", + "done": "Done", + "success_title": "Authorization Sent", + "pairing_tv_connecting": "The TV is connecting to your account", + "error_title": "Authorization Failed", + "error_invalid_qr": "Invalid QR code. Please scan the TV pairing code.", + "error_generic": "Something went wrong. Please try again.", + "error_permission_denied": "Camera permission is required to scan QR codes.", + "login_as": "Log in as {{username}}?", + "on_server": "on {{server}}", + "use_different_user": "Use a different user", + "open_settings": "Open Settings" + }, + "pairing": { + "pair_with_phone": "Pair with Phone", + "pair_with_phone_title": "Login TV", + "pair_with_phone_description": "Scan the QR code displayed on your TV to log in", + "waiting_for_phone": "Waiting for phone...", + "scan_with_phone": "Scan with the Streamyfin app on your phone", + "logging_in": "Logging in...", + "logging_in_description": "Connecting to your server" } } diff --git a/translations/it.json b/translations/it.json index 604934b78..65f2a4163 100644 --- a/translations/it.json +++ b/translations/it.json @@ -4,6 +4,9 @@ "error_title": "Errore", "login_title": "Accesso", "login_to_title": "Accedi a", + "select_user": "Select a user to log in", + "add_user_to_login": "Add a user to log in", + "add_user": "Add User", "username_placeholder": "Nome utente", "password_placeholder": "Password", "login_button": "Accedi", @@ -42,7 +45,13 @@ "accounts_count": "{{count}} accounts", "select_account": "Select Account", "add_account": "Add Account", - "remove_account_description": "This will remove the saved credentials for {{username}}." + "remove_account_description": "This will remove the saved credentials for {{username}}.", + "remove_server": "Remove Server", + "remove_server_description": "This will remove {{server}} and all saved accounts from your list.", + "select_your_server": "Select Your Server", + "add_server_to_get_started": "Add a server to get started", + "add_server": "Add Server", + "change_server": "Change Server" }, "save_account": { "title": "Save Account", @@ -86,6 +95,7 @@ "oops": "Ops!", "error_message": "Qualcosa è andato storto. \nEffetturare il logout e riaccedere.", "continue_watching": "Continua a guardare", + "continue": "Continue", "next_up": "Prossimo", "continue_and_next_up": "Continue & Next Up", "recently_added_in": "Aggiunti di recente a {{libraryName}}", @@ -109,6 +119,12 @@ "settings": { "settings_title": "Impostazioni", "log_out_button": "Esci", + "switch_user": { + "title": "Switch User", + "account": "Account", + "switch_user": "Switch User on This Server", + "current": "current" + }, "categories": { "title": "Categorie" }, @@ -121,7 +137,16 @@ "appearance": { "title": "Aspetto", "merge_next_up_continue_watching": "Merge Continue Watching & Next Up", - "hide_remote_session_button": "Hide Remote Session Button" + "hide_remote_session_button": "Hide Remote Session Button", + "show_home_backdrop": "Dynamic Home Backdrop", + "show_hero_carousel": "Hero Carousel", + "show_series_poster_on_episode": "Show Series Poster on Episodes", + "theme_music": "Theme Music", + "display_size": "Display Size", + "display_size_small": "Small", + "display_size_default": "Default", + "display_size_large": "Large", + "display_size_extra_large": "Extra Large" }, "network": { "title": "Network", @@ -136,7 +161,7 @@ "not_connected_to_wifi": "Not connected to WiFi", "no_networks_configured": "No networks configured", "add_network_hint": "Add your home WiFi network to enable auto-switching", - "current_wifi": "Current WiFi", + "current_wifi": "WiFi Attuale", "using_url": "Sta utilizzando", "local": "Local URL", "remote": "Remote URL", @@ -174,6 +199,22 @@ "rewind_length": "Lunghezza del riavvolgimento", "seconds_unit": "secondi" }, + "buffer": { + "title": "Buffer Settings", + "cache_mode": "Cache Mode", + "cache_auto": "Auto", + "cache_yes": "Enabled", + "cache_no": "Disabled", + "buffer_duration": "Buffer Duration", + "max_cache_size": "Max Cache Size", + "max_backward_cache": "Max Backward Cache" + }, + "vo_driver": { + "title": "Video Output", + "vo_mode": "VO Driver", + "gpu_next": "gpu-next (Recommended)", + "gpu": "gpu" + }, "gesture_controls": { "gesture_controls_title": "Controlli Gesture", "horizontal_swipe_skip": "Scorrimento orizzontale per saltare", @@ -256,7 +297,23 @@ "subtitle_font": "Subtitle Font", "ksplayer_title": "KSPlayer Settings", "hardware_decode": "Hardware Decoding", - "hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues." + "hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues.", + "opensubtitles_title": "OpenSubtitles", + "opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.", + "opensubtitles_api_key": "API Key", + "opensubtitles_api_key_placeholder": "Enter API key...", + "opensubtitles_get_key": "Get your free API key at opensubtitles.com/en/consumers", + "mpv_subtitle_scale": "Subtitle Scale", + "mpv_subtitle_margin_y": "Vertical Margin", + "mpv_subtitle_align_x": "Horizontal Align", + "mpv_subtitle_align_y": "Vertical Align", + "align": { + "left": "Left", + "center": "Center", + "right": "Right", + "top": "Top", + "bottom": "Bottom" + } }, "vlc_subtitles": { "title": "VLC Subtitle Settings", @@ -406,7 +463,13 @@ "music_cache_cleared": "Music cache cleared", "delete_all_downloaded_songs": "Delete All Downloaded Songs", "downloaded_songs_size": "{{size}} downloaded", - "downloaded_songs_deleted": "Downloaded songs deleted" + "downloaded_songs_deleted": "Downloaded songs deleted", + "clear_all_cache": "Clear All Cache", + "clear_all_cache_confirm": "Clear All Cache?", + "clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.", + "clear_all_cache_success": "Cache Cleared", + "clear_all_cache_success_desc": "All cache has been cleared successfully.", + "clear_all_cache_error_desc": "An error occurred while clearing the cache." }, "intro": { "title": "Intro", @@ -430,6 +493,21 @@ "error_deleting_files": "Errore nella cancellazione dei file", "background_downloads_enabled": "Scaricamento in background abilitato", "background_downloads_disabled": "Scaricamento in background disabilitato" + }, + "security": { + "title": "Security", + "inactivity_timeout": { + "title": "Inactivity Timeout", + "description": "Auto logout after inactivity", + "disabled": "Disabled", + "1_minute": "1 minute", + "5_minutes": "5 minutes", + "15_minutes": "15 minutes", + "30_minutes": "30 minutes", + "1_hour": "1 hour", + "4_hours": "4 hours", + "24_hours": "24 hours" + } } }, "sessions": { @@ -492,6 +570,7 @@ } }, "common": { + "no_results": "No Results", "select": "Seleziona", "no_trailer_available": "Nessun trailer disponibile", "video": "Video", @@ -501,13 +580,16 @@ "none": "Nulla", "track": "Traccia", "cancel": "Cancel", + "stop": "Stop", "delete": "Delete", "ok": "OK", "remove": "Remove", "next": "Next", "back": "Back", "continue": "Continue", - "verifying": "Verifying..." + "verifying": "Verifying...", + "login": "Login", + "refresh": "Refresh" }, "search": { "search": "Cerca...", @@ -556,6 +638,7 @@ "movies": "film", "series": "serie TV", "boxsets": "cofanetti", + "playlists": "Playlists", "items": "elementi" }, "options": { @@ -574,7 +657,11 @@ "sort_by": "Ordina per", "filter_by": "Filter By", "sort_order": "Criterio di ordinamento", - "tags": "Tag" + "tags": "Tag", + "all": "All", + "reset": "Reset", + "asc": "Ascending", + "desc": "Descending" } }, "favorites": { @@ -591,6 +678,7 @@ "no_links": "Nessun link" }, "player": { + "live": "LIVE", "error": "Errore", "failed_to_get_stream_url": "Impossibile ottenere l'URL dello stream", "an_error_occured_while_playing_the_video": "Si è verificato un errore durante la riproduzione del video. Controllare i log nelle impostazioni.", @@ -608,7 +696,35 @@ "downloaded_file_message": "Do you want to play the downloaded file?", "downloaded_file_yes": "Yes", "downloaded_file_no": "No", - "downloaded_file_cancel": "Cancel" + "downloaded_file_cancel": "Cancel", + "swipe_down_settings": "Swipe down for settings", + "ends_at": "ends at", + "search_subtitles": "Search Subtitles", + "subtitle_tracks": "Tracks", + "subtitle_search": "Search & Download", + "download": "Download", + "subtitle_download_hint": "Downloaded subtitles will be saved to your library", + "using_jellyfin_server": "Using Jellyfin Server", + "language": "Language", + "results": "Results", + "searching": "Searching...", + "search_failed": "Search failed", + "no_subtitle_provider": "No subtitle provider configured on server", + "no_subtitles_found": "No subtitles found", + "add_opensubtitles_key_hint": "Add OpenSubtitles API key in settings for client-side fallback", + "settings": "Settings", + "skip_intro": "Skip Intro", + "skip_credits": "Skip Credits", + "stopPlayback": "Stop Playback", + "stopPlayingTitle": "Stop playing \"{{title}}\"?", + "stopPlayingConfirm": "Are you sure you want to stop playback?", + "downloaded": "Downloaded" + }, + "chapters": { + "title": "Chapters", + "chapter_number": "Chapter {{number}}", + "open": "Open chapters", + "close": "Close chapters" }, "item_card": { "next_up": "Il prossimo", @@ -617,6 +733,11 @@ "series": "Serie", "seasons": "Stagioni", "season": "Stagione", + "from_this_series": "From This Series", + "more_from_this_season": "More from this Season", + "view_series": "View Series", + "view_season": "View Season", + "select_season": "Select Season", "no_episodes_for_this_season": "Nessun episodio per questa stagione", "overview": "Panoramica", "more_with": "Altri con {{name}}", @@ -627,10 +748,21 @@ "media_options": "Opzioni Media", "quality": "Qualità", "audio": "Audio", - "subtitles": "Sottotitoli", + "subtitles": { + "label": "Subtitle", + "none": "None", + "tracks": "Tracks" + }, "show_more": "Mostra di più", "show_less": "Mostra di meno", + "left": "left", + "more_info": "More Info", + "director": "Director", + "cast": "Cast", + "technical_details": "Technical Details", "appeared_in": "Apparso in", + "movies": "Movies", + "shows": "Shows", "could_not_load_item": "Impossibile caricare l'elemento", "none": "Nessuno", "download": { @@ -641,7 +773,13 @@ "download_x_item": "Scarica {{item_count}} elementi", "download_unwatched_only": "Solo Non Visti", "download_button": "Scarica" - } + }, + "mark_played": "Mark as Watched", + "mark_unplayed": "Mark as Unwatched", + "resume_playback": "Resume Playback", + "resume_playback_description": "Do you want to continue where you left off or start from the beginning?", + "play_from_start": "Play from Start", + "continue_from": "Continue from {{time}}" }, "live_tv": { "next": "Prossimo", @@ -652,7 +790,18 @@ "movies": "Film", "sports": "Sport", "for_kids": "Per Bambini", - "news": "Notiziari" + "news": "Notiziari", + "page_of": "Page {{current}} of {{total}}", + "no_programs": "No programs available", + "no_channels": "No channels available", + "tabs": { + "programs": "Programs", + "guide": "Guide", + "channels": "Channels", + "recordings": "Recordings", + "schedule": "Schedule", + "series": "Series" + } }, "jellyseerr": { "confirm": "Conferma", @@ -697,6 +846,12 @@ "decline": "Rifiuta", "requested_by": "Richiesto da {{user}}", "unknown_user": "Utente Sconosciuto", + "select": "Select", + "request_all": "Request All", + "request_seasons": "Request Seasons", + "select_seasons": "Select Seasons", + "request_selected": "Request Selected", + "n_selected": "{{count}} selected", "toasts": { "jellyseer_does_not_meet_requirements": "Il server Jellyseerr non soddisfa i requisiti minimi di versione! Aggiornare almeno alla versione 2.0.0.", "jellyseerr_test_failed": "Il test di Jellyseerr non è riuscito. Riprovare.", @@ -716,7 +871,8 @@ "search": "Cerca", "library": "Libreria", "custom_links": "Collegamenti personalizzati", - "favorites": "Preferiti" + "favorites": "Preferiti", + "settings": "Settings" }, "music": { "title": "Music", @@ -841,5 +997,36 @@ "show": "This show", "all": "All media (default)" } + }, + "companion_login": { + "title": "Pair with TV", + "align_qr": "Align the QR code within the frame", + "enter_code_manually": "Enter code manually", + "pairing_enter_credentials": "Enter credentials for TV", + "pairing_code_label": "Pairing code", + "server": "Server", + "authorize_button": "Authorize", + "authorizing": "Authorizing...", + "scan_again": "Scan Again", + "done": "Done", + "success_title": "Authorization Sent", + "pairing_tv_connecting": "The TV is connecting to your account", + "error_title": "Authorization Failed", + "error_invalid_qr": "Invalid QR code. Please scan the TV pairing code.", + "error_generic": "Something went wrong. Please try again.", + "error_permission_denied": "Camera permission is required to scan QR codes.", + "login_as": "Log in as {{username}}?", + "on_server": "on {{server}}", + "use_different_user": "Use a different user", + "open_settings": "Open Settings" + }, + "pairing": { + "pair_with_phone": "Pair with Phone", + "pair_with_phone_title": "Login TV", + "pair_with_phone_description": "Scan the QR code displayed on your TV to log in", + "waiting_for_phone": "Waiting for phone...", + "scan_with_phone": "Scan with the Streamyfin app on your phone", + "logging_in": "Logging in...", + "logging_in_description": "Connecting to your server" } } diff --git a/translations/ja.json b/translations/ja.json index 76c02bdf5..e52cf6771 100644 --- a/translations/ja.json +++ b/translations/ja.json @@ -4,6 +4,9 @@ "error_title": "エラー", "login_title": "ログイン", "login_to_title": "ログイン先", + "select_user": "Select a user to log in", + "add_user_to_login": "Add a user to log in", + "add_user": "Add User", "username_placeholder": "ユーザー名", "password_placeholder": "パスワード", "login_button": "ログイン", @@ -42,7 +45,13 @@ "accounts_count": "{{count}} accounts", "select_account": "Select Account", "add_account": "Add Account", - "remove_account_description": "This will remove the saved credentials for {{username}}." + "remove_account_description": "This will remove the saved credentials for {{username}}.", + "remove_server": "Remove Server", + "remove_server_description": "This will remove {{server}} and all saved accounts from your list.", + "select_your_server": "Select Your Server", + "add_server_to_get_started": "Add a server to get started", + "add_server": "Add Server", + "change_server": "Change Server" }, "save_account": { "title": "Save Account", @@ -86,6 +95,7 @@ "oops": "おっと!", "error_message": "何か問題が発生しました。\nログアウトして再度ログインしてください。", "continue_watching": "続きを見る", + "continue": "Continue", "next_up": "次の動画", "continue_and_next_up": "Continue & Next Up", "recently_added_in": "{{libraryName}}に最近追加された", @@ -109,6 +119,12 @@ "settings": { "settings_title": "設定", "log_out_button": "ログアウト", + "switch_user": { + "title": "Switch User", + "account": "Account", + "switch_user": "Switch User on This Server", + "current": "current" + }, "categories": { "title": "カテゴリ" }, @@ -121,7 +137,16 @@ "appearance": { "title": "Appearance", "merge_next_up_continue_watching": "Merge Continue Watching & Next Up", - "hide_remote_session_button": "Hide Remote Session Button" + "hide_remote_session_button": "Hide Remote Session Button", + "show_home_backdrop": "Dynamic Home Backdrop", + "show_hero_carousel": "Hero Carousel", + "show_series_poster_on_episode": "Show Series Poster on Episodes", + "theme_music": "Theme Music", + "display_size": "Display Size", + "display_size_small": "Small", + "display_size_default": "Default", + "display_size_large": "Large", + "display_size_extra_large": "Extra Large" }, "network": { "title": "Network", @@ -174,6 +199,22 @@ "rewind_length": "巻き戻しの長さ", "seconds_unit": "s" }, + "buffer": { + "title": "Buffer Settings", + "cache_mode": "Cache Mode", + "cache_auto": "Auto", + "cache_yes": "Enabled", + "cache_no": "Disabled", + "buffer_duration": "Buffer Duration", + "max_cache_size": "Max Cache Size", + "max_backward_cache": "Max Backward Cache" + }, + "vo_driver": { + "title": "Video Output", + "vo_mode": "VO Driver", + "gpu_next": "gpu-next (Recommended)", + "gpu": "gpu" + }, "gesture_controls": { "gesture_controls_title": "ジェスチャーコントロール", "horizontal_swipe_skip": "水平方向にスワイプしてスキップ", @@ -256,7 +297,23 @@ "subtitle_font": "Subtitle Font", "ksplayer_title": "KSPlayer Settings", "hardware_decode": "Hardware Decoding", - "hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues." + "hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues.", + "opensubtitles_title": "OpenSubtitles", + "opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.", + "opensubtitles_api_key": "API Key", + "opensubtitles_api_key_placeholder": "Enter API key...", + "opensubtitles_get_key": "Get your free API key at opensubtitles.com/en/consumers", + "mpv_subtitle_scale": "Subtitle Scale", + "mpv_subtitle_margin_y": "Vertical Margin", + "mpv_subtitle_align_x": "Horizontal Align", + "mpv_subtitle_align_y": "Vertical Align", + "align": { + "left": "Left", + "center": "Center", + "right": "Right", + "top": "Top", + "bottom": "Bottom" + } }, "vlc_subtitles": { "title": "VLC Subtitle Settings", @@ -406,7 +463,13 @@ "music_cache_cleared": "Music cache cleared", "delete_all_downloaded_songs": "Delete All Downloaded Songs", "downloaded_songs_size": "{{size}} downloaded", - "downloaded_songs_deleted": "Downloaded songs deleted" + "downloaded_songs_deleted": "Downloaded songs deleted", + "clear_all_cache": "Clear All Cache", + "clear_all_cache_confirm": "Clear All Cache?", + "clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.", + "clear_all_cache_success": "Cache Cleared", + "clear_all_cache_success_desc": "All cache has been cleared successfully.", + "clear_all_cache_error_desc": "An error occurred while clearing the cache." }, "intro": { "title": "イントロ", @@ -430,6 +493,21 @@ "error_deleting_files": "ファイルの削除エラー", "background_downloads_enabled": "バックグラウンドでのダウンロードは有効です", "background_downloads_disabled": "バックグラウンドでのダウンロードは無効です" + }, + "security": { + "title": "Security", + "inactivity_timeout": { + "title": "Inactivity Timeout", + "description": "Auto logout after inactivity", + "disabled": "Disabled", + "1_minute": "1 minute", + "5_minutes": "5 minutes", + "15_minutes": "15 minutes", + "30_minutes": "30 minutes", + "1_hour": "1 hour", + "4_hours": "4 hours", + "24_hours": "24 hours" + } } }, "sessions": { @@ -492,6 +570,7 @@ } }, "common": { + "no_results": "No Results", "select": "選択", "no_trailer_available": "トレーラーがありません", "video": "映像", @@ -501,13 +580,16 @@ "none": "None", "track": "Track", "cancel": "Cancel", + "stop": "Stop", "delete": "Delete", "ok": "OK", "remove": "Remove", "next": "Next", "back": "Back", "continue": "Continue", - "verifying": "Verifying..." + "verifying": "Verifying...", + "login": "Login", + "refresh": "Refresh" }, "search": { "search": "検索...", @@ -556,6 +638,7 @@ "movies": "映画", "series": "シリーズ", "boxsets": "ボックスセット", + "playlists": "Playlists", "items": "アイテム" }, "options": { @@ -574,7 +657,11 @@ "sort_by": "ソート", "filter_by": "Filter By", "sort_order": "ソート順", - "tags": "タグ" + "tags": "タグ", + "all": "All", + "reset": "Reset", + "asc": "Ascending", + "desc": "Descending" } }, "favorites": { @@ -591,6 +678,7 @@ "no_links": "リンクがありません" }, "player": { + "live": "LIVE", "error": "エラー", "failed_to_get_stream_url": "ストリームURLを取得できませんでした", "an_error_occured_while_playing_the_video": "動画の再生中にエラーが発生しました。設定でログを確認してください。", @@ -608,7 +696,35 @@ "downloaded_file_message": "Do you want to play the downloaded file?", "downloaded_file_yes": "Yes", "downloaded_file_no": "No", - "downloaded_file_cancel": "Cancel" + "downloaded_file_cancel": "Cancel", + "swipe_down_settings": "Swipe down for settings", + "ends_at": "ends at", + "search_subtitles": "Search Subtitles", + "subtitle_tracks": "Tracks", + "subtitle_search": "Search & Download", + "download": "Download", + "subtitle_download_hint": "Downloaded subtitles will be saved to your library", + "using_jellyfin_server": "Using Jellyfin Server", + "language": "Language", + "results": "Results", + "searching": "Searching...", + "search_failed": "Search failed", + "no_subtitle_provider": "No subtitle provider configured on server", + "no_subtitles_found": "No subtitles found", + "add_opensubtitles_key_hint": "Add OpenSubtitles API key in settings for client-side fallback", + "settings": "Settings", + "skip_intro": "Skip Intro", + "skip_credits": "Skip Credits", + "stopPlayback": "Stop Playback", + "stopPlayingTitle": "Stop playing \"{{title}}\"?", + "stopPlayingConfirm": "Are you sure you want to stop playback?", + "downloaded": "Downloaded" + }, + "chapters": { + "title": "Chapters", + "chapter_number": "Chapter {{number}}", + "open": "Open chapters", + "close": "Close chapters" }, "item_card": { "next_up": "次", @@ -617,6 +733,11 @@ "series": "シリーズ", "seasons": "シーズン", "season": "シーズン", + "from_this_series": "From This Series", + "more_from_this_season": "More from this Season", + "view_series": "View Series", + "view_season": "View Season", + "select_season": "Select Season", "no_episodes_for_this_season": "このシーズンのエピソードはありません", "overview": "ストーリー", "more_with": "{{name}}の詳細", @@ -627,10 +748,21 @@ "media_options": "Media Options", "quality": "画質", "audio": "音声", - "subtitles": "字幕", + "subtitles": { + "label": "Subtitle", + "none": "None", + "tracks": "Tracks" + }, "show_more": "もっと見る", "show_less": "少なく表示", + "left": "left", + "more_info": "More Info", + "director": "Director", + "cast": "Cast", + "technical_details": "Technical Details", "appeared_in": "出演作品", + "movies": "Movies", + "shows": "Shows", "could_not_load_item": "アイテムを読み込めませんでした", "none": "なし", "download": { @@ -641,7 +773,13 @@ "download_x_item": "{{item_count}}のアイテムをダウンロード", "download_unwatched_only": "未視聴のみ", "download_button": "ダウンロード" - } + }, + "mark_played": "Mark as Watched", + "mark_unplayed": "Mark as Unwatched", + "resume_playback": "Resume Playback", + "resume_playback_description": "Do you want to continue where you left off or start from the beginning?", + "play_from_start": "Play from Start", + "continue_from": "Continue from {{time}}" }, "live_tv": { "next": "次", @@ -652,7 +790,18 @@ "movies": "映画", "sports": "スポーツ", "for_kids": "子供向け", - "news": "ニュース" + "news": "ニュース", + "page_of": "Page {{current}} of {{total}}", + "no_programs": "No programs available", + "no_channels": "No channels available", + "tabs": { + "programs": "Programs", + "guide": "Guide", + "channels": "Channels", + "recordings": "Recordings", + "schedule": "Schedule", + "series": "Series" + } }, "jellyseerr": { "confirm": "確認", @@ -697,6 +846,12 @@ "decline": "Decline", "requested_by": "Requested by {{user}}", "unknown_user": "Unknown User", + "select": "Select", + "request_all": "Request All", + "request_seasons": "Request Seasons", + "select_seasons": "Select Seasons", + "request_selected": "Request Selected", + "n_selected": "{{count}} selected", "toasts": { "jellyseer_does_not_meet_requirements": "Jellyseerrサーバーは最小バージョン要件を満たしていません。少なくとも 2.0.0 に更新してください。", "jellyseerr_test_failed": "Jellyseerrテストに失敗しました。もう一度お試しください。", @@ -716,7 +871,8 @@ "search": "検索", "library": "ライブラリ", "custom_links": "カスタムリンク", - "favorites": "お気に入り" + "favorites": "お気に入り", + "settings": "Settings" }, "music": { "title": "Music", @@ -841,5 +997,36 @@ "show": "This show", "all": "All media (default)" } + }, + "companion_login": { + "title": "Pair with TV", + "align_qr": "Align the QR code within the frame", + "enter_code_manually": "Enter code manually", + "pairing_enter_credentials": "Enter credentials for TV", + "pairing_code_label": "Pairing code", + "server": "Server", + "authorize_button": "Authorize", + "authorizing": "Authorizing...", + "scan_again": "Scan Again", + "done": "Done", + "success_title": "Authorization Sent", + "pairing_tv_connecting": "The TV is connecting to your account", + "error_title": "Authorization Failed", + "error_invalid_qr": "Invalid QR code. Please scan the TV pairing code.", + "error_generic": "Something went wrong. Please try again.", + "error_permission_denied": "Camera permission is required to scan QR codes.", + "login_as": "Log in as {{username}}?", + "on_server": "on {{server}}", + "use_different_user": "Use a different user", + "open_settings": "Open Settings" + }, + "pairing": { + "pair_with_phone": "Pair with Phone", + "pair_with_phone_title": "Login TV", + "pair_with_phone_description": "Scan the QR code displayed on your TV to log in", + "waiting_for_phone": "Waiting for phone...", + "scan_with_phone": "Scan with the Streamyfin app on your phone", + "logging_in": "Logging in...", + "logging_in_description": "Connecting to your server" } } diff --git a/translations/ko.json b/translations/ko.json index 7b9320beb..635339925 100644 --- a/translations/ko.json +++ b/translations/ko.json @@ -1,187 +1,228 @@ { "login": { - "username_required": "Username Is Required", - "error_title": "Error", - "login_title": "Log In", - "login_to_title": "Log in to", - "username_placeholder": "Username", - "password_placeholder": "Password", - "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", - "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", - "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?", + "username_required": "사용자 이름이 필요합니다", + "error_title": "오류", + "login_title": "로그인", + "login_to_title": "다음 서비스에 연결 중", + "select_user": "Select a user to log in", + "add_user_to_login": "Add a user to log in", + "add_user": "Add User", + "username_placeholder": "사용자 이름", + "password_placeholder": "비밀번호", + "login_button": "로그인", + "quick_connect": "퀵 커넥트", + "enter_code_to_login": "로그인 하기 위해 코드{{code}}를 입력하세요", + "failed_to_initiate_quick_connect": "Quick Connect 연결을 시작하는 데 실패했습니다", + "got_it": "성공", + "connection_failed": "연결 실패", + "could_not_connect_to_server": "서버에 연결되지 않았습니다. URL과 네트워크 상태를 확인하세요.", + "an_unexpected_error_occured": "예기치 않은 오류가 발생했습니다", + "change_server": "서버 변경", + "invalid_username_or_password": "잘못된 아이디 혹은 비밀번호입니다", + "user_does_not_have_permission_to_log_in": "로그인 하기 위한 권한이 없습니다", + "server_is_taking_too_long_to_respond_try_again_later": "서버 응답이 너무 느립니다. 나중에 다시 시도하세요", + "server_received_too_many_requests_try_again_later": "서버가 너무 많은 요청을 받았습니다. 나중에 다시 시도하세요.", + "there_is_a_server_error": "서버 에러", + "an_unexpected_error_occured_did_you_enter_the_correct_url": "예기치 않은 오류가 발생했습니다. 서버 URL을 올바르게 입력하셨습니까?", "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", - "clear_button": "Clear all", - "swipe_to_remove": "Swipe to remove", - "search_for_local_servers": "Search for Local Servers", - "searching": "Searching...", - "servers": "Servers", - "saved": "Saved", - "session_expired": "Session Expired", - "please_login_again": "Your saved session has expired. Please log in again.", - "remove_saved_login": "Remove Saved Login", - "remove_saved_login_description": "This will remove your saved credentials for this server. You'll need to enter your username and password again next time.", - "accounts_count": "{{count}} accounts", - "select_account": "Select Account", - "add_account": "Add Account", - "remove_account_description": "This will remove the saved credentials for {{username}}." + "connect_button": "연결", + "previous_servers": "이전 서버", + "clear_button": "모두 지우기", + "swipe_to_remove": "스와이프해서 지우기", + "search_for_local_servers": "로컬 서버 찾기", + "searching": "찾는 중...", + "servers": "서버", + "saved": "저장됨", + "session_expired": "세션 만료됨", + "please_login_again": "사용자 세션이 만료되었습니다. 다시 로그인하십시오.", + "remove_saved_login": "저장된 로그인 정보 삭제", + "remove_saved_login_description": "해당 서버에 저장된 자격 증명이 삭제됩니다. 다음에 접속할 때는 사용자 이름과 비밀번호를 다시 입력해야 합니다.", + "accounts_count": "{{count}} 계정", + "select_account": "계정 선택", + "add_account": "계정 추가", + "remove_account_description": "{{username}}에 저장된 자격 증명이 삭제됩니다.", + "remove_server": "Remove Server", + "remove_server_description": "This will remove {{server}} and all saved accounts from your list.", + "select_your_server": "Select Your Server", + "add_server_to_get_started": "Add a server to get started", + "add_server": "Add Server", + "change_server": "Change Server" }, "save_account": { - "title": "Save Account", - "save_for_later": "Save this account", - "security_option": "Security Option", - "no_protection": "No protection", - "no_protection_desc": "Quick login without authentication", - "pin_code": "PIN code", - "pin_code_desc": "4-digit PIN required when switching", - "password": "Re-enter password", - "password_desc": "Password required when switching", - "save_button": "Save", - "cancel_button": "Cancel" + "title": "계정 저장", + "save_for_later": "이 계정 저장", + "security_option": "보안 설정", + "no_protection": "보안 없음", + "no_protection_desc": "인증 없이 빠른 로그인", + "pin_code": "PIN 코드", + "pin_code_desc": "전환하려면 4자리 PIN 필요함", + "password": "암호 확인", + "password_desc": "전환하려면 비밀번호 필요함", + "save_button": "저장", + "cancel_button": "취소" }, "pin": { - "enter_pin": "Enter PIN", - "enter_pin_for": "Enter PIN for {{username}}", - "enter_4_digits": "Enter 4 digits", - "invalid_pin": "Invalid PIN", - "setup_pin": "Set Up PIN", - "confirm_pin": "Confirm PIN", - "pins_dont_match": "PINs don't match", - "forgot_pin": "Forgot PIN?", - "forgot_pin_desc": "Your saved credentials will be removed" + "enter_pin": "PIN 입력", + "enter_pin_for": "{{username}} PIN 입력", + "enter_4_digits": "4자리 입력", + "invalid_pin": "잘못된 PIN", + "setup_pin": "PIN 설정", + "confirm_pin": "PIN 확인", + "pins_dont_match": "PIN이 일치하지 않습니다", + "forgot_pin": "PIN을 잊으셨나요?", + "forgot_pin_desc": "저장된 계정 정보가 삭제됩니다" }, "password": { - "enter_password": "Enter Password", - "enter_password_for": "Enter password for {{username}}", - "invalid_password": "Invalid password" + "enter_password": "비밀번호 입력", + "enter_password_for": "{{username}}의 비밀번호 입력", + "invalid_password": "잘못된 비밀번호" }, "home": { - "checking_server_connection": "Checking server connection...", - "no_internet": "No Internet", - "no_items": "No Items", - "no_internet_message": "No worries, you can still watch\ndownloaded content.", + "checking_server_connection": "서버 연결 체크중...", + "no_internet": "인터넷에 연결되지 않음", + "no_items": "항목 없음", + "no_internet_message": "걱정마세요. 다운로드 된 컨텐츠는 여전히 볼 수 있습니다.", "checking_server_connection_message": "Checking connection to server", "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.", - "oops": "Oops!", - "error_message": "Something went wrong.\nPlease log out and in again.", - "continue_watching": "Continue Watching", - "next_up": "Next Up", - "continue_and_next_up": "Continue & Next Up", - "recently_added_in": "Recently Added in {{libraryName}}", - "suggested_movies": "Suggested Movies", - "suggested_episodes": "Suggested Episodes", + "retry": "재시도", + "server_unreachable": "서버에 연결할 수 없음", + "server_unreachable_message": "서버에 연결할 수 없습니다. 네트워크 상태를 체크하세요.", + "oops": "이런!", + "error_message": "문제가 발생했습니다.\n로그아웃 후 다시 로그인해 주세요.", + "continue_watching": "이어서 보기", + "continue": "Continue", + "next_up": "다음 시청", + "continue_and_next_up": "이어서 보기 & 다음 시청", + "recently_added_in": "최근에 추가된 {{libraryName}}", + "suggested_movies": "추천 영화", + "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.", - "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 Seerr instance and request movies directly in the app.", - "downloads_feature_title": "Downloads", - "downloads_feature_description": "Download movies and tv-shows to view offline. Use either the default method or install the optimize server to download files in the background.", - "chromecast_feature_description": "Cast movies and tv-shows to your Chromecast devices.", - "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" + "welcome_to_streamyfin": "스트리미핀에 오신 것을 환영합니다", + "a_free_and_open_source_client_for_jellyfin": "젤리핀을 위한 무료 오픈소스 클라이언트입니다.", + "features_title": "기능", + "features_description": "스트리미핀은 다양한 기능을 제공하며 설정 메뉴에서 확인할 수 있는 여러 소프트웨어와 통합됩니다. 이러한 소프트웨어에는 다음이 포함됩니다:", + "jellyseerr_feature_description": "Seerr 인스턴스에 연결하여 앱에서 직접 영화를 요청할 수 있습니다.", + "downloads_feature_title": "다운로드된 컨텐츠", + "downloads_feature_description": "오프라인으로 보기위해 다운로드 하세요. 기본 다운로드 방식을 사용하거나, 백그라운드에서 파일을 다운로드하는 최적화 서버를 설치할 수 있습니다.", + "chromecast_feature_description": "영화와 TV 프로그램을 Chromecast 기기로 전송하기", + "centralised_settings_plugin_title": "중앙 설정 플러그인", + "centralised_settings_plugin_description": "Jellyfin 서버의 중앙 집중식 위치에서 설정을 구성합니다. 모든 사용자의 모든 클라이언트 설정이 자동으로 동기화됩니다.", + "done_button": "확인", + "go_to_settings_button": "설정으로 이동", + "read_more": "자세히 보기" }, "settings": { - "settings_title": "Settings", - "log_out_button": "Log Out", + "settings_title": "설정", + "log_out_button": "로그아웃", + "switch_user": { + "title": "Switch User", + "account": "Account", + "switch_user": "Switch User on This Server", + "current": "current" + }, "categories": { - "title": "Categories" + "title": "카테고리" }, "playback_controls": { - "title": "Playback & Controls" + "title": "재생 & 컨트롤" }, "audio_subtitles": { - "title": "Audio & Subtitles" + "title": "오디오 & 자막" }, "appearance": { - "title": "Appearance", - "merge_next_up_continue_watching": "Merge Continue Watching & Next Up", - "hide_remote_session_button": "Hide Remote Session Button" + "title": "화면 스타일", + "merge_next_up_continue_watching": "[이어보기]와 [다음 보기] 합치기", + "hide_remote_session_button": "원격 세션 버튼 숨기기", + "show_home_backdrop": "Dynamic Home Backdrop", + "show_hero_carousel": "Hero Carousel", + "show_series_poster_on_episode": "Show Series Poster on Episodes", + "theme_music": "Theme Music", + "display_size": "Display Size", + "display_size_small": "Small", + "display_size_default": "Default", + "display_size_large": "Large", + "display_size_extra_large": "Extra Large" }, "network": { - "title": "Network", - "local_network": "Local Network", - "auto_switch_enabled": "Auto-switch when at home", - "auto_switch_description": "Automatically switch to local URL when connected to home WiFi", - "local_url": "Local URL", - "local_url_hint": "Enter your local server address (e.g., http://192.168.1.100:8096)", + "title": "네트워크", + "local_network": "로컬 네트워크", + "auto_switch_enabled": "홈 네트워크 자동 전환", + "auto_switch_description": "홈 WiFi에 연결되었을 때 로컬 URL로 자동 전환", + "local_url": "로컬 URL", + "local_url_hint": "로컬 서버 주소를 입력하세요 (e.g., http://192.168.1.100:8096)", "local_url_placeholder": "http://192.168.1.100:8096", - "home_wifi_networks": "Home WiFi Networks", - "add_current_network": "Add \"{{ssid}}\"", - "not_connected_to_wifi": "Not connected to WiFi", - "no_networks_configured": "No networks configured", - "add_network_hint": "Add your home WiFi network to enable auto-switching", - "current_wifi": "Current WiFi", - "using_url": "Using", - "local": "Local URL", - "remote": "Remote URL", - "not_connected": "Not connected", - "current_server": "Current Server", - "remote_url": "Remote URL", - "active_url": "Active URL", - "not_configured": "Not configured", - "network_added": "Network added", - "network_already_added": "Network already added", - "no_wifi_connected": "Not connected to WiFi", - "permission_denied": "Location permission denied", - "permission_denied_explanation": "Location permission is required to detect WiFi network for auto-switching. Please enable it in Settings." + "home_wifi_networks": "홈 WiFi 네트워크", + "add_current_network": "\"{{ssid}}\" 추가", + "not_connected_to_wifi": "WiFi에 연결되지 않음", + "no_networks_configured": "구성된 네트워크가 없습니다", + "add_network_hint": "자동 전환을 위한 홈 WiFi 추가", + "current_wifi": "현재 WiFi", + "using_url": "사용중", + "local": "로컬 URL", + "remote": "원격 URL", + "not_connected": "연결되지 않았습니다", + "current_server": "현재 서버", + "remote_url": "원격 URL", + "active_url": "현재 사용 중인 URL", + "not_configured": "설정되지 않음", + "network_added": "네트워크 추가됨", + "network_already_added": "네트워크 이미 추가됨", + "no_wifi_connected": "WiFi에 연결되지 않음", + "permission_denied": "위치 권한이 거부되었습니다", + "permission_denied_explanation": "자동 전환 Wi-Fi 네트워크를 감지하려면 위치 권한이 필요합니다. 설정에서 위치 권한을 활성화해 주세요." }, "user_info": { - "user_info_title": "User Info", - "user": "User", - "server": "Server", - "token": "Token", - "app_version": "App Version" + "user_info_title": "사용자 정보", + "user": "사용자", + "server": "서버", + "token": "토큰", + "app_version": "앱 버전" }, "quick_connect": { - "quick_connect_title": "Quick Connect", - "authorize_button": "Authorize Quick Connect", - "enter_the_quick_connect_code": "Enter the quick connect code...", - "success": "Success", - "quick_connect_autorized": "Quick Connect Authorized", - "error": "Error", - "invalid_code": "Invalid Code", - "authorize": "Authorize" + "quick_connect_title": "퀵 커넥트", + "authorize_button": "퀵 커넥트 승인", + "enter_the_quick_connect_code": "퀵 커넥트 코드 입력...", + "success": "성공", + "quick_connect_autorized": "퀵 커넥트 승인됨", + "error": "오류", + "invalid_code": "유효하지 않은 코드", + "authorize": "승인" }, "media_controls": { - "media_controls_title": "Media Controls", - "forward_skip_length": "Forward Skip Length", - "rewind_length": "Rewind Length", - "seconds_unit": "s" + "media_controls_title": "미디어 컨트롤", + "forward_skip_length": "앞으로 건너뛸 시간", + "rewind_length": "뒤로 되감을 시간", + "seconds_unit": "초" + }, + "buffer": { + "title": "Buffer Settings", + "cache_mode": "Cache Mode", + "cache_auto": "Auto", + "cache_yes": "Enabled", + "cache_no": "Disabled", + "buffer_duration": "Buffer Duration", + "max_cache_size": "Max Cache Size", + "max_backward_cache": "Max Backward Cache" + }, + "vo_driver": { + "title": "Video Output", + "vo_mode": "VO Driver", + "gpu_next": "gpu-next (Recommended)", + "gpu": "gpu" }, "gesture_controls": { - "gesture_controls_title": "Gesture Controls", - "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_description": "Swipe up/down on left side to adjust brightness", - "right_side_volume": "Right Side Volume Control", - "right_side_volume_description": "Swipe up/down on right side to adjust volume", + "gesture_controls_title": "제스처 제어", + "horizontal_swipe_skip": "좌/우로 스와이프하여 건너뛰기", + "horizontal_swipe_skip_description": "컨트롤 숨김상태에서 좌/우로 스와이프하여 건너뛰기", + "left_side_brightness": "왼쪽 영역 밝기 조정 컨트롤", + "left_side_brightness_description": "왼쪽 영역을 위/아래 스와이프하여 밝기 조절", + "right_side_volume": "오른쪽 영역 볼륨 컨트롤", + "right_side_volume_description": "오른족 영역을 위/아래로 스와이프 하여 볼륨 조절", "hide_volume_slider": "Hide Volume Slider", "hide_volume_slider_description": "Hide the volume slider in the video player", "hide_brightness_slider": "Hide Brightness Slider", @@ -196,7 +237,7 @@ "language": "Language", "transcode_mode": { "title": "Audio Transcoding", - "description": "Controls how surround audio (7.1, TrueHD, DTS-HD) is handled", + "description": "서라운드 오디오(7.1, TrueHD, DTS-HD)를 어떻게 처리할지 설정합니다", "auto": "Auto", "stereo": "Force Stereo", "5_1": "Allow 5.1", @@ -228,52 +269,68 @@ "outline_opacity": "Outline Opacity", "bold_text": "Bold Text", "colors": { - "Black": "Black", - "Gray": "Gray", - "Silver": "Silver", - "White": "White", - "Maroon": "Maroon", - "Red": "Red", - "Fuchsia": "Fuchsia", - "Yellow": "Yellow", - "Olive": "Olive", - "Green": "Green", - "Teal": "Teal", - "Lime": "Lime", - "Purple": "Purple", - "Navy": "Navy", - "Blue": "Blue", - "Aqua": "Aqua" + "Black": "검정색", + "Gray": "회색", + "Silver": "은색", + "White": "흰색", + "Maroon": "밤색", + "Red": "빨간색", + "Fuchsia": "분홍색", + "Yellow": "노란색", + "Olive": "올리브 색", + "Green": "녹색", + "Teal": "청록색", + "Lime": "라임색", + "Purple": "보라색", + "Navy": "남색", + "Blue": "파란색", + "Aqua": "아쿠아색" }, "thickness": { - "None": "None", - "Thin": "Thin", - "Normal": "Normal", - "Thick": "Thick" + "None": "없음", + "Thin": "얇게", + "Normal": "보통", + "Thick": "굵게" }, - "subtitle_color": "Subtitle Color", - "subtitle_background_color": "Background Color", - "subtitle_font": "Subtitle Font", - "ksplayer_title": "KSPlayer Settings", - "hardware_decode": "Hardware Decoding", - "hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues." + "subtitle_color": "자막 색상", + "subtitle_background_color": "배경 색상", + "subtitle_font": "자막 폰트", + "ksplayer_title": "KSPlayer 설정", + "hardware_decode": "하드웨어 디코딩", + "hardware_decode_description": "비디오 디코딩에 하드웨어 가속을 사용하십시오. 재생 문제가 발생하는 경우 비활성화하십시오.", + "opensubtitles_title": "OpenSubtitles", + "opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.", + "opensubtitles_api_key": "API Key", + "opensubtitles_api_key_placeholder": "Enter API key...", + "opensubtitles_get_key": "Get your free API key at opensubtitles.com/en/consumers", + "mpv_subtitle_scale": "Subtitle Scale", + "mpv_subtitle_margin_y": "Vertical Margin", + "mpv_subtitle_align_x": "Horizontal Align", + "mpv_subtitle_align_y": "Vertical Align", + "align": { + "left": "Left", + "center": "Center", + "right": "Right", + "top": "Top", + "bottom": "Bottom" + } }, "vlc_subtitles": { - "title": "VLC Subtitle Settings", - "hint": "Customize subtitle appearance for VLC player. Changes take effect on next playback.", - "text_color": "Text Color", - "background_color": "Background Color", - "background_opacity": "Background Opacity", - "outline_color": "Outline Color", - "outline_opacity": "Outline Opacity", - "outline_thickness": "Outline Thickness", - "bold": "Bold Text", - "margin": "Bottom Margin" + "title": "VLC 자막 설정", + "hint": "VLC 플레이어의 자막 표시 방식을 설정하세요. 변경 사항은 다음 재생 시 적용됩니다.", + "text_color": "글자색", + "background_color": "배경 색상", + "background_opacity": "배경 투명도", + "outline_color": "외곽선 색상", + "outline_opacity": "외곽선 투명도", + "outline_thickness": "외곽선 굵기", + "bold": "굵은 글씨", + "margin": "아래쪽 여백" }, "video_player": { - "title": "Video Player", - "video_player": "Video Player", - "video_player_description": "Choose which video player to use on iOS.", + "title": "비디오 플레이어", + "video_player": "비디오 플레이어", + "video_player_description": "iOS 사용자는 비디오 플레이어를 선택하세요.", "ksplayer": "KSPlayer", "vlc": "VLC" }, @@ -288,20 +345,20 @@ "PORTRAIT_UP": "Portrait Up", "PORTRAIT_DOWN": "Portrait Down", "LANDSCAPE": "Landscape", - "LANDSCAPE_LEFT": "Landscape Left", - "LANDSCAPE_RIGHT": "Landscape Right", + "LANDSCAPE_LEFT": "왼쪽 가로 모드", + "LANDSCAPE_RIGHT": "오른쪽 가로 모드", "OTHER": "Other", "UNKNOWN": "Unknown" }, - "safe_area_in_controls": "Safe Area in Controls", + "safe_area_in_controls": "컨트롤 안전 영역", "video_player": "Video Player", "video_players": { "VLC_3": "VLC 3", "VLC_4": "VLC 4 (Experimental + PiP)" }, - "show_custom_menu_links": "Show Custom Menu Links", - "show_large_home_carousel": "Show Large Home Carousel (beta)", - "hide_libraries": "Hide Libraries", + "show_custom_menu_links": "사용자 지정 메뉴 링크 표시", + "show_large_home_carousel": "대형 홈 슬라이드 배너 표시 (베타)", + "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", @@ -334,24 +391,24 @@ "password": "Password", "password_placeholder": "Enter password for Jellyfin user {{username}}", "login_button": "Login", - "total_media_requests": "Total Media Requests", - "movie_quota_limit": "Movie Quota Limit", - "movie_quota_days": "Movie Quota Days", + "total_media_requests": "전체 미디어 요청 수", + "movie_quota_limit": "영화 요청 한도", + "movie_quota_days": "영화 요청 제한 기간", "tv_quota_limit": "TV Quota Limit", - "tv_quota_days": "TV Quota Days", - "reset_jellyseerr_config_button": "Reset Seerr Config", + "tv_quota_days": "TV 요청 제한 기간", + "reset_jellyseerr_config_button": "Seerr 설정 초기화", "unlimited": "Unlimited", - "plus_n_more": "+{{n}} More", + "plus_n_more": "+{{n}}개 더", "order_by": { "DEFAULT": "Default", - "VOTE_COUNT_AND_AVERAGE": "Vote count and average", + "VOTE_COUNT_AND_AVERAGE": "평균 평점 및 투표 수", "POPULARITY": "Popularity" } }, "marlin_search": { - "enable_marlin_search": "Enable Marlin Search", + "enable_marlin_search": "Marlin 검색 활성화", "url": "URL", - "server_url_placeholder": "http(s)://domain.org:port", + "server_url_placeholder": "http(s)://도메인:포트", "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.", "save_button": "Save", @@ -374,28 +431,28 @@ "features_title": "Features", "home_sections_title": "Home Sections", "enable_movie_recommendations": "Movie Recommendations", - "enable_series_recommendations": "Series Recommendations", - "enable_promoted_watchlists": "Promoted Watchlists", - "hide_watchlists_tab": "Hide Watchlists Tab", - "home_sections_hint": "Show personalized recommendations and promoted watchlists from Streamystats on the home page.", + "enable_series_recommendations": "시리즈 추천", + "enable_promoted_watchlists": "추천 관심 목록", + "hide_watchlists_tab": "관심 목록 탭 숨기기", + "home_sections_hint": "홈 페이지에서 Streamystats의 개인 맞춤 추천 및 추천 관심 목록을 표시합니다.", "recommended_movies": "Recommended Movies", - "recommended_series": "Recommended Series", + "recommended_series": "추천 시리즈", "toasts": { "saved": "Saved", - "refreshed": "Settings refreshed from server", - "disabled": "Streamystats disabled" + "refreshed": "서버에서 설정을 새로고침했습니다", + "disabled": "Streamystats 비활성화됨" }, - "refresh_from_server": "Refresh Settings from Server" + "refresh_from_server": "서버에서 설정 새로고침" }, "kefinTweaks": { - "watchlist_enabler": "Enable our Watchlist integration", - "watchlist_button": "Toggle Watchlist integration" + "watchlist_enabler": "관심 목록 통합 기능 활성화", + "watchlist_button": "관심 목록 연동 켜기/끄기" } }, "storage": { "storage_title": "Storage", - "app_usage": "App {{usedSpace}}%", - "device_usage": "Device {{availableSpace}}%", + "app_usage": "앱 {{usedSpace}}", + "device_usage": "디바이스 {{availableSpace}}%", "size_used": "{{used}} of {{total}} Used", "delete_all_downloaded_files": "Delete All Downloaded Files", "music_cache_title": "Music Cache", @@ -403,10 +460,16 @@ "enable_music_cache": "Enable Music Cache", "clear_music_cache": "Clear Music Cache", "music_cache_size": "{{size}} cached", - "music_cache_cleared": "Music cache cleared", + "music_cache_cleared": "음악 캐시가 삭제되었습니다", "delete_all_downloaded_songs": "Delete All Downloaded Songs", "downloaded_songs_size": "{{size}} downloaded", - "downloaded_songs_deleted": "Downloaded songs deleted" + "downloaded_songs_deleted": "다운로드한 노래가 삭제되었습니다", + "clear_all_cache": "Clear All Cache", + "clear_all_cache_confirm": "Clear All Cache?", + "clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.", + "clear_all_cache_success": "Cache Cleared", + "clear_all_cache_success_desc": "All cache has been cleared successfully.", + "clear_all_cache_error_desc": "An error occurred while clearing the cache." }, "intro": { "title": "Intro", @@ -430,11 +493,26 @@ "error_deleting_files": "Error Deleting Files", "background_downloads_enabled": "Background downloads enabled", "background_downloads_disabled": "Background downloads disabled" + }, + "security": { + "title": "Security", + "inactivity_timeout": { + "title": "Inactivity Timeout", + "description": "Auto logout after inactivity", + "disabled": "Disabled", + "1_minute": "1 minute", + "5_minutes": "5 minutes", + "15_minutes": "15 minutes", + "30_minutes": "30 minutes", + "1_hour": "1 hour", + "4_hours": "4 hours", + "24_hours": "24 hours" + } } }, "sessions": { "title": "Sessions", - "no_active_sessions": "No Active Sessions" + "no_active_sessions": "세션 비활성화" }, "downloads": { "downloads_title": "Downloads", @@ -492,6 +570,7 @@ } }, "common": { + "no_results": "No Results", "select": "Select", "no_trailer_available": "No trailer available", "video": "Video", @@ -501,13 +580,16 @@ "none": "None", "track": "Track", "cancel": "Cancel", + "stop": "Stop", "delete": "Delete", "ok": "OK", "remove": "Remove", "next": "Next", "back": "Back", "continue": "Continue", - "verifying": "Verifying..." + "verifying": "Verifying...", + "login": "Login", + "refresh": "Refresh" }, "search": { "search": "Search...", @@ -556,6 +638,7 @@ "movies": "Movies", "series": "Series", "boxsets": "Box Sets", + "playlists": "Playlists", "items": "Items" }, "options": { @@ -574,7 +657,11 @@ "sort_by": "Sort By", "filter_by": "Filter By", "sort_order": "Sort Order", - "tags": "Tags" + "tags": "Tags", + "all": "All", + "reset": "Reset", + "asc": "Ascending", + "desc": "Descending" } }, "favorites": { @@ -591,6 +678,7 @@ "no_links": "No Links" }, "player": { + "live": "LIVE", "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.", @@ -608,7 +696,35 @@ "downloaded_file_message": "Do you want to play the downloaded file?", "downloaded_file_yes": "Yes", "downloaded_file_no": "No", - "downloaded_file_cancel": "Cancel" + "downloaded_file_cancel": "Cancel", + "swipe_down_settings": "Swipe down for settings", + "ends_at": "ends at", + "search_subtitles": "Search Subtitles", + "subtitle_tracks": "Tracks", + "subtitle_search": "Search & Download", + "download": "Download", + "subtitle_download_hint": "Downloaded subtitles will be saved to your library", + "using_jellyfin_server": "Using Jellyfin Server", + "language": "Language", + "results": "Results", + "searching": "Searching...", + "search_failed": "Search failed", + "no_subtitle_provider": "No subtitle provider configured on server", + "no_subtitles_found": "No subtitles found", + "add_opensubtitles_key_hint": "Add OpenSubtitles API key in settings for client-side fallback", + "settings": "Settings", + "skip_intro": "Skip Intro", + "skip_credits": "Skip Credits", + "stopPlayback": "Stop Playback", + "stopPlayingTitle": "Stop playing \"{{title}}\"?", + "stopPlayingConfirm": "Are you sure you want to stop playback?", + "downloaded": "Downloaded" + }, + "chapters": { + "title": "Chapters", + "chapter_number": "Chapter {{number}}", + "open": "Open chapters", + "close": "Close chapters" }, "item_card": { "next_up": "Next Up", @@ -617,6 +733,11 @@ "series": "Series", "seasons": "Seasons", "season": "Season", + "from_this_series": "From This Series", + "more_from_this_season": "More from this Season", + "view_series": "View Series", + "view_season": "View Season", + "select_season": "Select Season", "no_episodes_for_this_season": "No episodes for this season", "overview": "Overview", "more_with": "More with {{name}}", @@ -627,10 +748,21 @@ "media_options": "Media Options", "quality": "Quality", "audio": "Audio", - "subtitles": "Subtitle", + "subtitles": { + "label": "Subtitle", + "none": "None", + "tracks": "Tracks" + }, "show_more": "Show More", "show_less": "Show Less", + "left": "left", + "more_info": "More Info", + "director": "Director", + "cast": "Cast", + "technical_details": "Technical Details", "appeared_in": "Appeared In", + "movies": "Movies", + "shows": "Shows", "could_not_load_item": "Could Not Load Item", "none": "None", "download": { @@ -641,7 +773,13 @@ "download_x_item": "Download {{item_count}} Items", "download_unwatched_only": "Unwatched Only", "download_button": "Download" - } + }, + "mark_played": "Mark as Watched", + "mark_unplayed": "Mark as Unwatched", + "resume_playback": "Resume Playback", + "resume_playback_description": "Do you want to continue where you left off or start from the beginning?", + "play_from_start": "Play from Start", + "continue_from": "Continue from {{time}}" }, "live_tv": { "next": "Next", @@ -652,7 +790,18 @@ "movies": "Movies", "sports": "Sports", "for_kids": "For Kids", - "news": "News" + "news": "News", + "page_of": "Page {{current}} of {{total}}", + "no_programs": "No programs available", + "no_channels": "No channels available", + "tabs": { + "programs": "Programs", + "guide": "Guide", + "channels": "Channels", + "recordings": "Recordings", + "schedule": "Schedule", + "series": "Series" + } }, "jellyseerr": { "confirm": "Confirm", @@ -697,6 +846,12 @@ "decline": "Decline", "requested_by": "Requested by {{user}}", "unknown_user": "Unknown User", + "select": "Select", + "request_all": "Request All", + "request_seasons": "Request Seasons", + "select_seasons": "Select Seasons", + "request_selected": "Request Selected", + "n_selected": "{{count}} selected", "toasts": { "jellyseer_does_not_meet_requirements": "Seerr server does not meet minimum version requirements! Please update to at least 2.0.0", "jellyseerr_test_failed": "Seerr test failed. Please try again.", @@ -716,7 +871,8 @@ "search": "Search", "library": "Library", "custom_links": "Custom Links", - "favorites": "Favorites" + "favorites": "Favorites", + "settings": "Settings" }, "music": { "title": "Music", @@ -841,5 +997,36 @@ "show": "This show", "all": "All media (default)" } + }, + "companion_login": { + "title": "Pair with TV", + "align_qr": "Align the QR code within the frame", + "enter_code_manually": "Enter code manually", + "pairing_enter_credentials": "Enter credentials for TV", + "pairing_code_label": "Pairing code", + "server": "Server", + "authorize_button": "Authorize", + "authorizing": "Authorizing...", + "scan_again": "Scan Again", + "done": "Done", + "success_title": "Authorization Sent", + "pairing_tv_connecting": "The TV is connecting to your account", + "error_title": "Authorization Failed", + "error_invalid_qr": "Invalid QR code. Please scan the TV pairing code.", + "error_generic": "Something went wrong. Please try again.", + "error_permission_denied": "Camera permission is required to scan QR codes.", + "login_as": "Log in as {{username}}?", + "on_server": "on {{server}}", + "use_different_user": "Use a different user", + "open_settings": "Open Settings" + }, + "pairing": { + "pair_with_phone": "Pair with Phone", + "pair_with_phone_title": "Login TV", + "pair_with_phone_description": "Scan the QR code displayed on your TV to log in", + "waiting_for_phone": "Waiting for phone...", + "scan_with_phone": "Scan with the Streamyfin app on your phone", + "logging_in": "Logging in...", + "logging_in_description": "Connecting to your server" } } diff --git a/translations/nl.json b/translations/nl.json index 375aeab10..7ce1a3ec2 100644 --- a/translations/nl.json +++ b/translations/nl.json @@ -4,6 +4,9 @@ "error_title": "Fout", "login_title": "Aanmelden", "login_to_title": "Aanmelden bij", + "select_user": "Select a user to log in", + "add_user_to_login": "Add a user to log in", + "add_user": "Add User", "username_placeholder": "Gebruikersnaam", "password_placeholder": "Wachtwoord", "login_button": "Aanmelden", @@ -42,7 +45,13 @@ "accounts_count": "{{count}} accounts", "select_account": "Account selecteren", "add_account": "Account toevoegen", - "remove_account_description": "Hiermee worden de opgeslagen inloggegevens voor {{username}} verwijderd." + "remove_account_description": "Hiermee worden de opgeslagen inloggegevens voor {{username}} verwijderd.", + "remove_server": "Remove Server", + "remove_server_description": "This will remove {{server}} and all saved accounts from your list.", + "select_your_server": "Select Your Server", + "add_server_to_get_started": "Add a server to get started", + "add_server": "Add Server", + "change_server": "Change Server" }, "save_account": { "title": "Account opslaan", @@ -86,6 +95,7 @@ "oops": "Oeps!", "error_message": "Er ging iets fout\nProbeer opnieuw in te loggen.", "continue_watching": "Verder Kijken", + "continue": "Continue", "next_up": "Volgende", "continue_and_next_up": "Doorgaan & Volgende", "recently_added_in": "Recent toegevoegd in {{libraryName}}", @@ -109,6 +119,12 @@ "settings": { "settings_title": "Instellingen", "log_out_button": "Afmelden", + "switch_user": { + "title": "Switch User", + "account": "Account", + "switch_user": "Switch User on This Server", + "current": "current" + }, "categories": { "title": "Categorieën" }, @@ -121,7 +137,16 @@ "appearance": { "title": "Weergave", "merge_next_up_continue_watching": "Doorgaan met kijken & Volgende samenvoegen", - "hide_remote_session_button": "Verberg Knop voor Externe Sessie" + "hide_remote_session_button": "Verberg Knop voor Externe Sessie", + "show_home_backdrop": "Dynamic Home Backdrop", + "show_hero_carousel": "Hero Carousel", + "show_series_poster_on_episode": "Show Series Poster on Episodes", + "theme_music": "Theme Music", + "display_size": "Display Size", + "display_size_small": "Small", + "display_size_default": "Default", + "display_size_large": "Large", + "display_size_extra_large": "Extra Large" }, "network": { "title": "Netwerk", @@ -174,6 +199,22 @@ "rewind_length": "Duur terugspoelen", "seconds_unit": "s" }, + "buffer": { + "title": "Buffer Settings", + "cache_mode": "Cache Mode", + "cache_auto": "Auto", + "cache_yes": "Enabled", + "cache_no": "Disabled", + "buffer_duration": "Buffer Duration", + "max_cache_size": "Max Cache Size", + "max_backward_cache": "Max Backward Cache" + }, + "vo_driver": { + "title": "Video Output", + "vo_mode": "VO Driver", + "gpu_next": "gpu-next (Recommended)", + "gpu": "gpu" + }, "gesture_controls": { "gesture_controls_title": "Gebaar Bediening", "horizontal_swipe_skip": "Horizontale Swipe om over te slaan", @@ -256,7 +297,23 @@ "subtitle_font": "Lettertype ondertitels", "ksplayer_title": "KSPlayer Instellingen", "hardware_decode": "Hardware Acceleratie", - "hardware_decode_description": "Gebruik hardware acceleratie voor video-decodering. Uitschakelen als u problemen met afspelen ondervindt." + "hardware_decode_description": "Gebruik hardware acceleratie voor video-decodering. Uitschakelen als u problemen met afspelen ondervindt.", + "opensubtitles_title": "OpenSubtitles", + "opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.", + "opensubtitles_api_key": "API Key", + "opensubtitles_api_key_placeholder": "Enter API key...", + "opensubtitles_get_key": "Get your free API key at opensubtitles.com/en/consumers", + "mpv_subtitle_scale": "Subtitle Scale", + "mpv_subtitle_margin_y": "Vertical Margin", + "mpv_subtitle_align_x": "Horizontal Align", + "mpv_subtitle_align_y": "Vertical Align", + "align": { + "left": "Left", + "center": "Center", + "right": "Right", + "top": "Top", + "bottom": "Bottom" + } }, "vlc_subtitles": { "title": "VLC ondertitel instellingen", @@ -406,7 +463,13 @@ "music_cache_cleared": "Muziek cache gewist", "delete_all_downloaded_songs": "Verwijder alle gedownloade liedjes", "downloaded_songs_size": "{{size}} gedownload", - "downloaded_songs_deleted": "Downloaded songs deleted" + "downloaded_songs_deleted": "Downloaded songs deleted", + "clear_all_cache": "Clear All Cache", + "clear_all_cache_confirm": "Clear All Cache?", + "clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.", + "clear_all_cache_success": "Cache Cleared", + "clear_all_cache_success_desc": "All cache has been cleared successfully.", + "clear_all_cache_error_desc": "An error occurred while clearing the cache." }, "intro": { "title": "Intro", @@ -430,6 +493,21 @@ "error_deleting_files": "Fout bij het verwijderen van bestanden", "background_downloads_enabled": "Downloads op de achtergrond ingeschakeld", "background_downloads_disabled": "Downloads op de achtergrond uitgeschakeld" + }, + "security": { + "title": "Security", + "inactivity_timeout": { + "title": "Inactivity Timeout", + "description": "Auto logout after inactivity", + "disabled": "Disabled", + "1_minute": "1 minute", + "5_minutes": "5 minutes", + "15_minutes": "15 minutes", + "30_minutes": "30 minutes", + "1_hour": "1 hour", + "4_hours": "4 hours", + "24_hours": "24 hours" + } } }, "sessions": { @@ -492,6 +570,7 @@ } }, "common": { + "no_results": "No Results", "select": "Selecteren", "no_trailer_available": "Geen trailer beschikbaar", "video": "Video", @@ -501,13 +580,16 @@ "none": "Geen", "track": "Spoor", "cancel": "Annuleren", + "stop": "Stop", "delete": "Verwijderen", "ok": "Oké", "remove": "Verwijderen", "next": "Volgende", "back": "Terug", "continue": "Doorgaan", - "verifying": "Verifiëren..." + "verifying": "Verifiëren...", + "login": "Login", + "refresh": "Refresh" }, "search": { "search": "Zoek...", @@ -556,6 +638,7 @@ "movies": "Films", "series": "Series", "boxsets": "Boxsets", + "playlists": "Playlists", "items": "items" }, "options": { @@ -574,7 +657,11 @@ "sort_by": "Sorteren op", "filter_by": "Filteren op", "sort_order": "Sorteer volgorde", - "tags": "Labels" + "tags": "Labels", + "all": "All", + "reset": "Reset", + "asc": "Ascending", + "desc": "Descending" } }, "favorites": { @@ -591,6 +678,7 @@ "no_links": "Geen links" }, "player": { + "live": "LIVE", "error": "Fout", "failed_to_get_stream_url": "De stream-URL kon niet worden verkregen", "an_error_occured_while_playing_the_video": "Er is een fout opgetreden tijdens het afspelen van de video. Controleer de logs in de instellingen.", @@ -608,7 +696,35 @@ "downloaded_file_message": "Wil je het gedownloade bestand afspelen?", "downloaded_file_yes": "Ja", "downloaded_file_no": "Nee", - "downloaded_file_cancel": "Annuleren" + "downloaded_file_cancel": "Annuleren", + "swipe_down_settings": "Swipe down for settings", + "ends_at": "ends at", + "search_subtitles": "Search Subtitles", + "subtitle_tracks": "Tracks", + "subtitle_search": "Search & Download", + "download": "Download", + "subtitle_download_hint": "Downloaded subtitles will be saved to your library", + "using_jellyfin_server": "Using Jellyfin Server", + "language": "Language", + "results": "Results", + "searching": "Searching...", + "search_failed": "Search failed", + "no_subtitle_provider": "No subtitle provider configured on server", + "no_subtitles_found": "No subtitles found", + "add_opensubtitles_key_hint": "Add OpenSubtitles API key in settings for client-side fallback", + "settings": "Settings", + "skip_intro": "Skip Intro", + "skip_credits": "Skip Credits", + "stopPlayback": "Stop Playback", + "stopPlayingTitle": "Stop playing \"{{title}}\"?", + "stopPlayingConfirm": "Are you sure you want to stop playback?", + "downloaded": "Downloaded" + }, + "chapters": { + "title": "Chapters", + "chapter_number": "Chapter {{number}}", + "open": "Open chapters", + "close": "Close chapters" }, "item_card": { "next_up": "Volgende", @@ -617,6 +733,11 @@ "series": "Series", "seasons": "Seizoenen", "season": "Seizoen", + "from_this_series": "From This Series", + "more_from_this_season": "More from this Season", + "view_series": "View Series", + "view_season": "View Season", + "select_season": "Select Season", "no_episodes_for_this_season": "Geen afleveringen voor dit seizoen", "overview": "Overzicht", "more_with": "Meer met {{name}}", @@ -627,10 +748,21 @@ "media_options": "Media opties", "quality": "Kwaliteit", "audio": "Audio", - "subtitles": "Ondertitel", + "subtitles": { + "label": "Subtitle", + "none": "None", + "tracks": "Tracks" + }, "show_more": "Toon meer", "show_less": "Toon minder", + "left": "left", + "more_info": "More Info", + "director": "Director", + "cast": "Cast", + "technical_details": "Technical Details", "appeared_in": "Verschenen in", + "movies": "Movies", + "shows": "Shows", "could_not_load_item": "Kon item niet laden", "none": "Geen", "download": { @@ -641,7 +773,13 @@ "download_x_item": "Download {{item_count}} items", "download_unwatched_only": "Alleen niet bekeken", "download_button": "Downloaden" - } + }, + "mark_played": "Mark as Watched", + "mark_unplayed": "Mark as Unwatched", + "resume_playback": "Resume Playback", + "resume_playback_description": "Do you want to continue where you left off or start from the beginning?", + "play_from_start": "Play from Start", + "continue_from": "Continue from {{time}}" }, "live_tv": { "next": "Volgende ", @@ -652,7 +790,18 @@ "movies": "Films", "sports": "Sport", "for_kids": "Voor kinderen", - "news": "Nieuws" + "news": "Nieuws", + "page_of": "Page {{current}} of {{total}}", + "no_programs": "No programs available", + "no_channels": "No channels available", + "tabs": { + "programs": "Programs", + "guide": "Guide", + "channels": "Channels", + "recordings": "Recordings", + "schedule": "Schedule", + "series": "Series" + } }, "jellyseerr": { "confirm": "Bevestig", @@ -697,6 +846,12 @@ "decline": "Weigeren", "requested_by": "Aangevraagd door {{user}}", "unknown_user": "Onbekende gebruiker", + "select": "Select", + "request_all": "Request All", + "request_seasons": "Request Seasons", + "select_seasons": "Select Seasons", + "request_selected": "Request Selected", + "n_selected": "{{count}} selected", "toasts": { "jellyseer_does_not_meet_requirements": "Jellyseerr server voldoet niet aan de minimale versievereisten! Update naar minimaal 2.0.0", "jellyseerr_test_failed": "Jellyseerr test mislukt. Probeer opnieuw.", @@ -716,7 +871,8 @@ "search": "Zoeken", "library": "Bibliotheek", "custom_links": "Aangepaste links", - "favorites": "Favorieten" + "favorites": "Favorieten", + "settings": "Settings" }, "music": { "title": "Muziek", @@ -841,5 +997,36 @@ "show": "Deze serie", "all": "Alle media (standaard)" } + }, + "companion_login": { + "title": "Pair with TV", + "align_qr": "Align the QR code within the frame", + "enter_code_manually": "Enter code manually", + "pairing_enter_credentials": "Enter credentials for TV", + "pairing_code_label": "Pairing code", + "server": "Server", + "authorize_button": "Authorize", + "authorizing": "Authorizing...", + "scan_again": "Scan Again", + "done": "Done", + "success_title": "Authorization Sent", + "pairing_tv_connecting": "The TV is connecting to your account", + "error_title": "Authorization Failed", + "error_invalid_qr": "Invalid QR code. Please scan the TV pairing code.", + "error_generic": "Something went wrong. Please try again.", + "error_permission_denied": "Camera permission is required to scan QR codes.", + "login_as": "Log in as {{username}}?", + "on_server": "on {{server}}", + "use_different_user": "Use a different user", + "open_settings": "Open Settings" + }, + "pairing": { + "pair_with_phone": "Pair with Phone", + "pair_with_phone_title": "Login TV", + "pair_with_phone_description": "Scan the QR code displayed on your TV to log in", + "waiting_for_phone": "Waiting for phone...", + "scan_with_phone": "Scan with the Streamyfin app on your phone", + "logging_in": "Logging in...", + "logging_in_description": "Connecting to your server" } } diff --git a/translations/no.json b/translations/no.json index 2446ec6fe..909c49fae 100644 --- a/translations/no.json +++ b/translations/no.json @@ -4,6 +4,9 @@ "error_title": "Feil", "login_title": "Logg inn", "login_to_title": "Logg inn i", + "select_user": "Select a user to log in", + "add_user_to_login": "Add a user to log in", + "add_user": "Add User", "username_placeholder": "Brukernavn", "password_placeholder": "Passord", "login_button": "Logg inn", @@ -42,7 +45,13 @@ "accounts_count": "{{count}} accounts", "select_account": "Select Account", "add_account": "Add Account", - "remove_account_description": "This will remove the saved credentials for {{username}}." + "remove_account_description": "This will remove the saved credentials for {{username}}.", + "remove_server": "Remove Server", + "remove_server_description": "This will remove {{server}} and all saved accounts from your list.", + "select_your_server": "Select Your Server", + "add_server_to_get_started": "Add a server to get started", + "add_server": "Add Server", + "change_server": "Change Server" }, "save_account": { "title": "Save Account", @@ -86,6 +95,7 @@ "oops": "Oisann!", "error_message": "Noe gikk galt.\nVennligst logg ut og inn igjen.", "continue_watching": "Fortsett å se", + "continue": "Continue", "next_up": "Neste opp", "continue_and_next_up": "Continue & Next Up", "recently_added_in": "Nylig lagt til i {{libraryName}}", @@ -109,6 +119,12 @@ "settings": { "settings_title": "Innstillinger", "log_out_button": "Logg ut", + "switch_user": { + "title": "Switch User", + "account": "Account", + "switch_user": "Switch User on This Server", + "current": "current" + }, "categories": { "title": "Categories" }, @@ -121,7 +137,16 @@ "appearance": { "title": "Appearance", "merge_next_up_continue_watching": "Merge Continue Watching & Next Up", - "hide_remote_session_button": "Hide Remote Session Button" + "hide_remote_session_button": "Hide Remote Session Button", + "show_home_backdrop": "Dynamic Home Backdrop", + "show_hero_carousel": "Hero Carousel", + "show_series_poster_on_episode": "Show Series Poster on Episodes", + "theme_music": "Theme Music", + "display_size": "Display Size", + "display_size_small": "Small", + "display_size_default": "Default", + "display_size_large": "Large", + "display_size_extra_large": "Extra Large" }, "network": { "title": "Network", @@ -174,6 +199,22 @@ "rewind_length": "Omspar lengde", "seconds_unit": "S" }, + "buffer": { + "title": "Buffer Settings", + "cache_mode": "Cache Mode", + "cache_auto": "Auto", + "cache_yes": "Enabled", + "cache_no": "Disabled", + "buffer_duration": "Buffer Duration", + "max_cache_size": "Max Cache Size", + "max_backward_cache": "Max Backward Cache" + }, + "vo_driver": { + "title": "Video Output", + "vo_mode": "VO Driver", + "gpu_next": "gpu-next (Recommended)", + "gpu": "gpu" + }, "gesture_controls": { "gesture_controls_title": "Gest kontroller", "horizontal_swipe_skip": "Vannrett sveip for å hoppe over", @@ -256,7 +297,23 @@ "subtitle_font": "Subtitle Font", "ksplayer_title": "KSPlayer Settings", "hardware_decode": "Hardware Decoding", - "hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues." + "hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues.", + "opensubtitles_title": "OpenSubtitles", + "opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.", + "opensubtitles_api_key": "API Key", + "opensubtitles_api_key_placeholder": "Enter API key...", + "opensubtitles_get_key": "Get your free API key at opensubtitles.com/en/consumers", + "mpv_subtitle_scale": "Subtitle Scale", + "mpv_subtitle_margin_y": "Vertical Margin", + "mpv_subtitle_align_x": "Horizontal Align", + "mpv_subtitle_align_y": "Vertical Align", + "align": { + "left": "Left", + "center": "Center", + "right": "Right", + "top": "Top", + "bottom": "Bottom" + } }, "vlc_subtitles": { "title": "VLC Subtitle Settings", @@ -406,7 +463,13 @@ "music_cache_cleared": "Music cache cleared", "delete_all_downloaded_songs": "Delete All Downloaded Songs", "downloaded_songs_size": "{{size}} downloaded", - "downloaded_songs_deleted": "Downloaded songs deleted" + "downloaded_songs_deleted": "Downloaded songs deleted", + "clear_all_cache": "Clear All Cache", + "clear_all_cache_confirm": "Clear All Cache?", + "clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.", + "clear_all_cache_success": "Cache Cleared", + "clear_all_cache_success_desc": "All cache has been cleared successfully.", + "clear_all_cache_error_desc": "An error occurred while clearing the cache." }, "intro": { "title": "Intro", @@ -430,6 +493,21 @@ "error_deleting_files": "Feil ved sletting av filer", "background_downloads_enabled": "Nedlastinger av bakgrunn aktivert", "background_downloads_disabled": "Bakgrunnsnedlastinger deaktivert" + }, + "security": { + "title": "Security", + "inactivity_timeout": { + "title": "Inactivity Timeout", + "description": "Auto logout after inactivity", + "disabled": "Disabled", + "1_minute": "1 minute", + "5_minutes": "5 minutes", + "15_minutes": "15 minutes", + "30_minutes": "30 minutes", + "1_hour": "1 hour", + "4_hours": "4 hours", + "24_hours": "24 hours" + } } }, "sessions": { @@ -492,6 +570,7 @@ } }, "common": { + "no_results": "No Results", "select": "Velg", "no_trailer_available": "Ingen trailer tilgjengelig", "video": "Video", @@ -501,13 +580,16 @@ "none": "None", "track": "Track", "cancel": "Cancel", + "stop": "Stop", "delete": "Delete", "ok": "OK", "remove": "Remove", "next": "Next", "back": "Back", "continue": "Continue", - "verifying": "Verifying..." + "verifying": "Verifying...", + "login": "Login", + "refresh": "Refresh" }, "search": { "search": "Søk...", @@ -556,6 +638,7 @@ "movies": "Filmer", "series": "Serier", "boxsets": "Boks sett", + "playlists": "Playlists", "items": "Elementer" }, "options": { @@ -574,7 +657,11 @@ "sort_by": "Sorter etter", "filter_by": "Filter By", "sort_order": "Sorter etter", - "tags": "Tagger" + "tags": "Tagger", + "all": "All", + "reset": "Reset", + "asc": "Ascending", + "desc": "Descending" } }, "favorites": { @@ -591,6 +678,7 @@ "no_links": "Ingen lenke" }, "player": { + "live": "LIVE", "error": "Feil", "failed_to_get_stream_url": "Kan ikke hente nettadressen for stream", "an_error_occured_while_playing_the_video": "En feil oppstod under video. Sjekk loggene i innstillingene.", @@ -608,7 +696,35 @@ "downloaded_file_message": "Do you want to play the downloaded file?", "downloaded_file_yes": "Yes", "downloaded_file_no": "No", - "downloaded_file_cancel": "Cancel" + "downloaded_file_cancel": "Cancel", + "swipe_down_settings": "Swipe down for settings", + "ends_at": "ends at", + "search_subtitles": "Search Subtitles", + "subtitle_tracks": "Tracks", + "subtitle_search": "Search & Download", + "download": "Download", + "subtitle_download_hint": "Downloaded subtitles will be saved to your library", + "using_jellyfin_server": "Using Jellyfin Server", + "language": "Language", + "results": "Results", + "searching": "Searching...", + "search_failed": "Search failed", + "no_subtitle_provider": "No subtitle provider configured on server", + "no_subtitles_found": "No subtitles found", + "add_opensubtitles_key_hint": "Add OpenSubtitles API key in settings for client-side fallback", + "settings": "Settings", + "skip_intro": "Skip Intro", + "skip_credits": "Skip Credits", + "stopPlayback": "Stop Playback", + "stopPlayingTitle": "Stop playing \"{{title}}\"?", + "stopPlayingConfirm": "Are you sure you want to stop playback?", + "downloaded": "Downloaded" + }, + "chapters": { + "title": "Chapters", + "chapter_number": "Chapter {{number}}", + "open": "Open chapters", + "close": "Close chapters" }, "item_card": { "next_up": "Neste opp", @@ -617,6 +733,11 @@ "series": "Serier", "seasons": "Sesonger", "season": "Sesong", + "from_this_series": "From This Series", + "more_from_this_season": "More from this Season", + "view_series": "View Series", + "view_season": "View Season", + "select_season": "Select Season", "no_episodes_for_this_season": "Ingen episoder for denne sesongen", "overview": "Oversikt", "more_with": "Mer med {{name}}", @@ -627,10 +748,21 @@ "media_options": "Media Options", "quality": "Kvalitet", "audio": "Lyd", - "subtitles": "Undertittel", + "subtitles": { + "label": "Subtitle", + "none": "None", + "tracks": "Tracks" + }, "show_more": "Vis mer", "show_less": "Vis mindre", + "left": "left", + "more_info": "More Info", + "director": "Director", + "cast": "Cast", + "technical_details": "Technical Details", "appeared_in": "Ble brukt i", + "movies": "Movies", + "shows": "Shows", "could_not_load_item": "Kan ikke laste inn produkt", "none": "Ingen", "download": { @@ -641,7 +773,13 @@ "download_x_item": "Last ned {{item_count}} Objekter", "download_unwatched_only": "Bare usette", "download_button": "Nedlasting" - } + }, + "mark_played": "Mark as Watched", + "mark_unplayed": "Mark as Unwatched", + "resume_playback": "Resume Playback", + "resume_playback_description": "Do you want to continue where you left off or start from the beginning?", + "play_from_start": "Play from Start", + "continue_from": "Continue from {{time}}" }, "live_tv": { "next": "Neste", @@ -652,7 +790,18 @@ "movies": "Filmer", "sports": "Sport", "for_kids": "For barn", - "news": "Nyheter" + "news": "Nyheter", + "page_of": "Page {{current}} of {{total}}", + "no_programs": "No programs available", + "no_channels": "No channels available", + "tabs": { + "programs": "Programs", + "guide": "Guide", + "channels": "Channels", + "recordings": "Recordings", + "schedule": "Schedule", + "series": "Series" + } }, "jellyseerr": { "confirm": "Bekreft", @@ -697,6 +846,12 @@ "decline": "Decline", "requested_by": "Requested by {{user}}", "unknown_user": "Unknown User", + "select": "Select", + "request_all": "Request All", + "request_seasons": "Request Seasons", + "select_seasons": "Select Seasons", + "request_selected": "Request Selected", + "n_selected": "{{count}} selected", "toasts": { "jellyseer_does_not_meet_requirements": "Seerr server oppfyller ikke minimumskravene til versjoner! Vennligst oppdater til minst 2.0.0", "jellyseerr_test_failed": "Seerr-test mislyktes. Vennligst prøv på nytt.", @@ -716,7 +871,8 @@ "search": "Søk", "library": "Bibliotek", "custom_links": "Egendefinerte lenker", - "favorites": "Favoritter" + "favorites": "Favoritter", + "settings": "Settings" }, "music": { "title": "Music", @@ -841,5 +997,36 @@ "show": "This show", "all": "All media (default)" } + }, + "companion_login": { + "title": "Pair with TV", + "align_qr": "Align the QR code within the frame", + "enter_code_manually": "Enter code manually", + "pairing_enter_credentials": "Enter credentials for TV", + "pairing_code_label": "Pairing code", + "server": "Server", + "authorize_button": "Authorize", + "authorizing": "Authorizing...", + "scan_again": "Scan Again", + "done": "Done", + "success_title": "Authorization Sent", + "pairing_tv_connecting": "The TV is connecting to your account", + "error_title": "Authorization Failed", + "error_invalid_qr": "Invalid QR code. Please scan the TV pairing code.", + "error_generic": "Something went wrong. Please try again.", + "error_permission_denied": "Camera permission is required to scan QR codes.", + "login_as": "Log in as {{username}}?", + "on_server": "on {{server}}", + "use_different_user": "Use a different user", + "open_settings": "Open Settings" + }, + "pairing": { + "pair_with_phone": "Pair with Phone", + "pair_with_phone_title": "Login TV", + "pair_with_phone_description": "Scan the QR code displayed on your TV to log in", + "waiting_for_phone": "Waiting for phone...", + "scan_with_phone": "Scan with the Streamyfin app on your phone", + "logging_in": "Logging in...", + "logging_in_description": "Connecting to your server" } } diff --git a/translations/pl.json b/translations/pl.json index ecc913531..e74e7423b 100644 --- a/translations/pl.json +++ b/translations/pl.json @@ -4,6 +4,9 @@ "error_title": "Błąd", "login_title": "Zaloguj się", "login_to_title": "Zaloguj się do", + "select_user": "Select a user to log in", + "add_user_to_login": "Add a user to log in", + "add_user": "Add User", "username_placeholder": "Nazwa użytkownika", "password_placeholder": "Hasło", "login_button": "Zaloguj się", @@ -42,7 +45,13 @@ "accounts_count": "{{count}} kont", "select_account": "Wybierz konto", "add_account": "Dodaj konto", - "remove_account_description": "Spowoduje to usunięcie zapisanych danych logowania dla {{username}}." + "remove_account_description": "Spowoduje to usunięcie zapisanych danych logowania dla {{username}}.", + "remove_server": "Remove Server", + "remove_server_description": "This will remove {{server}} and all saved accounts from your list.", + "select_your_server": "Select Your Server", + "add_server_to_get_started": "Add a server to get started", + "add_server": "Add Server", + "change_server": "Change Server" }, "save_account": { "title": "Zapisz konto", @@ -86,6 +95,7 @@ "oops": "Ups!", "error_message": "Coś poszło nie tak.\nWyloguj się i zaloguj ponownie.", "continue_watching": "Kontynuuj oglądanie", + "continue": "Continue", "next_up": "Następne w kolejce", "continue_and_next_up": "Oglądaj dalej i Następne", "recently_added_in": "Ostatnio dodano w {{libraryName}}", @@ -109,6 +119,12 @@ "settings": { "settings_title": "Ustawienia", "log_out_button": "Wyloguj się", + "switch_user": { + "title": "Switch User", + "account": "Account", + "switch_user": "Switch User on This Server", + "current": "current" + }, "categories": { "title": "Kategorie" }, @@ -121,7 +137,16 @@ "appearance": { "title": "Wygląd", "merge_next_up_continue_watching": "Połącz Oglądaj dalej i Następne", - "hide_remote_session_button": "Ukryj przycisk Zdalnej Sesji" + "hide_remote_session_button": "Ukryj przycisk Zdalnej Sesji", + "show_home_backdrop": "Dynamic Home Backdrop", + "show_hero_carousel": "Hero Carousel", + "show_series_poster_on_episode": "Show Series Poster on Episodes", + "theme_music": "Theme Music", + "display_size": "Display Size", + "display_size_small": "Small", + "display_size_default": "Default", + "display_size_large": "Large", + "display_size_extra_large": "Extra Large" }, "network": { "title": "Network", @@ -174,6 +199,22 @@ "rewind_length": "Długość przewijania do tyłu", "seconds_unit": "s" }, + "buffer": { + "title": "Buffer Settings", + "cache_mode": "Cache Mode", + "cache_auto": "Auto", + "cache_yes": "Enabled", + "cache_no": "Disabled", + "buffer_duration": "Buffer Duration", + "max_cache_size": "Max Cache Size", + "max_backward_cache": "Max Backward Cache" + }, + "vo_driver": { + "title": "Video Output", + "vo_mode": "VO Driver", + "gpu_next": "gpu-next (Recommended)", + "gpu": "gpu" + }, "gesture_controls": { "gesture_controls_title": "Sterowanie gestami", "horizontal_swipe_skip": "Przesuń w poziomie, aby pominąć", @@ -256,7 +297,23 @@ "subtitle_font": "Czcionka napisów", "ksplayer_title": "Ustawienia KSPlayer", "hardware_decode": "Dekodowanie sprzętowe", - "hardware_decode_description": "Używaj akceleracji sprzętowej dla dekodowania wideo. Wyłącz, jeśli doświadczasz problemów z odtwarzaniem." + "hardware_decode_description": "Używaj akceleracji sprzętowej dla dekodowania wideo. Wyłącz, jeśli doświadczasz problemów z odtwarzaniem.", + "opensubtitles_title": "OpenSubtitles", + "opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.", + "opensubtitles_api_key": "API Key", + "opensubtitles_api_key_placeholder": "Enter API key...", + "opensubtitles_get_key": "Get your free API key at opensubtitles.com/en/consumers", + "mpv_subtitle_scale": "Subtitle Scale", + "mpv_subtitle_margin_y": "Vertical Margin", + "mpv_subtitle_align_x": "Horizontal Align", + "mpv_subtitle_align_y": "Vertical Align", + "align": { + "left": "Left", + "center": "Center", + "right": "Right", + "top": "Top", + "bottom": "Bottom" + } }, "vlc_subtitles": { "title": "Ustawienia napisów VLC", @@ -406,7 +463,13 @@ "music_cache_cleared": "Wyczyszczono bufor muzyki", "delete_all_downloaded_songs": "Usuń wszystkie pobrane piosenki", "downloaded_songs_size": "Pobrano {{size}}", - "downloaded_songs_deleted": "Usunięto pobrane piosenki" + "downloaded_songs_deleted": "Usunięto pobrane piosenki", + "clear_all_cache": "Clear All Cache", + "clear_all_cache_confirm": "Clear All Cache?", + "clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.", + "clear_all_cache_success": "Cache Cleared", + "clear_all_cache_success_desc": "All cache has been cleared successfully.", + "clear_all_cache_error_desc": "An error occurred while clearing the cache." }, "intro": { "title": "Wstęp", @@ -430,6 +493,21 @@ "error_deleting_files": "Błąd podczas usuwania plików", "background_downloads_enabled": "Pobieranie w tle włączone", "background_downloads_disabled": "Pobieranie w tle wyłączone" + }, + "security": { + "title": "Security", + "inactivity_timeout": { + "title": "Inactivity Timeout", + "description": "Auto logout after inactivity", + "disabled": "Disabled", + "1_minute": "1 minute", + "5_minutes": "5 minutes", + "15_minutes": "15 minutes", + "30_minutes": "30 minutes", + "1_hour": "1 hour", + "4_hours": "4 hours", + "24_hours": "24 hours" + } } }, "sessions": { @@ -492,6 +570,7 @@ } }, "common": { + "no_results": "No Results", "select": "Wybierz", "no_trailer_available": "Brak dostępnego zwiastunu", "video": "Wideo", @@ -501,13 +580,16 @@ "none": "Nic", "track": "Utwór", "cancel": "Anuluj", + "stop": "Stop", "delete": "Usuń", "ok": "OK", "remove": "Usuń", "next": "Następne", "back": "Poprzednie", "continue": "Kontynuuj", - "verifying": "Weryfikacja..." + "verifying": "Weryfikacja...", + "login": "Login", + "refresh": "Refresh" }, "search": { "search": "Szukaj...", @@ -556,6 +638,7 @@ "movies": "filmy", "series": "seriale", "boxsets": "zestawy", + "playlists": "Playlists", "items": "elementy" }, "options": { @@ -574,7 +657,11 @@ "sort_by": "Sortuj według", "filter_by": "Filtruj po", "sort_order": "Kolejność sortowania", - "tags": "Tagi" + "tags": "Tagi", + "all": "All", + "reset": "Reset", + "asc": "Ascending", + "desc": "Descending" } }, "favorites": { @@ -591,6 +678,7 @@ "no_links": "Brak odnośników" }, "player": { + "live": "LIVE", "error": "Błąd", "failed_to_get_stream_url": "Nie udało się pobrać adresu strumienia", "an_error_occured_while_playing_the_video": "Wystąpił błąd podczas odtwarzania wideo. Sprawdź logi w ustawieniach.", @@ -608,7 +696,35 @@ "downloaded_file_message": "Chcesz odtworzyć pobrany plik?", "downloaded_file_yes": "Tak", "downloaded_file_no": "Nie", - "downloaded_file_cancel": "Anuluj" + "downloaded_file_cancel": "Anuluj", + "swipe_down_settings": "Swipe down for settings", + "ends_at": "ends at", + "search_subtitles": "Search Subtitles", + "subtitle_tracks": "Tracks", + "subtitle_search": "Search & Download", + "download": "Download", + "subtitle_download_hint": "Downloaded subtitles will be saved to your library", + "using_jellyfin_server": "Using Jellyfin Server", + "language": "Language", + "results": "Results", + "searching": "Searching...", + "search_failed": "Search failed", + "no_subtitle_provider": "No subtitle provider configured on server", + "no_subtitles_found": "No subtitles found", + "add_opensubtitles_key_hint": "Add OpenSubtitles API key in settings for client-side fallback", + "settings": "Settings", + "skip_intro": "Skip Intro", + "skip_credits": "Skip Credits", + "stopPlayback": "Stop Playback", + "stopPlayingTitle": "Stop playing \"{{title}}\"?", + "stopPlayingConfirm": "Are you sure you want to stop playback?", + "downloaded": "Downloaded" + }, + "chapters": { + "title": "Chapters", + "chapter_number": "Chapter {{number}}", + "open": "Open chapters", + "close": "Close chapters" }, "item_card": { "next_up": "Następne", @@ -617,6 +733,11 @@ "series": "Serial", "seasons": "Sezony", "season": "Sezon", + "from_this_series": "From This Series", + "more_from_this_season": "More from this Season", + "view_series": "View Series", + "view_season": "View Season", + "select_season": "Select Season", "no_episodes_for_this_season": "Brak odcinków w tym sezonie", "overview": "Opis", "more_with": "Więcej z {{name}}", @@ -627,10 +748,21 @@ "media_options": "Ustawienia mediów", "quality": "Jakość", "audio": "Dźwięk", - "subtitles": "Napisy", + "subtitles": { + "label": "Subtitle", + "none": "None", + "tracks": "Tracks" + }, "show_more": "Pokaż więcej", "show_less": "Pokaż mniej", + "left": "left", + "more_info": "More Info", + "director": "Director", + "cast": "Cast", + "technical_details": "Technical Details", "appeared_in": "Wystąpił w", + "movies": "Movies", + "shows": "Shows", "could_not_load_item": "Nie udało się wczytać elementu", "none": "Brak", "download": { @@ -641,7 +773,13 @@ "download_x_item": "Pobierz {{item_count}} elementów", "download_unwatched_only": "Tylko nieobejrzane", "download_button": "Pobierz" - } + }, + "mark_played": "Mark as Watched", + "mark_unplayed": "Mark as Unwatched", + "resume_playback": "Resume Playback", + "resume_playback_description": "Do you want to continue where you left off or start from the beginning?", + "play_from_start": "Play from Start", + "continue_from": "Continue from {{time}}" }, "live_tv": { "next": "Następny", @@ -652,7 +790,18 @@ "movies": "Filmy", "sports": "Sport", "for_kids": "Dla dzieci", - "news": "Wiadomości" + "news": "Wiadomości", + "page_of": "Page {{current}} of {{total}}", + "no_programs": "No programs available", + "no_channels": "No channels available", + "tabs": { + "programs": "Programs", + "guide": "Guide", + "channels": "Channels", + "recordings": "Recordings", + "schedule": "Schedule", + "series": "Series" + } }, "jellyseerr": { "confirm": "Potwierdź", @@ -697,6 +846,12 @@ "decline": "Odrzuć", "requested_by": "Poproszone przez {{user}}", "unknown_user": "Nieznany użytkownik", + "select": "Select", + "request_all": "Request All", + "request_seasons": "Request Seasons", + "select_seasons": "Select Seasons", + "request_selected": "Request Selected", + "n_selected": "{{count}} selected", "toasts": { "jellyseer_does_not_meet_requirements": "Serwer Jellyseerr nie spełnia minimalnych wymagań wersji! Zaktualizuj go co najmniej do wersji 2.0.0", "jellyseerr_test_failed": "Test Jellyseerr nie powiódł się. Spróbuj ponownie.", @@ -716,7 +871,8 @@ "search": "Szukaj", "library": "Biblioteka", "custom_links": "Niestandardowe odnośniki", - "favorites": "Ulubione" + "favorites": "Ulubione", + "settings": "Settings" }, "music": { "title": "Muzyka", @@ -841,5 +997,36 @@ "show": "Ten odcinek", "all": "Wszystkie media (domyślne)" } + }, + "companion_login": { + "title": "Pair with TV", + "align_qr": "Align the QR code within the frame", + "enter_code_manually": "Enter code manually", + "pairing_enter_credentials": "Enter credentials for TV", + "pairing_code_label": "Pairing code", + "server": "Server", + "authorize_button": "Authorize", + "authorizing": "Authorizing...", + "scan_again": "Scan Again", + "done": "Done", + "success_title": "Authorization Sent", + "pairing_tv_connecting": "The TV is connecting to your account", + "error_title": "Authorization Failed", + "error_invalid_qr": "Invalid QR code. Please scan the TV pairing code.", + "error_generic": "Something went wrong. Please try again.", + "error_permission_denied": "Camera permission is required to scan QR codes.", + "login_as": "Log in as {{username}}?", + "on_server": "on {{server}}", + "use_different_user": "Use a different user", + "open_settings": "Open Settings" + }, + "pairing": { + "pair_with_phone": "Pair with Phone", + "pair_with_phone_title": "Login TV", + "pair_with_phone_description": "Scan the QR code displayed on your TV to log in", + "waiting_for_phone": "Waiting for phone...", + "scan_with_phone": "Scan with the Streamyfin app on your phone", + "logging_in": "Logging in...", + "logging_in_description": "Connecting to your server" } } diff --git a/translations/pt.json b/translations/pt.json index 51d567db6..59fb0e3b6 100644 --- a/translations/pt.json +++ b/translations/pt.json @@ -4,6 +4,9 @@ "error_title": "Erro", "login_title": "Iniciar sessão", "login_to_title": "Iniciar sessão em", + "select_user": "Select a user to log in", + "add_user_to_login": "Add a user to log in", + "add_user": "Add User", "username_placeholder": "Usuário", "password_placeholder": "Palavra-passe", "login_button": "Iniciar sessão", @@ -42,7 +45,13 @@ "accounts_count": "{{count}} accounts", "select_account": "Select Account", "add_account": "Add Account", - "remove_account_description": "This will remove the saved credentials for {{username}}." + "remove_account_description": "This will remove the saved credentials for {{username}}.", + "remove_server": "Remove Server", + "remove_server_description": "This will remove {{server}} and all saved accounts from your list.", + "select_your_server": "Select Your Server", + "add_server_to_get_started": "Add a server to get started", + "add_server": "Add Server", + "change_server": "Change Server" }, "save_account": { "title": "Save Account", @@ -86,6 +95,7 @@ "oops": "Opa!", "error_message": "Algo deu errado.\nPor favor, saia e entre novamente.", "continue_watching": "Continuar assistindo", + "continue": "Continue", "next_up": "A Seguir", "continue_and_next_up": "Continuar e Próximo", "recently_added_in": "Adicionado recentemente em {{libraryName}}", @@ -109,6 +119,12 @@ "settings": { "settings_title": "Confirgurações", "log_out_button": "Encerrar Sessão", + "switch_user": { + "title": "Switch User", + "account": "Account", + "switch_user": "Switch User on This Server", + "current": "current" + }, "categories": { "title": "Categorias" }, @@ -121,7 +137,16 @@ "appearance": { "title": "Aparência", "merge_next_up_continue_watching": "Mesclar Continuar Assistindo e Próximo", - "hide_remote_session_button": "Esconder botão de sessão remota" + "hide_remote_session_button": "Esconder botão de sessão remota", + "show_home_backdrop": "Dynamic Home Backdrop", + "show_hero_carousel": "Hero Carousel", + "show_series_poster_on_episode": "Show Series Poster on Episodes", + "theme_music": "Theme Music", + "display_size": "Display Size", + "display_size_small": "Small", + "display_size_default": "Default", + "display_size_large": "Large", + "display_size_extra_large": "Extra Large" }, "network": { "title": "Network", @@ -174,6 +199,22 @@ "rewind_length": "Comprimento de Retroceder", "seconds_unit": "s" }, + "buffer": { + "title": "Buffer Settings", + "cache_mode": "Cache Mode", + "cache_auto": "Auto", + "cache_yes": "Enabled", + "cache_no": "Disabled", + "buffer_duration": "Buffer Duration", + "max_cache_size": "Max Cache Size", + "max_backward_cache": "Max Backward Cache" + }, + "vo_driver": { + "title": "Video Output", + "vo_mode": "VO Driver", + "gpu_next": "gpu-next (Recommended)", + "gpu": "gpu" + }, "gesture_controls": { "gesture_controls_title": "Controles de Gestos", "horizontal_swipe_skip": "Deslizar horizontalmente para pular", @@ -256,7 +297,23 @@ "subtitle_font": "Fonte da legenda", "ksplayer_title": "Configurações do KSPlayer", "hardware_decode": "Decodificação por hardware", - "hardware_decode_description": "Use aceleração de hardware para decodificação de vídeo. Desative se você tiver problemas de reprodução." + "hardware_decode_description": "Use aceleração de hardware para decodificação de vídeo. Desative se você tiver problemas de reprodução.", + "opensubtitles_title": "OpenSubtitles", + "opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.", + "opensubtitles_api_key": "API Key", + "opensubtitles_api_key_placeholder": "Enter API key...", + "opensubtitles_get_key": "Get your free API key at opensubtitles.com/en/consumers", + "mpv_subtitle_scale": "Subtitle Scale", + "mpv_subtitle_margin_y": "Vertical Margin", + "mpv_subtitle_align_x": "Horizontal Align", + "mpv_subtitle_align_y": "Vertical Align", + "align": { + "left": "Left", + "center": "Center", + "right": "Right", + "top": "Top", + "bottom": "Bottom" + } }, "vlc_subtitles": { "title": "VLC Subtitle Settings", @@ -406,7 +463,13 @@ "music_cache_cleared": "Cache de música limpo", "delete_all_downloaded_songs": "Excluir todas as músicas baixadas", "downloaded_songs_size": "{{size}} baixado", - "downloaded_songs_deleted": "Músicas baixadas excluídas" + "downloaded_songs_deleted": "Músicas baixadas excluídas", + "clear_all_cache": "Clear All Cache", + "clear_all_cache_confirm": "Clear All Cache?", + "clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.", + "clear_all_cache_success": "Cache Cleared", + "clear_all_cache_success_desc": "All cache has been cleared successfully.", + "clear_all_cache_error_desc": "An error occurred while clearing the cache." }, "intro": { "title": "Intro", @@ -430,6 +493,21 @@ "error_deleting_files": "Erro ao excluir arquivos", "background_downloads_enabled": "Downloads em segundo plano ativados", "background_downloads_disabled": "Downloads em segundo plano desativados" + }, + "security": { + "title": "Security", + "inactivity_timeout": { + "title": "Inactivity Timeout", + "description": "Auto logout after inactivity", + "disabled": "Disabled", + "1_minute": "1 minute", + "5_minutes": "5 minutes", + "15_minutes": "15 minutes", + "30_minutes": "30 minutes", + "1_hour": "1 hour", + "4_hours": "4 hours", + "24_hours": "24 hours" + } } }, "sessions": { @@ -492,6 +570,7 @@ } }, "common": { + "no_results": "No Results", "select": "Selecionar", "no_trailer_available": "Nenhum trailer disponível", "video": "Vídeo", @@ -501,13 +580,16 @@ "none": "Nenhum", "track": "Faixa", "cancel": "Cancelar", + "stop": "Stop", "delete": "Apagar", "ok": "OK", "remove": "Remover", "next": "Next", "back": "Back", "continue": "Continue", - "verifying": "Verifying..." + "verifying": "Verifying...", + "login": "Login", + "refresh": "Refresh" }, "search": { "search": "Buscar...", @@ -556,6 +638,7 @@ "movies": "Filmes", "series": "Série", "boxsets": "Conjuntos de caixas", + "playlists": "Playlists", "items": "itens" }, "options": { @@ -574,7 +657,11 @@ "sort_by": "Classificar por", "filter_by": "Filtrar Por", "sort_order": "Ordem de classificação", - "tags": "Etiquetas" + "tags": "Etiquetas", + "all": "All", + "reset": "Reset", + "asc": "Ascending", + "desc": "Descending" } }, "favorites": { @@ -591,6 +678,7 @@ "no_links": "Sem links" }, "player": { + "live": "LIVE", "error": "ERRO", "failed_to_get_stream_url": "Falha ao obter a URL de transmissão", "an_error_occured_while_playing_the_video": "Ocorreu um erro ao reproduzir o vídeo. Verifique os logs nas configurações.", @@ -608,7 +696,35 @@ "downloaded_file_message": "Você quer reproduzir o arquivo baixado?", "downloaded_file_yes": "SIm", "downloaded_file_no": "Não", - "downloaded_file_cancel": "Cancelar" + "downloaded_file_cancel": "Cancelar", + "swipe_down_settings": "Swipe down for settings", + "ends_at": "ends at", + "search_subtitles": "Search Subtitles", + "subtitle_tracks": "Tracks", + "subtitle_search": "Search & Download", + "download": "Download", + "subtitle_download_hint": "Downloaded subtitles will be saved to your library", + "using_jellyfin_server": "Using Jellyfin Server", + "language": "Language", + "results": "Results", + "searching": "Searching...", + "search_failed": "Search failed", + "no_subtitle_provider": "No subtitle provider configured on server", + "no_subtitles_found": "No subtitles found", + "add_opensubtitles_key_hint": "Add OpenSubtitles API key in settings for client-side fallback", + "settings": "Settings", + "skip_intro": "Skip Intro", + "skip_credits": "Skip Credits", + "stopPlayback": "Stop Playback", + "stopPlayingTitle": "Stop playing \"{{title}}\"?", + "stopPlayingConfirm": "Are you sure you want to stop playback?", + "downloaded": "Downloaded" + }, + "chapters": { + "title": "Chapters", + "chapter_number": "Chapter {{number}}", + "open": "Open chapters", + "close": "Close chapters" }, "item_card": { "next_up": "A Seguir", @@ -617,6 +733,11 @@ "series": "Série", "seasons": "Estações", "season": "Temporada", + "from_this_series": "From This Series", + "more_from_this_season": "More from this Season", + "view_series": "View Series", + "view_season": "View Season", + "select_season": "Select Season", "no_episodes_for_this_season": "Não há episódios para esta temporada", "overview": "Geral", "more_with": "Mais com {{name}}", @@ -627,10 +748,21 @@ "media_options": "Opções de Mídia", "quality": "Qualidade", "audio": "Áudio", - "subtitles": "Legenda", + "subtitles": { + "label": "Subtitle", + "none": "None", + "tracks": "Tracks" + }, "show_more": "Mostrar mais", "show_less": "Mostrar menos", + "left": "left", + "more_info": "More Info", + "director": "Director", + "cast": "Cast", + "technical_details": "Technical Details", "appeared_in": "Aparece em", + "movies": "Movies", + "shows": "Shows", "could_not_load_item": "Não foi possível carregar o item", "none": "Nenhuma", "download": { @@ -641,7 +773,13 @@ "download_x_item": "Baixar itens de {{item_count}}", "download_unwatched_only": "Apenas não assistidos", "download_button": "BAIXAR" - } + }, + "mark_played": "Mark as Watched", + "mark_unplayed": "Mark as Unwatched", + "resume_playback": "Resume Playback", + "resume_playback_description": "Do you want to continue where you left off or start from the beginning?", + "play_from_start": "Play from Start", + "continue_from": "Continue from {{time}}" }, "live_tv": { "next": "Próximo", @@ -652,7 +790,18 @@ "movies": "Filmes", "sports": "Esportes", "for_kids": "Para crianças", - "news": "Notícias" + "news": "Notícias", + "page_of": "Page {{current}} of {{total}}", + "no_programs": "No programs available", + "no_channels": "No channels available", + "tabs": { + "programs": "Programs", + "guide": "Guide", + "channels": "Channels", + "recordings": "Recordings", + "schedule": "Schedule", + "series": "Series" + } }, "jellyseerr": { "confirm": "Confirmar", @@ -697,6 +846,12 @@ "decline": "Declinar", "requested_by": "Solicitado por {{user}}", "unknown_user": "Usuário desconhecido", + "select": "Select", + "request_all": "Request All", + "request_seasons": "Request Seasons", + "select_seasons": "Select Seasons", + "request_selected": "Request Selected", + "n_selected": "{{count}} selected", "toasts": { "jellyseer_does_not_meet_requirements": "O servidor do Seerr não atende ao mínimo aos requisitos de versão! Por favor, atualize para pelo menos 2.0.0", "jellyseerr_test_failed": "Falha no teste do senhor. Por favor, tente novamente.", @@ -716,7 +871,8 @@ "search": "Pesquisa", "library": "Biblioteca", "custom_links": "Links personalizados", - "favorites": "Atalhos" + "favorites": "Atalhos", + "settings": "Settings" }, "music": { "title": "Música", @@ -841,5 +997,36 @@ "show": "Esta série", "all": "Todas as mídias (Padrão)" } + }, + "companion_login": { + "title": "Pair with TV", + "align_qr": "Align the QR code within the frame", + "enter_code_manually": "Enter code manually", + "pairing_enter_credentials": "Enter credentials for TV", + "pairing_code_label": "Pairing code", + "server": "Server", + "authorize_button": "Authorize", + "authorizing": "Authorizing...", + "scan_again": "Scan Again", + "done": "Done", + "success_title": "Authorization Sent", + "pairing_tv_connecting": "The TV is connecting to your account", + "error_title": "Authorization Failed", + "error_invalid_qr": "Invalid QR code. Please scan the TV pairing code.", + "error_generic": "Something went wrong. Please try again.", + "error_permission_denied": "Camera permission is required to scan QR codes.", + "login_as": "Log in as {{username}}?", + "on_server": "on {{server}}", + "use_different_user": "Use a different user", + "open_settings": "Open Settings" + }, + "pairing": { + "pair_with_phone": "Pair with Phone", + "pair_with_phone_title": "Login TV", + "pair_with_phone_description": "Scan the QR code displayed on your TV to log in", + "waiting_for_phone": "Waiting for phone...", + "scan_with_phone": "Scan with the Streamyfin app on your phone", + "logging_in": "Logging in...", + "logging_in_description": "Connecting to your server" } } diff --git a/translations/ro.json b/translations/ro.json index d3cdfd552..790787a76 100644 --- a/translations/ro.json +++ b/translations/ro.json @@ -4,6 +4,9 @@ "error_title": "Eroare", "login_title": "Conectare", "login_to_title": "Conectare la", + "select_user": "Select a user to log in", + "add_user_to_login": "Add a user to log in", + "add_user": "Add User", "username_placeholder": "Utilizator", "password_placeholder": "Parola", "login_button": "Conectare", @@ -42,7 +45,13 @@ "accounts_count": "{{count}} accounts", "select_account": "Select Account", "add_account": "Add Account", - "remove_account_description": "This will remove the saved credentials for {{username}}." + "remove_account_description": "This will remove the saved credentials for {{username}}.", + "remove_server": "Remove Server", + "remove_server_description": "This will remove {{server}} and all saved accounts from your list.", + "select_your_server": "Select Your Server", + "add_server_to_get_started": "Add a server to get started", + "add_server": "Add Server", + "change_server": "Change Server" }, "save_account": { "title": "Save Account", @@ -86,6 +95,7 @@ "oops": "Ups!", "error_message": "Ceva nu e bine.\nAutentificați-vă din nou.", "continue_watching": "Continuă vizionarea", + "continue": "Continue", "next_up": "Urmează", "continue_and_next_up": "Continue & Next Up", "recently_added_in": "Adăugat recent în {{libraryName}}", @@ -109,6 +119,12 @@ "settings": { "settings_title": "Setări", "log_out_button": "Deconectare", + "switch_user": { + "title": "Switch User", + "account": "Account", + "switch_user": "Switch User on This Server", + "current": "current" + }, "categories": { "title": "Categorii" }, @@ -121,7 +137,16 @@ "appearance": { "title": "Aspect", "merge_next_up_continue_watching": "Merge Continue Watching & Next Up", - "hide_remote_session_button": "Hide Remote Session Button" + "hide_remote_session_button": "Hide Remote Session Button", + "show_home_backdrop": "Dynamic Home Backdrop", + "show_hero_carousel": "Hero Carousel", + "show_series_poster_on_episode": "Show Series Poster on Episodes", + "theme_music": "Theme Music", + "display_size": "Display Size", + "display_size_small": "Small", + "display_size_default": "Default", + "display_size_large": "Large", + "display_size_extra_large": "Extra Large" }, "network": { "title": "Network", @@ -174,6 +199,22 @@ "rewind_length": "Durata saltului înapoi", "seconds_unit": "S" }, + "buffer": { + "title": "Buffer Settings", + "cache_mode": "Cache Mode", + "cache_auto": "Auto", + "cache_yes": "Enabled", + "cache_no": "Disabled", + "buffer_duration": "Buffer Duration", + "max_cache_size": "Max Cache Size", + "max_backward_cache": "Max Backward Cache" + }, + "vo_driver": { + "title": "Video Output", + "vo_mode": "VO Driver", + "gpu_next": "gpu-next (Recommended)", + "gpu": "gpu" + }, "gesture_controls": { "gesture_controls_title": "Controale gesturi", "horizontal_swipe_skip": "Glisați orizontal pentru a sări", @@ -256,7 +297,23 @@ "subtitle_font": "Subtitle Font", "ksplayer_title": "KSPlayer Settings", "hardware_decode": "Hardware Decoding", - "hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues." + "hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues.", + "opensubtitles_title": "OpenSubtitles", + "opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.", + "opensubtitles_api_key": "API Key", + "opensubtitles_api_key_placeholder": "Enter API key...", + "opensubtitles_get_key": "Get your free API key at opensubtitles.com/en/consumers", + "mpv_subtitle_scale": "Subtitle Scale", + "mpv_subtitle_margin_y": "Vertical Margin", + "mpv_subtitle_align_x": "Horizontal Align", + "mpv_subtitle_align_y": "Vertical Align", + "align": { + "left": "Left", + "center": "Center", + "right": "Right", + "top": "Top", + "bottom": "Bottom" + } }, "vlc_subtitles": { "title": "VLC Subtitle Settings", @@ -406,7 +463,13 @@ "music_cache_cleared": "Music cache cleared", "delete_all_downloaded_songs": "Delete All Downloaded Songs", "downloaded_songs_size": "{{size}} downloaded", - "downloaded_songs_deleted": "Downloaded songs deleted" + "downloaded_songs_deleted": "Downloaded songs deleted", + "clear_all_cache": "Clear All Cache", + "clear_all_cache_confirm": "Clear All Cache?", + "clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.", + "clear_all_cache_success": "Cache Cleared", + "clear_all_cache_success_desc": "All cache has been cleared successfully.", + "clear_all_cache_error_desc": "An error occurred while clearing the cache." }, "intro": { "title": "Introducere", @@ -430,6 +493,21 @@ "error_deleting_files": "Eroare la ștergerea fișierelor", "background_downloads_enabled": "Descărcări în fundal activate", "background_downloads_disabled": "Descărcări în fundal dezactivate" + }, + "security": { + "title": "Security", + "inactivity_timeout": { + "title": "Inactivity Timeout", + "description": "Auto logout after inactivity", + "disabled": "Disabled", + "1_minute": "1 minute", + "5_minutes": "5 minutes", + "15_minutes": "15 minutes", + "30_minutes": "30 minutes", + "1_hour": "1 hour", + "4_hours": "4 hours", + "24_hours": "24 hours" + } } }, "sessions": { @@ -492,6 +570,7 @@ } }, "common": { + "no_results": "No Results", "select": "Selectare", "no_trailer_available": "Nicio remorcă disponibilă", "video": "Video", @@ -501,13 +580,16 @@ "none": "Nimic", "track": "Limbă audio", "cancel": "Cancel", + "stop": "Stop", "delete": "Delete", "ok": "OK", "remove": "Remove", "next": "Next", "back": "Back", "continue": "Continue", - "verifying": "Verifying..." + "verifying": "Verifying...", + "login": "Login", + "refresh": "Refresh" }, "search": { "search": "Caută...", @@ -556,6 +638,7 @@ "movies": "filme", "series": "seriale", "boxsets": "box sets", + "playlists": "Playlists", "items": "articole" }, "options": { @@ -574,7 +657,11 @@ "sort_by": "Sortează după", "filter_by": "Filter By", "sort_order": "Ordine de sortare", - "tags": "Taguri" + "tags": "Taguri", + "all": "All", + "reset": "Reset", + "asc": "Ascending", + "desc": "Descending" } }, "favorites": { @@ -591,6 +678,7 @@ "no_links": "Niciun link" }, "player": { + "live": "LIVE", "error": "Eroare", "failed_to_get_stream_url": "Nu s-a putut obține adresa URL a fluxului", "an_error_occured_while_playing_the_video": "A apărut o eroare la redarea videoclipului. Verificați jurnalele în setări.", @@ -608,7 +696,35 @@ "downloaded_file_message": "Doriți să redați fișierul descărcat?", "downloaded_file_yes": "Da", "downloaded_file_no": "Nu", - "downloaded_file_cancel": "Anulează" + "downloaded_file_cancel": "Anulează", + "swipe_down_settings": "Swipe down for settings", + "ends_at": "ends at", + "search_subtitles": "Search Subtitles", + "subtitle_tracks": "Tracks", + "subtitle_search": "Search & Download", + "download": "Download", + "subtitle_download_hint": "Downloaded subtitles will be saved to your library", + "using_jellyfin_server": "Using Jellyfin Server", + "language": "Language", + "results": "Results", + "searching": "Searching...", + "search_failed": "Search failed", + "no_subtitle_provider": "No subtitle provider configured on server", + "no_subtitles_found": "No subtitles found", + "add_opensubtitles_key_hint": "Add OpenSubtitles API key in settings for client-side fallback", + "settings": "Settings", + "skip_intro": "Skip Intro", + "skip_credits": "Skip Credits", + "stopPlayback": "Stop Playback", + "stopPlayingTitle": "Stop playing \"{{title}}\"?", + "stopPlayingConfirm": "Are you sure you want to stop playback?", + "downloaded": "Downloaded" + }, + "chapters": { + "title": "Chapters", + "chapter_number": "Chapter {{number}}", + "open": "Open chapters", + "close": "Close chapters" }, "item_card": { "next_up": "Urmează", @@ -617,6 +733,11 @@ "series": "Seriale", "seasons": "Sezoane", "season": "Sezon", + "from_this_series": "From This Series", + "more_from_this_season": "More from this Season", + "view_series": "View Series", + "view_season": "View Season", + "select_season": "Select Season", "no_episodes_for_this_season": "Niciun episod pt acest sezon", "overview": "Prezentare generală", "more_with": "Mai multe cu {{name}}", @@ -627,10 +748,21 @@ "media_options": "Opțiuni Media", "quality": "Calitate", "audio": "Audio", - "subtitles": "Subtitrare", + "subtitles": { + "label": "Subtitle", + "none": "None", + "tracks": "Tracks" + }, "show_more": "Arată mai mult", "show_less": "Arată mai puțin", + "left": "left", + "more_info": "More Info", + "director": "Director", + "cast": "Cast", + "technical_details": "Technical Details", "appeared_in": "Apare în", + "movies": "Movies", + "shows": "Shows", "could_not_load_item": "Nu s-a putut încărca elementul", "none": "Nimic", "download": { @@ -641,7 +773,13 @@ "download_x_item": "Descărcați {{item_count}} articole", "download_unwatched_only": "Numai nevizionate", "download_button": "Descarcă" - } + }, + "mark_played": "Mark as Watched", + "mark_unplayed": "Mark as Unwatched", + "resume_playback": "Resume Playback", + "resume_playback_description": "Do you want to continue where you left off or start from the beginning?", + "play_from_start": "Play from Start", + "continue_from": "Continue from {{time}}" }, "live_tv": { "next": "Următorul", @@ -652,7 +790,18 @@ "movies": "Filme", "sports": "Sport", "for_kids": "Pt copii", - "news": "Știri" + "news": "Știri", + "page_of": "Page {{current}} of {{total}}", + "no_programs": "No programs available", + "no_channels": "No channels available", + "tabs": { + "programs": "Programs", + "guide": "Guide", + "channels": "Channels", + "recordings": "Recordings", + "schedule": "Schedule", + "series": "Series" + } }, "jellyseerr": { "confirm": "Confirmă", @@ -697,6 +846,12 @@ "decline": "Respinge", "requested_by": "Solicitat de {{user}}", "unknown_user": "Utilizator necunoscut", + "select": "Select", + "request_all": "Request All", + "request_seasons": "Request Seasons", + "select_seasons": "Select Seasons", + "request_selected": "Request Selected", + "n_selected": "{{count}} selected", "toasts": { "jellyseer_does_not_meet_requirements": "Serverul Jellyseerr nu îndeplinește cerințele minime de versiune! Vă rugăm să actualizați cel puțin la versiunea 2.0.0", "jellyseerr_test_failed": "Testul Jellyseerr a eșuat. Vă rugăm să încercați din nou.", @@ -716,7 +871,8 @@ "search": "Caută", "library": "Bibiliotecă", "custom_links": "Linkuri personalizate", - "favorites": "Favorite" + "favorites": "Favorite", + "settings": "Settings" }, "music": { "title": "Music", @@ -841,5 +997,36 @@ "show": "This show", "all": "All media (default)" } + }, + "companion_login": { + "title": "Pair with TV", + "align_qr": "Align the QR code within the frame", + "enter_code_manually": "Enter code manually", + "pairing_enter_credentials": "Enter credentials for TV", + "pairing_code_label": "Pairing code", + "server": "Server", + "authorize_button": "Authorize", + "authorizing": "Authorizing...", + "scan_again": "Scan Again", + "done": "Done", + "success_title": "Authorization Sent", + "pairing_tv_connecting": "The TV is connecting to your account", + "error_title": "Authorization Failed", + "error_invalid_qr": "Invalid QR code. Please scan the TV pairing code.", + "error_generic": "Something went wrong. Please try again.", + "error_permission_denied": "Camera permission is required to scan QR codes.", + "login_as": "Log in as {{username}}?", + "on_server": "on {{server}}", + "use_different_user": "Use a different user", + "open_settings": "Open Settings" + }, + "pairing": { + "pair_with_phone": "Pair with Phone", + "pair_with_phone_title": "Login TV", + "pair_with_phone_description": "Scan the QR code displayed on your TV to log in", + "waiting_for_phone": "Waiting for phone...", + "scan_with_phone": "Scan with the Streamyfin app on your phone", + "logging_in": "Logging in...", + "logging_in_description": "Connecting to your server" } } diff --git a/translations/ru.json b/translations/ru.json index a49a5409c..a27586356 100644 --- a/translations/ru.json +++ b/translations/ru.json @@ -4,6 +4,9 @@ "error_title": "Ошибка", "login_title": "Вход", "login_to_title": "Вход в", + "select_user": "Select a user to log in", + "add_user_to_login": "Add a user to log in", + "add_user": "Add User", "username_placeholder": "Имя пользователя", "password_placeholder": "Пароль", "login_button": "Войти", @@ -12,25 +15,25 @@ "failed_to_initiate_quick_connect": "Не удалось инициировать быстрое подключение", "got_it": "Принято", "connection_failed": "Соединение не удалось", - "could_not_connect_to_server": "Не удалось подключиться к серверу. Пожалуйста проверьте URL и ваше интернет соединение.", + "could_not_connect_to_server": "Не удалось подключиться к серверу. Пожалуйста, проверьте URL и ваше интернет-соединение.", "an_unexpected_error_occured": "Возникла непредвиденная ошибка", "change_server": "Поменять сервер", "invalid_username_or_password": "Неправильное имя пользователя или пароль", "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": "Сервер получил слишком много запросов, попробуйте позже.", "there_is_a_server_error": "Возникла ошибка сервера", "an_unexpected_error_occured_did_you_enter_the_correct_url": "Возникла непредвиденная ошибка. Вы правильно ввели URL?", - "too_old_server_text": "Неподдерживаемый сервер Jellyfin обнаружен", + "too_old_server_text": "Обнаружен неподдерживаемый сервер Jellyfin", "too_old_server_description": "Пожалуйста, обновите Jellyfin до последней версии" }, "server": { "enter_url_to_jellyfin_server": "Укажите URL на ваш Jellyfin сервер", "server_url_placeholder": "http(s)://your-server.com", "connect_button": "Подключиться", - "previous_servers": "предыдущие серверы", + "previous_servers": "Предыдущие серверы", "clear_button": "Очистить", - "swipe_to_remove": "Swipe to remove", + "swipe_to_remove": "Смахните для удаления", "search_for_local_servers": "Поиск локальных серверов", "searching": "Поиск...", "servers": "Сервера", @@ -39,10 +42,16 @@ "please_login_again": "Ваша сессия истекла. Пожалуйста, войдите снова.", "remove_saved_login": "Удалить сохраненный аккаунт", "remove_saved_login_description": "Ваши сохранённые данные для входа от этого сервера будут удалены. Вам придётся ввести ваши логин и пароль ещё раз.", - "accounts_count": "{{count}} аккаунтов", + "accounts_count": "Аккаунтов: {{count}}", "select_account": "Выбрать аккаунт", "add_account": "Добавить аккаунт", - "remove_account_description": "Данные для входа {{username}} будут удалены." + "remove_account_description": "Данные для входа {{username}} будут удалены.", + "remove_server": "Remove Server", + "remove_server_description": "This will remove {{server}} and all saved accounts from your list.", + "select_your_server": "Select Your Server", + "add_server_to_get_started": "Add a server to get started", + "add_server": "Add Server", + "change_server": "Change Server" }, "save_account": { "title": "Сохранить аккаунт", @@ -58,14 +67,14 @@ "cancel_button": "Отмена" }, "pin": { - "enter_pin": "Введите PIN", - "enter_pin_for": "Введите PIN для {{username}}", + "enter_pin": "Введите PIN-код", + "enter_pin_for": "Введите PIN-код для {{username}}", "enter_4_digits": "Введите 4 цифры", - "invalid_pin": "Некорректный PIN", - "setup_pin": "Установить PIN", - "confirm_pin": "Подтвердите PIN", + "invalid_pin": "Некорректный PIN-код", + "setup_pin": "Установить PIN-код", + "confirm_pin": "Подтвердите PIN-код", "pins_dont_match": "PIN-коды не совпадают", - "forgot_pin": "Забыли PIN?", + "forgot_pin": "Забыли PIN-код?", "forgot_pin_desc": "Ваши данные для входа будут удалены" }, "password": { @@ -84,8 +93,9 @@ "server_unreachable": "Сервер недоступен", "server_unreachable_message": "Не удалось соединиться с сервером.\nПожалуйста, проверьте настройки сети.", "oops": "Упс!", - "error_message": "Что-то пошло не так.\nПожалуйста выйдите и зайдите снова.", + "error_message": "Что-то пошло не так.\nПожалуйста, выйдите и зайдите снова.", "continue_watching": "Продолжить", + "continue": "Continue", "next_up": "Далее", "continue_and_next_up": "Продолжить и Далее", "recently_added_in": "Недавно добавлено в {{libraryName}}", @@ -93,13 +103,13 @@ "suggested_episodes": "Предложенные серии", "intro": { "welcome_to_streamyfin": "Добро пожаловать в Streamyfin", - "a_free_and_open_source_client_for_jellyfin": "Бесплатный клиент для Jellyfin с открытым кодом", + "a_free_and_open_source_client_for_jellyfin": "Бесплатный клиент для Jellyfin с открытым кодом.", "features_title": "Функции", "features_description": "Streamyfin имеет множество функций и интегрируется с широким спектром программ, которое вы можете найти в меню настроек:", "jellyseerr_feature_description": "Подключитесь к Jellyseerr и запрашивайте фильмы прямо в приложении.", "downloads_feature_title": "Загрузки", "downloads_feature_description": "Скачивайте фильмы и сериалы для просмотра без интернета. Используйте стандартный способ или установите сервер оптимизации для загрузки файлов в фоновом режиме.", - "chromecast_feature_description": "Транслируйте фильмы и сериалы на ваши устройста с поддержкой Chromecast.", + "chromecast_feature_description": "Транслируйте фильмы и сериалы на ваши устройства с поддержкой Chromecast.", "centralised_settings_plugin_title": "Плагин для централизованной настройки", "centralised_settings_plugin_description": "Настраивайте параметры из централизованного места на сервере Jellyfin. Все настройки клиента для всех пользователей будут синхронизированы автоматически.", "done_button": "Готово", @@ -109,6 +119,12 @@ "settings": { "settings_title": "Настройки", "log_out_button": "Выйти", + "switch_user": { + "title": "Switch User", + "account": "Account", + "switch_user": "Switch User on This Server", + "current": "current" + }, "categories": { "title": "Категории" }, @@ -121,7 +137,16 @@ "appearance": { "title": "Внешний вид", "merge_next_up_continue_watching": "Объединить «Продолжить» и «Далее»", - "hide_remote_session_button": "Скрыть кнопку «Удалённый сеанс»" + "hide_remote_session_button": "Скрыть кнопку «Удалённый сеанс»", + "show_home_backdrop": "Dynamic Home Backdrop", + "show_hero_carousel": "Hero Carousel", + "show_series_poster_on_episode": "Show Series Poster on Episodes", + "theme_music": "Theme Music", + "display_size": "Display Size", + "display_size_small": "Small", + "display_size_default": "Default", + "display_size_large": "Large", + "display_size_extra_large": "Extra Large" }, "network": { "title": "Сеть", @@ -129,7 +154,7 @@ "auto_switch_enabled": "Переключаться дома автоматически", "auto_switch_description": "Автоматически переключаться на локальный URL при присоединении к домашней WiFi сети", "local_url": "Локальный URL", - "local_url_hint": "Введите локальный URL вашего сервера (e.g., http://192.168.1.100:8096)", + "local_url_hint": "Введите локальный URL вашего сервера (например, http://192.168.1.100:8096)", "local_url_placeholder": "http://192.168.1.100:8096", "home_wifi_networks": "Домашние WiFi сети", "add_current_network": "Добавить \"{{ssid}}\"", @@ -160,28 +185,44 @@ }, "quick_connect": { "quick_connect_title": "Быстрое подключение", - "authorize_button": "Авторизировать через быстрое подключение", + "authorize_button": "Авторизовать через быстрое подключение", "enter_the_quick_connect_code": "Введите код для быстрого подключения...", "success": "Успех", "quick_connect_autorized": "Быстрое подключение авторизовано", "error": "Ошибка", "invalid_code": "Неверный код", - "authorize": "Авторизировать" + "authorize": "Авторизовать" }, "media_controls": { - "media_controls_title": "Медиа-контроль", + "media_controls_title": "Управление воспроизведением", "forward_skip_length": "Шаг перемотки вперёд", "rewind_length": "Шаг перемотки назад", "seconds_unit": "c" }, + "buffer": { + "title": "Buffer Settings", + "cache_mode": "Cache Mode", + "cache_auto": "Auto", + "cache_yes": "Enabled", + "cache_no": "Disabled", + "buffer_duration": "Buffer Duration", + "max_cache_size": "Max Cache Size", + "max_backward_cache": "Max Backward Cache" + }, + "vo_driver": { + "title": "Video Output", + "vo_mode": "VO Driver", + "gpu_next": "gpu-next (Recommended)", + "gpu": "gpu" + }, "gesture_controls": { "gesture_controls_title": "Управление жестами", - "horizontal_swipe_skip": "Горизонтальный свайп для перемотки", - "horizontal_swipe_skip_description": "Проведите влево/вправо, когда элементы управления скрыты, чтобы пропустить", - "left_side_brightness": "Управление яркостью левой стороны", - "left_side_brightness_description": "Смахните вверх/вниз на левой стороне для настройки яркости", + "horizontal_swipe_skip": "Проведите влево/вправо для перемотки", + "horizontal_swipe_skip_description": "Проведите влево/вправо, когда элементы управления скрыты, чтобы перемотать", + "left_side_brightness": "Управление яркостью слева", + "left_side_brightness_description": "Проведите вверх/вниз на левой стороне для настройки яркости", "right_side_volume": "Управление громкостью справа", - "right_side_volume_description": "Свайп вверх/вниз с правой стороны для настройки громкости", + "right_side_volume_description": "Проведите вверх/вниз с правой стороны для настройки громкости", "hide_volume_slider": "Скрыть индикатор громкости", "hide_volume_slider_description": "Скрывает индикатор громкости в плеере", "hide_brightness_slider": "Скрыть индикатор яркости", @@ -205,7 +246,7 @@ }, "subtitles": { "subtitle_title": "Субтитры", - "subtitle_hint": "Настройки отображения субтитров", + "subtitle_hint": "Настройки отображения субтитров.", "subtitle_language": "Язык субтитров", "subtitle_mode": "Режим субтитров", "set_subtitle_track": "Устанавливать субтитры из предыдущего элемента", @@ -256,7 +297,23 @@ "subtitle_font": "Шрифт субтитров", "ksplayer_title": "Настройки KSPlayer", "hardware_decode": "Аппаратное декодирование", - "hardware_decode_description": "Использовать аппаратное ускорение для декодирования видео. Выключите, если наблюдаете проблемы с воспроизведением." + "hardware_decode_description": "Использовать аппаратное ускорение для декодирования видео. Выключите, если наблюдаете проблемы с воспроизведением.", + "opensubtitles_title": "OpenSubtitles", + "opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.", + "opensubtitles_api_key": "API Key", + "opensubtitles_api_key_placeholder": "Enter API key...", + "opensubtitles_get_key": "Get your free API key at opensubtitles.com/en/consumers", + "mpv_subtitle_scale": "Subtitle Scale", + "mpv_subtitle_margin_y": "Vertical Margin", + "mpv_subtitle_align_x": "Horizontal Align", + "mpv_subtitle_align_y": "Vertical Align", + "align": { + "left": "Left", + "center": "Center", + "right": "Right", + "top": "Top", + "bottom": "Bottom" + } }, "vlc_subtitles": { "title": "Настройки субтитров в VLC", @@ -271,9 +328,9 @@ "margin": "Отступ снизу" }, "video_player": { - "title": "Видеоплеер", - "video_player": "Видеоплеер", - "video_player_description": "Выберите видеоплеер в iOS.", + "title": "Видео плеер", + "video_player": "Видео плеер", + "video_player_description": "Выберите видео плеер в iOS.", "ksplayer": "KSPlayer", "vlc": "VLC" }, @@ -294,12 +351,12 @@ "UNKNOWN": "Неизвестное" }, "safe_area_in_controls": "Безопасная зона в элементах управления", - "video_player": "Видеоплеер", + "video_player": "Видео плеер", "video_players": { "VLC_3": "VLC 3", "VLC_4": "VLC 4 (Экспериментальный + PiP)" }, - "show_custom_menu_links": "Показать ссылки кастомного меню", + "show_custom_menu_links": "Показать ссылки пользовательского меню", "show_large_home_carousel": "Показывать большую карусель (beta)", "hide_libraries": "Скрыть библиотеки", "select_liraries_you_want_to_hide": "Выберите Библиотеки, которое хотите спрятать из вкладки Библиотеки и домашней страницы.", @@ -307,7 +364,7 @@ "default_quality": "Качество по умолчанию", "default_playback_speed": "Скорость воспроизведения по умолчанию", "auto_play_next_episode": "Автоматически воспроизводить следующий эпизод", - "max_auto_play_episode_count": "Максимальное количество автовоспроизведения эпизодов", + "max_auto_play_episode_count": "Максимальное количество авто воспроизводимых эпизодов", "disabled": "Отключено" }, "downloads": { @@ -319,9 +376,9 @@ "playback_description": "Настройте воспроизведение музыки.", "prefer_downloaded": "Предпочитать скачанные песни", "caching_title": "Кеширование", - "caching_description": "Автоматически предкешировать следующие треки для стабильного воспроизведения.", + "caching_description": "Автоматически кешировать следующие треки для стабильного воспроизведения.", "lookahead_enabled": "Включить предкеширование", - "lookahead_count": "Сколько предкешировать", + "lookahead_count": "Сколько треков предкешировать", "max_cache_size": "Максимальное число предкешированных треков" }, "plugins": { @@ -329,8 +386,8 @@ "jellyseerr": { "jellyseerr_warning": "Эта интеграция находится на ранней стадии. Ожидайте изменений.", "server_url": "URL сервера", - "server_url_hint": "Пример: http(s)://your-host.url\n(Добавьте порт если необходимо)", - "server_url_placeholder": "Jellyseerr URL...", + "server_url_hint": "Пример: http(s)://your-host.url\n(добавьте порт если необходимо)", + "server_url_placeholder": "Seerr URL...", "password": "Пароль", "password_placeholder": "Введите пароль для пользователя Jellyfin {{username}}", "login_button": "Войти", @@ -349,7 +406,7 @@ } }, "marlin_search": { - "enable_marlin_search": "Включить Marlin Search ", + "enable_marlin_search": "Включить Marlin Search", "url": "URL-адрес", "server_url_placeholder": "http(s)://domain.org:port", "marlin_search_hint": "Введите URL для Marlin сервера. URL должен включать http or https и опционально порт.", @@ -399,14 +456,20 @@ "size_used": "{{used}} из {{total}} использовано", "delete_all_downloaded_files": "Удалить все загруженные файлы", "music_cache_title": "Кеш музыки", - "music_cache_description": "Автоматически прекешировать песни по мере прослушивания для плавного воспроизведения и поддержки отсутствия интернета", + "music_cache_description": "Автоматически кешировать песни по мере прослушивания для плавного воспроизведения и поддержки отсутствия интернета", "enable_music_cache": "Кешировать музыку", "clear_music_cache": "Очистить кеш музыки", - "music_cache_size": "{{size}} кешировано", + "music_cache_size": "Кешировано: {{size}}", "music_cache_cleared": "Кеш музыки очищен", "delete_all_downloaded_songs": "Удалить все скачанные песни", - "downloaded_songs_size": "{{size}} скачано", - "downloaded_songs_deleted": "Скачанные песни удалены" + "downloaded_songs_size": "Скачано: {{size}}", + "downloaded_songs_deleted": "Скачанные песни удалены", + "clear_all_cache": "Clear All Cache", + "clear_all_cache_confirm": "Clear All Cache?", + "clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.", + "clear_all_cache_success": "Cache Cleared", + "clear_all_cache_success_desc": "All cache has been cleared successfully.", + "clear_all_cache_error_desc": "An error occurred while clearing the cache." }, "intro": { "title": "Вступление", @@ -415,7 +478,7 @@ }, "logs": { "logs_title": "Логи", - "export_logs": "Экспорт журналов", + "export_logs": "Сохранить логи", "click_for_more_info": "Нажмите для получения дополнительной информации", "level": "Уровень", "no_logs_available": "Логи не доступны", @@ -430,6 +493,21 @@ "error_deleting_files": "Ошибка при удалении файлов", "background_downloads_enabled": "Фоновая загрузка включена", "background_downloads_disabled": "Фоновая загрузка отключена" + }, + "security": { + "title": "Security", + "inactivity_timeout": { + "title": "Inactivity Timeout", + "description": "Auto logout after inactivity", + "disabled": "Disabled", + "1_minute": "1 minute", + "5_minutes": "5 minutes", + "15_minutes": "15 minutes", + "30_minutes": "30 minutes", + "1_hour": "1 hour", + "4_hours": "4 hours", + "24_hours": "24 hours" + } } }, "sessions": { @@ -453,7 +531,7 @@ "no_active_downloads": "Нет активных загрузок", "active_downloads": "Активные", "new_app_version_requires_re_download": "Новая версия приложения требует повторной загрузки", - "new_app_version_requires_re_download_description": "Новая версия приложения требует повторной загрузки. Пожалуйста удалите всё и попробуйте заново.", + "new_app_version_requires_re_download_description": "Новая версия приложения требует повторной загрузки контента. Пожалуйста, удалите весь скачанный контент и попробуйте заново.", "back": "Назад", "delete": "Удалить", "something_went_wrong": "Что-то пошло не так", @@ -465,33 +543,34 @@ "failed_to_delete_all_movies": "Возникла ошибка при удалении всех фильмов", "deleted_all_tvseries_successfully": "Все сериалы были успешно удалены!", "failed_to_delete_all_tvseries": "Возникла ошибка при удалении всех сериалов", - "deleted_media_successfully": "Другие носители успешно удалены!", - "failed_to_delete_media": "Не удалось удалить другой файл", - "download_deleted": "Удалено", + "deleted_media_successfully": "Остальные медиафайлы успешно удалены!", + "failed_to_delete_media": "Не удалось удалить остальные медиафайлы", + "download_deleted": "Загруженный контент удалён", "download_cancelled": "Загрузка отменена", "could_not_delete_download": "Не удалось удалить загрузку", "download_paused": "На паузе", "could_not_pause_download": "Не удалось приостановить загрузку", "download_resumed": "Продолжено", - "could_not_resume_download": "Не удалось продолжить загрузку", + "could_not_resume_download": "Не удалось возобновить загрузку", "download_completed": "Завершено", "download_failed": "Не удалось загрузить", "download_failed_for_item": "Загрузка {{item}} провалилась с ошибкой: {{error}}", "download_completed_for_item": "{{item}} успешно загружен", - "download_started_for_item": "Загрузка началась для {{item}}", + "download_started_for_item": "Загрузка {{item}} началась", "failed_to_start_download": "Не удалось начать загрузку", "item_already_downloading": "{{item}} уже загружается", "all_files_deleted": "Все загрузки удалены", - "files_deleted_by_type": "{{count}} {{type}} удалён(о)", + "files_deleted_by_type": "Удалено: {{count}} {{type}}", "all_files_folders_and_jobs_deleted_successfully": "Все файлы, папки, и задачи были успешно удалены", "failed_to_clean_cache_directory": "Не удалось очистить директорию кэша", - "could_not_get_download_url_for_item": "Не удалось получить URL загрузки для {{itemName}}", + "could_not_get_download_url_for_item": "Не удалось получить URL для загрузки {{itemName}}", "go_to_downloads": "В загрузки", - "file_deleted": "{{item}} удалён" + "file_deleted": "Удалено: {{item}}" } } }, "common": { + "no_results": "No Results", "select": "Выбрать", "no_trailer_available": "Трейлер недоступен", "video": "Видео", @@ -501,17 +580,20 @@ "none": "Отсутствует", "track": "Трек", "cancel": "Отмена", + "stop": "Stop", "delete": "Удалить", "ok": "ОК", "remove": "Удалить", "next": "Вперед", "back": "Назад", "continue": "Продолжить", - "verifying": "Проверка..." + "verifying": "Проверка...", + "login": "Login", + "refresh": "Refresh" }, "search": { "search": "Поиск...", - "x_items": "{{count}} элементов", + "x_items": "Элементов: {{count}}", "library": "Библиотека", "discover": "Найти новое", "no_results": "Ничего не найдено", @@ -529,14 +611,14 @@ "request_series": "Запросить сериалы", "recently_added": "Недавно добавлено", "recent_requests": "Недавно запрошено", - "plex_watchlist": "Список просмотра с Plex", + "plex_watchlist": "Список просмотра Plex", "trending": "В тренде", "popular_movies": "Популярные фильмы", "movie_genres": "Популярные жанры", "upcoming_movies": "Предстоящие фильмы", "studios": "Студии", "popular_tv": "Популярные сериалы", - "tv_genres": "жанры сериалов", + "tv_genres": "Жанры сериалов", "upcoming_tv": "Предстоящие сериалы", "networks": "Сети", "tmdb_movie_keyword": "TMDB Ключевые слова фильмов", @@ -556,7 +638,8 @@ "movies": "Фильмы", "series": "Сериалы", "boxsets": "Коллекции", - "items": "элементы" + "playlists": "Playlists", + "items": "Элементы" }, "options": { "display": "Отображать", @@ -565,7 +648,7 @@ "image_style": "Стиль изображения", "poster": "Постер", "cover": "Обложка", - "show_titles": "Показывать загаловки", + "show_titles": "Показывать заголовки", "show_stats": "Показывать статистику" }, "filters": { @@ -574,7 +657,11 @@ "sort_by": "Сортировка", "filter_by": "Фильтр", "sort_order": "Порядок", - "tags": "Тэги" + "tags": "Теги", + "all": "All", + "reset": "Reset", + "asc": "Ascending", + "desc": "Descending" } }, "favorites": { @@ -591,6 +678,7 @@ "no_links": "Нет ссылок" }, "player": { + "live": "LIVE", "error": "Ошибка", "failed_to_get_stream_url": "Не удалось получить URL потока", "an_error_occured_while_playing_the_video": "Возникла Неожиданная ошибка во время воспроизведения. Проверьте логи в настройках.", @@ -608,7 +696,35 @@ "downloaded_file_message": "Хотите воспроизвести скачанный файл?", "downloaded_file_yes": "Да", "downloaded_file_no": "Нет", - "downloaded_file_cancel": "Отмена" + "downloaded_file_cancel": "Отмена", + "swipe_down_settings": "Swipe down for settings", + "ends_at": "ends at", + "search_subtitles": "Search Subtitles", + "subtitle_tracks": "Tracks", + "subtitle_search": "Search & Download", + "download": "Download", + "subtitle_download_hint": "Downloaded subtitles will be saved to your library", + "using_jellyfin_server": "Using Jellyfin Server", + "language": "Language", + "results": "Results", + "searching": "Searching...", + "search_failed": "Search failed", + "no_subtitle_provider": "No subtitle provider configured on server", + "no_subtitles_found": "No subtitles found", + "add_opensubtitles_key_hint": "Add OpenSubtitles API key in settings for client-side fallback", + "settings": "Settings", + "skip_intro": "Skip Intro", + "skip_credits": "Skip Credits", + "stopPlayback": "Stop Playback", + "stopPlayingTitle": "Stop playing \"{{title}}\"?", + "stopPlayingConfirm": "Are you sure you want to stop playback?", + "downloaded": "Downloaded" + }, + "chapters": { + "title": "Chapters", + "chapter_number": "Chapter {{number}}", + "open": "Open chapters", + "close": "Close chapters" }, "item_card": { "next_up": "Далее", @@ -617,6 +733,11 @@ "series": "Серии", "seasons": "Сезоны", "season": "Сезон", + "from_this_series": "From This Series", + "more_from_this_season": "More from this Season", + "view_series": "View Series", + "view_season": "View Season", + "select_season": "Select Season", "no_episodes_for_this_season": "В этом сезоне нет серий", "overview": "Обзор", "more_with": "Больше с {{name}}", @@ -624,13 +745,24 @@ "no_similar_items_found": "Похожие элементы не найдены", "video": "Видео", "more_details": "Больше деталей", - "media_options": "Media Options", + "media_options": "Опции медиа", "quality": "Качество", "audio": "Звук", - "subtitles": "Субтитры", + "subtitles": { + "label": "Subtitle", + "none": "None", + "tracks": "Tracks" + }, "show_more": "Показать больше", "show_less": "Показать меньше", + "left": "left", + "more_info": "More Info", + "director": "Director", + "cast": "Cast", + "technical_details": "Technical Details", "appeared_in": "Появлялся в", + "movies": "Movies", + "shows": "Shows", "could_not_load_item": "Не удалось загрузить элемент", "none": "Отсутствует", "download": { @@ -641,7 +773,13 @@ "download_x_item": "Загрузить {{item_count}} элементов", "download_unwatched_only": "Только непросмотренные", "download_button": "Загрузить" - } + }, + "mark_played": "Mark as Watched", + "mark_unplayed": "Mark as Unwatched", + "resume_playback": "Resume Playback", + "resume_playback_description": "Do you want to continue where you left off or start from the beginning?", + "play_from_start": "Play from Start", + "continue_from": "Continue from {{time}}" }, "live_tv": { "next": "Далее", @@ -652,7 +790,18 @@ "movies": "Фильмы", "sports": "Спорт", "for_kids": "Для детей", - "news": "Новости" + "news": "Новости", + "page_of": "Page {{current}} of {{total}}", + "no_programs": "No programs available", + "no_channels": "No channels available", + "tabs": { + "programs": "Programs", + "guide": "Guide", + "channels": "Channels", + "recordings": "Recordings", + "schedule": "Schedule", + "series": "Series" + } }, "jellyseerr": { "confirm": "Подтвердить", @@ -685,26 +834,32 @@ "currently_streaming_on": "Сейчас доступно на", "advanced": "Продвинутое", "request_as": "Запросить как", - "tags": "Тэги", + "tags": "Теги", "quality_profile": "Профиль качества", "root_folder": "Корневая папка", "season_all": "Сезон (все)", "season_number": "Сезон {{season_number}}", - "number_episodes": "{{episode_number}} серий", + "number_episodes": "Серий: {{episode_number}}", "born": "Рожден", "appearances": "Появления", "approve": "Одобрить", "decline": "Отклонить", "requested_by": "Запрошено {{user}}", "unknown_user": "Неизвестный пользователь", + "select": "Select", + "request_all": "Request All", + "request_seasons": "Request Seasons", + "select_seasons": "Select Seasons", + "request_selected": "Request Selected", + "n_selected": "{{count}} selected", "toasts": { "jellyseer_does_not_meet_requirements": "Сервер Jellyseerr не соответствует минимальным требованиям версии! Пожалуйста, обновите до версии не ниже 2.0.0", "jellyseerr_test_failed": "Тест Jellyseerr не пройден. Попробуйте еще раз.", - "failed_to_test_jellyseerr_server_url": "Не удалось проверить URL-адрес сервера jellyseerr", + "failed_to_test_jellyseerr_server_url": "Не удалось проверить URL-адрес сервера Seerr", "issue_submitted": "Проблема отправлена!", "requested_item": "Запрошено {{item}}!", "you_dont_have_permission_to_request": "У вас нет разрешения на запрос!", - "something_went_wrong_requesting_media": "Что-то пошло не так при запросе медиафайлов!", + "something_went_wrong_requesting_media": "Что-то пошло не так при запросе медиа!", "request_approved": "Запрос одобрен!", "request_declined": "Запрос отклонён!", "failed_to_approve_request": "Не удалось одобрить запрос", @@ -716,7 +871,8 @@ "search": "Поиск", "library": "Библиотека", "custom_links": "Ссылки", - "favorites": "Избранное" + "favorites": "Избранное", + "settings": "Settings" }, "music": { "title": "Музыка", @@ -801,7 +957,7 @@ "name_label": "Название", "name_placeholder": "Введите название списка", "description_label": "Описание", - "description_placeholder": "Введите описание (не обязательно)", + "description_placeholder": "Введите описание (необязательно)", "is_public_label": "Публичный", "is_public_description": "Разрешить остальным пользователям видеть этот список", "allowed_type_label": "Тип контента", @@ -841,5 +997,36 @@ "show": "Ко всему сериалу", "all": "Ко всем файлам (по умолчанию)" } + }, + "companion_login": { + "title": "Pair with TV", + "align_qr": "Align the QR code within the frame", + "enter_code_manually": "Enter code manually", + "pairing_enter_credentials": "Enter credentials for TV", + "pairing_code_label": "Pairing code", + "server": "Server", + "authorize_button": "Authorize", + "authorizing": "Authorizing...", + "scan_again": "Scan Again", + "done": "Done", + "success_title": "Authorization Sent", + "pairing_tv_connecting": "The TV is connecting to your account", + "error_title": "Authorization Failed", + "error_invalid_qr": "Invalid QR code. Please scan the TV pairing code.", + "error_generic": "Something went wrong. Please try again.", + "error_permission_denied": "Camera permission is required to scan QR codes.", + "login_as": "Log in as {{username}}?", + "on_server": "on {{server}}", + "use_different_user": "Use a different user", + "open_settings": "Open Settings" + }, + "pairing": { + "pair_with_phone": "Pair with Phone", + "pair_with_phone_title": "Login TV", + "pair_with_phone_description": "Scan the QR code displayed on your TV to log in", + "waiting_for_phone": "Waiting for phone...", + "scan_with_phone": "Scan with the Streamyfin app on your phone", + "logging_in": "Logging in...", + "logging_in_description": "Connecting to your server" } } diff --git a/translations/sv.json b/translations/sv.json index 2c95fe776..758e4e9b7 100644 --- a/translations/sv.json +++ b/translations/sv.json @@ -4,6 +4,9 @@ "error_title": "Fel", "login_title": "Logga in", "login_to_title": "Logga in till", + "select_user": "Select a user to log in", + "add_user_to_login": "Add a user to log in", + "add_user": "Add User", "username_placeholder": "Användarnamn", "password_placeholder": "Lösenord", "login_button": "Logga in", @@ -44,7 +47,11 @@ "add_account": "Lägg till konto", "remove_account_description": "Detta kommer att ta bort de sparade uppgifterna för {{username}}.", "remove_server": "Ta bort server", - "remove_server_description": "Detta kommer att ta bort {{server}} och alla sparade konton från din lista." + "remove_server_description": "Detta kommer att ta bort {{server}} och alla sparade konton från din lista.", + "select_your_server": "Select Your Server", + "add_server_to_get_started": "Add a server to get started", + "add_server": "Add Server", + "change_server": "Change Server" }, "save_account": { "title": "Spara konto", @@ -112,6 +119,12 @@ "settings": { "settings_title": "Inställningar", "log_out_button": "Logga ut", + "switch_user": { + "title": "Switch User", + "account": "Account", + "switch_user": "Switch User on This Server", + "current": "current" + }, "categories": { "title": "Kategorier" }, @@ -128,12 +141,12 @@ "show_home_backdrop": "Dynamisk hembakgrund", "show_hero_carousel": "Hjältekarusell", "show_series_poster_on_episode": "Visa serieaffisch på avsnitt", + "theme_music": "Temamusik", "display_size": "Visningsstorlek", "display_size_small": "Liten", "display_size_default": "Standard", "display_size_large": "Stor", - "display_size_extra_large": "Extra stor", - "theme_music": "Temamusik" + "display_size_extra_large": "Extra stor" }, "network": { "title": "Nätverk", @@ -196,6 +209,12 @@ "max_cache_size": "Max cachestorlek", "max_backward_cache": "Max bakåtcache" }, + "vo_driver": { + "title": "Video Output", + "vo_mode": "VO Driver", + "gpu_next": "gpu-next (Recommended)", + "gpu": "gpu" + }, "gesture_controls": { "gesture_controls_title": "Gestkontroller", "horizontal_swipe_skip": "Horisontell Svepning för att Hoppa Fram/Bak", @@ -371,7 +390,7 @@ "server_url_placeholder": "Seerr URL", "password": "Lösenord", "password_placeholder": "Ange lösenord för Jellyfin användare {{username}}", - "login_button": "Logga in", + "login_button": "Login", "total_media_requests": "Totalt antal mediaförfrågningar", "movie_quota_limit": "Gräns för filmkvot", "movie_quota_days": "Filmkvot Dagar", @@ -444,7 +463,13 @@ "music_cache_cleared": "Musikcache rensad", "delete_all_downloaded_songs": "Ta bort alla nerladdade filer", "downloaded_songs_size": "{{size}} nedladdad", - "downloaded_songs_deleted": "Nedladdade låtar raderade" + "downloaded_songs_deleted": "Nedladdade låtar raderade", + "clear_all_cache": "Clear All Cache", + "clear_all_cache_confirm": "Clear All Cache?", + "clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.", + "clear_all_cache_success": "Cache Cleared", + "clear_all_cache_success_desc": "All cache has been cleared successfully.", + "clear_all_cache_error_desc": "An error occurred while clearing the cache." }, "intro": { "title": "Introduktion", @@ -468,6 +493,21 @@ "error_deleting_files": "Fel Vid Borttagning Av Filer", "background_downloads_enabled": "Bakgrundsnedladdningar aktiverade", "background_downloads_disabled": "Bakgrundsnedladdningar inaktiverade" + }, + "security": { + "title": "Security", + "inactivity_timeout": { + "title": "Inactivity Timeout", + "description": "Auto logout after inactivity", + "disabled": "Disabled", + "1_minute": "1 minute", + "5_minutes": "5 minutes", + "15_minutes": "15 minutes", + "30_minutes": "30 minutes", + "1_hour": "1 hour", + "4_hours": "4 hours", + "24_hours": "24 hours" + } } }, "sessions": { @@ -549,8 +589,7 @@ "continue": "Fortsätt", "verifying": "Verifierar...", "login": "Logga in", - "refresh": "Uppdatera", - "seeAll": "Visa alla" + "refresh": "Uppdatera" }, "search": { "search": "Sök...", @@ -681,6 +720,12 @@ "stopPlayingConfirm": "Är du säker på att du vill stoppa uppspelningen?", "downloaded": "Nedladdad" }, + "chapters": { + "title": "Chapters", + "chapter_number": "Chapter {{number}}", + "open": "Open chapters", + "close": "Close chapters" + }, "item_card": { "next_up": "Näst på tur", "no_items_to_display": "Inga Artiklar Att Visa", @@ -793,7 +838,7 @@ "quality_profile": "Kvalitetsprofil", "root_folder": "Rotkatalog", "season_all": "Säsong (alla)", - "season_number": "Säsong {{season_number}}", + "season_number": "Säsong {{seasonNumber}}", "number_episodes": "{{episode_number}} Avsnitt", "born": "Född", "appearances": "Framträdanden", @@ -952,5 +997,36 @@ "show": "Denna serie", "all": "Alla media (standard)" } + }, + "companion_login": { + "title": "Pair with TV", + "align_qr": "Align the QR code within the frame", + "enter_code_manually": "Enter code manually", + "pairing_enter_credentials": "Enter credentials for TV", + "pairing_code_label": "Pairing code", + "server": "Server", + "authorize_button": "Authorize", + "authorizing": "Authorizing...", + "scan_again": "Scan Again", + "done": "Done", + "success_title": "Authorization Sent", + "pairing_tv_connecting": "The TV is connecting to your account", + "error_title": "Authorization Failed", + "error_invalid_qr": "Invalid QR code. Please scan the TV pairing code.", + "error_generic": "Something went wrong. Please try again.", + "error_permission_denied": "Camera permission is required to scan QR codes.", + "login_as": "Log in as {{username}}?", + "on_server": "on {{server}}", + "use_different_user": "Use a different user", + "open_settings": "Open Settings" + }, + "pairing": { + "pair_with_phone": "Pair with Phone", + "pair_with_phone_title": "Login TV", + "pair_with_phone_description": "Scan the QR code displayed on your TV to log in", + "waiting_for_phone": "Waiting for phone...", + "scan_with_phone": "Scan with the Streamyfin app on your phone", + "logging_in": "Logging in...", + "logging_in_description": "Connecting to your server" } } diff --git a/translations/th.json b/translations/th.json index 4a671c0f3..73996a1c7 100644 --- a/translations/th.json +++ b/translations/th.json @@ -4,6 +4,9 @@ "error_title": "Error", "login_title": "Log In", "login_to_title": "Log in to", + "select_user": "Select a user to log in", + "add_user_to_login": "Add a user to log in", + "add_user": "Add User", "username_placeholder": "Username", "password_placeholder": "Password", "login_button": "Log In", @@ -42,7 +45,13 @@ "accounts_count": "{{count}} accounts", "select_account": "Select Account", "add_account": "Add Account", - "remove_account_description": "This will remove the saved credentials for {{username}}." + "remove_account_description": "This will remove the saved credentials for {{username}}.", + "remove_server": "Remove Server", + "remove_server_description": "This will remove {{server}} and all saved accounts from your list.", + "select_your_server": "Select Your Server", + "add_server_to_get_started": "Add a server to get started", + "add_server": "Add Server", + "change_server": "Change Server" }, "save_account": { "title": "Save Account", @@ -86,6 +95,7 @@ "oops": "Oops!", "error_message": "Something went wrong.\nPlease log out and in again.", "continue_watching": "Continue Watching", + "continue": "Continue", "next_up": "Next Up", "continue_and_next_up": "Continue & Next Up", "recently_added_in": "Recently Added in {{libraryName}}", @@ -109,6 +119,12 @@ "settings": { "settings_title": "Settings", "log_out_button": "Log Out", + "switch_user": { + "title": "Switch User", + "account": "Account", + "switch_user": "Switch User on This Server", + "current": "current" + }, "categories": { "title": "Categories" }, @@ -121,7 +137,16 @@ "appearance": { "title": "ปรับแต่งลักษณะภายนอก", "merge_next_up_continue_watching": "Merge Continue Watching & Next Up", - "hide_remote_session_button": "Hide Remote Session Button" + "hide_remote_session_button": "Hide Remote Session Button", + "show_home_backdrop": "Dynamic Home Backdrop", + "show_hero_carousel": "Hero Carousel", + "show_series_poster_on_episode": "Show Series Poster on Episodes", + "theme_music": "Theme Music", + "display_size": "Display Size", + "display_size_small": "Small", + "display_size_default": "Default", + "display_size_large": "Large", + "display_size_extra_large": "Extra Large" }, "network": { "title": "Network", @@ -174,6 +199,22 @@ "rewind_length": "Rewind Length", "seconds_unit": "s" }, + "buffer": { + "title": "Buffer Settings", + "cache_mode": "Cache Mode", + "cache_auto": "Auto", + "cache_yes": "Enabled", + "cache_no": "Disabled", + "buffer_duration": "Buffer Duration", + "max_cache_size": "Max Cache Size", + "max_backward_cache": "Max Backward Cache" + }, + "vo_driver": { + "title": "Video Output", + "vo_mode": "VO Driver", + "gpu_next": "gpu-next (Recommended)", + "gpu": "gpu" + }, "gesture_controls": { "gesture_controls_title": "Gesture Controls", "horizontal_swipe_skip": "Horizontal Swipe to Skip", @@ -256,7 +297,23 @@ "subtitle_font": "Subtitle Font", "ksplayer_title": "KSPlayer Settings", "hardware_decode": "Hardware Decoding", - "hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues." + "hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues.", + "opensubtitles_title": "OpenSubtitles", + "opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.", + "opensubtitles_api_key": "API Key", + "opensubtitles_api_key_placeholder": "Enter API key...", + "opensubtitles_get_key": "Get your free API key at opensubtitles.com/en/consumers", + "mpv_subtitle_scale": "Subtitle Scale", + "mpv_subtitle_margin_y": "Vertical Margin", + "mpv_subtitle_align_x": "Horizontal Align", + "mpv_subtitle_align_y": "Vertical Align", + "align": { + "left": "Left", + "center": "Center", + "right": "Right", + "top": "Top", + "bottom": "Bottom" + } }, "vlc_subtitles": { "title": "VLC Subtitle Settings", @@ -406,7 +463,13 @@ "music_cache_cleared": "Music cache cleared", "delete_all_downloaded_songs": "Delete All Downloaded Songs", "downloaded_songs_size": "{{size}} downloaded", - "downloaded_songs_deleted": "Downloaded songs deleted" + "downloaded_songs_deleted": "Downloaded songs deleted", + "clear_all_cache": "Clear All Cache", + "clear_all_cache_confirm": "Clear All Cache?", + "clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.", + "clear_all_cache_success": "Cache Cleared", + "clear_all_cache_success_desc": "All cache has been cleared successfully.", + "clear_all_cache_error_desc": "An error occurred while clearing the cache." }, "intro": { "title": "Intro", @@ -430,6 +493,21 @@ "error_deleting_files": "Error Deleting Files", "background_downloads_enabled": "Background downloads enabled", "background_downloads_disabled": "Background downloads disabled" + }, + "security": { + "title": "Security", + "inactivity_timeout": { + "title": "Inactivity Timeout", + "description": "Auto logout after inactivity", + "disabled": "Disabled", + "1_minute": "1 minute", + "5_minutes": "5 minutes", + "15_minutes": "15 minutes", + "30_minutes": "30 minutes", + "1_hour": "1 hour", + "4_hours": "4 hours", + "24_hours": "24 hours" + } } }, "sessions": { @@ -492,6 +570,7 @@ } }, "common": { + "no_results": "No Results", "select": "Select", "no_trailer_available": "No trailer available", "video": "Video", @@ -501,13 +580,16 @@ "none": "None", "track": "Track", "cancel": "Cancel", + "stop": "Stop", "delete": "Delete", "ok": "OK", "remove": "Remove", "next": "Next", "back": "Back", "continue": "Continue", - "verifying": "Verifying..." + "verifying": "Verifying...", + "login": "Login", + "refresh": "Refresh" }, "search": { "search": "Search...", @@ -556,6 +638,7 @@ "movies": "Movies", "series": "Series", "boxsets": "Box Sets", + "playlists": "Playlists", "items": "Items" }, "options": { @@ -574,7 +657,11 @@ "sort_by": "Sort By", "filter_by": "Filter By", "sort_order": "Sort Order", - "tags": "Tags" + "tags": "Tags", + "all": "All", + "reset": "Reset", + "asc": "Ascending", + "desc": "Descending" } }, "favorites": { @@ -591,6 +678,7 @@ "no_links": "No Links" }, "player": { + "live": "LIVE", "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.", @@ -608,7 +696,35 @@ "downloaded_file_message": "Do you want to play the downloaded file?", "downloaded_file_yes": "Yes", "downloaded_file_no": "No", - "downloaded_file_cancel": "Cancel" + "downloaded_file_cancel": "Cancel", + "swipe_down_settings": "Swipe down for settings", + "ends_at": "ends at", + "search_subtitles": "Search Subtitles", + "subtitle_tracks": "Tracks", + "subtitle_search": "Search & Download", + "download": "Download", + "subtitle_download_hint": "Downloaded subtitles will be saved to your library", + "using_jellyfin_server": "Using Jellyfin Server", + "language": "Language", + "results": "Results", + "searching": "Searching...", + "search_failed": "Search failed", + "no_subtitle_provider": "No subtitle provider configured on server", + "no_subtitles_found": "No subtitles found", + "add_opensubtitles_key_hint": "Add OpenSubtitles API key in settings for client-side fallback", + "settings": "Settings", + "skip_intro": "Skip Intro", + "skip_credits": "Skip Credits", + "stopPlayback": "Stop Playback", + "stopPlayingTitle": "Stop playing \"{{title}}\"?", + "stopPlayingConfirm": "Are you sure you want to stop playback?", + "downloaded": "Downloaded" + }, + "chapters": { + "title": "Chapters", + "chapter_number": "Chapter {{number}}", + "open": "Open chapters", + "close": "Close chapters" }, "item_card": { "next_up": "Next Up", @@ -617,6 +733,11 @@ "series": "Series", "seasons": "Seasons", "season": "Season", + "from_this_series": "From This Series", + "more_from_this_season": "More from this Season", + "view_series": "View Series", + "view_season": "View Season", + "select_season": "Select Season", "no_episodes_for_this_season": "No episodes for this season", "overview": "Overview", "more_with": "More with {{name}}", @@ -627,10 +748,21 @@ "media_options": "Media Options", "quality": "Quality", "audio": "Audio", - "subtitles": "Subtitle", + "subtitles": { + "label": "Subtitle", + "none": "None", + "tracks": "Tracks" + }, "show_more": "Show More", "show_less": "Show Less", + "left": "left", + "more_info": "More Info", + "director": "Director", + "cast": "Cast", + "technical_details": "Technical Details", "appeared_in": "Appeared In", + "movies": "Movies", + "shows": "Shows", "could_not_load_item": "Could Not Load Item", "none": "None", "download": { @@ -641,7 +773,13 @@ "download_x_item": "Download {{item_count}} Items", "download_unwatched_only": "Unwatched Only", "download_button": "Download" - } + }, + "mark_played": "Mark as Watched", + "mark_unplayed": "Mark as Unwatched", + "resume_playback": "Resume Playback", + "resume_playback_description": "Do you want to continue where you left off or start from the beginning?", + "play_from_start": "Play from Start", + "continue_from": "Continue from {{time}}" }, "live_tv": { "next": "Next", @@ -652,7 +790,18 @@ "movies": "Movies", "sports": "Sports", "for_kids": "For Kids", - "news": "News" + "news": "News", + "page_of": "Page {{current}} of {{total}}", + "no_programs": "No programs available", + "no_channels": "No channels available", + "tabs": { + "programs": "Programs", + "guide": "Guide", + "channels": "Channels", + "recordings": "Recordings", + "schedule": "Schedule", + "series": "Series" + } }, "jellyseerr": { "confirm": "Confirm", @@ -697,6 +846,12 @@ "decline": "Decline", "requested_by": "Requested by {{user}}", "unknown_user": "Unknown User", + "select": "Select", + "request_all": "Request All", + "request_seasons": "Request Seasons", + "select_seasons": "Select Seasons", + "request_selected": "Request Selected", + "n_selected": "{{count}} selected", "toasts": { "jellyseer_does_not_meet_requirements": "Seerr server does not meet minimum version requirements! Please update to at least 2.0.0", "jellyseerr_test_failed": "Seerr test failed. Please try again.", @@ -716,7 +871,8 @@ "search": "Search", "library": "Library", "custom_links": "Custom Links", - "favorites": "Favorites" + "favorites": "Favorites", + "settings": "Settings" }, "music": { "title": "Music", @@ -841,5 +997,36 @@ "show": "This show", "all": "All media (default)" } + }, + "companion_login": { + "title": "Pair with TV", + "align_qr": "Align the QR code within the frame", + "enter_code_manually": "Enter code manually", + "pairing_enter_credentials": "Enter credentials for TV", + "pairing_code_label": "Pairing code", + "server": "Server", + "authorize_button": "Authorize", + "authorizing": "Authorizing...", + "scan_again": "Scan Again", + "done": "Done", + "success_title": "Authorization Sent", + "pairing_tv_connecting": "The TV is connecting to your account", + "error_title": "Authorization Failed", + "error_invalid_qr": "Invalid QR code. Please scan the TV pairing code.", + "error_generic": "Something went wrong. Please try again.", + "error_permission_denied": "Camera permission is required to scan QR codes.", + "login_as": "Log in as {{username}}?", + "on_server": "on {{server}}", + "use_different_user": "Use a different user", + "open_settings": "Open Settings" + }, + "pairing": { + "pair_with_phone": "Pair with Phone", + "pair_with_phone_title": "Login TV", + "pair_with_phone_description": "Scan the QR code displayed on your TV to log in", + "waiting_for_phone": "Waiting for phone...", + "scan_with_phone": "Scan with the Streamyfin app on your phone", + "logging_in": "Logging in...", + "logging_in_description": "Connecting to your server" } } diff --git a/translations/tlh.json b/translations/tlh.json index 872f6a68e..8463f4c81 100644 --- a/translations/tlh.json +++ b/translations/tlh.json @@ -4,6 +4,9 @@ "error_title": "ghIq", "login_title": "lut 'el", "login_to_title": "lut 'el", + "select_user": "Select a user to log in", + "add_user_to_login": "Add a user to log in", + "add_user": "Add User", "username_placeholder": "tlhIngan", "password_placeholder": "ngoq De'", "login_button": "yI'el!", @@ -42,7 +45,13 @@ "accounts_count": "{{count}} accounts", "select_account": "Select Account", "add_account": "Add Account", - "remove_account_description": "This will remove the saved credentials for {{username}}." + "remove_account_description": "This will remove the saved credentials for {{username}}.", + "remove_server": "Remove Server", + "remove_server_description": "This will remove {{server}} and all saved accounts from your list.", + "select_your_server": "Select Your Server", + "add_server_to_get_started": "Add a server to get started", + "add_server": "Add Server", + "change_server": "Change Server" }, "save_account": { "title": "Save Account", @@ -86,6 +95,7 @@ "oops": "QI'ya!", "error_message": "Doch rurbe'.\nyIQo' 'ej yI'elqa'.", "continue_watching": "tlhol yIHaDqa'", + "continue": "Continue", "next_up": "wej", "continue_and_next_up": "Continue & Next Up", "recently_added_in": "num tu'lu' {{libraryName}}", @@ -109,6 +119,12 @@ "settings": { "settings_title": "men", "log_out_button": "yIQo'", + "switch_user": { + "title": "Switch User", + "account": "Account", + "switch_user": "Switch User on This Server", + "current": "current" + }, "categories": { "title": "Categories" }, @@ -121,7 +137,16 @@ "appearance": { "title": "Appearance", "merge_next_up_continue_watching": "Merge Continue Watching & Next Up", - "hide_remote_session_button": "Hide Remote Session Button" + "hide_remote_session_button": "Hide Remote Session Button", + "show_home_backdrop": "Dynamic Home Backdrop", + "show_hero_carousel": "Hero Carousel", + "show_series_poster_on_episode": "Show Series Poster on Episodes", + "theme_music": "Theme Music", + "display_size": "Display Size", + "display_size_small": "Small", + "display_size_default": "Default", + "display_size_large": "Large", + "display_size_extra_large": "Extra Large" }, "network": { "title": "Network", @@ -174,6 +199,22 @@ "rewind_length": "bavHom vum", "seconds_unit": "tera' rep" }, + "buffer": { + "title": "Buffer Settings", + "cache_mode": "Cache Mode", + "cache_auto": "Auto", + "cache_yes": "Enabled", + "cache_no": "Disabled", + "buffer_duration": "Buffer Duration", + "max_cache_size": "Max Cache Size", + "max_backward_cache": "Max Backward Cache" + }, + "vo_driver": { + "title": "Video Output", + "vo_mode": "VO Driver", + "gpu_next": "gpu-next (Recommended)", + "gpu": "gpu" + }, "gesture_controls": { "gesture_controls_title": "QavwI' 'ej Qap", "horizontal_swipe_skip": "SaS mup loSmeH", @@ -256,7 +297,23 @@ "subtitle_font": "Subtitle Font", "ksplayer_title": "KSPlayer Settings", "hardware_decode": "Hardware Decoding", - "hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues." + "hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues.", + "opensubtitles_title": "OpenSubtitles", + "opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.", + "opensubtitles_api_key": "API Key", + "opensubtitles_api_key_placeholder": "Enter API key...", + "opensubtitles_get_key": "Get your free API key at opensubtitles.com/en/consumers", + "mpv_subtitle_scale": "Subtitle Scale", + "mpv_subtitle_margin_y": "Vertical Margin", + "mpv_subtitle_align_x": "Horizontal Align", + "mpv_subtitle_align_y": "Vertical Align", + "align": { + "left": "Left", + "center": "Center", + "right": "Right", + "top": "Top", + "bottom": "Bottom" + } }, "vlc_subtitles": { "title": "VLC Subtitle Settings", @@ -406,7 +463,13 @@ "music_cache_cleared": "Music cache cleared", "delete_all_downloaded_songs": "Delete All Downloaded Songs", "downloaded_songs_size": "{{size}} downloaded", - "downloaded_songs_deleted": "Downloaded songs deleted" + "downloaded_songs_deleted": "Downloaded songs deleted", + "clear_all_cache": "Clear All Cache", + "clear_all_cache_confirm": "Clear All Cache?", + "clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.", + "clear_all_cache_success": "Cache Cleared", + "clear_all_cache_success_desc": "All cache has been cleared successfully.", + "clear_all_cache_error_desc": "An error occurred while clearing the cache." }, "intro": { "title": "Intro", @@ -430,6 +493,21 @@ "error_deleting_files": "Qaw' ghIq", "background_downloads_enabled": "tlhegh Qaw' chu'", "background_downloads_disabled": "tlhegh Qaw' QIj" + }, + "security": { + "title": "Security", + "inactivity_timeout": { + "title": "Inactivity Timeout", + "description": "Auto logout after inactivity", + "disabled": "Disabled", + "1_minute": "1 minute", + "5_minutes": "5 minutes", + "15_minutes": "15 minutes", + "30_minutes": "30 minutes", + "1_hour": "1 hour", + "4_hours": "4 hours", + "24_hours": "24 hours" + } } }, "sessions": { @@ -492,6 +570,7 @@ } }, "common": { + "no_results": "No Results", "select": "Select", "no_trailer_available": "No trailer available", "video": "mu'tlhegh", @@ -501,13 +580,16 @@ "none": "None", "track": "Track", "cancel": "Cancel", + "stop": "Stop", "delete": "Delete", "ok": "OK", "remove": "Remove", "next": "Next", "back": "Back", "continue": "Continue", - "verifying": "Verifying..." + "verifying": "Verifying...", + "login": "Login", + "refresh": "Refresh" }, "search": { "search": "yISam...", @@ -556,6 +638,7 @@ "movies": "DIS", "series": "Hem", "boxsets": "Hem ghom", + "playlists": "Playlists", "items": "Doch" }, "options": { @@ -574,7 +657,11 @@ "sort_by": "yIwIv", "filter_by": "Filter By", "sort_order": "wIv mIw", - "tags": "De'Hom" + "tags": "De'Hom", + "all": "All", + "reset": "Reset", + "asc": "Ascending", + "desc": "Descending" } }, "favorites": { @@ -591,6 +678,7 @@ "no_links": "ret pagh" }, "player": { + "live": "LIVE", "error": "ghIq", "failed_to_get_stream_url": "tlhol ret URL tu'laHbe'", "an_error_occured_while_playing_the_video": "mu'tlhegh tlholDI' ghIq. menDaq De' qon mej.", @@ -608,7 +696,35 @@ "downloaded_file_message": "Do you want to play the downloaded file?", "downloaded_file_yes": "Yes", "downloaded_file_no": "No", - "downloaded_file_cancel": "Cancel" + "downloaded_file_cancel": "Cancel", + "swipe_down_settings": "Swipe down for settings", + "ends_at": "ends at", + "search_subtitles": "Search Subtitles", + "subtitle_tracks": "Tracks", + "subtitle_search": "Search & Download", + "download": "Download", + "subtitle_download_hint": "Downloaded subtitles will be saved to your library", + "using_jellyfin_server": "Using Jellyfin Server", + "language": "Language", + "results": "Results", + "searching": "Searching...", + "search_failed": "Search failed", + "no_subtitle_provider": "No subtitle provider configured on server", + "no_subtitles_found": "No subtitles found", + "add_opensubtitles_key_hint": "Add OpenSubtitles API key in settings for client-side fallback", + "settings": "Settings", + "skip_intro": "Skip Intro", + "skip_credits": "Skip Credits", + "stopPlayback": "Stop Playback", + "stopPlayingTitle": "Stop playing \"{{title}}\"?", + "stopPlayingConfirm": "Are you sure you want to stop playback?", + "downloaded": "Downloaded" + }, + "chapters": { + "title": "Chapters", + "chapter_number": "Chapter {{number}}", + "open": "Open chapters", + "close": "Close chapters" }, "item_card": { "next_up": "wej", @@ -617,6 +733,11 @@ "series": "Hem", "seasons": "muv", "season": "muv", + "from_this_series": "From This Series", + "more_from_this_season": "More from this Season", + "view_series": "View Series", + "view_season": "View Season", + "select_season": "Select Season", "no_episodes_for_this_season": "muvvam HemHom pagh", "overview": "Hoch Sov", "more_with": "{{name}} latlh", @@ -627,10 +748,21 @@ "media_options": "Media Options", "quality": "luj", "audio": "QoQ", - "subtitles": "De' chu'", + "subtitles": { + "label": "Subtitle", + "none": "None", + "tracks": "Tracks" + }, "show_more": "latlh yIHoch", "show_less": "Hom yIHoch", + "left": "left", + "more_info": "More Info", + "director": "Director", + "cast": "Cast", + "technical_details": "Technical Details", "appeared_in": "tlholvam", + "movies": "Movies", + "shows": "Shows", "could_not_load_item": "Doch tlha'laHbe'", "none": "pagh", "download": { @@ -641,7 +773,13 @@ "download_x_item": "{{item_count}} Doch yIQaw'", "download_unwatched_only": "Unwatched Only", "download_button": "yIQaw'" - } + }, + "mark_played": "Mark as Watched", + "mark_unplayed": "Mark as Unwatched", + "resume_playback": "Resume Playback", + "resume_playback_description": "Do you want to continue where you left off or start from the beginning?", + "play_from_start": "Play from Start", + "continue_from": "Continue from {{time}}" }, "live_tv": { "next": "wej", @@ -652,7 +790,18 @@ "movies": "DIS", "sports": "QI'", "for_kids": "puqbeq", - "news": "De'" + "news": "De'", + "page_of": "Page {{current}} of {{total}}", + "no_programs": "No programs available", + "no_channels": "No channels available", + "tabs": { + "programs": "Programs", + "guide": "Guide", + "channels": "Channels", + "recordings": "Recordings", + "schedule": "Schedule", + "series": "Series" + } }, "jellyseerr": { "confirm": "yInej", @@ -697,6 +846,12 @@ "decline": "Decline", "requested_by": "Requested by {{user}}", "unknown_user": "Unknown User", + "select": "Select", + "request_all": "Request All", + "request_seasons": "Request Seasons", + "select_seasons": "Select Seasons", + "request_selected": "Request Selected", + "n_selected": "{{count}} selected", "toasts": { "jellyseer_does_not_meet_requirements": "Jellyseerr Ho'Do' veS wej law'be'! 2.0.0 yIchu'!", "jellyseerr_test_failed": "Jellyseerr nejlaHbe'. yIHaDqa'.", @@ -716,7 +871,8 @@ "search": "Sam", "library": "De'wI' bom", "custom_links": "teqlu' ret", - "favorites": "wIv Doch" + "favorites": "wIv Doch", + "settings": "Settings" }, "music": { "title": "Music", @@ -841,5 +997,36 @@ "show": "This show", "all": "All media (default)" } + }, + "companion_login": { + "title": "Pair with TV", + "align_qr": "Align the QR code within the frame", + "enter_code_manually": "Enter code manually", + "pairing_enter_credentials": "Enter credentials for TV", + "pairing_code_label": "Pairing code", + "server": "Server", + "authorize_button": "Authorize", + "authorizing": "Authorizing...", + "scan_again": "Scan Again", + "done": "Done", + "success_title": "Authorization Sent", + "pairing_tv_connecting": "The TV is connecting to your account", + "error_title": "Authorization Failed", + "error_invalid_qr": "Invalid QR code. Please scan the TV pairing code.", + "error_generic": "Something went wrong. Please try again.", + "error_permission_denied": "Camera permission is required to scan QR codes.", + "login_as": "Log in as {{username}}?", + "on_server": "on {{server}}", + "use_different_user": "Use a different user", + "open_settings": "Open Settings" + }, + "pairing": { + "pair_with_phone": "Pair with Phone", + "pair_with_phone_title": "Login TV", + "pair_with_phone_description": "Scan the QR code displayed on your TV to log in", + "waiting_for_phone": "Waiting for phone...", + "scan_with_phone": "Scan with the Streamyfin app on your phone", + "logging_in": "Logging in...", + "logging_in_description": "Connecting to your server" } } diff --git a/translations/tr.json b/translations/tr.json index 667c2039a..30d9ee1e7 100644 --- a/translations/tr.json +++ b/translations/tr.json @@ -4,6 +4,9 @@ "error_title": "Hata", "login_title": "Giriş yap", "login_to_title": " 'e giriş yap", + "select_user": "Select a user to log in", + "add_user_to_login": "Add a user to log in", + "add_user": "Add User", "username_placeholder": "Kullanıcı adı", "password_placeholder": "Şifre", "login_button": "Giriş yap", @@ -42,7 +45,13 @@ "accounts_count": "{{count}} hesap", "select_account": "Hesap Seç", "add_account": "Hesap Ekle", - "remove_account_description": "{{username}} için kayıtlı bilgiler kaldırılacaktır." + "remove_account_description": "{{username}} için kayıtlı bilgiler kaldırılacaktır.", + "remove_server": "Remove Server", + "remove_server_description": "This will remove {{server}} and all saved accounts from your list.", + "select_your_server": "Select Your Server", + "add_server_to_get_started": "Add a server to get started", + "add_server": "Add Server", + "change_server": "Change Server" }, "save_account": { "title": "Hesabı Kaydet", @@ -86,6 +95,7 @@ "oops": "Hups!", "error_message": "Bir şeyler ters gitti.\nLütfen çıkış yapıp tekrar giriş yapın.", "continue_watching": "İzlemeye Devam Et", + "continue": "Continue", "next_up": "Sonraki", "continue_and_next_up": "İzlemeye Devam Et & Sıradakiler", "recently_added_in": "{{libraryName}} Kütüphanesine Son Eklenenler", @@ -109,6 +119,12 @@ "settings": { "settings_title": "Ayarlar", "log_out_button": "Çıkış Yap", + "switch_user": { + "title": "Switch User", + "account": "Account", + "switch_user": "Switch User on This Server", + "current": "current" + }, "categories": { "title": "Kategoriler" }, @@ -121,7 +137,16 @@ "appearance": { "title": "Görünüm", "merge_next_up_continue_watching": "İzlemeye Devam Et & Sıradakiler'i birleştir", - "hide_remote_session_button": "Uzak Oturum Butonunu Gizle" + "hide_remote_session_button": "Uzak Oturum Butonunu Gizle", + "show_home_backdrop": "Dynamic Home Backdrop", + "show_hero_carousel": "Hero Carousel", + "show_series_poster_on_episode": "Show Series Poster on Episodes", + "theme_music": "Theme Music", + "display_size": "Display Size", + "display_size_small": "Small", + "display_size_default": "Default", + "display_size_large": "Large", + "display_size_extra_large": "Extra Large" }, "network": { "title": "Ağ", @@ -174,6 +199,22 @@ "rewind_length": "Geri Sarma Uzunluğu", "seconds_unit": "sn" }, + "buffer": { + "title": "Buffer Settings", + "cache_mode": "Cache Mode", + "cache_auto": "Auto", + "cache_yes": "Enabled", + "cache_no": "Disabled", + "buffer_duration": "Buffer Duration", + "max_cache_size": "Max Cache Size", + "max_backward_cache": "Max Backward Cache" + }, + "vo_driver": { + "title": "Video Output", + "vo_mode": "VO Driver", + "gpu_next": "gpu-next (Recommended)", + "gpu": "gpu" + }, "gesture_controls": { "gesture_controls_title": "Hareketle Kontrol", "horizontal_swipe_skip": "Atlamak için yatay kaydırma", @@ -256,7 +297,23 @@ "subtitle_font": "Altyazı Yazı Tipi", "ksplayer_title": "KSPlayer Ayarları", "hardware_decode": "Donanımsal Kod Çözme", - "hardware_decode_description": "Video kod çözme için donanımsal hızlandırma kullan. Oynatma sorunları yaşıyorsanız devre dışı bırakın." + "hardware_decode_description": "Video kod çözme için donanımsal hızlandırma kullan. Oynatma sorunları yaşıyorsanız devre dışı bırakın.", + "opensubtitles_title": "OpenSubtitles", + "opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.", + "opensubtitles_api_key": "API Key", + "opensubtitles_api_key_placeholder": "Enter API key...", + "opensubtitles_get_key": "Get your free API key at opensubtitles.com/en/consumers", + "mpv_subtitle_scale": "Subtitle Scale", + "mpv_subtitle_margin_y": "Vertical Margin", + "mpv_subtitle_align_x": "Horizontal Align", + "mpv_subtitle_align_y": "Vertical Align", + "align": { + "left": "Left", + "center": "Center", + "right": "Right", + "top": "Top", + "bottom": "Bottom" + } }, "vlc_subtitles": { "title": "VLC Altyazı Ayarları", @@ -406,7 +463,13 @@ "music_cache_cleared": "Müzik ön belleği temizlendi", "delete_all_downloaded_songs": "Tüm İndirilen Müzikleri Sil", "downloaded_songs_size": "{{size}} indirildi", - "downloaded_songs_deleted": "İndirilen müzikler silindi" + "downloaded_songs_deleted": "İndirilen müzikler silindi", + "clear_all_cache": "Clear All Cache", + "clear_all_cache_confirm": "Clear All Cache?", + "clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.", + "clear_all_cache_success": "Cache Cleared", + "clear_all_cache_success_desc": "All cache has been cleared successfully.", + "clear_all_cache_error_desc": "An error occurred while clearing the cache." }, "intro": { "title": "Giriş", @@ -430,6 +493,21 @@ "error_deleting_files": "Dosyalar silinirken hata oluştu", "background_downloads_enabled": "Arka plan indirmeleri etkinleştirildi", "background_downloads_disabled": "Arka plan indirmeleri devre dışı bırakıldı" + }, + "security": { + "title": "Security", + "inactivity_timeout": { + "title": "Inactivity Timeout", + "description": "Auto logout after inactivity", + "disabled": "Disabled", + "1_minute": "1 minute", + "5_minutes": "5 minutes", + "15_minutes": "15 minutes", + "30_minutes": "30 minutes", + "1_hour": "1 hour", + "4_hours": "4 hours", + "24_hours": "24 hours" + } } }, "sessions": { @@ -492,6 +570,7 @@ } }, "common": { + "no_results": "No Results", "select": "Seç", "no_trailer_available": "Fragman mevcut değil", "video": "Video", @@ -501,13 +580,16 @@ "none": "Hiçbiri", "track": "Parça", "cancel": "Vazgeç", + "stop": "Stop", "delete": "Sil", "ok": "Tamam", "remove": "Kaldır", "next": "Sonraki", "back": "Geri", "continue": "Devam", - "verifying": "Doğrulanıyor..." + "verifying": "Doğrulanıyor...", + "login": "Login", + "refresh": "Refresh" }, "search": { "search": "Ara...", @@ -556,6 +638,7 @@ "movies": "filmler", "series": "diziler", "boxsets": "koleksiyonlar", + "playlists": "Playlists", "items": "ögeler" }, "options": { @@ -574,7 +657,11 @@ "sort_by": "Sırala", "filter_by": "Filtrele", "sort_order": "Sıralama düzeni", - "tags": "Etiketler" + "tags": "Etiketler", + "all": "All", + "reset": "Reset", + "asc": "Ascending", + "desc": "Descending" } }, "favorites": { @@ -591,6 +678,7 @@ "no_links": "Bağlantı yok" }, "player": { + "live": "LIVE", "error": "Hata", "failed_to_get_stream_url": "Yayın URL'si alınamadı", "an_error_occured_while_playing_the_video": "Video oynatılırken bir hata oluştu. Ayarlardaki günlüklere bakın.", @@ -608,7 +696,35 @@ "downloaded_file_message": "İndirilmiş dosyayı oynatmak ister misiniz?", "downloaded_file_yes": "Evet", "downloaded_file_no": "Hayır", - "downloaded_file_cancel": "Vazgeç" + "downloaded_file_cancel": "Vazgeç", + "swipe_down_settings": "Swipe down for settings", + "ends_at": "ends at", + "search_subtitles": "Search Subtitles", + "subtitle_tracks": "Tracks", + "subtitle_search": "Search & Download", + "download": "Download", + "subtitle_download_hint": "Downloaded subtitles will be saved to your library", + "using_jellyfin_server": "Using Jellyfin Server", + "language": "Language", + "results": "Results", + "searching": "Searching...", + "search_failed": "Search failed", + "no_subtitle_provider": "No subtitle provider configured on server", + "no_subtitles_found": "No subtitles found", + "add_opensubtitles_key_hint": "Add OpenSubtitles API key in settings for client-side fallback", + "settings": "Settings", + "skip_intro": "Skip Intro", + "skip_credits": "Skip Credits", + "stopPlayback": "Stop Playback", + "stopPlayingTitle": "Stop playing \"{{title}}\"?", + "stopPlayingConfirm": "Are you sure you want to stop playback?", + "downloaded": "Downloaded" + }, + "chapters": { + "title": "Chapters", + "chapter_number": "Chapter {{number}}", + "open": "Open chapters", + "close": "Close chapters" }, "item_card": { "next_up": "Sıradaki", @@ -617,6 +733,11 @@ "series": "Dizi", "seasons": "Sezonlar", "season": "Sezon", + "from_this_series": "From This Series", + "more_from_this_season": "More from this Season", + "view_series": "View Series", + "view_season": "View Season", + "select_season": "Select Season", "no_episodes_for_this_season": "Bu sezona ait bölüm yok", "overview": "Özet", "more_with": "Daha fazla {{name}}", @@ -627,10 +748,21 @@ "media_options": "Medya Seçenekleri", "quality": "Kalite", "audio": "Ses", - "subtitles": "Altyazı", + "subtitles": { + "label": "Subtitle", + "none": "None", + "tracks": "Tracks" + }, "show_more": "Daha fazla göster", "show_less": "Daha az göster", + "left": "left", + "more_info": "More Info", + "director": "Director", + "cast": "Cast", + "technical_details": "Technical Details", "appeared_in": "Şurada yer aldı", + "movies": "Movies", + "shows": "Shows", "could_not_load_item": "Öge yüklenemedi", "none": "Hiçbiri", "download": { @@ -641,7 +773,13 @@ "download_x_item": "{{item_count}} tane ögeyi indir", "download_unwatched_only": "Yalnızca İzlenmemişler", "download_button": "İndir" - } + }, + "mark_played": "Mark as Watched", + "mark_unplayed": "Mark as Unwatched", + "resume_playback": "Resume Playback", + "resume_playback_description": "Do you want to continue where you left off or start from the beginning?", + "play_from_start": "Play from Start", + "continue_from": "Continue from {{time}}" }, "live_tv": { "next": "Sonraki", @@ -652,7 +790,18 @@ "movies": "Filmler", "sports": "Spor", "for_kids": "Çocuklar İçin", - "news": "Haberler" + "news": "Haberler", + "page_of": "Page {{current}} of {{total}}", + "no_programs": "No programs available", + "no_channels": "No channels available", + "tabs": { + "programs": "Programs", + "guide": "Guide", + "channels": "Channels", + "recordings": "Recordings", + "schedule": "Schedule", + "series": "Series" + } }, "jellyseerr": { "confirm": "Onayla", @@ -697,6 +846,12 @@ "decline": "Reddet", "requested_by": "{{user}} tarafından istendi", "unknown_user": "Bilinmeyen Kullanıcı", + "select": "Select", + "request_all": "Request All", + "request_seasons": "Request Seasons", + "select_seasons": "Select Seasons", + "request_selected": "Request Selected", + "n_selected": "{{count}} selected", "toasts": { "jellyseer_does_not_meet_requirements": "Jellyseerr sunucusu minimum sürüm gereksinimlerini karşılamıyor! Lütfen en az 2.0.0 sürümüne güncelleyin", "jellyseerr_test_failed": "Jellyseerr testi başarısız oldu. Lütfen tekrar deneyin.", @@ -716,7 +871,8 @@ "search": "Ara", "library": "Kütüphane", "custom_links": "Özel Bağlantılar", - "favorites": "Favoriler" + "favorites": "Favoriler", + "settings": "Settings" }, "music": { "title": "Müzik", @@ -841,5 +997,36 @@ "show": "Bu dizide", "all": "Bütün medyalarda (varsayılan)" } + }, + "companion_login": { + "title": "Pair with TV", + "align_qr": "Align the QR code within the frame", + "enter_code_manually": "Enter code manually", + "pairing_enter_credentials": "Enter credentials for TV", + "pairing_code_label": "Pairing code", + "server": "Server", + "authorize_button": "Authorize", + "authorizing": "Authorizing...", + "scan_again": "Scan Again", + "done": "Done", + "success_title": "Authorization Sent", + "pairing_tv_connecting": "The TV is connecting to your account", + "error_title": "Authorization Failed", + "error_invalid_qr": "Invalid QR code. Please scan the TV pairing code.", + "error_generic": "Something went wrong. Please try again.", + "error_permission_denied": "Camera permission is required to scan QR codes.", + "login_as": "Log in as {{username}}?", + "on_server": "on {{server}}", + "use_different_user": "Use a different user", + "open_settings": "Open Settings" + }, + "pairing": { + "pair_with_phone": "Pair with Phone", + "pair_with_phone_title": "Login TV", + "pair_with_phone_description": "Scan the QR code displayed on your TV to log in", + "waiting_for_phone": "Waiting for phone...", + "scan_with_phone": "Scan with the Streamyfin app on your phone", + "logging_in": "Logging in...", + "logging_in_description": "Connecting to your server" } } diff --git a/translations/uk.json b/translations/uk.json index 819254f24..529683093 100644 --- a/translations/uk.json +++ b/translations/uk.json @@ -4,6 +4,9 @@ "error_title": "Помилка", "login_title": "Вхід", "login_to_title": "Увійти в", + "select_user": "Select a user to log in", + "add_user_to_login": "Add a user to log in", + "add_user": "Add User", "username_placeholder": "Імʼя користувача", "password_placeholder": "Пароль", "login_button": "Вхід", @@ -42,7 +45,13 @@ "accounts_count": "{{count}} accounts", "select_account": "Select Account", "add_account": "Add Account", - "remove_account_description": "This will remove the saved credentials for {{username}}." + "remove_account_description": "This will remove the saved credentials for {{username}}.", + "remove_server": "Remove Server", + "remove_server_description": "This will remove {{server}} and all saved accounts from your list.", + "select_your_server": "Select Your Server", + "add_server_to_get_started": "Add a server to get started", + "add_server": "Add Server", + "change_server": "Change Server" }, "save_account": { "title": "Save Account", @@ -86,6 +95,7 @@ "oops": "Упс!", "error_message": "Щось пішло не так.\nБудь ласка вийдіть і увійдіть знов.", "continue_watching": "Продовжити перегляд", + "continue": "Continue", "next_up": "Далі", "continue_and_next_up": "Continue & Next Up", "recently_added_in": "Нещодавно додане до \"{{libraryName}}\"", @@ -109,6 +119,12 @@ "settings": { "settings_title": "Параметри", "log_out_button": "Вихід", + "switch_user": { + "title": "Switch User", + "account": "Account", + "switch_user": "Switch User on This Server", + "current": "current" + }, "categories": { "title": "Categories" }, @@ -121,7 +137,16 @@ "appearance": { "title": "Appearance", "merge_next_up_continue_watching": "Merge Continue Watching & Next Up", - "hide_remote_session_button": "Hide Remote Session Button" + "hide_remote_session_button": "Hide Remote Session Button", + "show_home_backdrop": "Dynamic Home Backdrop", + "show_hero_carousel": "Hero Carousel", + "show_series_poster_on_episode": "Show Series Poster on Episodes", + "theme_music": "Theme Music", + "display_size": "Display Size", + "display_size_small": "Small", + "display_size_default": "Default", + "display_size_large": "Large", + "display_size_extra_large": "Extra Large" }, "network": { "title": "Network", @@ -174,6 +199,22 @@ "rewind_length": "Довжина перемотування назад", "seconds_unit": "с" }, + "buffer": { + "title": "Buffer Settings", + "cache_mode": "Cache Mode", + "cache_auto": "Auto", + "cache_yes": "Enabled", + "cache_no": "Disabled", + "buffer_duration": "Buffer Duration", + "max_cache_size": "Max Cache Size", + "max_backward_cache": "Max Backward Cache" + }, + "vo_driver": { + "title": "Video Output", + "vo_mode": "VO Driver", + "gpu_next": "gpu-next (Recommended)", + "gpu": "gpu" + }, "gesture_controls": { "gesture_controls_title": "Gesture Controls", "horizontal_swipe_skip": "Horizontal Swipe to Skip", @@ -256,7 +297,23 @@ "subtitle_font": "Subtitle Font", "ksplayer_title": "KSPlayer Settings", "hardware_decode": "Hardware Decoding", - "hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues." + "hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues.", + "opensubtitles_title": "OpenSubtitles", + "opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.", + "opensubtitles_api_key": "API Key", + "opensubtitles_api_key_placeholder": "Enter API key...", + "opensubtitles_get_key": "Get your free API key at opensubtitles.com/en/consumers", + "mpv_subtitle_scale": "Subtitle Scale", + "mpv_subtitle_margin_y": "Vertical Margin", + "mpv_subtitle_align_x": "Horizontal Align", + "mpv_subtitle_align_y": "Vertical Align", + "align": { + "left": "Left", + "center": "Center", + "right": "Right", + "top": "Top", + "bottom": "Bottom" + } }, "vlc_subtitles": { "title": "VLC Subtitle Settings", @@ -406,7 +463,13 @@ "music_cache_cleared": "Music cache cleared", "delete_all_downloaded_songs": "Delete All Downloaded Songs", "downloaded_songs_size": "{{size}} downloaded", - "downloaded_songs_deleted": "Downloaded songs deleted" + "downloaded_songs_deleted": "Downloaded songs deleted", + "clear_all_cache": "Clear All Cache", + "clear_all_cache_confirm": "Clear All Cache?", + "clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.", + "clear_all_cache_success": "Cache Cleared", + "clear_all_cache_success_desc": "All cache has been cleared successfully.", + "clear_all_cache_error_desc": "An error occurred while clearing the cache." }, "intro": { "title": "Intro", @@ -430,6 +493,21 @@ "error_deleting_files": "Помилка при видалені файлів", "background_downloads_enabled": "Завантаження в фоні увімкнене", "background_downloads_disabled": "Завантаження в фоні вимкнене" + }, + "security": { + "title": "Security", + "inactivity_timeout": { + "title": "Inactivity Timeout", + "description": "Auto logout after inactivity", + "disabled": "Disabled", + "1_minute": "1 minute", + "5_minutes": "5 minutes", + "15_minutes": "15 minutes", + "30_minutes": "30 minutes", + "1_hour": "1 hour", + "4_hours": "4 hours", + "24_hours": "24 hours" + } } }, "sessions": { @@ -492,6 +570,7 @@ } }, "common": { + "no_results": "No Results", "select": "Select", "no_trailer_available": "No trailer available", "video": "Video", @@ -501,13 +580,16 @@ "none": "None", "track": "Track", "cancel": "Cancel", + "stop": "Stop", "delete": "Delete", "ok": "OK", "remove": "Remove", "next": "Next", "back": "Back", "continue": "Continue", - "verifying": "Verifying..." + "verifying": "Verifying...", + "login": "Login", + "refresh": "Refresh" }, "search": { "search": "Шукати...", @@ -556,6 +638,7 @@ "movies": "фільми", "series": "серіали", "boxsets": "бокс-сети", + "playlists": "Playlists", "items": "елементи" }, "options": { @@ -574,7 +657,11 @@ "sort_by": "Відсортувати за", "filter_by": "Filter By", "sort_order": "Порядок сортування", - "tags": "Теги" + "tags": "Теги", + "all": "All", + "reset": "Reset", + "asc": "Ascending", + "desc": "Descending" } }, "favorites": { @@ -591,6 +678,7 @@ "no_links": "Немає посилань" }, "player": { + "live": "LIVE", "error": "Помилка", "failed_to_get_stream_url": "Не вдалося отримати URL-адресу потоку", "an_error_occured_while_playing_the_video": "Під час відтворення відео сталася помилка. Перевірте журнал в налаштуваннях.", @@ -608,7 +696,35 @@ "downloaded_file_message": "Do you want to play the downloaded file?", "downloaded_file_yes": "Yes", "downloaded_file_no": "No", - "downloaded_file_cancel": "Cancel" + "downloaded_file_cancel": "Cancel", + "swipe_down_settings": "Swipe down for settings", + "ends_at": "ends at", + "search_subtitles": "Search Subtitles", + "subtitle_tracks": "Tracks", + "subtitle_search": "Search & Download", + "download": "Download", + "subtitle_download_hint": "Downloaded subtitles will be saved to your library", + "using_jellyfin_server": "Using Jellyfin Server", + "language": "Language", + "results": "Results", + "searching": "Searching...", + "search_failed": "Search failed", + "no_subtitle_provider": "No subtitle provider configured on server", + "no_subtitles_found": "No subtitles found", + "add_opensubtitles_key_hint": "Add OpenSubtitles API key in settings for client-side fallback", + "settings": "Settings", + "skip_intro": "Skip Intro", + "skip_credits": "Skip Credits", + "stopPlayback": "Stop Playback", + "stopPlayingTitle": "Stop playing \"{{title}}\"?", + "stopPlayingConfirm": "Are you sure you want to stop playback?", + "downloaded": "Downloaded" + }, + "chapters": { + "title": "Chapters", + "chapter_number": "Chapter {{number}}", + "open": "Open chapters", + "close": "Close chapters" }, "item_card": { "next_up": "Далі", @@ -617,6 +733,11 @@ "series": "Серіали", "seasons": "Сезони", "season": "Сезон", + "from_this_series": "From This Series", + "more_from_this_season": "More from this Season", + "view_series": "View Series", + "view_season": "View Season", + "select_season": "Select Season", "no_episodes_for_this_season": "У цьому сезоні немає епізодів", "overview": "Огляд", "more_with": "Більше з {{name}}", @@ -627,10 +748,21 @@ "media_options": "Media Options", "quality": "Якість", "audio": "Аудіо", - "subtitles": "Субтитри", + "subtitles": { + "label": "Subtitle", + "none": "None", + "tracks": "Tracks" + }, "show_more": "Показати більше", "show_less": "Показати менше", + "left": "left", + "more_info": "More Info", + "director": "Director", + "cast": "Cast", + "technical_details": "Technical Details", "appeared_in": "Зʼявлявся у", + "movies": "Movies", + "shows": "Shows", "could_not_load_item": "Неможливо завантажити елемент", "none": "Нічого", "download": { @@ -641,7 +773,13 @@ "download_x_item": "Завантажено {{item_count}} елементів", "download_unwatched_only": "Unwatched Only", "download_button": "Завантажити" - } + }, + "mark_played": "Mark as Watched", + "mark_unplayed": "Mark as Unwatched", + "resume_playback": "Resume Playback", + "resume_playback_description": "Do you want to continue where you left off or start from the beginning?", + "play_from_start": "Play from Start", + "continue_from": "Continue from {{time}}" }, "live_tv": { "next": "Наступний", @@ -652,7 +790,18 @@ "movies": "Фільми", "sports": "Спорт", "for_kids": "Для дітей", - "news": "Новини" + "news": "Новини", + "page_of": "Page {{current}} of {{total}}", + "no_programs": "No programs available", + "no_channels": "No channels available", + "tabs": { + "programs": "Programs", + "guide": "Guide", + "channels": "Channels", + "recordings": "Recordings", + "schedule": "Schedule", + "series": "Series" + } }, "jellyseerr": { "confirm": "Підтвердити", @@ -697,6 +846,12 @@ "decline": "Decline", "requested_by": "Requested by {{user}}", "unknown_user": "Unknown User", + "select": "Select", + "request_all": "Request All", + "request_seasons": "Request Seasons", + "select_seasons": "Select Seasons", + "request_selected": "Request Selected", + "n_selected": "{{count}} selected", "toasts": { "jellyseer_does_not_meet_requirements": "Версія Jellyseerr не відповідає мінімальним вимогам! Будь ласка, оновіться принаймні до 2.0.0", "jellyseerr_test_failed": "Тест Jellyseerr завершився невдало. Спробуйте ще раз.", @@ -716,7 +871,8 @@ "search": "Пошук", "library": "Медіатека", "custom_links": "Ваші Посилання", - "favorites": "Улюблене" + "favorites": "Улюблене", + "settings": "Settings" }, "music": { "title": "Music", @@ -841,5 +997,36 @@ "show": "This show", "all": "All media (default)" } + }, + "companion_login": { + "title": "Pair with TV", + "align_qr": "Align the QR code within the frame", + "enter_code_manually": "Enter code manually", + "pairing_enter_credentials": "Enter credentials for TV", + "pairing_code_label": "Pairing code", + "server": "Server", + "authorize_button": "Authorize", + "authorizing": "Authorizing...", + "scan_again": "Scan Again", + "done": "Done", + "success_title": "Authorization Sent", + "pairing_tv_connecting": "The TV is connecting to your account", + "error_title": "Authorization Failed", + "error_invalid_qr": "Invalid QR code. Please scan the TV pairing code.", + "error_generic": "Something went wrong. Please try again.", + "error_permission_denied": "Camera permission is required to scan QR codes.", + "login_as": "Log in as {{username}}?", + "on_server": "on {{server}}", + "use_different_user": "Use a different user", + "open_settings": "Open Settings" + }, + "pairing": { + "pair_with_phone": "Pair with Phone", + "pair_with_phone_title": "Login TV", + "pair_with_phone_description": "Scan the QR code displayed on your TV to log in", + "waiting_for_phone": "Waiting for phone...", + "scan_with_phone": "Scan with the Streamyfin app on your phone", + "logging_in": "Logging in...", + "logging_in_description": "Connecting to your server" } } diff --git a/translations/vi.json b/translations/vi.json index 80a05fb8d..33438b4cc 100644 --- a/translations/vi.json +++ b/translations/vi.json @@ -4,6 +4,9 @@ "error_title": "Lỗi", "login_title": "Đăng nhập", "login_to_title": "Đăng nhập vào", + "select_user": "Select a user to log in", + "add_user_to_login": "Add a user to log in", + "add_user": "Add User", "username_placeholder": "Tên người dùng", "password_placeholder": "Mật khẩu", "login_button": "Đăng nhập", @@ -42,7 +45,13 @@ "accounts_count": "{{count}} accounts", "select_account": "Select Account", "add_account": "Add Account", - "remove_account_description": "This will remove the saved credentials for {{username}}." + "remove_account_description": "This will remove the saved credentials for {{username}}.", + "remove_server": "Remove Server", + "remove_server_description": "This will remove {{server}} and all saved accounts from your list.", + "select_your_server": "Select Your Server", + "add_server_to_get_started": "Add a server to get started", + "add_server": "Add Server", + "change_server": "Change Server" }, "save_account": { "title": "Save Account", @@ -86,6 +95,7 @@ "oops": "Ối!", "error_message": "Có lỗi xảy ra.\nVui lòng đăng xuất rồi đăng nhập lại.", "continue_watching": "Tiếp tục xem", + "continue": "Continue", "next_up": "Tiếp theo", "continue_and_next_up": "Continue & Next Up", "recently_added_in": "Mới thêm trong {{libraryName}}", @@ -109,6 +119,12 @@ "settings": { "settings_title": "Cài đặt", "log_out_button": "Đăng xuất", + "switch_user": { + "title": "Switch User", + "account": "Account", + "switch_user": "Switch User on This Server", + "current": "current" + }, "categories": { "title": "Categories" }, @@ -121,7 +137,16 @@ "appearance": { "title": "Appearance", "merge_next_up_continue_watching": "Merge Continue Watching & Next Up", - "hide_remote_session_button": "Hide Remote Session Button" + "hide_remote_session_button": "Hide Remote Session Button", + "show_home_backdrop": "Dynamic Home Backdrop", + "show_hero_carousel": "Hero Carousel", + "show_series_poster_on_episode": "Show Series Poster on Episodes", + "theme_music": "Theme Music", + "display_size": "Display Size", + "display_size_small": "Small", + "display_size_default": "Default", + "display_size_large": "Large", + "display_size_extra_large": "Extra Large" }, "network": { "title": "Network", @@ -174,6 +199,22 @@ "rewind_length": "Thời gian tua lui", "seconds_unit": "s" }, + "buffer": { + "title": "Buffer Settings", + "cache_mode": "Cache Mode", + "cache_auto": "Auto", + "cache_yes": "Enabled", + "cache_no": "Disabled", + "buffer_duration": "Buffer Duration", + "max_cache_size": "Max Cache Size", + "max_backward_cache": "Max Backward Cache" + }, + "vo_driver": { + "title": "Video Output", + "vo_mode": "VO Driver", + "gpu_next": "gpu-next (Recommended)", + "gpu": "gpu" + }, "gesture_controls": { "gesture_controls_title": "Gesture Controls", "horizontal_swipe_skip": "Horizontal Swipe to Skip", @@ -256,7 +297,23 @@ "subtitle_font": "Subtitle Font", "ksplayer_title": "KSPlayer Settings", "hardware_decode": "Hardware Decoding", - "hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues." + "hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues.", + "opensubtitles_title": "OpenSubtitles", + "opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.", + "opensubtitles_api_key": "API Key", + "opensubtitles_api_key_placeholder": "Enter API key...", + "opensubtitles_get_key": "Get your free API key at opensubtitles.com/en/consumers", + "mpv_subtitle_scale": "Subtitle Scale", + "mpv_subtitle_margin_y": "Vertical Margin", + "mpv_subtitle_align_x": "Horizontal Align", + "mpv_subtitle_align_y": "Vertical Align", + "align": { + "left": "Left", + "center": "Center", + "right": "Right", + "top": "Top", + "bottom": "Bottom" + } }, "vlc_subtitles": { "title": "VLC Subtitle Settings", @@ -406,7 +463,13 @@ "music_cache_cleared": "Music cache cleared", "delete_all_downloaded_songs": "Delete All Downloaded Songs", "downloaded_songs_size": "{{size}} downloaded", - "downloaded_songs_deleted": "Downloaded songs deleted" + "downloaded_songs_deleted": "Downloaded songs deleted", + "clear_all_cache": "Clear All Cache", + "clear_all_cache_confirm": "Clear All Cache?", + "clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.", + "clear_all_cache_success": "Cache Cleared", + "clear_all_cache_success_desc": "All cache has been cleared successfully.", + "clear_all_cache_error_desc": "An error occurred while clearing the cache." }, "intro": { "title": "Intro", @@ -430,6 +493,21 @@ "error_deleting_files": "Lỗi khi xóa tập tin", "background_downloads_enabled": "Tải trong nền đã bật", "background_downloads_disabled": "Tải trong nền đã tắt" + }, + "security": { + "title": "Security", + "inactivity_timeout": { + "title": "Inactivity Timeout", + "description": "Auto logout after inactivity", + "disabled": "Disabled", + "1_minute": "1 minute", + "5_minutes": "5 minutes", + "15_minutes": "15 minutes", + "30_minutes": "30 minutes", + "1_hour": "1 hour", + "4_hours": "4 hours", + "24_hours": "24 hours" + } } }, "sessions": { @@ -492,6 +570,7 @@ } }, "common": { + "no_results": "No Results", "select": "Select", "no_trailer_available": "No trailer available", "video": "Video", @@ -501,13 +580,16 @@ "none": "None", "track": "Track", "cancel": "Cancel", + "stop": "Stop", "delete": "Delete", "ok": "OK", "remove": "Remove", "next": "Next", "back": "Back", "continue": "Continue", - "verifying": "Verifying..." + "verifying": "Verifying...", + "login": "Login", + "refresh": "Refresh" }, "search": { "search": "Tìm...", @@ -556,6 +638,7 @@ "movies": "phim", "series": "chương trình", "boxsets": "bộ sưu tập", + "playlists": "Playlists", "items": "nội dung" }, "options": { @@ -574,7 +657,11 @@ "sort_by": "Sắp xếp theo", "filter_by": "Filter By", "sort_order": "Thứ tự", - "tags": "Thẻ" + "tags": "Thẻ", + "all": "All", + "reset": "Reset", + "asc": "Ascending", + "desc": "Descending" } }, "favorites": { @@ -591,6 +678,7 @@ "no_links": "Chưa có liên kết" }, "player": { + "live": "LIVE", "error": "Lỗi", "failed_to_get_stream_url": "Không thể lấy URL phát trực tiếp", "an_error_occured_while_playing_the_video": "Có lỗi khi phát video. Xem nhật ký trong cài đặt.", @@ -608,7 +696,35 @@ "downloaded_file_message": "Do you want to play the downloaded file?", "downloaded_file_yes": "Yes", "downloaded_file_no": "No", - "downloaded_file_cancel": "Cancel" + "downloaded_file_cancel": "Cancel", + "swipe_down_settings": "Swipe down for settings", + "ends_at": "ends at", + "search_subtitles": "Search Subtitles", + "subtitle_tracks": "Tracks", + "subtitle_search": "Search & Download", + "download": "Download", + "subtitle_download_hint": "Downloaded subtitles will be saved to your library", + "using_jellyfin_server": "Using Jellyfin Server", + "language": "Language", + "results": "Results", + "searching": "Searching...", + "search_failed": "Search failed", + "no_subtitle_provider": "No subtitle provider configured on server", + "no_subtitles_found": "No subtitles found", + "add_opensubtitles_key_hint": "Add OpenSubtitles API key in settings for client-side fallback", + "settings": "Settings", + "skip_intro": "Skip Intro", + "skip_credits": "Skip Credits", + "stopPlayback": "Stop Playback", + "stopPlayingTitle": "Stop playing \"{{title}}\"?", + "stopPlayingConfirm": "Are you sure you want to stop playback?", + "downloaded": "Downloaded" + }, + "chapters": { + "title": "Chapters", + "chapter_number": "Chapter {{number}}", + "open": "Open chapters", + "close": "Close chapters" }, "item_card": { "next_up": "Tiếp theo", @@ -617,6 +733,11 @@ "series": "Chương trình", "seasons": "Mùa", "season": "Mùa", + "from_this_series": "From This Series", + "more_from_this_season": "More from this Season", + "view_series": "View Series", + "view_season": "View Season", + "select_season": "Select Season", "no_episodes_for_this_season": "Không có tập cho mùa này", "overview": "Giới thiệu", "more_with": "Thêm với {{name}}", @@ -627,10 +748,21 @@ "media_options": "Media Options", "quality": "Chất lượng", "audio": "Âm thanh", - "subtitles": "Phụ đề", + "subtitles": { + "label": "Subtitle", + "none": "None", + "tracks": "Tracks" + }, "show_more": "Xem thêm", "show_less": "Thu gọn", + "left": "left", + "more_info": "More Info", + "director": "Director", + "cast": "Cast", + "technical_details": "Technical Details", "appeared_in": "Xuất hiện trong", + "movies": "Movies", + "shows": "Shows", "could_not_load_item": "Không thể tải nội dung", "none": "Không có", "download": { @@ -641,7 +773,13 @@ "download_x_item": "Tải {{item_count}} nội dung", "download_unwatched_only": "Unwatched Only", "download_button": "Tải" - } + }, + "mark_played": "Mark as Watched", + "mark_unplayed": "Mark as Unwatched", + "resume_playback": "Resume Playback", + "resume_playback_description": "Do you want to continue where you left off or start from the beginning?", + "play_from_start": "Play from Start", + "continue_from": "Continue from {{time}}" }, "live_tv": { "next": "Tiếp theo", @@ -652,7 +790,18 @@ "movies": "Phim", "sports": "Thể thao", "for_kids": "Dành cho trẻ em", - "news": "Tin tức" + "news": "Tin tức", + "page_of": "Page {{current}} of {{total}}", + "no_programs": "No programs available", + "no_channels": "No channels available", + "tabs": { + "programs": "Programs", + "guide": "Guide", + "channels": "Channels", + "recordings": "Recordings", + "schedule": "Schedule", + "series": "Series" + } }, "jellyseerr": { "confirm": "Xác nhận", @@ -697,6 +846,12 @@ "decline": "Decline", "requested_by": "Requested by {{user}}", "unknown_user": "Unknown User", + "select": "Select", + "request_all": "Request All", + "request_seasons": "Request Seasons", + "select_seasons": "Select Seasons", + "request_selected": "Request Selected", + "n_selected": "{{count}} selected", "toasts": { "jellyseer_does_not_meet_requirements": "Máy chủ Jellyseerr không đạt yêu cầu tối thiểu! Vui lòng cập nhật lên ít nhất 2.0.0", "jellyseerr_test_failed": "Kiểm tra Jellyseerr thất bại. Vui lòng thử lại.", @@ -716,7 +871,8 @@ "search": "Tìm kiếm", "library": "Thư viện", "custom_links": "Liên kết tùy chỉnh", - "favorites": "Yêu thích" + "favorites": "Yêu thích", + "settings": "Settings" }, "music": { "title": "Music", @@ -841,5 +997,36 @@ "show": "This show", "all": "All media (default)" } + }, + "companion_login": { + "title": "Pair with TV", + "align_qr": "Align the QR code within the frame", + "enter_code_manually": "Enter code manually", + "pairing_enter_credentials": "Enter credentials for TV", + "pairing_code_label": "Pairing code", + "server": "Server", + "authorize_button": "Authorize", + "authorizing": "Authorizing...", + "scan_again": "Scan Again", + "done": "Done", + "success_title": "Authorization Sent", + "pairing_tv_connecting": "The TV is connecting to your account", + "error_title": "Authorization Failed", + "error_invalid_qr": "Invalid QR code. Please scan the TV pairing code.", + "error_generic": "Something went wrong. Please try again.", + "error_permission_denied": "Camera permission is required to scan QR codes.", + "login_as": "Log in as {{username}}?", + "on_server": "on {{server}}", + "use_different_user": "Use a different user", + "open_settings": "Open Settings" + }, + "pairing": { + "pair_with_phone": "Pair with Phone", + "pair_with_phone_title": "Login TV", + "pair_with_phone_description": "Scan the QR code displayed on your TV to log in", + "waiting_for_phone": "Waiting for phone...", + "scan_with_phone": "Scan with the Streamyfin app on your phone", + "logging_in": "Logging in...", + "logging_in_description": "Connecting to your server" } } diff --git a/translations/zh.json b/translations/zh.json index 7b9320beb..a51bb4e40 100644 --- a/translations/zh.json +++ b/translations/zh.json @@ -4,6 +4,9 @@ "error_title": "Error", "login_title": "Log In", "login_to_title": "Log in to", + "select_user": "Select a user to log in", + "add_user_to_login": "Add a user to log in", + "add_user": "Add User", "username_placeholder": "Username", "password_placeholder": "Password", "login_button": "Log In", @@ -42,7 +45,13 @@ "accounts_count": "{{count}} accounts", "select_account": "Select Account", "add_account": "Add Account", - "remove_account_description": "This will remove the saved credentials for {{username}}." + "remove_account_description": "This will remove the saved credentials for {{username}}.", + "remove_server": "Remove Server", + "remove_server_description": "This will remove {{server}} and all saved accounts from your list.", + "select_your_server": "Select Your Server", + "add_server_to_get_started": "Add a server to get started", + "add_server": "Add Server", + "change_server": "Change Server" }, "save_account": { "title": "Save Account", @@ -86,6 +95,7 @@ "oops": "Oops!", "error_message": "Something went wrong.\nPlease log out and in again.", "continue_watching": "Continue Watching", + "continue": "Continue", "next_up": "Next Up", "continue_and_next_up": "Continue & Next Up", "recently_added_in": "Recently Added in {{libraryName}}", @@ -109,6 +119,12 @@ "settings": { "settings_title": "Settings", "log_out_button": "Log Out", + "switch_user": { + "title": "Switch User", + "account": "Account", + "switch_user": "Switch User on This Server", + "current": "current" + }, "categories": { "title": "Categories" }, @@ -121,7 +137,16 @@ "appearance": { "title": "Appearance", "merge_next_up_continue_watching": "Merge Continue Watching & Next Up", - "hide_remote_session_button": "Hide Remote Session Button" + "hide_remote_session_button": "Hide Remote Session Button", + "show_home_backdrop": "Dynamic Home Backdrop", + "show_hero_carousel": "Hero Carousel", + "show_series_poster_on_episode": "Show Series Poster on Episodes", + "theme_music": "Theme Music", + "display_size": "Display Size", + "display_size_small": "Small", + "display_size_default": "Default", + "display_size_large": "Large", + "display_size_extra_large": "Extra Large" }, "network": { "title": "Network", @@ -174,6 +199,22 @@ "rewind_length": "Rewind Length", "seconds_unit": "s" }, + "buffer": { + "title": "Buffer Settings", + "cache_mode": "Cache Mode", + "cache_auto": "Auto", + "cache_yes": "Enabled", + "cache_no": "Disabled", + "buffer_duration": "Buffer Duration", + "max_cache_size": "Max Cache Size", + "max_backward_cache": "Max Backward Cache" + }, + "vo_driver": { + "title": "Video Output", + "vo_mode": "VO Driver", + "gpu_next": "gpu-next (Recommended)", + "gpu": "gpu" + }, "gesture_controls": { "gesture_controls_title": "Gesture Controls", "horizontal_swipe_skip": "Horizontal Swipe to Skip", @@ -256,7 +297,23 @@ "subtitle_font": "Subtitle Font", "ksplayer_title": "KSPlayer Settings", "hardware_decode": "Hardware Decoding", - "hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues." + "hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues.", + "opensubtitles_title": "OpenSubtitles", + "opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.", + "opensubtitles_api_key": "API Key", + "opensubtitles_api_key_placeholder": "Enter API key...", + "opensubtitles_get_key": "Get your free API key at opensubtitles.com/en/consumers", + "mpv_subtitle_scale": "Subtitle Scale", + "mpv_subtitle_margin_y": "Vertical Margin", + "mpv_subtitle_align_x": "Horizontal Align", + "mpv_subtitle_align_y": "Vertical Align", + "align": { + "left": "Left", + "center": "Center", + "right": "Right", + "top": "Top", + "bottom": "Bottom" + } }, "vlc_subtitles": { "title": "VLC Subtitle Settings", @@ -406,7 +463,13 @@ "music_cache_cleared": "Music cache cleared", "delete_all_downloaded_songs": "Delete All Downloaded Songs", "downloaded_songs_size": "{{size}} downloaded", - "downloaded_songs_deleted": "Downloaded songs deleted" + "downloaded_songs_deleted": "Downloaded songs deleted", + "clear_all_cache": "Clear All Cache", + "clear_all_cache_confirm": "Clear All Cache?", + "clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.", + "clear_all_cache_success": "Cache Cleared", + "clear_all_cache_success_desc": "All cache has been cleared successfully.", + "clear_all_cache_error_desc": "An error occurred while clearing the cache." }, "intro": { "title": "Intro", @@ -430,6 +493,21 @@ "error_deleting_files": "Error Deleting Files", "background_downloads_enabled": "Background downloads enabled", "background_downloads_disabled": "Background downloads disabled" + }, + "security": { + "title": "Security", + "inactivity_timeout": { + "title": "Inactivity Timeout", + "description": "Auto logout after inactivity", + "disabled": "Disabled", + "1_minute": "1 minute", + "5_minutes": "5 minutes", + "15_minutes": "15 minutes", + "30_minutes": "30 minutes", + "1_hour": "1 hour", + "4_hours": "4 hours", + "24_hours": "24 hours" + } } }, "sessions": { @@ -492,6 +570,7 @@ } }, "common": { + "no_results": "No Results", "select": "Select", "no_trailer_available": "No trailer available", "video": "Video", @@ -501,13 +580,16 @@ "none": "None", "track": "Track", "cancel": "Cancel", + "stop": "Stop", "delete": "Delete", "ok": "OK", "remove": "Remove", "next": "Next", "back": "Back", "continue": "Continue", - "verifying": "Verifying..." + "verifying": "Verifying...", + "login": "Login", + "refresh": "Refresh" }, "search": { "search": "Search...", @@ -556,6 +638,7 @@ "movies": "Movies", "series": "Series", "boxsets": "Box Sets", + "playlists": "Playlists", "items": "Items" }, "options": { @@ -574,7 +657,11 @@ "sort_by": "Sort By", "filter_by": "Filter By", "sort_order": "Sort Order", - "tags": "Tags" + "tags": "Tags", + "all": "All", + "reset": "Reset", + "asc": "Ascending", + "desc": "Descending" } }, "favorites": { @@ -591,6 +678,7 @@ "no_links": "No Links" }, "player": { + "live": "LIVE", "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.", @@ -608,7 +696,35 @@ "downloaded_file_message": "Do you want to play the downloaded file?", "downloaded_file_yes": "Yes", "downloaded_file_no": "No", - "downloaded_file_cancel": "Cancel" + "downloaded_file_cancel": "Cancel", + "swipe_down_settings": "Swipe down for settings", + "ends_at": "ends at", + "search_subtitles": "Search Subtitles", + "subtitle_tracks": "Tracks", + "subtitle_search": "Search & Download", + "download": "Download", + "subtitle_download_hint": "Downloaded subtitles will be saved to your library", + "using_jellyfin_server": "Using Jellyfin Server", + "language": "Language", + "results": "Results", + "searching": "Searching...", + "search_failed": "Search failed", + "no_subtitle_provider": "No subtitle provider configured on server", + "no_subtitles_found": "No subtitles found", + "add_opensubtitles_key_hint": "Add OpenSubtitles API key in settings for client-side fallback", + "settings": "Settings", + "skip_intro": "Skip Intro", + "skip_credits": "Skip Credits", + "stopPlayback": "Stop Playback", + "stopPlayingTitle": "Stop playing \"{{title}}\"?", + "stopPlayingConfirm": "Are you sure you want to stop playback?", + "downloaded": "Downloaded" + }, + "chapters": { + "title": "Chapters", + "chapter_number": "Chapter {{number}}", + "open": "Open chapters", + "close": "Close chapters" }, "item_card": { "next_up": "Next Up", @@ -617,6 +733,11 @@ "series": "Series", "seasons": "Seasons", "season": "Season", + "from_this_series": "From This Series", + "more_from_this_season": "More from this Season", + "view_series": "View Series", + "view_season": "View Season", + "select_season": "Select Season", "no_episodes_for_this_season": "No episodes for this season", "overview": "Overview", "more_with": "More with {{name}}", @@ -627,10 +748,21 @@ "media_options": "Media Options", "quality": "Quality", "audio": "Audio", - "subtitles": "Subtitle", + "subtitles": { + "label": "Subtitle", + "none": "None", + "tracks": "Tracks" + }, "show_more": "Show More", "show_less": "Show Less", + "left": "left", + "more_info": "More Info", + "director": "Director", + "cast": "Cast", + "technical_details": "Technical Details", "appeared_in": "Appeared In", + "movies": "Movies", + "shows": "Shows", "could_not_load_item": "Could Not Load Item", "none": "None", "download": { @@ -641,7 +773,13 @@ "download_x_item": "Download {{item_count}} Items", "download_unwatched_only": "Unwatched Only", "download_button": "Download" - } + }, + "mark_played": "Mark as Watched", + "mark_unplayed": "Mark as Unwatched", + "resume_playback": "Resume Playback", + "resume_playback_description": "Do you want to continue where you left off or start from the beginning?", + "play_from_start": "Play from Start", + "continue_from": "Continue from {{time}}" }, "live_tv": { "next": "Next", @@ -652,7 +790,18 @@ "movies": "Movies", "sports": "Sports", "for_kids": "For Kids", - "news": "News" + "news": "News", + "page_of": "Page {{current}} of {{total}}", + "no_programs": "No programs available", + "no_channels": "No channels available", + "tabs": { + "programs": "Programs", + "guide": "Guide", + "channels": "Channels", + "recordings": "Recordings", + "schedule": "Schedule", + "series": "Series" + } }, "jellyseerr": { "confirm": "Confirm", @@ -697,6 +846,12 @@ "decline": "Decline", "requested_by": "Requested by {{user}}", "unknown_user": "Unknown User", + "select": "Select", + "request_all": "Request All", + "request_seasons": "Request Seasons", + "select_seasons": "Select Seasons", + "request_selected": "Request Selected", + "n_selected": "{{count}} selected", "toasts": { "jellyseer_does_not_meet_requirements": "Seerr server does not meet minimum version requirements! Please update to at least 2.0.0", "jellyseerr_test_failed": "Seerr test failed. Please try again.", @@ -716,7 +871,8 @@ "search": "Search", "library": "Library", "custom_links": "Custom Links", - "favorites": "Favorites" + "favorites": "Favorites", + "settings": "Settings" }, "music": { "title": "Music", @@ -841,5 +997,36 @@ "show": "This show", "all": "All media (default)" } + }, + "companion_login": { + "title": "Pair with TV", + "align_qr": "Align the QR code within the frame", + "enter_code_manually": "Enter code manually", + "pairing_enter_credentials": "Enter credentials for TV", + "pairing_code_label": "Pairing code", + "server": "Server", + "authorize_button": "Authorize", + "authorizing": "Authorizing...", + "scan_again": "Scan Again", + "done": "Done", + "success_title": "Authorization Sent", + "pairing_tv_connecting": "The TV is connecting to your account", + "error_title": "Authorization Failed", + "error_invalid_qr": "Invalid QR code. Please scan the TV pairing code.", + "error_generic": "Something went wrong. Please try again.", + "error_permission_denied": "Camera permission is required to scan QR codes.", + "login_as": "Log in as {{username}}?", + "on_server": "on {{server}}", + "use_different_user": "Use a different user", + "open_settings": "Open Settings" + }, + "pairing": { + "pair_with_phone": "Pair with Phone", + "pair_with_phone_title": "Login TV", + "pair_with_phone_description": "Scan the QR code displayed on your TV to log in", + "waiting_for_phone": "Waiting for phone...", + "scan_with_phone": "Scan with the Streamyfin app on your phone", + "logging_in": "Logging in...", + "logging_in_description": "Connecting to your server" } }