diff --git a/.changes/i18n-source-cleanup-health-diagnostics.md b/.changes/i18n-source-cleanup-health-diagnostics.md new file mode 100644 index 000000000..8b115d633 --- /dev/null +++ b/.changes/i18n-source-cleanup-health-diagnostics.md @@ -0,0 +1,9 @@ +--- +type: fix +area: i18n +--- + +The source cleanup dialog, source connection status, playback error panel and +external player status are now translated in every language, along with +leftover English in Hungarian, Korean and Greek. Repeated labels such as Close, +Settings and Account information now use one wording per language. diff --git a/apps/web/src/assets/i18n/ar.json b/apps/web/src/assets/i18n/ar.json index bb65bbeda..6b6519765 100644 --- a/apps/web/src/assets/i18n/ar.json +++ b/apps/web/src/assets/i18n/ar.json @@ -58,7 +58,7 @@ "SOURCE_STALKER_NEEDS": "رابط البوابة وعنوان MAC متوافقان مع Ministra.", "SOURCE_STALKER_ADD": "إضافة Stalker", "CONTENT_LIVE": "مباشر", - "CONTENT_VOD": "أفلام", + "CONTENT_VOD": "الأفلام", "CONTENT_SERIES": "مسلسلات", "CONTENT_EPG": "EPG", "NO_RESULTS_TITLE": "لم يتم العثور على قوائم تشغيل", @@ -373,7 +373,7 @@ "REFRESH_EPG": "تحديث EPG", "REFRESH_ALL_EPG": "تحديث الكل", "REMOVE_EPG_SOURCE": "إزالة مصدر EPG", - "BROWSE_EPG_FILE": "Choose a local XMLTV file…", + "BROWSE_EPG_FILE": "اختيار ملف XMLTV محلي…", "EPG_STATUS_FRESH": "محدث", "EPG_STATUS_STALE": "يحتاج تحديث", "EPG_STATUS_ERROR": "فشل", @@ -418,9 +418,9 @@ "EPG_DATA_CLEAR_FAILED": "فشل مسح بيانات EPG. يرجى المحاولة مرة أخرى.", "CLEARING_EPG_DATA": "جارٍ المسح…", "EPG_URL_ERROR": "القيمة ليست رابطًا صالحًا", - "EPG_SOURCE_LIST_TITLE": "Source list", - "EPG_SOURCE_FORMATS_HINT": "Remote XMLTV links (http/https) and files on this computer are both supported, as plain .xml or gzip-compressed .xml.gz. Local files need an absolute path or a file:// URL.", - "EPG_SOURCE_FORMATS_EXAMPLES": "Examples:", + "EPG_SOURCE_LIST_TITLE": "قائمة المصادر", + "EPG_SOURCE_FORMATS_HINT": "يدعم التطبيق روابط XMLTV البعيدة (http/https) والملفات الموجودة على هذا الكمبيوتر، سواء بصيغة .xml عادية أو مضغوطة بـ gzip بصيغة .xml.gz. تحتاج الملفات المحلية إلى مسار مطلق أو رابط file://.", + "EPG_SOURCE_FORMATS_EXAMPLES": "أمثلة:", "VIDEO_PLAYER_DESCRIPTION": "اختر مشغل الفيديو الافتراضي", "WEB_PLAYER_SHARED_CONTROLS": "عناصر تحكم موحّدة لمشغلات الويب", "WEB_PLAYER_SHARED_CONTROLS_DESCRIPTION": "استخدم عناصر التحكم المشتركة في IPTVnator مع HTML5 وVideo.js وArtPlayer.", @@ -559,7 +559,7 @@ "DASHBOARD_RAIL_CONTINUE_DESCRIPTION": "عرض الأفلام والمسلسلات التي شاهدتها مؤخرًا كبطاقات أغلفة.", "DASHBOARD_RAIL_LIVE_FAVORITES": "يبث الآن ضمن مفضلاتك", "DASHBOARD_RAIL_LIVE_FAVORITES_DESCRIPTION": "عرض القنوات المباشرة المفضلة مع تقدم EPG الحالي.", - "DASHBOARD_RAIL_RECENT_LIVE": "تلفزيون مباشر شاهدته مؤخرًا", + "DASHBOARD_RAIL_RECENT_LIVE": "تلفزيون مباشر شوهد مؤخرًا", "DASHBOARD_RAIL_RECENT_LIVE_DESCRIPTION": "عرض القنوات المباشرة التي فتحتها مؤخرًا مع تقدم EPG الحالي.", "DASHBOARD_RAIL_FAVORITE_VOD": "الأفلام والمسلسلات المفضلة", "DASHBOARD_RAIL_FAVORITE_VOD_DESCRIPTION": "عرض الأفلام والمسلسلات المفضلة كبطاقات أغلفة.", @@ -805,16 +805,16 @@ "REASON_COMPATIBLE_DRM_PATH": "هذا الهدف متوافق مع بيانات التشفير المتاحة", "ACTION_OPEN_MPV": "فتح في MPV", "ACTION_OPEN_VLC": "فتح في VLC", - "ACTION_OPENING_MPV": "Opening MPV…", - "ACTION_OPENING_VLC": "Opening VLC…", - "ACTION_REOPEN_MPV": "Open MPV again", - "ACTION_REOPEN_VLC": "Open VLC again", - "ACTION_RETRY_MPV": "Try MPV again", - "ACTION_RETRY_VLC": "Try VLC again", - "EXTERNAL_OPENING": "Opening player…", - "EXTERNAL_STARTED": "Player started", - "EXTERNAL_PLAYING": "Playing", - "EXTERNAL_FAILED": "External player error", + "ACTION_OPENING_MPV": "جارٍ فتح MPV…", + "ACTION_OPENING_VLC": "جارٍ فتح VLC…", + "ACTION_REOPEN_MPV": "فتح MPV مرة أخرى", + "ACTION_REOPEN_VLC": "فتح VLC مرة أخرى", + "ACTION_RETRY_MPV": "جرّب MPV مرة أخرى", + "ACTION_RETRY_VLC": "جرّب VLC مرة أخرى", + "EXTERNAL_OPENING": "جارٍ فتح المشغل…", + "EXTERNAL_STARTED": "تم بدء تشغيل المشغل", + "EXTERNAL_PLAYING": "قيد التشغيل", + "EXTERNAL_FAILED": "خطأ في المشغل الخارجي", "ACTION_OPEN_MPV_HINT": "المشغل المكوّن", "ACTION_OPEN_VLC_HINT": "المشغل المكوّن", "ACTION_COPY_URL": "نسخ رابط البث", @@ -1759,12 +1759,12 @@ "RAIL_FAVORITES": "المفضلة", "RAIL_DOWNLOADS": "التنزيلات", "EXTERNAL_PLAYBACK_CLOSE": "إغلاق المشغل", - "EXTERNAL_PLAYBACK_DISMISS": "Dismiss", - "EXTERNAL_PLAYBACK_OPENING": "Opening player…", - "EXTERNAL_PLAYBACK_STARTED": "Player started", - "EXTERNAL_PLAYBACK_PLAYING": "Playing", - "EXTERNAL_PLAYBACK_FAILED": "External player error", - "EXTERNAL_PLAYBACK_CLOSED": "Closed", + "EXTERNAL_PLAYBACK_DISMISS": "إخفاء", + "EXTERNAL_PLAYBACK_OPENING": "جارٍ فتح المشغل…", + "EXTERNAL_PLAYBACK_STARTED": "تم بدء تشغيل المشغل", + "EXTERNAL_PLAYBACK_PLAYING": "قيد التشغيل", + "EXTERNAL_PLAYBACK_FAILED": "خطأ في المشغل الخارجي", + "EXTERNAL_PLAYBACK_CLOSED": "مغلق", "EXTERNAL_PLAYBACK_OPEN_IN_PLAYLIST": "فتح في قائمة التشغيل", "RAIL_ALL_CHANNELS": "جميع القنوات", "RAIL_GROUPS": "المجموعات", @@ -2033,49 +2033,49 @@ "FAILED_DETAIL": "أعد محاولة قراءة المصادر المحفوظة. لم تُحذف بياناتك." }, "SOURCE_HEALTH": { - "RECHECK": "Check again", - "M3U_SCOPE": "Playlist URL, not individual channels", + "RECHECK": "تحقق مرة أخرى", + "M3U_SCOPE": "رابط قائمة التشغيل، وليس القنوات الفردية", "REASON": { - "available": "Available", - "disabled": "Account disabled", - "expired": "Subscription expired", - "auth": "Access denied; account status unconfirmed", - "http": "Server returned an error", - "timeout": "Check timed out", - "network": "Could not connect", - "paused": "Connection checks paused", - "invalid": "Unexpected response", - "unknown": "Not verified", - "cancelled": "Check cancelled", - "checking": "Checking…" + "available": "متاح", + "disabled": "تم تعطيل الحساب", + "expired": "انتهت صلاحية الاشتراك", + "auth": "تم رفض الوصول؛ حالة الحساب غير مؤكدة", + "http": "أرجع الخادم خطأً", + "timeout": "انتهت مهلة التحقق", + "network": "تعذر الاتصال", + "paused": "عمليات التحقق من الاتصال متوقفة مؤقتًا", + "invalid": "استجابة غير متوقعة", + "unknown": "لم يتم التحقق", + "cancelled": "تم إلغاء التحقق", + "checking": "جارٍ التحقق…" } }, "SOURCE_CLEANUP": { - "TITLE": "Clean up inactive sources…", - "SCOPE": "All network sources in your library, regardless of page filters.", - "CONSEQUENCES": "Delete only sources you select. Their saved favourites, history and playback progress will also be removed. Downloaded files are kept.", - "SUMMARY": "Checked {{checked}}/{{total}} · Available {{available}} · Deleted {{deleted}} · Skipped {{skipped}} · Failed {{failed}}", - "SELECT_ALL": "Select all candidates", - "SELECT_NONE": "Deselect all", - "UNTITLED": "Untitled source", - "DELETE": "Delete selected · {{count}}", - "CLOSE": "Close", - "STOP": "Stop after current source", - "CLEANUP_WARNING": "Source deleted; some follow-up cleanup failed", + "TITLE": "تنظيف المصادر غير النشطة…", + "SCOPE": "جميع المصادر الشبكية في مكتبتك، بغض النظر عن عوامل التصفية في الصفحة.", + "CONSEQUENCES": "لن تُحذف إلا المصادر التي تحددها، وستُزال معها المفضلة وسجل المشاهدة وتقدم التشغيل المحفوظة لها. أما الملفات المنزّلة فيُحتفظ بها.", + "SUMMARY": "تم التحقق: {{checked}}/{{total}} · متاح: {{available}} · تم الحذف: {{deleted}} · تم التخطي: {{skipped}} · فشل: {{failed}}", + "SELECT_ALL": "تحديد كل المصادر المرشحة", + "SELECT_NONE": "إلغاء تحديد الكل", + "UNTITLED": "مصدر بدون عنوان", + "DELETE": "حذف المحدد · {{count}}", + "CLOSE": "إغلاق", + "STOP": "إيقاف بعد المصدر الحالي", + "CLEANUP_WARNING": "تم حذف المصدر؛ تعذر إكمال جزء من التنظيف اللاحق", "GROUP": { - "confirmed": "Confirmed inactive accounts", - "uncertain": "Review before deleting", - "skipped": "Skipped sources", - "results": "Deletion results" + "confirmed": "حسابات غير نشطة مؤكدة", + "uncertain": "تحتاج إلى مراجعة قبل الحذف", + "skipped": "مصادر تم تخطيها", + "results": "نتائج الحذف" }, "STATUS": { - "checking": "Checking…", - "skipped": "Playing, busy, changed or no longer present", - "deleting": "Deleting…", - "deleted": "Deleted", - "failed": "Deletion failed — select to retry" + "checking": "جارٍ التحقق…", + "skipped": "قيد التشغيل أو مشغول أو تغيّر أو لم يعد موجودًا", + "deleting": "جارٍ الحذف…", + "deleted": "تم الحذف", + "failed": "فشل الحذف — حدّده لإعادة المحاولة" }, - "DELETE_PROGRESS": "Processed {{done}} of {{total}} selected sources" + "DELETE_PROGRESS": "تمت معالجة {{done}} من {{total}} من المصادر المحددة" }, "PARENTAL_LOCK": { "PIN_DIALOG": { diff --git a/apps/web/src/assets/i18n/ary.json b/apps/web/src/assets/i18n/ary.json index 5300b1c07..b5e819ad5 100644 --- a/apps/web/src/assets/i18n/ary.json +++ b/apps/web/src/assets/i18n/ary.json @@ -58,7 +58,7 @@ "SOURCE_STALKER_NEEDS": "رابط البوابة وعنوان MAC متوافق مع Ministra.", "SOURCE_STALKER_ADD": "زيد Stalker", "CONTENT_LIVE": "مباشر", - "CONTENT_VOD": "أفلام", + "CONTENT_VOD": "الأفلام", "CONTENT_SERIES": "سلاسل", "CONTENT_EPG": "EPG", "NO_RESULTS_TITLE": "ما تلقاتش حتى قائمة تشغيل", @@ -373,7 +373,7 @@ "REFRESH_EPG": "حدث EPG", "REFRESH_ALL_EPG": "حدث الكل", "REMOVE_EPG_SOURCE": "زول مصدر EPG", - "BROWSE_EPG_FILE": "Choose a local XMLTV file…", + "BROWSE_EPG_FILE": "اختار ملف XMLTV محلي…", "EPG_STATUS_FRESH": "محدث", "EPG_STATUS_STALE": "خاصو يتحدث", "EPG_STATUS_ERROR": "فشل", @@ -391,7 +391,7 @@ "DISCARD_CHANGES": "تجاهل", "UNSAVED_DIALOG_TITLE": "تغييرات ماتسجلاتش", "UNSAVED_DIALOG_MESSAGE": "عندك تغييرات ماتسجلاتش فالإعدادات. بغيتي تسجلهم قبل ما تخرج؟", - "UNSAVED_DIALOG_SAVE": "سجّل", + "UNSAVED_DIALOG_SAVE": "حفظ", "UNSAVED_DIALOG_DISCARD": "تجاهل", "UNSAVED_DIALOG_INVALID_HINT": "شي خانات ماشي صحيحين، علاش مايمكنش تسجل التغييرات دابا.", "BACK_TO_HOME": "رجوع", @@ -418,9 +418,9 @@ "EPG_DATA_CLEAR_FAILED": "فشل مسح بيانات EPG. عفاك حاول مرة أخرى.", "CLEARING_EPG_DATA": "جاري المسح…", "EPG_URL_ERROR": "القيمة ماشي رابط صحيح", - "EPG_SOURCE_LIST_TITLE": "Source list", - "EPG_SOURCE_FORMATS_HINT": "Remote XMLTV links (http/https) and files on this computer are both supported, as plain .xml or gzip-compressed .xml.gz. Local files need an absolute path or a file:// URL.", - "EPG_SOURCE_FORMATS_EXAMPLES": "Examples:", + "EPG_SOURCE_LIST_TITLE": "لائحة المصادر", + "EPG_SOURCE_FORMATS_HINT": "مدعومين بجوج: روابط XMLTV البعيدة (http/https) والملفات اللي فهاد الكمبيوتر، سواء .xml عادي ولا .xml.gz مضغوط بـ gzip. الملفات المحلية خاصها مسار مطلق ولا رابط file://.", + "EPG_SOURCE_FORMATS_EXAMPLES": "أمثلة:", "VIDEO_PLAYER_DESCRIPTION": "اختار مشغل الفيديو الافتراضي", "WEB_PLAYER_SHARED_CONTROLS": "عناصر تحكم موحدة لمشغلات الويب", "WEB_PLAYER_SHARED_CONTROLS_DESCRIPTION": "استعمل عناصر التحكم المشتركة ديال IPTVnator مع HTML5 وVideo.js وArtPlayer.", @@ -805,16 +805,16 @@ "REASON_COMPATIBLE_DRM_PATH": "هاد الهدف متوافق مع بيانات التشفير المتوفرة", "ACTION_OPEN_MPV": "حل فـ MPV", "ACTION_OPEN_VLC": "حل فـ VLC", - "ACTION_OPENING_MPV": "Opening MPV…", - "ACTION_OPENING_VLC": "Opening VLC…", - "ACTION_REOPEN_MPV": "Open MPV again", - "ACTION_REOPEN_VLC": "Open VLC again", - "ACTION_RETRY_MPV": "Try MPV again", - "ACTION_RETRY_VLC": "Try VLC again", - "EXTERNAL_OPENING": "Opening player…", - "EXTERNAL_STARTED": "Player started", - "EXTERNAL_PLAYING": "Playing", - "EXTERNAL_FAILED": "External player error", + "ACTION_OPENING_MPV": "جاري حل MPV…", + "ACTION_OPENING_VLC": "جاري حل VLC…", + "ACTION_REOPEN_MPV": "عاود حل MPV", + "ACTION_REOPEN_VLC": "عاود حل VLC", + "ACTION_RETRY_MPV": "عاود جرّب MPV", + "ACTION_RETRY_VLC": "عاود جرّب VLC", + "EXTERNAL_OPENING": "جاري حل المشغل…", + "EXTERNAL_STARTED": "المشغل تشعل", + "EXTERNAL_PLAYING": "كيتشغل", + "EXTERNAL_FAILED": "خطأ فالمشغل الخارجي", "ACTION_OPEN_MPV_HINT": "المشغل المضبط", "ACTION_OPEN_VLC_HINT": "المشغل المضبط", "ACTION_COPY_URL": "نسخ رابط البث", @@ -914,9 +914,9 @@ "EPG_PARAMS": "بارامترات EPG", "TIMESHIFT": "مشاهدة مؤجلة", "TVG_ID": "TVG ID", - "TVG_NAME": "TVG name", + "TVG_NAME": "اسم TVG", "TVG_URL": "TVG URL", - "TVG_LOGO": "TVG logo", + "TVG_LOGO": "شعار TVG", "TVG_REC": "TVG rec", "CATCHUP_TYPE": "نوع إعادة المشاهدة", "CATCHUP_SOURCE": "مصدر إعادة المشاهدة", @@ -996,7 +996,7 @@ "ALLOW_PRIVATE_SOURCE": "سمح للمصدر", "ALLOW_PRIVATE_SOURCE_TITLE": "نسمحو لمصدر EPG من شبكة خاصة؟", "ALLOW_PRIVATE_SOURCE_WARNING": "سمح بهادشي غير إلا كنتي كتوثق فمصدر EPG. IPTVnator غادي يسمح غير لهد الرابط EPG بعينو يتاصل بعناوين شبكة خاصة ولا محلية.", - "TRUST_TLS_HOST": "وثق فهاد المضيف", + "TRUST_TLS_HOST": "وثق فالمضيف", "TRUST_TLS_HOST_TITLE": "توثق فشهادة ما صالحة؟", "TRUST_TLS_HOST_WARNING": "كمل غير إلا كنتي كتوثق فهاد المضيف. IPTVnator غادي يسمح بشهادات TLS ما صالحةش لهد المضيف، ولكن باقي المضيفين خاصهم شهادات صالحة.", "CURRENT_PROGRAM": "البرنامج الحالي", @@ -1759,12 +1759,12 @@ "RAIL_FAVORITES": "المفضلة", "RAIL_DOWNLOADS": "التحميلات", "EXTERNAL_PLAYBACK_CLOSE": "سد المشغل", - "EXTERNAL_PLAYBACK_DISMISS": "Dismiss", - "EXTERNAL_PLAYBACK_OPENING": "Opening player…", - "EXTERNAL_PLAYBACK_STARTED": "Player started", - "EXTERNAL_PLAYBACK_PLAYING": "Playing", - "EXTERNAL_PLAYBACK_FAILED": "External player error", - "EXTERNAL_PLAYBACK_CLOSED": "Closed", + "EXTERNAL_PLAYBACK_DISMISS": "خبّي", + "EXTERNAL_PLAYBACK_OPENING": "جاري حل المشغل…", + "EXTERNAL_PLAYBACK_STARTED": "المشغل تشعل", + "EXTERNAL_PLAYBACK_PLAYING": "كيتشغل", + "EXTERNAL_PLAYBACK_FAILED": "خطأ فالمشغل الخارجي", + "EXTERNAL_PLAYBACK_CLOSED": "تسدّ", "EXTERNAL_PLAYBACK_OPEN_IN_PLAYLIST": "حلّ فقائمة التشغيل", "RAIL_ALL_CHANNELS": "جميع القنوات", "RAIL_GROUPS": "المجموعات", @@ -2033,49 +2033,49 @@ "FAILED_DETAIL": "عاود جرّب تقرا المصادر المحفوظة. البيانات ديالك ما تمسحوش." }, "SOURCE_HEALTH": { - "RECHECK": "Check again", - "M3U_SCOPE": "Playlist URL, not individual channels", + "RECHECK": "عاود تحقق", + "M3U_SCOPE": "رابط قائمة التشغيل، ماشي كل قناة بوحدها", "REASON": { - "available": "Available", - "disabled": "Account disabled", - "expired": "Subscription expired", - "auth": "Access denied; account status unconfirmed", - "http": "Server returned an error", - "timeout": "Check timed out", - "network": "Could not connect", - "paused": "Connection checks paused", - "invalid": "Unexpected response", - "unknown": "Not verified", - "cancelled": "Check cancelled", - "checking": "Checking…" + "available": "متوفر", + "disabled": "الحساب معطّل", + "expired": "الاشتراك سالا", + "auth": "الوصول مرفوض؛ حالة الحساب غير مؤكّدة", + "http": "السيرفر رجّع خطأ", + "timeout": "مهلة التحقق سالات", + "network": "ما قدرناش نتاصلو", + "paused": "التحقق من الاتصال موقوف مؤقتاً", + "invalid": "جواب غير متوقع", + "unknown": "ما متحقّقش منو", + "cancelled": "التحقق تلغى", + "checking": "جاري التحقق…" } }, "SOURCE_CLEANUP": { - "TITLE": "Clean up inactive sources…", - "SCOPE": "All network sources in your library, regardless of page filters.", - "CONSEQUENCES": "Delete only sources you select. Their saved favourites, history and playback progress will also be removed. Downloaded files are kept.", - "SUMMARY": "Checked {{checked}}/{{total}} · Available {{available}} · Deleted {{deleted}} · Skipped {{skipped}} · Failed {{failed}}", - "SELECT_ALL": "Select all candidates", - "SELECT_NONE": "Deselect all", - "UNTITLED": "Untitled source", - "DELETE": "Delete selected · {{count}}", - "CLOSE": "Close", - "STOP": "Stop after current source", - "CLEANUP_WARNING": "Source deleted; some follow-up cleanup failed", + "TITLE": "نقّي المصادر غير النشطة…", + "SCOPE": "جميع المصادر اللي كتخدم بالشبكة فالمكتبة ديالك، كيفما كانو فلاتر الصفحة.", + "CONSEQUENCES": "كيتحذفو غير المصادر اللي اختاريتي. المفضلة والسجل وتقدم التشغيل المحفوظين ديالهم غادي يتحيدو حتى هوما. الملفات اللي تحمّلات كتبقى.", + "SUMMARY": "تفحّصو {{checked}}/{{total}} · متوفرين {{available}} · تحذفو {{deleted}} · تخطّاو {{skipped}} · فشلو {{failed}}", + "SELECT_ALL": "اختار كل المرشّحين", + "SELECT_NONE": "حيد الاختيار من الكل", + "UNTITLED": "مصدر بلا عنوان", + "DELETE": "حذف المختارين · {{count}}", + "CLOSE": "سد", + "STOP": "وقّف من بعد المصدر الحالي", + "CLEANUP_WARNING": "المصدر تحذف؛ ولكن شي جزء من التنقية اللي من بعد فشل", "GROUP": { - "confirmed": "Confirmed inactive accounts", - "uncertain": "Review before deleting", - "skipped": "Skipped sources", - "results": "Deletion results" + "confirmed": "حسابات غير نشطة مؤكّدة", + "uncertain": "راجع قبل الحذف", + "skipped": "المصادر اللي تخطّاو", + "results": "نتائج الحذف" }, "STATUS": { - "checking": "Checking…", - "skipped": "Playing, busy, changed or no longer present", - "deleting": "Deleting…", - "deleted": "Deleted", - "failed": "Deletion failed — select to retry" + "checking": "جاري التحقق…", + "skipped": "كيتشغل، مشغول، تبدّل ولا ما بقاش كاين", + "deleting": "جاري الحذف…", + "deleted": "تحذف", + "failed": "فشل الحذف — اختارو باش تعاود المحاولة" }, - "DELETE_PROGRESS": "Processed {{done}} of {{total}} selected sources" + "DELETE_PROGRESS": "تعالجو {{done}} من {{total}} ديال المصادر المختارة" }, "PARENTAL_LOCK": { "PIN_DIALOG": { diff --git a/apps/web/src/assets/i18n/by.json b/apps/web/src/assets/i18n/by.json index e33cac4eb..6540fbd6f 100644 --- a/apps/web/src/assets/i18n/by.json +++ b/apps/web/src/assets/i18n/by.json @@ -373,7 +373,7 @@ "REFRESH_EPG": "Абнавіць праграму каналаў (EPG)", "REFRESH_ALL_EPG": "Абнавіць усё", "REMOVE_EPG_SOURCE": "Выдаліць крыніцу EPG", - "BROWSE_EPG_FILE": "Choose a local XMLTV file…", + "BROWSE_EPG_FILE": "Выбраць лакальны файл XMLTV…", "EPG_STATUS_FRESH": "Актуальна", "EPG_STATUS_STALE": "Патрабуе абнаўлення", "EPG_STATUS_ERROR": "Памылка", @@ -385,7 +385,7 @@ "PLAYER_MPV": "Прайгравальнік MPV", "PLAYER_VLC": "VLC", "VIDEO_PLAYER_PLACEHOLDER": "Выберыце са спісу", - "VERSION": "Версія праграмы", + "VERSION": "Версія", "SAVE_CHANGES": "Захаваць", "UNSAVED_CHANGES": "У вас ёсць незахаваныя змены", "DISCARD_CHANGES": "Адмяніць змены", @@ -418,9 +418,9 @@ "EPG_DATA_CLEAR_FAILED": "Не ўдалося ачысціць дадзеныя EPG. Калі ласка, паспрабуйце яшчэ раз.", "CLEARING_EPG_DATA": "Ачышчаецца...", "EPG_URL_ERROR": "Уведзенае значэнне не з'яўляецца URL-адрасам.", - "EPG_SOURCE_LIST_TITLE": "Source list", - "EPG_SOURCE_FORMATS_HINT": "Remote XMLTV links (http/https) and files on this computer are both supported, as plain .xml or gzip-compressed .xml.gz. Local files need an absolute path or a file:// URL.", - "EPG_SOURCE_FORMATS_EXAMPLES": "Examples:", + "EPG_SOURCE_LIST_TITLE": "Спіс крыніц", + "EPG_SOURCE_FORMATS_HINT": "Падтрымліваюцца як спасылкі на XMLTV (http/https), так і файлы на гэтым камп'ютары — у выглядзе звычайнага .xml або сціснутага gzip .xml.gz. Для лакальных файлаў патрэбны абсалютны шлях або URL выгляду file://.", + "EPG_SOURCE_FORMATS_EXAMPLES": "Прыклады:", "VIDEO_PLAYER_DESCRIPTION": "Выбраць стандартны відэапрайгравальнік", "WEB_PLAYER_SHARED_CONTROLS": "Адзіныя элементы кіравання для вэб-прайгравальнікаў", "WEB_PLAYER_SHARED_CONTROLS_DESCRIPTION": "Выкарыстоўваць агульныя элементы кіравання IPTVnator у HTML5, Video.js і ArtPlayer.", @@ -805,16 +805,16 @@ "REASON_COMPATIBLE_DRM_PATH": "Гэтая мэта сумяшчальная з даступнымі данымі шыфравання", "ACTION_OPEN_MPV": "Адкрыць у MPV", "ACTION_OPEN_VLC": "Адкрыць у VLC", - "ACTION_OPENING_MPV": "Opening MPV…", - "ACTION_OPENING_VLC": "Opening VLC…", - "ACTION_REOPEN_MPV": "Open MPV again", - "ACTION_REOPEN_VLC": "Open VLC again", - "ACTION_RETRY_MPV": "Try MPV again", - "ACTION_RETRY_VLC": "Try VLC again", - "EXTERNAL_OPENING": "Opening player…", - "EXTERNAL_STARTED": "Player started", - "EXTERNAL_PLAYING": "Playing", - "EXTERNAL_FAILED": "External player error", + "ACTION_OPENING_MPV": "MPV адкрываецца…", + "ACTION_OPENING_VLC": "VLC адкрываецца…", + "ACTION_REOPEN_MPV": "Адкрыць MPV яшчэ раз", + "ACTION_REOPEN_VLC": "Адкрыць VLC яшчэ раз", + "ACTION_RETRY_MPV": "Паспрабаваць MPV яшчэ раз", + "ACTION_RETRY_VLC": "Паспрабаваць VLC яшчэ раз", + "EXTERNAL_OPENING": "Плэер адкрываецца…", + "EXTERNAL_STARTED": "Плэер запушчаны", + "EXTERNAL_PLAYING": "Прайграецца", + "EXTERNAL_FAILED": "Памылка знешняга плэера", "ACTION_OPEN_MPV_HINT": "наладжаны плэер", "ACTION_OPEN_VLC_HINT": "наладжаны плэер", "ACTION_COPY_URL": "Скапіяваць URL патоку", @@ -868,7 +868,7 @@ "SEARCH_GROUPS": "Пошук груп", "UNGROUPED": "Незагрупаваныя", "UNNAMED_CHANNEL": "Канал без назвы", - "FAVORITES": "Выбраныя", + "FAVORITES": "Выбранае", "FAVORITE": "Выбранае", "NO_FAVORITES": "Выбраных каналаў пакуль няма", "USE_STAR_TO_FAVORITE": "Выкарыстоўвайце значок зоркі, каб дадаваць каналы ў выбранае", @@ -1360,7 +1360,7 @@ "COPY_STREAM_URL": "Капіраваць URL-адрас патоку", "NOW_PLAYING": "Зараз прайграецца", "UP_NEXT": "Далей", - "CLOSE_PLAYER": "Закрыць прайгравальнік", + "CLOSE_PLAYER": "Закрыць плэер", "ABOUT": "Пра фільм", "SEASONS_AND_EPISODES": "Сезоны і эпізоды", "SEASON_TAB": "Сезон {{number}}", @@ -1517,7 +1517,7 @@ "ACTION_FAILED": "Дзеянне не выканана", "PAUSE": "Паўза", "RESUME": "Узнавіць", - "CANCEL": "Скасаваць", + "CANCEL": "Адмена", "DOWNLOADED_REVEAL": "Спампавана — паказаць у папцы", "DOWNLOADING_PERCENT": "Спампоўваецца… {{percent}}%", "CANCEL_CONFIRM_TITLE": "Скасаваць спампоўванне", @@ -1759,12 +1759,12 @@ "RAIL_FAVORITES": "Выбранае", "RAIL_DOWNLOADS": "Спампаванні", "EXTERNAL_PLAYBACK_CLOSE": "Закрыць плэер", - "EXTERNAL_PLAYBACK_DISMISS": "Dismiss", - "EXTERNAL_PLAYBACK_OPENING": "Opening player…", - "EXTERNAL_PLAYBACK_STARTED": "Player started", - "EXTERNAL_PLAYBACK_PLAYING": "Playing", - "EXTERNAL_PLAYBACK_FAILED": "External player error", - "EXTERNAL_PLAYBACK_CLOSED": "Closed", + "EXTERNAL_PLAYBACK_DISMISS": "Схаваць", + "EXTERNAL_PLAYBACK_OPENING": "Плэер адкрываецца…", + "EXTERNAL_PLAYBACK_STARTED": "Плэер запушчаны", + "EXTERNAL_PLAYBACK_PLAYING": "Прайграецца", + "EXTERNAL_PLAYBACK_FAILED": "Памылка знешняга плэера", + "EXTERNAL_PLAYBACK_CLOSED": "Закрыты", "EXTERNAL_PLAYBACK_OPEN_IN_PLAYLIST": "Адкрыць у плэйлісце", "RAIL_ALL_CHANNELS": "Усе каналы", "RAIL_GROUPS": "Групы", @@ -2004,11 +2004,11 @@ "RETRY": "Паўтарыць", "STALKER": { "ACCOUNT_INFO": { - "TITLE": "Інфармацыя пра акаўнт", + "TITLE": "Інфармацыя аб уліковым запісе", "ACCOUNT": "Акаўнт", "PORTAL_INFO": "Партал", "LOGIN": "Лагін", - "STATUS": "Статус", + "STATUS": "Стан", "ACTIVE": "Актыўны", "INACTIVE": "Неактыўны", "TARIFF_PLAN": "Тарыфны план", @@ -2033,49 +2033,49 @@ "FAILED_DETAIL": "Паўтарыце чытанне захаваных крыніц. Вашы даныя не выдалены." }, "SOURCE_HEALTH": { - "RECHECK": "Check again", - "M3U_SCOPE": "Playlist URL, not individual channels", + "RECHECK": "Праверыць яшчэ раз", + "M3U_SCOPE": "URL плэйліста, а не асобныя каналы", "REASON": { - "available": "Available", - "disabled": "Account disabled", - "expired": "Subscription expired", - "auth": "Access denied; account status unconfirmed", - "http": "Server returned an error", - "timeout": "Check timed out", - "network": "Could not connect", - "paused": "Connection checks paused", - "invalid": "Unexpected response", - "unknown": "Not verified", - "cancelled": "Check cancelled", - "checking": "Checking…" + "available": "Даступна", + "disabled": "Уліковы запіс адключаны", + "expired": "Тэрмін падпіскі скончыўся", + "auth": "Доступ забаронены; статус уліковага запісу не пацверджаны", + "http": "Сервер вярнуў памылку", + "timeout": "Час чакання праверкі скончыўся", + "network": "Не ўдалося падключыцца", + "paused": "Праверкі падключэння прыпынены", + "invalid": "Нечаканы адказ", + "unknown": "Не праверана", + "cancelled": "Праверка скасавана", + "checking": "Правяраецца…" } }, "SOURCE_CLEANUP": { - "TITLE": "Clean up inactive sources…", - "SCOPE": "All network sources in your library, regardless of page filters.", - "CONSEQUENCES": "Delete only sources you select. Their saved favourites, history and playback progress will also be removed. Downloaded files are kept.", - "SUMMARY": "Checked {{checked}}/{{total}} · Available {{available}} · Deleted {{deleted}} · Skipped {{skipped}} · Failed {{failed}}", - "SELECT_ALL": "Select all candidates", - "SELECT_NONE": "Deselect all", - "UNTITLED": "Untitled source", - "DELETE": "Delete selected · {{count}}", - "CLOSE": "Close", - "STOP": "Stop after current source", - "CLEANUP_WARNING": "Source deleted; some follow-up cleanup failed", + "TITLE": "Ачысціць неактыўныя крыніцы…", + "SCOPE": "Усе сеткавыя крыніцы ў вашай бібліятэцы, незалежна ад фільтраў старонкі.", + "CONSEQUENCES": "Выдаляюцца толькі выбраныя вамі крыніцы. Захаваныя для іх фаварыты, гісторыя і прагрэс прайгравання таксама будуць выдалены. Спампаваныя файлы захоўваюцца.", + "SUMMARY": "Праверана: {{checked}}/{{total}} · Даступна: {{available}} · Выдалена: {{deleted}} · Прапушчана: {{skipped}} · Памылак: {{failed}}", + "SELECT_ALL": "Выбраць усе прапанаваныя", + "SELECT_NONE": "Зняць выбар", + "UNTITLED": "Крыніца без назвы", + "DELETE": "Выдаліць выбраныя · {{count}}", + "CLOSE": "Закрыць", + "STOP": "Спыніць пасля бягучай крыніцы", + "CLEANUP_WARNING": "Крыніца выдалена; частку дадатковай ачысткі выканаць не ўдалося", "GROUP": { - "confirmed": "Confirmed inactive accounts", - "uncertain": "Review before deleting", - "skipped": "Skipped sources", - "results": "Deletion results" + "confirmed": "Пацверджаныя неактыўныя ўліковыя запісы", + "uncertain": "Праверце перад выдаленнем", + "skipped": "Прапушчаныя крыніцы", + "results": "Вынікі выдалення" }, "STATUS": { - "checking": "Checking…", - "skipped": "Playing, busy, changed or no longer present", - "deleting": "Deleting…", - "deleted": "Deleted", - "failed": "Deletion failed — select to retry" + "checking": "Правяраецца…", + "skipped": "Прайграецца, занятая, змененая або ўжо адсутнічае", + "deleting": "Выдаляецца…", + "deleted": "Выдалена", + "failed": "Не ўдалося выдаліць — выберыце, каб паўтарыць" }, - "DELETE_PROGRESS": "Processed {{done}} of {{total}} selected sources" + "DELETE_PROGRESS": "Апрацавана {{done}} з {{total}} выбраных крыніц" }, "PARENTAL_LOCK": { "PIN_DIALOG": { diff --git a/apps/web/src/assets/i18n/de.json b/apps/web/src/assets/i18n/de.json index 83e50e90c..d12a5ec18 100644 --- a/apps/web/src/assets/i18n/de.json +++ b/apps/web/src/assets/i18n/de.json @@ -531,7 +531,7 @@ "EXTERNAL_PLAYER_ARGUMENTS_HINT": "Verwende ein Argument pro Zeile. Diese Werte werden vor stream-spezifischen IPTVnator-Optionen angewendet.", "VLC_REUSE_INSTANCE_LABEL": "VLC-Instanz wiederverwenden", "VLC_REUSE_INSTANCE_DESCRIPTION": "Wenn aktiviert, wird dasselbe VLC-Fenster zum Abspielen verschiedener Streams wiederverwendet. Wenn deaktiviert, wird jeder Stream in einem neuen VLC-Fenster geöffnet.", - "REMOTE_CONTROL": "Fernsteuerung", + "REMOTE_CONTROL": "Fernbedienung", "REMOTE_CONTROL_DESCRIPTION": "Fernsteuerung der Anwendung aktivieren.", "REMOTE_CONTROL_PORT": "Fernsteuerungsport", "REMOTE_CONTROL_PORT_DESCRIPTION": "Port für die Fernsteuerung der Anwendung. Standardmäßig wird Port 8765 verwendet.", @@ -1370,7 +1370,7 @@ "BACK_TO_PLAYING_EPISODE": "Zurück zur laufenden Folge", "GRID_VIEW": "Rasteransicht", "LIST_VIEW": "Listenansicht", - "NO_EPISODES_AVAILABLE": "Keine Folgen verfügbar", + "NO_EPISODES_AVAILABLE": "Keine Episoden verfügbar", "NO_EPISODES_AVAILABLE_MESSAGE": "Diese Serie wird von Ihrem Anbieter gelistet, es sind jedoch keine Staffeln oder Folgen zum Abspielen verfügbar.", "SEASON_EMPTY": "Diese Staffel ist leer", "SEASON_EMPTY_MESSAGE": "Diese Staffel wird von Ihrem Anbieter gelistet, es sind jedoch keine abspielbaren Folgen verfügbar.", @@ -1631,7 +1631,7 @@ "SUBTITLE": "Steuern Sie Ihren IPTV-Player aus der Ferne", "UP_CHANNEL": "Vorheriger Kanal", "DOWN_CHANNEL": "Nächster Kanal", - "NOW_PLAYING": "Jetzt läuft", + "NOW_PLAYING": "Wird wiedergegeben", "EXECUTING": "Wird ausgeführt", "SOURCE_M3U": "M3U-Live-TV", "SOURCE_XTREAM": "Xtream-Live-TV", @@ -1791,7 +1791,7 @@ "OPEN_CONTEXT_ACTIONS": "Abschnittsaktionen öffnen", "NO_SECTION_ACTIONS": "Keine Aktionen für diesen Abschnitt", "PLAYLIST_INFO": "Playlist-Info", - "ACCOUNT_INFO": "Kontoinfo", + "ACCOUNT_INFO": "Kontoinformationen", "REFRESH_PLAYLIST": "Playlist aktualisieren", "CLEAR_COMPLETED_DOWNLOADS_ALL": "Abgeschlossene Downloads löschen (alle Playlists)", "CLEAR_COMPLETED_DOWNLOADS_ALL_ARIA": "Abgeschlossene Downloads für alle Playlists löschen", @@ -1924,7 +1924,7 @@ "FILTER_BY_TYPE": "Nach Typ filtern", "ITEM_COUNT_ONE": "1 Element", "ITEM_COUNT_OTHER": "{{count}} Elemente", - "SEARCH": "Suchen", + "SEARCH": "Suche", "SEARCH_CATEGORIES": "Kategorien suchen", "RADIO_CATEGORIES": "Radio-Kategorien" }, @@ -2033,49 +2033,49 @@ "FAILED_DETAIL": "Versuche erneut, die gespeicherten Quellen zu lesen. Deine Daten wurden nicht gelöscht." }, "SOURCE_HEALTH": { - "RECHECK": "Check again", - "M3U_SCOPE": "Playlist URL, not individual channels", + "RECHECK": "Erneut prüfen", + "M3U_SCOPE": "Playlist-URL, nicht einzelne Sender", "REASON": { - "available": "Available", - "disabled": "Account disabled", - "expired": "Subscription expired", - "auth": "Access denied; account status unconfirmed", - "http": "Server returned an error", - "timeout": "Check timed out", - "network": "Could not connect", - "paused": "Connection checks paused", - "invalid": "Unexpected response", - "unknown": "Not verified", - "cancelled": "Check cancelled", - "checking": "Checking…" + "available": "Verfügbar", + "disabled": "Konto deaktiviert", + "expired": "Abonnement abgelaufen", + "auth": "Zugriff verweigert; Kontostatus nicht bestätigt", + "http": "Server hat einen Fehler zurückgegeben", + "timeout": "Zeitüberschreitung bei der Prüfung", + "network": "Keine Verbindung möglich", + "paused": "Verbindungsprüfungen pausiert", + "invalid": "Unerwartete Antwort", + "unknown": "Nicht geprüft", + "cancelled": "Prüfung abgebrochen", + "checking": "Wird geprüft…" } }, "SOURCE_CLEANUP": { - "TITLE": "Clean up inactive sources…", - "SCOPE": "All network sources in your library, regardless of page filters.", - "CONSEQUENCES": "Delete only sources you select. Their saved favourites, history and playback progress will also be removed. Downloaded files are kept.", - "SUMMARY": "Checked {{checked}}/{{total}} · Available {{available}} · Deleted {{deleted}} · Skipped {{skipped}} · Failed {{failed}}", - "SELECT_ALL": "Select all candidates", - "SELECT_NONE": "Deselect all", - "UNTITLED": "Untitled source", - "DELETE": "Delete selected · {{count}}", - "CLOSE": "Close", - "STOP": "Stop after current source", - "CLEANUP_WARNING": "Source deleted; some follow-up cleanup failed", + "TITLE": "Inaktive Quellen bereinigen…", + "SCOPE": "Alle Netzwerkquellen Ihrer Bibliothek, unabhängig von den Filtern dieser Seite.", + "CONSEQUENCES": "Gelöscht werden nur die von Ihnen ausgewählten Quellen. Deren gespeicherte Favoriten, Verlauf und Wiedergabefortschritt werden ebenfalls entfernt. Heruntergeladene Dateien bleiben erhalten.", + "SUMMARY": "Geprüft {{checked}}/{{total}} · Verfügbar {{available}} · Gelöscht {{deleted}} · Übersprungen {{skipped}} · Fehlgeschlagen {{failed}}", + "SELECT_ALL": "Alle Kandidaten auswählen", + "SELECT_NONE": "Alle abwählen", + "UNTITLED": "Unbenannte Quelle", + "DELETE": "Ausgewählte löschen · {{count}}", + "CLOSE": "Schließen", + "STOP": "Nach der aktuellen Quelle anhalten", + "CLEANUP_WARNING": "Quelle gelöscht; die Bereinigung zugehöriger Daten ist teilweise fehlgeschlagen", "GROUP": { - "confirmed": "Confirmed inactive accounts", - "uncertain": "Review before deleting", - "skipped": "Skipped sources", - "results": "Deletion results" + "confirmed": "Als inaktiv bestätigte Konten", + "uncertain": "Vor dem Löschen prüfen", + "skipped": "Übersprungene Quellen", + "results": "Ergebnisse der Löschung" }, "STATUS": { - "checking": "Checking…", - "skipped": "Playing, busy, changed or no longer present", - "deleting": "Deleting…", - "deleted": "Deleted", - "failed": "Deletion failed — select to retry" + "checking": "Wird geprüft…", + "skipped": "In Wiedergabe, belegt, geändert oder nicht mehr vorhanden", + "deleting": "Wird gelöscht…", + "deleted": "Gelöscht", + "failed": "Löschen fehlgeschlagen — zum Wiederholen auswählen" }, - "DELETE_PROGRESS": "Processed {{done}} of {{total}} selected sources" + "DELETE_PROGRESS": "{{done}} von {{total}} ausgewählten Quellen verarbeitet" }, "PARENTAL_LOCK": { "PIN_DIALOG": { diff --git a/apps/web/src/assets/i18n/el.json b/apps/web/src/assets/i18n/el.json index 35287143e..559940e19 100644 --- a/apps/web/src/assets/i18n/el.json +++ b/apps/web/src/assets/i18n/el.json @@ -65,7 +65,7 @@ "NO_RESULTS_DESCRIPTION": "Δεν υπάρχουν λίστες αναπαραγωγής που να αντιστοιχούν στην αναζήτησή σας. Δοκιμάστε να προσαρμόσετε τους όρους αναζήτησης ή να καταργήσετε το φίλτρο για να δείτε όλες τις λίστες αναπαραγωγής.", "ADDED_VIA_URL": "Προστέθηκε από ανέβασμα διεύθυνσης URL. URL:", "ADDED_VIA_FILE": "Προστέθηκε από ανέβασμα αρχείου", - "XTREAM_PLAYLIST": "Xtream playlist", + "XTREAM_PLAYLIST": "Λίστα αναπαραγωγής Xtream", "STALKER_PORTAL": "Stalker portal", "CHANNELS": "Κανάλια", "CHANNELS_COUNT": "Κανάλια: {{count}}", @@ -81,7 +81,7 @@ "SEARCH_PLAYLISTS": "Αναζήτηση των λιστών αναπαραγωγής με βάση τον τίτλο", "INFO_DIALOG": { "PLAYLIST_DETAILS": "Λεπτομέρειες λίστας αναπαραγωγής", - "TITLE": "Title", + "TITLE": "Τίτλος", "FROM_URL": "Προστέθηκε από διεύθυνση URL", "IMPORT_DATE": "Προσθήκη ημερομηνίας", "CHANNELS": "Αριθμός καναλιών", @@ -170,7 +170,7 @@ }, "FILE_UPLOAD": { "DRAG_DROP": "Σύρετε και αποθέστε αρχεία εδώ", - "OR": "or", + "OR": "ή", "CHOOSE_PLAYLIST": "επιλέξτε μια λίστα αναπαραγωγής", "BROWSE": "Περιήγηση αρχείων", "REJECTED": "Το αρχείο απορρίφθηκε, η μορφή αρχείου δεν υποστηρίζεται {{filename}}.", @@ -373,7 +373,7 @@ "REFRESH_EPG": "Ανανέωση EPG", "REFRESH_ALL_EPG": "Ανανέωση όλων", "REMOVE_EPG_SOURCE": "Αφαίρεση πηγής EPG", - "BROWSE_EPG_FILE": "Choose a local XMLTV file…", + "BROWSE_EPG_FILE": "Επιλογή τοπικού αρχείου XMLTV…", "EPG_STATUS_FRESH": "Ενημερωμένο", "EPG_STATUS_STALE": "Χρειάζεται ανανέωση", "EPG_STATUS_ERROR": "Αποτυχία", @@ -382,7 +382,7 @@ "PLAYER_VIDEOJS": "Πρόγραμμα αναπαραγωγής Video.js", "PLAYER_ARTPLAYER": "ArtPlayer", "PLAYER_EMBEDDED_MPV": "Ενσωματωμένο MPV (πειραματικό)", - "PLAYER_MPV": "MPV player", + "PLAYER_MPV": "Πρόγραμμα αναπαραγωγής MPV", "PLAYER_VLC": "VLC", "VIDEO_PLAYER_PLACEHOLDER": "Επιλέξτε μια επιλογή", "VERSION": "Έκδοση", @@ -418,9 +418,9 @@ "EPG_DATA_CLEAR_FAILED": "Αποτυχία διαγραφής δεδομένων EPG. Παρακαλώ δοκιμάστε ξανά.", "CLEARING_EPG_DATA": "Διαγραφή…", "EPG_URL_ERROR": "Η τιμή δεν είναι έγκυρη διεύθυνση URL", - "EPG_SOURCE_LIST_TITLE": "Source list", - "EPG_SOURCE_FORMATS_HINT": "Remote XMLTV links (http/https) and files on this computer are both supported, as plain .xml or gzip-compressed .xml.gz. Local files need an absolute path or a file:// URL.", - "EPG_SOURCE_FORMATS_EXAMPLES": "Examples:", + "EPG_SOURCE_LIST_TITLE": "Λίστα πηγών", + "EPG_SOURCE_FORMATS_HINT": "Υποστηρίζονται τόσο απομακρυσμένοι σύνδεσμοι XMLTV (http/https) όσο και αρχεία σε αυτόν τον υπολογιστή, ως απλό .xml ή συμπιεσμένο με gzip .xml.gz. Για τα τοπικά αρχεία απαιτείται απόλυτη διαδρομή ή URL file://.", + "EPG_SOURCE_FORMATS_EXAMPLES": "Παραδείγματα:", "VIDEO_PLAYER_DESCRIPTION": "Επιλογή προεπιλεγμένου προγράμματος αναπαραγωγής βίντεο", "WEB_PLAYER_SHARED_CONTROLS": "Ενοποιημένα στοιχεία ελέγχου για web players", "WEB_PLAYER_SHARED_CONTROLS_DESCRIPTION": "Χρησιμοποιήστε τα κοινά στοιχεία ελέγχου του IPTVnator σε HTML5, Video.js και ArtPlayer.", @@ -805,16 +805,16 @@ "REASON_COMPATIBLE_DRM_PATH": "Αυτός ο στόχος είναι συμβατός με τα διαθέσιμα δεδομένα κρυπτογράφησης", "ACTION_OPEN_MPV": "Άνοιγμα σε MPV", "ACTION_OPEN_VLC": "Άνοιγμα σε VLC", - "ACTION_OPENING_MPV": "Opening MPV…", - "ACTION_OPENING_VLC": "Opening VLC…", - "ACTION_REOPEN_MPV": "Open MPV again", - "ACTION_REOPEN_VLC": "Open VLC again", - "ACTION_RETRY_MPV": "Try MPV again", - "ACTION_RETRY_VLC": "Try VLC again", - "EXTERNAL_OPENING": "Opening player…", - "EXTERNAL_STARTED": "Player started", - "EXTERNAL_PLAYING": "Playing", - "EXTERNAL_FAILED": "External player error", + "ACTION_OPENING_MPV": "Άνοιγμα MPV…", + "ACTION_OPENING_VLC": "Άνοιγμα VLC…", + "ACTION_REOPEN_MPV": "Άνοιγμα ξανά σε MPV", + "ACTION_REOPEN_VLC": "Άνοιγμα ξανά σε VLC", + "ACTION_RETRY_MPV": "Δοκιμή ξανά με MPV", + "ACTION_RETRY_VLC": "Δοκιμή ξανά με VLC", + "EXTERNAL_OPENING": "Άνοιγμα player…", + "EXTERNAL_STARTED": "Ο player ξεκίνησε", + "EXTERNAL_PLAYING": "Παίζει", + "EXTERNAL_FAILED": "Σφάλμα εξωτερικού player", "ACTION_OPEN_MPV_HINT": "ρυθμισμένο πρόγραμμα αναπαραγωγής", "ACTION_OPEN_VLC_HINT": "ρυθμισμένο πρόγραμμα αναπαραγωγής", "ACTION_COPY_URL": "Αντιγραφή URL ροής", @@ -1065,7 +1065,7 @@ "ERROR_TITLE": "Δεν ήταν δυνατή η φόρτωση του οδηγού", "ERROR_DESCRIPTION": "Η πηγή EPG δεν απάντησε. Ελέγξτε τη σύνδεσή σας ή ανανεώστε την πηγή.", "RETRY": "Επανάληψη", - "MINUTES_SHORT": "λεπ", + "MINUTES_SHORT": "λεπ.", "ZOOM": "Ζουμ", "ZOOM_DAY": "Επισκόπηση ημέρας", "ZOOM_HOURS": "Ανά ώρα", @@ -1215,7 +1215,7 @@ "SOURCE_TITLE": "Τίτλος πηγής" }, "ACCOUNT_INFO": { - "TITLE": "Πληροφορίες Λογαριασμού", + "TITLE": "Πληροφορίες λογαριασμού", "USER_INFO": "Πληροφορίες χρήστη", "STATUS": "Κατάσταση", "USERNAME": "Όνομα χρήστη", @@ -1360,7 +1360,7 @@ "COPY_STREAM_URL": "Αντιγραφή διεύθηνσης URL ροής", "NOW_PLAYING": "Τώρα παίζει", "UP_NEXT": "Επόμενα", - "CLOSE_PLAYER": "Κλείσιμο προγράμματος αναπαραγωγής", + "CLOSE_PLAYER": "Κλείσιμο player", "ABOUT": "Σχετικά", "SEASONS_AND_EPISODES": "Σεζόν και επεισόδια", "SEASON_TAB": "Σεζόν {{number}}", @@ -1759,12 +1759,12 @@ "RAIL_FAVORITES": "Αγαπημένα", "RAIL_DOWNLOADS": "Λήψεις", "EXTERNAL_PLAYBACK_CLOSE": "Κλείσιμο player", - "EXTERNAL_PLAYBACK_DISMISS": "Dismiss", - "EXTERNAL_PLAYBACK_OPENING": "Opening player…", - "EXTERNAL_PLAYBACK_STARTED": "Player started", - "EXTERNAL_PLAYBACK_PLAYING": "Playing", - "EXTERNAL_PLAYBACK_FAILED": "External player error", - "EXTERNAL_PLAYBACK_CLOSED": "Closed", + "EXTERNAL_PLAYBACK_DISMISS": "Απόκρυψη", + "EXTERNAL_PLAYBACK_OPENING": "Άνοιγμα player…", + "EXTERNAL_PLAYBACK_STARTED": "Ο player ξεκίνησε", + "EXTERNAL_PLAYBACK_PLAYING": "Παίζει", + "EXTERNAL_PLAYBACK_FAILED": "Σφάλμα εξωτερικού player", + "EXTERNAL_PLAYBACK_CLOSED": "Έκλεισε", "EXTERNAL_PLAYBACK_OPEN_IN_PLAYLIST": "Άνοιγμα στη λίστα αναπαραγωγής", "RAIL_ALL_CHANNELS": "Όλα τα κανάλια", "RAIL_GROUPS": "Ομάδες", @@ -2033,49 +2033,49 @@ "FAILED_DETAIL": "Δοκιμάστε ξανά την ανάγνωση των αποθηκευμένων πηγών. Τα δεδομένα σας δεν διαγράφηκαν." }, "SOURCE_HEALTH": { - "RECHECK": "Check again", - "M3U_SCOPE": "Playlist URL, not individual channels", + "RECHECK": "Έλεγχος ξανά", + "M3U_SCOPE": "URL λίστας αναπαραγωγής, όχι μεμονωμένα κανάλια", "REASON": { - "available": "Available", - "disabled": "Account disabled", - "expired": "Subscription expired", - "auth": "Access denied; account status unconfirmed", - "http": "Server returned an error", - "timeout": "Check timed out", - "network": "Could not connect", - "paused": "Connection checks paused", - "invalid": "Unexpected response", - "unknown": "Not verified", - "cancelled": "Check cancelled", - "checking": "Checking…" + "available": "Διαθέσιμη", + "disabled": "Ο λογαριασμός απενεργοποιήθηκε", + "expired": "Η συνδρομή έληξε", + "auth": "Άρνηση πρόσβασης· η κατάσταση του λογαριασμού δεν επιβεβαιώθηκε", + "http": "Ο διακομιστής επέστρεψε σφάλμα", + "timeout": "Λήξη χρονικού ορίου ελέγχου", + "network": "Δεν ήταν δυνατή η σύνδεση", + "paused": "Οι έλεγχοι σύνδεσης έχουν παύσει", + "invalid": "Μη αναμενόμενη απάντηση", + "unknown": "Δεν έχει επαληθευτεί", + "cancelled": "Ο έλεγχος ακυρώθηκε", + "checking": "Έλεγχος…" } }, "SOURCE_CLEANUP": { - "TITLE": "Clean up inactive sources…", - "SCOPE": "All network sources in your library, regardless of page filters.", - "CONSEQUENCES": "Delete only sources you select. Their saved favourites, history and playback progress will also be removed. Downloaded files are kept.", - "SUMMARY": "Checked {{checked}}/{{total}} · Available {{available}} · Deleted {{deleted}} · Skipped {{skipped}} · Failed {{failed}}", - "SELECT_ALL": "Select all candidates", - "SELECT_NONE": "Deselect all", - "UNTITLED": "Untitled source", - "DELETE": "Delete selected · {{count}}", - "CLOSE": "Close", - "STOP": "Stop after current source", - "CLEANUP_WARNING": "Source deleted; some follow-up cleanup failed", + "TITLE": "Εκκαθάριση ανενεργών πηγών…", + "SCOPE": "Όλες οι δικτυακές πηγές της βιβλιοθήκης σας, ανεξάρτητα από τα φίλτρα της σελίδας.", + "CONSEQUENCES": "Διαγράφονται μόνο οι πηγές που επιλέγετε. Θα αφαιρεθούν επίσης τα αποθηκευμένα αγαπημένα, το ιστορικό και η πρόοδος αναπαραγωγής τους. Τα αρχεία που έχουν ληφθεί διατηρούνται.", + "SUMMARY": "Ελέγχθηκαν {{checked}}/{{total}} · Διαθέσιμες {{available}} · Διαγράφηκαν {{deleted}} · Παραλείφθηκαν {{skipped}} · Απέτυχαν {{failed}}", + "SELECT_ALL": "Επιλογή όλων των υποψηφίων", + "SELECT_NONE": "Αποεπιλογή όλων", + "UNTITLED": "Πηγή χωρίς τίτλο", + "DELETE": "Διαγραφή επιλεγμένων · {{count}}", + "CLOSE": "Κλείσιμο", + "STOP": "Διακοπή μετά την τρέχουσα πηγή", + "CLEANUP_WARNING": "Η πηγή διαγράφηκε, αλλά μέρος της επακόλουθης εκκαθάρισης απέτυχε", "GROUP": { - "confirmed": "Confirmed inactive accounts", - "uncertain": "Review before deleting", - "skipped": "Skipped sources", - "results": "Deletion results" + "confirmed": "Επιβεβαιωμένοι ανενεργοί λογαριασμοί", + "uncertain": "Ελέγξτε πριν από τη διαγραφή", + "skipped": "Πηγές που παραλείφθηκαν", + "results": "Αποτελέσματα διαγραφής" }, "STATUS": { - "checking": "Checking…", - "skipped": "Playing, busy, changed or no longer present", - "deleting": "Deleting…", - "deleted": "Deleted", - "failed": "Deletion failed — select to retry" + "checking": "Έλεγχος…", + "skipped": "Αναπαράγεται, είναι απασχολημένη, έχει αλλάξει ή δεν υπάρχει πλέον", + "deleting": "Διαγραφή…", + "deleted": "Διαγράφηκε", + "failed": "Η διαγραφή απέτυχε — επιλέξτε για νέα προσπάθεια" }, - "DELETE_PROGRESS": "Processed {{done}} of {{total}} selected sources" + "DELETE_PROGRESS": "Επεξεργάστηκαν {{done}} από {{total}} επιλεγμένες πηγές" }, "PARENTAL_LOCK": { "PIN_DIALOG": { diff --git a/apps/web/src/assets/i18n/es.json b/apps/web/src/assets/i18n/es.json index a137e863a..faac6c3c7 100644 --- a/apps/web/src/assets/i18n/es.json +++ b/apps/web/src/assets/i18n/es.json @@ -292,7 +292,7 @@ "SEARCH_EMPTY_HINT": "Ningún ajuste coincide. Prueba con otra palabra, como reproductor, tema o EPG.", "GENERAL": "General", "GENERAL_SUBTITLE": "Idioma, apariencia y cómo se inicia la aplicación.", - "PLAYBACK": "Reproduccion", + "PLAYBACK": "Reproducción", "EPG_SOURCES": "Fuentes EPG", "EPG_SOURCES_DESCRIPTION": "Agrega una o varias URL como fuentes EPG", "PLAYLIST_EPG_SOURCES_AUTO_SELECTED": "Se seleccionaron automáticamente {{enabled}} de {{detected}} orígenes EPG detectados en la lista para importarlos.", @@ -307,7 +307,7 @@ "RESET_DESCRIPTION": "Elimina permanentemente el contenido guardado en esta aplicación.", "ABOUT": "Acerca de", "NAV_GENERAL": "General", - "NAV_PLAYBACK": "Reproduccion", + "NAV_PLAYBACK": "Reproducción", "NAV_EPG": "EPG", "NAV_REMOTE": "Remoto", "NAV_DATA": "Datos", @@ -373,7 +373,7 @@ "REFRESH_EPG": "Actualizar EPG", "REFRESH_ALL_EPG": "Actualizar todo", "REMOVE_EPG_SOURCE": "Eliminar fuente EPG", - "BROWSE_EPG_FILE": "Choose a local XMLTV file…", + "BROWSE_EPG_FILE": "Elegir un archivo XMLTV local…", "EPG_STATUS_FRESH": "Actualizado", "EPG_STATUS_STALE": "Necesita actualización", "EPG_STATUS_ERROR": "Error", @@ -418,9 +418,9 @@ "EPG_DATA_CLEAR_FAILED": "No se pudieron borrar los datos EPG. Inténtalo de nuevo.", "CLEARING_EPG_DATA": "Borrando…", "EPG_URL_ERROR": "El valor no es una URL válida.", - "EPG_SOURCE_LIST_TITLE": "Source list", - "EPG_SOURCE_FORMATS_HINT": "Remote XMLTV links (http/https) and files on this computer are both supported, as plain .xml or gzip-compressed .xml.gz. Local files need an absolute path or a file:// URL.", - "EPG_SOURCE_FORMATS_EXAMPLES": "Examples:", + "EPG_SOURCE_LIST_TITLE": "Lista de fuentes", + "EPG_SOURCE_FORMATS_HINT": "Se admiten tanto enlaces XMLTV remotos (http/https) como archivos de este equipo, en .xml normal o comprimidos con gzip (.xml.gz). Los archivos locales necesitan una ruta absoluta o una URL file://.", + "EPG_SOURCE_FORMATS_EXAMPLES": "Ejemplos:", "VIDEO_PLAYER_DESCRIPTION": "Seleccionar reproductor de vídeo predeterminado", "WEB_PLAYER_SHARED_CONTROLS": "Controles unificados para reproductores web", "WEB_PLAYER_SHARED_CONTROLS_DESCRIPTION": "Usa los controles compartidos de IPTVnator en HTML5, Video.js y ArtPlayer.", @@ -805,16 +805,16 @@ "REASON_COMPATIBLE_DRM_PATH": "Este destino es compatible con los datos de cifrado disponibles", "ACTION_OPEN_MPV": "Abrir en MPV", "ACTION_OPEN_VLC": "Abrir en VLC", - "ACTION_OPENING_MPV": "Opening MPV…", - "ACTION_OPENING_VLC": "Opening VLC…", - "ACTION_REOPEN_MPV": "Open MPV again", - "ACTION_REOPEN_VLC": "Open VLC again", - "ACTION_RETRY_MPV": "Try MPV again", - "ACTION_RETRY_VLC": "Try VLC again", - "EXTERNAL_OPENING": "Opening player…", - "EXTERNAL_STARTED": "Player started", - "EXTERNAL_PLAYING": "Playing", - "EXTERNAL_FAILED": "External player error", + "ACTION_OPENING_MPV": "Abriendo MPV…", + "ACTION_OPENING_VLC": "Abriendo VLC…", + "ACTION_REOPEN_MPV": "Volver a abrir MPV", + "ACTION_REOPEN_VLC": "Volver a abrir VLC", + "ACTION_RETRY_MPV": "Reintentar con MPV", + "ACTION_RETRY_VLC": "Reintentar con VLC", + "EXTERNAL_OPENING": "Abriendo reproductor…", + "EXTERNAL_STARTED": "Reproductor iniciado", + "EXTERNAL_PLAYING": "Reproduciendo", + "EXTERNAL_FAILED": "Error del reproductor externo", "ACTION_OPEN_MPV_HINT": "reproductor configurado", "ACTION_OPEN_VLC_HINT": "reproductor configurado", "ACTION_COPY_URL": "Copiar URL del stream", @@ -962,7 +962,7 @@ "PROGRAM_DIALOG": { "PROGRAM_DETAILS": "Detalles sobre el programa de TV", "TITLE": "Título", - "CATEGORY": "Género", + "CATEGORY": "Categoría", "PARENTAL_RATING_SYSTEM": "Sistema de calificación de contenidos televisivos", "DESCRIPTION": "Descripción", "LANGUAGE": "Idioma", @@ -1546,7 +1546,7 @@ "DOWNLOADING_NOW": "Descargando ahora", "NEEDS_ATTENTION": "Requiere atención", "READY_TO_WATCH": "Listo para ver", - "OFFLINE": "Sin conexión", + "OFFLINE": "Disponible sin conexión", "OFFLINE_BADGE": "Disponible sin conexión", "FILTER": { "LABEL": "Filtrar descargas", @@ -1759,12 +1759,12 @@ "RAIL_FAVORITES": "Favoritos", "RAIL_DOWNLOADS": "Descargas", "EXTERNAL_PLAYBACK_CLOSE": "Cerrar reproductor", - "EXTERNAL_PLAYBACK_DISMISS": "Dismiss", - "EXTERNAL_PLAYBACK_OPENING": "Opening player…", - "EXTERNAL_PLAYBACK_STARTED": "Player started", - "EXTERNAL_PLAYBACK_PLAYING": "Playing", - "EXTERNAL_PLAYBACK_FAILED": "External player error", - "EXTERNAL_PLAYBACK_CLOSED": "Closed", + "EXTERNAL_PLAYBACK_DISMISS": "Ocultar", + "EXTERNAL_PLAYBACK_OPENING": "Abriendo reproductor…", + "EXTERNAL_PLAYBACK_STARTED": "Reproductor iniciado", + "EXTERNAL_PLAYBACK_PLAYING": "Reproduciendo", + "EXTERNAL_PLAYBACK_FAILED": "Error del reproductor externo", + "EXTERNAL_PLAYBACK_CLOSED": "Cerrado", "EXTERNAL_PLAYBACK_OPEN_IN_PLAYLIST": "Abrir en la lista", "RAIL_ALL_CHANNELS": "Todos los canales", "RAIL_GROUPS": "Grupos", @@ -1841,7 +1841,7 @@ "XTREAM_IMPORT_CANCELLING": "Deteniendo sincronización…", "COMMANDS": { "GLOBAL_SEARCH_LABEL": "Buscar en todas las listas", - "GLOBAL_SEARCH_DESCRIPTION": "Abrir la búsqueda global", + "GLOBAL_SEARCH_DESCRIPTION": "Abrir búsqueda global", "PLAYLIST_SEARCH_LABEL": "Búsqueda avanzada en esta lista", "PLAYLIST_SEARCH_DESCRIPTION": "Abrir búsqueda avanzada de la lista", "OPEN_GLOBAL_FAVORITES_LABEL": "Abrir favoritos globales", @@ -2033,49 +2033,49 @@ "FAILED_DETAIL": "Vuelve a intentar leer las fuentes guardadas. Tus datos no se han eliminado." }, "SOURCE_HEALTH": { - "RECHECK": "Check again", - "M3U_SCOPE": "Playlist URL, not individual channels", + "RECHECK": "Comprobar de nuevo", + "M3U_SCOPE": "URL de la lista de reproducción, no cada canal", "REASON": { - "available": "Available", - "disabled": "Account disabled", - "expired": "Subscription expired", - "auth": "Access denied; account status unconfirmed", - "http": "Server returned an error", - "timeout": "Check timed out", - "network": "Could not connect", - "paused": "Connection checks paused", - "invalid": "Unexpected response", - "unknown": "Not verified", - "cancelled": "Check cancelled", - "checking": "Checking…" + "available": "Disponible", + "disabled": "Cuenta desactivada", + "expired": "Suscripción caducada", + "auth": "Acceso denegado; estado de la cuenta sin confirmar", + "http": "El servidor devolvió un error", + "timeout": "Se agotó el tiempo de comprobación", + "network": "No se pudo conectar", + "paused": "Comprobaciones de conexión en pausa", + "invalid": "Respuesta inesperada", + "unknown": "Sin verificar", + "cancelled": "Comprobación cancelada", + "checking": "Comprobando…" } }, "SOURCE_CLEANUP": { - "TITLE": "Clean up inactive sources…", - "SCOPE": "All network sources in your library, regardless of page filters.", - "CONSEQUENCES": "Delete only sources you select. Their saved favourites, history and playback progress will also be removed. Downloaded files are kept.", - "SUMMARY": "Checked {{checked}}/{{total}} · Available {{available}} · Deleted {{deleted}} · Skipped {{skipped}} · Failed {{failed}}", - "SELECT_ALL": "Select all candidates", - "SELECT_NONE": "Deselect all", - "UNTITLED": "Untitled source", - "DELETE": "Delete selected · {{count}}", - "CLOSE": "Close", - "STOP": "Stop after current source", - "CLEANUP_WARNING": "Source deleted; some follow-up cleanup failed", + "TITLE": "Limpiar fuentes inactivas…", + "SCOPE": "Todas las fuentes de red de tu biblioteca, sin importar los filtros de la página.", + "CONSEQUENCES": "Solo se eliminan las fuentes que selecciones. También se borrarán sus favoritos, historial y progreso de reproducción guardados. Los archivos descargados se conservan.", + "SUMMARY": "Comprobadas {{checked}}/{{total}} · Disponibles {{available}} · Eliminadas {{deleted}} · Omitidas {{skipped}} · Fallidas {{failed}}", + "SELECT_ALL": "Seleccionar todas las candidatas", + "SELECT_NONE": "Deseleccionar todo", + "UNTITLED": "Fuente sin título", + "DELETE": "Eliminar seleccionadas · {{count}}", + "CLOSE": "Cerrar", + "STOP": "Detener tras la fuente actual", + "CLEANUP_WARNING": "Fuente eliminada; falló parte de la limpieza posterior", "GROUP": { - "confirmed": "Confirmed inactive accounts", - "uncertain": "Review before deleting", - "skipped": "Skipped sources", - "results": "Deletion results" + "confirmed": "Cuentas inactivas confirmadas", + "uncertain": "Revisar antes de eliminar", + "skipped": "Fuentes omitidas", + "results": "Resultados de la eliminación" }, "STATUS": { - "checking": "Checking…", - "skipped": "Playing, busy, changed or no longer present", - "deleting": "Deleting…", - "deleted": "Deleted", - "failed": "Deletion failed — select to retry" + "checking": "Comprobando…", + "skipped": "En reproducción, ocupada, modificada o ya no existe", + "deleting": "Eliminando…", + "deleted": "Eliminada", + "failed": "No se pudo eliminar — selecciónala para reintentar" }, - "DELETE_PROGRESS": "Processed {{done}} of {{total}} selected sources" + "DELETE_PROGRESS": "Procesadas {{done}} de {{total}} fuentes seleccionadas" }, "PARENTAL_LOCK": { "PIN_DIALOG": { diff --git a/apps/web/src/assets/i18n/fr.json b/apps/web/src/assets/i18n/fr.json index 221d3814b..f4e6eb630 100644 --- a/apps/web/src/assets/i18n/fr.json +++ b/apps/web/src/assets/i18n/fr.json @@ -373,7 +373,7 @@ "REFRESH_EPG": "Mise à jour de l'EPG", "REFRESH_ALL_EPG": "Tout actualiser", "REMOVE_EPG_SOURCE": "Supprimer la source EPG", - "BROWSE_EPG_FILE": "Choose a local XMLTV file…", + "BROWSE_EPG_FILE": "Choisir un fichier XMLTV local…", "EPG_STATUS_FRESH": "À jour", "EPG_STATUS_STALE": "À actualiser", "EPG_STATUS_ERROR": "Échec", @@ -418,9 +418,9 @@ "EPG_DATA_CLEAR_FAILED": "Échec de l'effacement des données EPG. Veuillez réessayer.", "CLEARING_EPG_DATA": "Effacement…", "EPG_URL_ERROR": "La valeur n'est pas une URL valide", - "EPG_SOURCE_LIST_TITLE": "Source list", - "EPG_SOURCE_FORMATS_HINT": "Remote XMLTV links (http/https) and files on this computer are both supported, as plain .xml or gzip-compressed .xml.gz. Local files need an absolute path or a file:// URL.", - "EPG_SOURCE_FORMATS_EXAMPLES": "Examples:", + "EPG_SOURCE_LIST_TITLE": "Liste des sources", + "EPG_SOURCE_FORMATS_HINT": "Les liens XMLTV distants (http/https) et les fichiers présents sur cet ordinateur sont pris en charge, au format .xml simple ou compressé en gzip (.xml.gz). Les fichiers locaux nécessitent un chemin absolu ou une URL file://.", + "EPG_SOURCE_FORMATS_EXAMPLES": "Exemples :", "VIDEO_PLAYER_DESCRIPTION": "Sélectionnez le lecteur vidéo par défaut", "WEB_PLAYER_SHARED_CONTROLS": "Commandes unifiées pour les lecteurs web", "WEB_PLAYER_SHARED_CONTROLS_DESCRIPTION": "Utilise les commandes partagées d’IPTVnator dans HTML5, Video.js et ArtPlayer.", @@ -718,7 +718,7 @@ "SEARCH_IN": "Rechercher dans {{title}}", "CLEAR_SEARCH": "Effacer la recherche", "LOAD_SUBTITLE_FILE": "Charger un fichier de sous-titres…", - "SETTINGS": "Réglages", + "SETTINGS": "Paramètres", "UP_NEXT": "À suivre", "UP_NEXT_IN": "dans {{minutes}} min", "UP_NEXT_IN_SECONDS": "dans {{seconds}} s", @@ -805,16 +805,16 @@ "REASON_COMPATIBLE_DRM_PATH": "Cette cible est compatible avec les données de chiffrement disponibles", "ACTION_OPEN_MPV": "Ouvrir dans MPV", "ACTION_OPEN_VLC": "Ouvrir dans VLC", - "ACTION_OPENING_MPV": "Opening MPV…", - "ACTION_OPENING_VLC": "Opening VLC…", - "ACTION_REOPEN_MPV": "Open MPV again", - "ACTION_REOPEN_VLC": "Open VLC again", - "ACTION_RETRY_MPV": "Try MPV again", - "ACTION_RETRY_VLC": "Try VLC again", - "EXTERNAL_OPENING": "Opening player…", - "EXTERNAL_STARTED": "Player started", - "EXTERNAL_PLAYING": "Playing", - "EXTERNAL_FAILED": "External player error", + "ACTION_OPENING_MPV": "Ouverture de MPV…", + "ACTION_OPENING_VLC": "Ouverture de VLC…", + "ACTION_REOPEN_MPV": "Rouvrir MPV", + "ACTION_REOPEN_VLC": "Rouvrir VLC", + "ACTION_RETRY_MPV": "Réessayer MPV", + "ACTION_RETRY_VLC": "Réessayer VLC", + "EXTERNAL_OPENING": "Ouverture du lecteur…", + "EXTERNAL_STARTED": "Lecteur démarré", + "EXTERNAL_PLAYING": "En lecture", + "EXTERNAL_FAILED": "Erreur du lecteur externe", "ACTION_OPEN_MPV_HINT": "lecteur configuré", "ACTION_OPEN_VLC_HINT": "lecteur configuré", "ACTION_COPY_URL": "Copier l’URL du flux", @@ -1530,7 +1530,7 @@ "URL_COPIED": "URL de téléchargement copiée dans le presse-papiers", "URL_COPY_FAILED": "Échec de la copie de l'URL dans le presse-papiers", "STATUS": { - "QUEUED": "En attente", + "QUEUED": "En file d'attente", "DOWNLOADING": "En cours", "COMPLETED": "Terminé", "FAILED": "Échec", @@ -1759,12 +1759,12 @@ "RAIL_FAVORITES": "Favoris", "RAIL_DOWNLOADS": "Téléchargements", "EXTERNAL_PLAYBACK_CLOSE": "Fermer le lecteur", - "EXTERNAL_PLAYBACK_DISMISS": "Dismiss", - "EXTERNAL_PLAYBACK_OPENING": "Opening player…", - "EXTERNAL_PLAYBACK_STARTED": "Player started", - "EXTERNAL_PLAYBACK_PLAYING": "Playing", - "EXTERNAL_PLAYBACK_FAILED": "External player error", - "EXTERNAL_PLAYBACK_CLOSED": "Closed", + "EXTERNAL_PLAYBACK_DISMISS": "Masquer", + "EXTERNAL_PLAYBACK_OPENING": "Ouverture du lecteur…", + "EXTERNAL_PLAYBACK_STARTED": "Lecteur démarré", + "EXTERNAL_PLAYBACK_PLAYING": "En lecture", + "EXTERNAL_PLAYBACK_FAILED": "Erreur du lecteur externe", + "EXTERNAL_PLAYBACK_CLOSED": "Fermé", "EXTERNAL_PLAYBACK_OPEN_IN_PLAYLIST": "Ouvrir dans la liste de lecture", "RAIL_ALL_CHANNELS": "Toutes les chaînes", "RAIL_GROUPS": "Groupes", @@ -2033,49 +2033,49 @@ "FAILED_DETAIL": "Réessayez de lire les sources enregistrées. Vos données n’ont pas été supprimées." }, "SOURCE_HEALTH": { - "RECHECK": "Check again", - "M3U_SCOPE": "Playlist URL, not individual channels", + "RECHECK": "Vérifier à nouveau", + "M3U_SCOPE": "URL de la playlist, pas chaque chaîne", "REASON": { - "available": "Available", - "disabled": "Account disabled", - "expired": "Subscription expired", - "auth": "Access denied; account status unconfirmed", - "http": "Server returned an error", - "timeout": "Check timed out", - "network": "Could not connect", - "paused": "Connection checks paused", - "invalid": "Unexpected response", - "unknown": "Not verified", - "cancelled": "Check cancelled", - "checking": "Checking…" + "available": "Disponible", + "disabled": "Compte désactivé", + "expired": "Abonnement expiré", + "auth": "Accès refusé ; statut du compte non confirmé", + "http": "Le serveur a renvoyé une erreur", + "timeout": "Délai de vérification dépassé", + "network": "Connexion impossible", + "paused": "Vérifications de connexion suspendues", + "invalid": "Réponse inattendue", + "unknown": "Non vérifiée", + "cancelled": "Vérification annulée", + "checking": "Vérification…" } }, "SOURCE_CLEANUP": { - "TITLE": "Clean up inactive sources…", - "SCOPE": "All network sources in your library, regardless of page filters.", - "CONSEQUENCES": "Delete only sources you select. Their saved favourites, history and playback progress will also be removed. Downloaded files are kept.", - "SUMMARY": "Checked {{checked}}/{{total}} · Available {{available}} · Deleted {{deleted}} · Skipped {{skipped}} · Failed {{failed}}", - "SELECT_ALL": "Select all candidates", - "SELECT_NONE": "Deselect all", - "UNTITLED": "Untitled source", - "DELETE": "Delete selected · {{count}}", - "CLOSE": "Close", - "STOP": "Stop after current source", - "CLEANUP_WARNING": "Source deleted; some follow-up cleanup failed", + "TITLE": "Nettoyer les sources inactives…", + "SCOPE": "Toutes les sources réseau de votre bibliothèque, quels que soient les filtres de la page.", + "CONSEQUENCES": "Seules les sources sélectionnées sont supprimées. Leurs favoris, leur historique et leur progression de lecture enregistrés seront également supprimés. Les fichiers téléchargés sont conservés.", + "SUMMARY": "Vérifiées {{checked}}/{{total}} · Disponibles {{available}} · Supprimées {{deleted}} · Ignorées {{skipped}} · Échecs {{failed}}", + "SELECT_ALL": "Sélectionner toutes les sources proposées", + "SELECT_NONE": "Tout désélectionner", + "UNTITLED": "Source sans titre", + "DELETE": "Supprimer la sélection · {{count}}", + "CLOSE": "Fermer", + "STOP": "Arrêter après la source en cours", + "CLEANUP_WARNING": "Source supprimée ; une partie du nettoyage complémentaire a échoué", "GROUP": { - "confirmed": "Confirmed inactive accounts", - "uncertain": "Review before deleting", - "skipped": "Skipped sources", - "results": "Deletion results" + "confirmed": "Comptes inactifs confirmés", + "uncertain": "À vérifier avant suppression", + "skipped": "Sources ignorées", + "results": "Résultats de la suppression" }, "STATUS": { - "checking": "Checking…", - "skipped": "Playing, busy, changed or no longer present", - "deleting": "Deleting…", - "deleted": "Deleted", - "failed": "Deletion failed — select to retry" + "checking": "Vérification…", + "skipped": "En lecture, occupée, modifiée ou disparue", + "deleting": "Suppression…", + "deleted": "Supprimée", + "failed": "Échec de la suppression — sélectionnez pour réessayer" }, - "DELETE_PROGRESS": "Processed {{done}} of {{total}} selected sources" + "DELETE_PROGRESS": "Sources sélectionnées traitées : {{done}} sur {{total}}" }, "PARENTAL_LOCK": { "PIN_DIALOG": { diff --git a/apps/web/src/assets/i18n/hu.json b/apps/web/src/assets/i18n/hu.json index 260727a68..0e10bd5cf 100644 --- a/apps/web/src/assets/i18n/hu.json +++ b/apps/web/src/assets/i18n/hu.json @@ -146,10 +146,10 @@ "PLAYLIST_UPDATE_FILE_NOT_FOUND": "Nem sikerült frissíteni a lejátszási listát, mert a helyi fájl már nem érhető el. Ellenőrizze a fájl elérési útját, vagy importálja újra a listát.", "PLAYLIST_UPDATE_FILE_ACCESS_ERROR": "Nem sikerült frissíteni a lejátszási listát, mert az alkalmazás már nem fér hozzá a helyi fájlhoz.", "AUTO_REFRESH_UPDATE_SUCCESS": "Sikeresen frissültek a lejátszási listák.", - "AUTO_REFRESH_UPDATE_PARTIAL": "Playlist auto-refresh incomplete: {{updated}} of {{total}} playlists updated, {{failed}} failed.", - "AUTO_REFRESH_UPDATE_PARTIAL_WITH_SKIPPED": "Playlist auto-refresh incomplete: {{updated}} of {{total}} playlists updated, {{failed}} failed, {{skipped}} skipped (no URL or file path).", - "AUTO_REFRESH_UPDATE_FAILED": "Playlist auto-refresh failed. None of the {{total}} playlists could be updated.", - "AUTO_REFRESH_UPDATE_SKIPPED": "Playlist auto-refresh: {{updated}} of {{total}} playlists updated, {{skipped}} skipped (no URL or file path).", + "AUTO_REFRESH_UPDATE_PARTIAL": "A lejátszási listák automatikus frissítése csak részben sikerült: {{total}} lejátszási listából {{updated}} frissítve, {{failed}} sikertelen.", + "AUTO_REFRESH_UPDATE_PARTIAL_WITH_SKIPPED": "A lejátszási listák automatikus frissítése csak részben sikerült: {{total}} lejátszási listából {{updated}} frissítve, {{failed}} sikertelen, {{skipped}} kihagyva (nincs URL-cím vagy elérési út).", + "AUTO_REFRESH_UPDATE_FAILED": "A lejátszási listák automatikus frissítése nem sikerült: a(z) {{total}} lejátszási lista közül egyet sem sikerült frissíteni.", + "AUTO_REFRESH_UPDATE_SKIPPED": "A lejátszási listák automatikus frissítése: {{total}} lejátszási listából {{updated}} frissítve, {{skipped}} kihagyva (nincs URL-cím vagy elérési út).", "AUTO_REFRESH_ENABLED": "Automatikus frissítés bekapcsolva" }, "ADD_PLAYLIST": { @@ -314,7 +314,7 @@ "NAV_BACKUP": "Biztonsági mentés és adatok", "NAV_ABOUT": "Névjegy", "NAV_GROUP_APP": "Alkalmazás", - "NAV_GROUP_LIBRARY": "Könyvtár", + "NAV_GROUP_LIBRARY": "Médiatár", "NAV_GROUP_DEVICES": "Eszközök", "CARD_APPEARANCE": "Megjelenés", "CARD_STARTUP": "Indítás", @@ -373,7 +373,7 @@ "REFRESH_EPG": "EPG frissítése", "REFRESH_ALL_EPG": "Összes frissítése", "REMOVE_EPG_SOURCE": "EPG-forrás eltávolítása", - "BROWSE_EPG_FILE": "Choose a local XMLTV file…", + "BROWSE_EPG_FILE": "Helyi XMLTV-fájl kiválasztása…", "EPG_STATUS_FRESH": "Naprakész", "EPG_STATUS_STALE": "Frissítendő", "EPG_STATUS_ERROR": "Sikertelen", @@ -418,14 +418,14 @@ "EPG_DATA_CLEAR_FAILED": "Nem sikerült törölni az EPG-adatokat. Próbálja újra.", "CLEARING_EPG_DATA": "Törlés…", "EPG_URL_ERROR": "A megadott érték nem érvényes URL-cím", - "EPG_SOURCE_LIST_TITLE": "Source list", - "EPG_SOURCE_FORMATS_HINT": "Remote XMLTV links (http/https) and files on this computer are both supported, as plain .xml or gzip-compressed .xml.gz. Local files need an absolute path or a file:// URL.", - "EPG_SOURCE_FORMATS_EXAMPLES": "Examples:", + "EPG_SOURCE_LIST_TITLE": "Forráslista", + "EPG_SOURCE_FORMATS_HINT": "Távoli XMLTV-hivatkozások (http/https) és a számítógépen tárolt fájlok egyaránt használhatók, egyszerű .xml vagy gzip-tömörítésű .xml.gz formátumban. Helyi fájlnál abszolút elérési utat vagy file:// URL-címet adjon meg.", + "EPG_SOURCE_FORMATS_EXAMPLES": "Példák:", "VIDEO_PLAYER_DESCRIPTION": "Az alapértelmezett videólejátszó kiválasztása", "WEB_PLAYER_SHARED_CONTROLS": "Egységes vezérlők a webes lejátszókhoz", "WEB_PLAYER_SHARED_CONTROLS_DESCRIPTION": "Az IPTVnator közös vezérlőinek használata a HTML5-, Video.js- és ArtPlayer-lejátszóban.", - "PLAYER_AMBIENT_MODE": "Ambient background fill", - "PLAYER_AMBIENT_MODE_DESCRIPTION": "Fill the space around the player with a blurred, dimmed poster instead of plain black bars.", + "PLAYER_AMBIENT_MODE": "Környezeti háttérkitöltés", + "PLAYER_AMBIENT_MODE_DESCRIPTION": "A lejátszó körüli terület kitöltése elmosott, elsötétített borítóképpel egyszerű fekete sávok helyett.", "PLAY_TRAILERS_IN_BACKGROUND": "Előzetesek lejátszása a részletek hátterében", "PLAY_TRAILERS_IN_BACKGROUND_DESCRIPTION": "Néhány másodperccel egy film vagy sorozat megnyitása után az előzetes némán lejátszódik a részletek mögött. Forgalomkorlátos kapcsolaton és csökkentett mozgásnál kikapcsolva.", "PLAYER_UP_NEXT_RAIL": "„Következik” epizódsáv", @@ -559,7 +559,7 @@ "DASHBOARD_RAIL_CONTINUE_DESCRIPTION": "A legutóbb megtekintett filmek és sorozatok megjelenítése borítókártyákkal.", "DASHBOARD_RAIL_LIVE_FAVORITES": "Élőben a kedvenc csatornákon", "DASHBOARD_RAIL_LIVE_FAVORITES_DESCRIPTION": "Kedvenc élő csatornáinak megjelenítése az aktuális műsor előrehaladását jelző sávval.", - "DASHBOARD_RAIL_RECENT_LIVE": "Legutóbb nézett élő csatornák", + "DASHBOARD_RAIL_RECENT_LIVE": "Legutóbb nézett élő TV", "DASHBOARD_RAIL_RECENT_LIVE_DESCRIPTION": "A nemrég megnyitott élő csatornák megjelenítése az aktuális műsor előrehaladását jelző sávval.", "DASHBOARD_RAIL_FAVORITE_VOD": "Kedvenc filmek és sorozatok", "DASHBOARD_RAIL_FAVORITE_VOD_DESCRIPTION": "A kedvencként megjelölt filmek és sorozatok megjelenítése borítókártyákkal.", @@ -657,7 +657,7 @@ }, "EMBEDDED_MPV": { "PLAYER": { - "BACK": "Back", + "BACK": "Vissza", "RETRY": "Újrapróbálkozás", "STALLED": "Az adatfolyam indítása a vártnál hosszabb ideig tart.", "PLAYBACK_FAILED": "Nem sikerült lejátszani a tartalmat a beágyazott MPV-vel.", @@ -805,16 +805,16 @@ "REASON_COMPATIBLE_DRM_PATH": "Ez a cél kompatibilis az elérhető titkosítási adatokkal", "ACTION_OPEN_MPV": "Megnyitás MPV-ben", "ACTION_OPEN_VLC": "Megnyitás VLC-ben", - "ACTION_OPENING_MPV": "Opening MPV…", - "ACTION_OPENING_VLC": "Opening VLC…", - "ACTION_REOPEN_MPV": "Open MPV again", - "ACTION_REOPEN_VLC": "Open VLC again", - "ACTION_RETRY_MPV": "Try MPV again", - "ACTION_RETRY_VLC": "Try VLC again", - "EXTERNAL_OPENING": "Opening player…", - "EXTERNAL_STARTED": "Player started", - "EXTERNAL_PLAYING": "Playing", - "EXTERNAL_FAILED": "External player error", + "ACTION_OPENING_MPV": "MPV megnyitása…", + "ACTION_OPENING_VLC": "VLC megnyitása…", + "ACTION_REOPEN_MPV": "Újbóli megnyitás MPV-ben", + "ACTION_REOPEN_VLC": "Újbóli megnyitás VLC-ben", + "ACTION_RETRY_MPV": "Újrapróbálkozás MPV-vel", + "ACTION_RETRY_VLC": "Újrapróbálkozás VLC-vel", + "EXTERNAL_OPENING": "Lejátszó megnyitása…", + "EXTERNAL_STARTED": "A lejátszó elindult", + "EXTERNAL_PLAYING": "Lejátszás alatt", + "EXTERNAL_FAILED": "Hiba a külső lejátszóban", "ACTION_OPEN_MPV_HINT": "beállított lejátszó", "ACTION_OPEN_VLC_HINT": "beállított lejátszó", "ACTION_COPY_URL": "Adatfolyam URL-jének másolása", @@ -1076,19 +1076,19 @@ } }, "EPG_MAPPING_DIALOG": { - "TITLE": "Map EPG Channel", - "SUBTITLE": "Manually select an EPG channel for \"{{channelName}}\"", - "SEARCH_PLACEHOLDER": "Search EPG channels...", - "CURRENT_MAPPING": "Current mapping", - "NO_MAPPING": "No EPG mapping set", - "SAVE": "Save mapping", - "REMOVE": "Remove mapping", - "CLOSE": "Close", - "NO_RESULTS": "No EPG channels found", - "SEARCH_HINT": "Type at least {{min}} characters to search", - "SAVED": "EPG mapping saved", - "REMOVED": "EPG mapping removed", - "SAVE_FAILED": "Could not update the EPG mapping" + "TITLE": "EPG-csatorna hozzárendelése", + "SUBTITLE": "Válasszon ki kézzel egy EPG-csatornát ehhez: „{{channelName}}”", + "SEARCH_PLACEHOLDER": "Keresés az EPG-csatornák között…", + "CURRENT_MAPPING": "Jelenlegi hozzárendelés", + "NO_MAPPING": "Nincs beállított EPG-hozzárendelés", + "SAVE": "Hozzárendelés mentése", + "REMOVE": "Hozzárendelés eltávolítása", + "CLOSE": "Bezárás", + "NO_RESULTS": "Nem található EPG-csatorna", + "SEARCH_HINT": "A kereséshez írjon be legalább {{min}} karaktert", + "SAVED": "EPG-hozzárendelés mentve", + "REMOVED": "EPG-hozzárendelés eltávolítva", + "SAVE_FAILED": "Nem sikerült frissíteni az EPG-hozzárendelést" }, "LANGUAGES": { "ARABIC": "العربية", @@ -1143,8 +1143,8 @@ "ACTORS": "Szereplők", "DIRECTOR": "Rendező", "SIMILAR": "Hasonló tartalmak", - "CREW_JOB_DIRECTOR": "Director", - "CREW_JOB_CREATOR": "Creator", + "CREW_JOB_DIRECTOR": "Rendező", + "CREW_JOB_CREATOR": "Alkotó", "ACTOR_FILMOGRAPHY": "Filmográfia", "ACTOR_FILTER_ALL": "Összes", "ACTOR_SCOPE_THIS_PORTAL": "Ez a portál", @@ -1215,7 +1215,7 @@ "SOURCE_TITLE": "Forrás címe" }, "ACCOUNT_INFO": { - "TITLE": "Fiók adatai", + "TITLE": "Fiókadatok", "USER_INFO": "Felhasználói adatok", "STATUS": "Állapot", "USERNAME": "Felhasználónév", @@ -1272,7 +1272,7 @@ "REMOVED_FROM_FAVORITES": "Eltávolítva a kedvencek közül", "ADDED_TO_FAVORITES": "Hozzáadva a kedvencekhez", "FAVORITES": "Kedvencek", - "RECENTLY_VIEWED": "Legutóbb megtekintett tartalmak", + "RECENTLY_VIEWED": "Legutóbb megtekintett", "THIS_PLAYLIST": "Ez a lejátszási lista", "ALL_PLAYLISTS": "Összes lejátszási lista", "LIVE_TV": "Élő tévéadás", @@ -1382,11 +1382,11 @@ "LOADING_SEASONS": "Évadok betöltése…", "LOADING_EPISODES": "Epizódok betöltése…", "EPISODES_LOAD_FAILED": "Az epizódokat nem sikerült betölteni.", - "LOADING_ALL_CHANNELS": "Loading full channel list…", - "REFRESH_CHANNEL_LIST": "Refresh channel list", - "NO_CHANNELS_IN_CATEGORY": "No channels in this category", - "ITEM": "item", - "ITEMS": "items", + "LOADING_ALL_CHANNELS": "A teljes csatornalista betöltése…", + "REFRESH_CHANNEL_LIST": "Csatornalista frissítése", + "NO_CHANNELS_IN_CATEGORY": "Ebben a kategóriában nincs csatorna", + "ITEM": "elem", + "ITEMS": "elem", "NO_EPISODES": "Nincs elérhető epizód", "ALL_RADIO": "Összes rádióadó", "MULTI_SOURCE": { @@ -1514,9 +1514,9 @@ "SOURCE_PLAYLIST_MISSING": "Ez a letöltés már nem nyitható meg a médiatárban, mert eltávolították a forrásként szolgáló lejátszási listát.", "FILE_NOT_FOUND": "A letöltött fájl már nem érhető el a lemezen.", "FILE_ACTION_ERROR": "Nem sikerült végrehajtani a fájlműveletet.", - "ACTION_FAILED": "Action failed", - "PAUSE": "Pause", - "RESUME": "Resume", + "ACTION_FAILED": "A művelet nem sikerült", + "PAUSE": "Szünet", + "RESUME": "Folytatás", "CANCEL": "Mégse", "DOWNLOADED_REVEAL": "Letöltve — megjelenítés a mappában", "DOWNLOADING_PERCENT": "Letöltés… {{percent}}%", @@ -1530,12 +1530,12 @@ "URL_COPIED": "A letöltési URL-cím a vágólapra került", "URL_COPY_FAILED": "Nem sikerült az URL-címet a vágólapra másolni", "STATUS": { - "QUEUED": "Várakozik", + "QUEUED": "Várólistán", "DOWNLOADING": "Letöltés folyamatban", "COMPLETED": "Befejeződött", "FAILED": "Sikertelen", "CANCELED": "Megszakítva", - "PAUSED": "Paused", + "PAUSED": "Szüneteltetve", "FILE_MISSING": "Hiányzik a fájl", "RECORDING": "Felvétel folyamatban", "INTERRUPTED": "Megszakadt" @@ -1745,7 +1745,7 @@ "RAIL_DASHBOARD": "Vezérlőpult", "RAIL_SOURCES": "Források", "RAIL_GLOBAL_FAVORITES": "Kedvencek", - "RAIL_GLOBAL_RECENT": "Megtekintési előzmények", + "RAIL_GLOBAL_RECENT": "Legutóbb megtekintett", "RAIL_GLOBAL_SEARCH": "Globális keresés", "RAIL_SETTINGS": "Beállítások", "OPEN_SETTINGS": "Beállítások megnyitása", @@ -1755,16 +1755,16 @@ "RAIL_SERIES": "Sorozatok", "RAIL_RECENTLY_ADDED": "Legutóbb hozzáadott", "RAIL_SEARCH": "Részletes keresés", - "RAIL_RECENT": "Megtekintési előzmények", + "RAIL_RECENT": "Legutóbb megtekintett", "RAIL_FAVORITES": "Kedvencek", "RAIL_DOWNLOADS": "Letöltések", "EXTERNAL_PLAYBACK_CLOSE": "Lejátszó bezárása", - "EXTERNAL_PLAYBACK_DISMISS": "Dismiss", - "EXTERNAL_PLAYBACK_OPENING": "Opening player…", - "EXTERNAL_PLAYBACK_STARTED": "Player started", - "EXTERNAL_PLAYBACK_PLAYING": "Playing", - "EXTERNAL_PLAYBACK_FAILED": "External player error", - "EXTERNAL_PLAYBACK_CLOSED": "Closed", + "EXTERNAL_PLAYBACK_DISMISS": "Elrejtés", + "EXTERNAL_PLAYBACK_OPENING": "Lejátszó megnyitása…", + "EXTERNAL_PLAYBACK_STARTED": "A lejátszó elindult", + "EXTERNAL_PLAYBACK_PLAYING": "Lejátszás alatt", + "EXTERNAL_PLAYBACK_FAILED": "Hiba a külső lejátszóban", + "EXTERNAL_PLAYBACK_CLOSED": "Bezárva", "EXTERNAL_PLAYBACK_OPEN_IN_PLAYLIST": "Megnyitás a lejátszási listában", "RAIL_ALL_CHANNELS": "Összes csatorna", "RAIL_GROUPS": "Csoportok", @@ -2033,49 +2033,49 @@ "FAILED_DETAIL": "Próbáld újra beolvasni a mentett forrásokat. Az adataid nem lettek törölve." }, "SOURCE_HEALTH": { - "RECHECK": "Check again", - "M3U_SCOPE": "Playlist URL, not individual channels", + "RECHECK": "Újbóli ellenőrzés", + "M3U_SCOPE": "A lejátszási lista URL-címe, nem az egyes csatornák", "REASON": { - "available": "Available", - "disabled": "Account disabled", - "expired": "Subscription expired", - "auth": "Access denied; account status unconfirmed", - "http": "Server returned an error", - "timeout": "Check timed out", - "network": "Could not connect", - "paused": "Connection checks paused", - "invalid": "Unexpected response", - "unknown": "Not verified", - "cancelled": "Check cancelled", - "checking": "Checking…" + "available": "Elérhető", + "disabled": "A fiók le van tiltva", + "expired": "Az előfizetés lejárt", + "auth": "Hozzáférés megtagadva; a fiók állapota nem erősíthető meg", + "http": "A kiszolgáló hibával válaszolt", + "timeout": "Időtúllépés az ellenőrzéskor", + "network": "Nem sikerült kapcsolódni", + "paused": "Kapcsolatellenőrzés szüneteltetve", + "invalid": "Váratlan válasz", + "unknown": "Nincs ellenőrizve", + "cancelled": "Ellenőrzés megszakítva", + "checking": "Ellenőrzés…" } }, "SOURCE_CLEANUP": { - "TITLE": "Clean up inactive sources…", - "SCOPE": "All network sources in your library, regardless of page filters.", - "CONSEQUENCES": "Delete only sources you select. Their saved favourites, history and playback progress will also be removed. Downloaded files are kept.", - "SUMMARY": "Checked {{checked}}/{{total}} · Available {{available}} · Deleted {{deleted}} · Skipped {{skipped}} · Failed {{failed}}", - "SELECT_ALL": "Select all candidates", - "SELECT_NONE": "Deselect all", - "UNTITLED": "Untitled source", - "DELETE": "Delete selected · {{count}}", - "CLOSE": "Close", - "STOP": "Stop after current source", - "CLEANUP_WARNING": "Source deleted; some follow-up cleanup failed", + "TITLE": "Inaktív források eltávolítása…", + "SCOPE": "A médiatár összes hálózati forrása, az oldalon beállított szűrőktől függetlenül.", + "CONSEQUENCES": "Csak a kijelölt források törlődnek, a hozzájuk mentett kedvencekkel, megtekintési előzményekkel és lejátszási pozíciókkal együtt. A letöltött fájlok megmaradnak.", + "SUMMARY": "Ellenőrizve: {{checked}}/{{total}} · Elérhető: {{available}} · Törölve: {{deleted}} · Kihagyva: {{skipped}} · Sikertelen: {{failed}}", + "SELECT_ALL": "Minden javasolt forrás kijelölése", + "SELECT_NONE": "Összes kijelölésének megszüntetése", + "UNTITLED": "Névtelen forrás", + "DELETE": "Kijelöltek törlése · {{count}}", + "CLOSE": "Bezárás", + "STOP": "Leállítás a jelenlegi forrás után", + "CLEANUP_WARNING": "A forrás törölve, de a kapcsolódó adatok egy részét nem sikerült eltávolítani", "GROUP": { - "confirmed": "Confirmed inactive accounts", - "uncertain": "Review before deleting", - "skipped": "Skipped sources", - "results": "Deletion results" + "confirmed": "Megerősítetten inaktív fiókok", + "uncertain": "Törlés előtt ellenőrizendő", + "skipped": "Kihagyott források", + "results": "A törlés eredménye" }, "STATUS": { - "checking": "Checking…", - "skipped": "Playing, busy, changed or no longer present", - "deleting": "Deleting…", - "deleted": "Deleted", - "failed": "Deletion failed — select to retry" + "checking": "Ellenőrzés…", + "skipped": "Lejátszás alatt, foglalt, módosult vagy már nem létezik", + "deleting": "Törlés…", + "deleted": "Törölve", + "failed": "A törlés nem sikerült — jelölje ki az újrapróbáláshoz" }, - "DELETE_PROGRESS": "Processed {{done}} of {{total}} selected sources" + "DELETE_PROGRESS": "{{total}} kijelölt forrásból {{done}} feldolgozva" }, "PARENTAL_LOCK": { "PIN_DIALOG": { diff --git a/apps/web/src/assets/i18n/it.json b/apps/web/src/assets/i18n/it.json index 952892477..b989b1ff9 100644 --- a/apps/web/src/assets/i18n/it.json +++ b/apps/web/src/assets/i18n/it.json @@ -286,7 +286,7 @@ "PORTAL_CONNECTIVITY_GUARD": "Sospendi le richieste ai portali non disponibili", "PORTAL_CONNECTIVITY_GUARD_DESCRIPTION": "Dopo ripetuti errori di connessione, sospendi le nuove richieste Xtream e Stalker per 30 secondi. Prova a disattivare se un portale diventa intermittentemente non disponibile. Si applica al salvataggio, senza riavvio.", "PORTAL_CONNECTIVITY_GUARD_DISABLED": "Ogni richiesta verrà eseguita indipendentemente. I server non disponibili potrebbero impiegare più tempo a segnalare un errore.", - "TITLE": "Impostazioni IPTVnator", + "TITLE": "Impostazioni", "SEARCH_RESULTS_TITLE": "Risultati della ricerca", "SEARCH_RESULTS_COUNT": "Impostazioni corrispondenti a “{{query}}”: {{count}}", "SEARCH_EMPTY_HINT": "Nessuna impostazione corrisponde. Prova un'altra parola, ad esempio riproduttore, tema o EPG.", @@ -373,7 +373,7 @@ "REFRESH_EPG": "Aggiorna EPG", "REFRESH_ALL_EPG": "Aggiorna tutto", "REMOVE_EPG_SOURCE": "Rimuovi sorgente EPG", - "BROWSE_EPG_FILE": "Choose a local XMLTV file…", + "BROWSE_EPG_FILE": "Scegli un file XMLTV locale…", "EPG_STATUS_FRESH": "Aggiornato", "EPG_STATUS_STALE": "Da aggiornare", "EPG_STATUS_ERROR": "Errore", @@ -418,9 +418,9 @@ "EPG_DATA_CLEAR_FAILED": "Impossibile cancellare i dati EPG. Riprova.", "CLEARING_EPG_DATA": "Cancellazione…", "EPG_URL_ERROR": "Il valore non è una URL valida", - "EPG_SOURCE_LIST_TITLE": "Source list", - "EPG_SOURCE_FORMATS_HINT": "Remote XMLTV links (http/https) and files on this computer are both supported, as plain .xml or gzip-compressed .xml.gz. Local files need an absolute path or a file:// URL.", - "EPG_SOURCE_FORMATS_EXAMPLES": "Examples:", + "EPG_SOURCE_LIST_TITLE": "Elenco sorgenti", + "EPG_SOURCE_FORMATS_HINT": "Sono supportati sia i link XMLTV remoti (http/https) sia i file su questo computer, come .xml semplice o .xml.gz compresso con gzip. I file locali richiedono un percorso assoluto o un URL file://.", + "EPG_SOURCE_FORMATS_EXAMPLES": "Esempi:", "VIDEO_PLAYER_DESCRIPTION": "Seleziona lettore video predefinito", "WEB_PLAYER_SHARED_CONTROLS": "Controlli unificati per i player web", "WEB_PLAYER_SHARED_CONTROLS_DESCRIPTION": "Usa i controlli condivisi di IPTVnator in HTML5, Video.js e ArtPlayer.", @@ -805,16 +805,16 @@ "REASON_COMPATIBLE_DRM_PATH": "Questa destinazione è compatibile con i dati di crittografia disponibili", "ACTION_OPEN_MPV": "Apri in MPV", "ACTION_OPEN_VLC": "Apri in VLC", - "ACTION_OPENING_MPV": "Opening MPV…", - "ACTION_OPENING_VLC": "Opening VLC…", - "ACTION_REOPEN_MPV": "Open MPV again", - "ACTION_REOPEN_VLC": "Open VLC again", - "ACTION_RETRY_MPV": "Try MPV again", - "ACTION_RETRY_VLC": "Try VLC again", - "EXTERNAL_OPENING": "Opening player…", - "EXTERNAL_STARTED": "Player started", - "EXTERNAL_PLAYING": "Playing", - "EXTERNAL_FAILED": "External player error", + "ACTION_OPENING_MPV": "Apertura di MPV…", + "ACTION_OPENING_VLC": "Apertura di VLC…", + "ACTION_REOPEN_MPV": "Riapri MPV", + "ACTION_REOPEN_VLC": "Riapri VLC", + "ACTION_RETRY_MPV": "Riprova con MPV", + "ACTION_RETRY_VLC": "Riprova con VLC", + "EXTERNAL_OPENING": "Apertura del lettore…", + "EXTERNAL_STARTED": "Lettore avviato", + "EXTERNAL_PLAYING": "In riproduzione", + "EXTERNAL_FAILED": "Errore del lettore esterno", "ACTION_OPEN_MPV_HINT": "player configurato", "ACTION_OPEN_VLC_HINT": "player configurato", "ACTION_COPY_URL": "Copia URL dello stream", @@ -1360,7 +1360,7 @@ "COPY_STREAM_URL": "Copia URL streaming", "NOW_PLAYING": "In riproduzione", "UP_NEXT": "A seguire", - "CLOSE_PLAYER": "Chiudi lettore", + "CLOSE_PLAYER": "Chiudi player", "ABOUT": "Info", "SEASONS_AND_EPISODES": "Stagioni ed episodi", "SEASON_TAB": "Stagione {{number}}", @@ -1627,7 +1627,7 @@ "ARCHIVE_RESTART_NOTE": "Dopo un’interruzione, il download dall’archivio ricomincia dall’inizio." }, "REMOTE_CONTROL": { - "TITLE": "Controllo remoto", + "TITLE": "Telecomando", "SUBTITLE": "Controlla il tuo lettore IPTV da remoto", "UP_CHANNEL": "Canale precedente", "DOWN_CHANNEL": "Canale successivo", @@ -1759,12 +1759,12 @@ "RAIL_FAVORITES": "Preferiti", "RAIL_DOWNLOADS": "Download", "EXTERNAL_PLAYBACK_CLOSE": "Chiudi player", - "EXTERNAL_PLAYBACK_DISMISS": "Dismiss", - "EXTERNAL_PLAYBACK_OPENING": "Opening player…", - "EXTERNAL_PLAYBACK_STARTED": "Player started", - "EXTERNAL_PLAYBACK_PLAYING": "Playing", - "EXTERNAL_PLAYBACK_FAILED": "External player error", - "EXTERNAL_PLAYBACK_CLOSED": "Closed", + "EXTERNAL_PLAYBACK_DISMISS": "Nascondi", + "EXTERNAL_PLAYBACK_OPENING": "Apertura del lettore…", + "EXTERNAL_PLAYBACK_STARTED": "Lettore avviato", + "EXTERNAL_PLAYBACK_PLAYING": "In riproduzione", + "EXTERNAL_PLAYBACK_FAILED": "Errore del lettore esterno", + "EXTERNAL_PLAYBACK_CLOSED": "Chiuso", "EXTERNAL_PLAYBACK_OPEN_IN_PLAYLIST": "Apri nella playlist", "RAIL_ALL_CHANNELS": "Tutti i canali", "RAIL_GROUPS": "Gruppi", @@ -2033,49 +2033,49 @@ "FAILED_DETAIL": "Riprova a leggere le sorgenti salvate. I tuoi dati non sono stati eliminati." }, "SOURCE_HEALTH": { - "RECHECK": "Check again", - "M3U_SCOPE": "Playlist URL, not individual channels", + "RECHECK": "Controlla di nuovo", + "M3U_SCOPE": "URL della playlist, non i singoli canali", "REASON": { - "available": "Available", - "disabled": "Account disabled", - "expired": "Subscription expired", - "auth": "Access denied; account status unconfirmed", - "http": "Server returned an error", - "timeout": "Check timed out", - "network": "Could not connect", - "paused": "Connection checks paused", - "invalid": "Unexpected response", - "unknown": "Not verified", - "cancelled": "Check cancelled", - "checking": "Checking…" + "available": "Disponibile", + "disabled": "Account disattivato", + "expired": "Abbonamento scaduto", + "auth": "Accesso negato; stato dell’account non confermato", + "http": "Il server ha restituito un errore", + "timeout": "Tempo di verifica scaduto", + "network": "Impossibile connettersi", + "paused": "Verifiche della connessione in pausa", + "invalid": "Risposta inattesa", + "unknown": "Non verificata", + "cancelled": "Verifica annullata", + "checking": "Verifica in corso…" } }, "SOURCE_CLEANUP": { - "TITLE": "Clean up inactive sources…", - "SCOPE": "All network sources in your library, regardless of page filters.", - "CONSEQUENCES": "Delete only sources you select. Their saved favourites, history and playback progress will also be removed. Downloaded files are kept.", - "SUMMARY": "Checked {{checked}}/{{total}} · Available {{available}} · Deleted {{deleted}} · Skipped {{skipped}} · Failed {{failed}}", - "SELECT_ALL": "Select all candidates", - "SELECT_NONE": "Deselect all", - "UNTITLED": "Untitled source", - "DELETE": "Delete selected · {{count}}", - "CLOSE": "Close", - "STOP": "Stop after current source", - "CLEANUP_WARNING": "Source deleted; some follow-up cleanup failed", + "TITLE": "Pulisci sorgenti inattive…", + "SCOPE": "Tutte le sorgenti di rete della tua libreria, indipendentemente dai filtri della pagina.", + "CONSEQUENCES": "Vengono eliminate solo le sorgenti che selezioni. Verranno rimossi anche i relativi preferiti salvati, la cronologia e l’avanzamento di riproduzione. I file scaricati vengono conservati.", + "SUMMARY": "Verificate {{checked}}/{{total}} · Disponibili {{available}} · Eliminate {{deleted}} · Ignorate {{skipped}} · Non riuscite {{failed}}", + "SELECT_ALL": "Seleziona tutti i candidati", + "SELECT_NONE": "Deseleziona tutti", + "UNTITLED": "Sorgente senza titolo", + "DELETE": "Elimina selezionate · {{count}}", + "CLOSE": "Chiudi", + "STOP": "Interrompi dopo la sorgente attuale", + "CLEANUP_WARNING": "Sorgente eliminata; alcune operazioni di pulizia successive non sono riuscite", "GROUP": { - "confirmed": "Confirmed inactive accounts", - "uncertain": "Review before deleting", - "skipped": "Skipped sources", - "results": "Deletion results" + "confirmed": "Account confermati come inattivi", + "uncertain": "Da verificare prima di eliminare", + "skipped": "Sorgenti ignorate", + "results": "Risultati dell’eliminazione" }, "STATUS": { - "checking": "Checking…", - "skipped": "Playing, busy, changed or no longer present", - "deleting": "Deleting…", - "deleted": "Deleted", - "failed": "Deletion failed — select to retry" + "checking": "Verifica in corso…", + "skipped": "In riproduzione, occupata, modificata o non più presente", + "deleting": "Eliminazione in corso…", + "deleted": "Eliminata", + "failed": "Eliminazione non riuscita — seleziona per riprovare" }, - "DELETE_PROGRESS": "Processed {{done}} of {{total}} selected sources" + "DELETE_PROGRESS": "Elaborate {{done}} su {{total}} sorgenti selezionate" }, "PARENTAL_LOCK": { "PIN_DIALOG": { diff --git a/apps/web/src/assets/i18n/ja.json b/apps/web/src/assets/i18n/ja.json index d93db9bd4..1999c648d 100644 --- a/apps/web/src/assets/i18n/ja.json +++ b/apps/web/src/assets/i18n/ja.json @@ -373,7 +373,7 @@ "REFRESH_EPG": "EPGを更新", "REFRESH_ALL_EPG": "すべて更新", "REMOVE_EPG_SOURCE": "EPGソースを削除", - "BROWSE_EPG_FILE": "Choose a local XMLTV file…", + "BROWSE_EPG_FILE": "ローカルの XMLTV ファイルを選択…", "EPG_STATUS_FRESH": "最新", "EPG_STATUS_STALE": "更新が必要", "EPG_STATUS_ERROR": "失敗", @@ -418,9 +418,9 @@ "EPG_DATA_CLEAR_FAILED": "EPGデータのクリアに失敗しました。もう一度お試しください。", "CLEARING_EPG_DATA": "クリア中…", "EPG_URL_ERROR": "有効なURLではありません", - "EPG_SOURCE_LIST_TITLE": "Source list", - "EPG_SOURCE_FORMATS_HINT": "Remote XMLTV links (http/https) and files on this computer are both supported, as plain .xml or gzip-compressed .xml.gz. Local files need an absolute path or a file:// URL.", - "EPG_SOURCE_FORMATS_EXAMPLES": "Examples:", + "EPG_SOURCE_LIST_TITLE": "ソース一覧", + "EPG_SOURCE_FORMATS_HINT": "リモートの XMLTV リンク(http/https)とこのコンピューター上のファイルの両方に対応しています。形式は通常の .xml または gzip 圧縮の .xml.gz です。ローカルファイルには絶対パスまたは file:// URL を指定してください。", + "EPG_SOURCE_FORMATS_EXAMPLES": "例:", "VIDEO_PLAYER_DESCRIPTION": "デフォルトのビデオプレーヤーを選択", "WEB_PLAYER_SHARED_CONTROLS": "Webプレーヤーの統一コントロール", "WEB_PLAYER_SHARED_CONTROLS_DESCRIPTION": "HTML5、Video.js、ArtPlayerでIPTVnator共通のコントロールを使用します。", @@ -805,16 +805,16 @@ "REASON_COMPATIBLE_DRM_PATH": "この対象は利用可能な暗号化データに対応しています", "ACTION_OPEN_MPV": "MPV で開く", "ACTION_OPEN_VLC": "VLC で開く", - "ACTION_OPENING_MPV": "Opening MPV…", - "ACTION_OPENING_VLC": "Opening VLC…", - "ACTION_REOPEN_MPV": "Open MPV again", - "ACTION_REOPEN_VLC": "Open VLC again", - "ACTION_RETRY_MPV": "Try MPV again", - "ACTION_RETRY_VLC": "Try VLC again", - "EXTERNAL_OPENING": "Opening player…", - "EXTERNAL_STARTED": "Player started", - "EXTERNAL_PLAYING": "Playing", - "EXTERNAL_FAILED": "External player error", + "ACTION_OPENING_MPV": "MPV を起動中…", + "ACTION_OPENING_VLC": "VLC を起動中…", + "ACTION_REOPEN_MPV": "MPV でもう一度開く", + "ACTION_REOPEN_VLC": "VLC でもう一度開く", + "ACTION_RETRY_MPV": "MPV で再試行", + "ACTION_RETRY_VLC": "VLC で再試行", + "EXTERNAL_OPENING": "プレーヤーを起動中…", + "EXTERNAL_STARTED": "プレーヤーを起動しました", + "EXTERNAL_PLAYING": "再生中", + "EXTERNAL_FAILED": "外部プレーヤーのエラー", "ACTION_OPEN_MPV_HINT": "設定済みのプレーヤー", "ACTION_OPEN_VLC_HINT": "設定済みのプレーヤー", "ACTION_COPY_URL": "ストリーム URL をコピー", @@ -914,9 +914,9 @@ "EPG_PARAMS": "EPGパラメーター", "TIMESHIFT": "タイムシフト", "TVG_ID": "TVG ID", - "TVG_NAME": "TVG name", + "TVG_NAME": "TVG 名", "TVG_URL": "TVG URL", - "TVG_LOGO": "TVG logo", + "TVG_LOGO": "TVG ロゴ", "TVG_REC": "TVG rec", "CATCHUP_TYPE": "見逃し配信タイプ", "CATCHUP_SOURCE": "見逃し配信ソース", @@ -1759,12 +1759,12 @@ "RAIL_FAVORITES": "お気に入り", "RAIL_DOWNLOADS": "ダウンロード", "EXTERNAL_PLAYBACK_CLOSE": "プレーヤーを閉じる", - "EXTERNAL_PLAYBACK_DISMISS": "Dismiss", - "EXTERNAL_PLAYBACK_OPENING": "Opening player…", - "EXTERNAL_PLAYBACK_STARTED": "Player started", - "EXTERNAL_PLAYBACK_PLAYING": "Playing", - "EXTERNAL_PLAYBACK_FAILED": "External player error", - "EXTERNAL_PLAYBACK_CLOSED": "Closed", + "EXTERNAL_PLAYBACK_DISMISS": "非表示", + "EXTERNAL_PLAYBACK_OPENING": "プレーヤーを起動中…", + "EXTERNAL_PLAYBACK_STARTED": "プレーヤーを起動しました", + "EXTERNAL_PLAYBACK_PLAYING": "再生中", + "EXTERNAL_PLAYBACK_FAILED": "外部プレーヤーのエラー", + "EXTERNAL_PLAYBACK_CLOSED": "終了しました", "EXTERNAL_PLAYBACK_OPEN_IN_PLAYLIST": "プレイリストで開く", "RAIL_ALL_CHANNELS": "すべてのチャンネル", "RAIL_GROUPS": "グループ", @@ -2033,49 +2033,49 @@ "FAILED_DETAIL": "保存したソースの読み込みを再試行してください。データは削除されていません。" }, "SOURCE_HEALTH": { - "RECHECK": "Check again", - "M3U_SCOPE": "Playlist URL, not individual channels", + "RECHECK": "もう一度確認", + "M3U_SCOPE": "プレイリスト URL のみ(個々のチャンネルは対象外)", "REASON": { - "available": "Available", - "disabled": "Account disabled", - "expired": "Subscription expired", - "auth": "Access denied; account status unconfirmed", - "http": "Server returned an error", - "timeout": "Check timed out", - "network": "Could not connect", - "paused": "Connection checks paused", - "invalid": "Unexpected response", - "unknown": "Not verified", - "cancelled": "Check cancelled", - "checking": "Checking…" + "available": "利用可能", + "disabled": "アカウントが無効化されています", + "expired": "サブスクリプションの有効期限が切れています", + "auth": "アクセスが拒否されました(アカウントの状態は未確認)", + "http": "サーバーがエラーを返しました", + "timeout": "確認がタイムアウトしました", + "network": "接続できませんでした", + "paused": "接続確認を一時停止中", + "invalid": "予期しない応答", + "unknown": "未確認", + "cancelled": "確認をキャンセルしました", + "checking": "確認中…" } }, "SOURCE_CLEANUP": { - "TITLE": "Clean up inactive sources…", - "SCOPE": "All network sources in your library, regardless of page filters.", - "CONSEQUENCES": "Delete only sources you select. Their saved favourites, history and playback progress will also be removed. Downloaded files are kept.", - "SUMMARY": "Checked {{checked}}/{{total}} · Available {{available}} · Deleted {{deleted}} · Skipped {{skipped}} · Failed {{failed}}", - "SELECT_ALL": "Select all candidates", - "SELECT_NONE": "Deselect all", - "UNTITLED": "Untitled source", - "DELETE": "Delete selected · {{count}}", - "CLOSE": "Close", - "STOP": "Stop after current source", - "CLEANUP_WARNING": "Source deleted; some follow-up cleanup failed", + "TITLE": "無効なソースを整理…", + "SCOPE": "ページのフィルターに関係なく、ライブラリ内のすべてのネットワークソースが対象です。", + "CONSEQUENCES": "選択したソースのみを削除します。保存済みのお気に入り、履歴、再生位置も削除されます。ダウンロード済みのファイルは残ります。", + "SUMMARY": "確認済み {{checked}}/{{total}} · 利用可能 {{available}} · 削除 {{deleted}} · スキップ {{skipped}} · 失敗 {{failed}}", + "SELECT_ALL": "候補をすべて選択", + "SELECT_NONE": "すべて解除", + "UNTITLED": "無題のソース", + "DELETE": "選択項目を削除 · {{count}}", + "CLOSE": "閉じる", + "STOP": "現在のソースの処理後に停止", + "CLEANUP_WARNING": "ソースは削除されましたが、一部の後処理に失敗しました", "GROUP": { - "confirmed": "Confirmed inactive accounts", - "uncertain": "Review before deleting", - "skipped": "Skipped sources", - "results": "Deletion results" + "confirmed": "無効が確認されたアカウント", + "uncertain": "削除前に確認が必要", + "skipped": "スキップされたソース", + "results": "削除結果" }, "STATUS": { - "checking": "Checking…", - "skipped": "Playing, busy, changed or no longer present", - "deleting": "Deleting…", - "deleted": "Deleted", - "failed": "Deletion failed — select to retry" + "checking": "確認中…", + "skipped": "再生中、処理中、変更済み、またはすでに存在しません", + "deleting": "削除中…", + "deleted": "削除済み", + "failed": "削除に失敗しました — 選択して再試行" }, - "DELETE_PROGRESS": "Processed {{done}} of {{total}} selected sources" + "DELETE_PROGRESS": "選択した {{total}} 件のソースのうち、{{done}} 件を処理しました" }, "PARENTAL_LOCK": { "PIN_DIALOG": { diff --git a/apps/web/src/assets/i18n/ko.json b/apps/web/src/assets/i18n/ko.json index 424f49caa..03e6288b1 100644 --- a/apps/web/src/assets/i18n/ko.json +++ b/apps/web/src/assets/i18n/ko.json @@ -136,9 +136,9 @@ "DELETING_CONTENT": "캐시된 콘텐츠를 제거하는 중...", "DELETING_CATEGORIES": "캐시된 카테고리를 제거하는 중..." }, - "GLOBAL_FAVORITES": "Global favorites", - "GLOBAL_FAVORITES_DESCRIPTION": "Auto-generated playlist with aggregated favorites from all playlists", - "MY_PLAYLISTS": "My playlists", + "GLOBAL_FAVORITES": "전체 즐겨찾기", + "GLOBAL_FAVORITES_DESCRIPTION": "모든 재생목록의 즐겨찾기를 모아 자동으로 생성한 재생목록입니다", + "MY_PLAYLISTS": "내 재생목록", "MY_PLAYLISTS_SUBTITLE": "사용 가능한 모든 재생목록", "PLAYLIST_UPDATE_SUCCESS": "성공! 재생목록이 성공적으로 업데이트되었습니다.", "PLAYLIST_UPDATE_ERROR": "재생목록 정보 업데이트 중 오류가 발생했습니다.", @@ -194,7 +194,7 @@ "TRUST_TLS_HOST_WARNING": "이 플레이리스트 호스트를 신뢰하는 경우에만 계속하세요. IPTVnator는 이 호스트의 유효하지 않은 TLS 인증서를 허용하지만, 다른 호스트에는 계속 유효한 인증서가 필요합니다." }, "TEXT_IMPORT": { - "LABEL": "Insert m3u(8) playlist as text" + "LABEL": "m3u(8) 재생목록을 텍스트로 붙여넣기" }, "XTREAM_PLAYLIST": { "TITLE": "재생목록 제목", @@ -368,12 +368,12 @@ "HERO_DESCRIPTION": "현재 작업 공간 스타일을 잃지 않고 한 곳에서 재생, 가이드, 원격 접근 및 데이터 처리를 조정할 수 있습니다.", "SUBTITLE": "응용 프로그램의 구성을 변경하십시오", "DESCRIPTION": "아래 목록에서 옵션을 적용하고 저장 버튼으로 확인하십시오.", - "EPG_URL_LABEL": "EPG Url (*.xml or *.xml.gz)", + "EPG_URL_LABEL": "EPG 소스(URL 또는 로컬 파일, *.xml 또는 *.xml.gz)", "EPG_URL_PLACEHOLDER": "URL을 입력하십시오", "REFRESH_EPG": "EPG 새로 고침", "REFRESH_ALL_EPG": "모두 새로 고침", "REMOVE_EPG_SOURCE": "EPG 소스 제거", - "BROWSE_EPG_FILE": "Choose a local XMLTV file…", + "BROWSE_EPG_FILE": "로컬 XMLTV 파일 선택…", "EPG_STATUS_FRESH": "최신", "EPG_STATUS_STALE": "새로 고침 필요", "EPG_STATUS_ERROR": "실패", @@ -405,7 +405,7 @@ "SETTINGS_SAVE_FAILED": "설정을 저장하지 못했습니다. 앱을 다시 시작하면 변경 사항이 사라집니다.", "SETTINGS_LOAD_FAILED": "저장된 설정을 불러오지 못했습니다. 기본값을 표시합니다. 앱이 중복 실행되고 있지 않은지 확인하세요.", "THEME": "테마", - "SHOW_CAPTIONS": "Show subtitles", + "SHOW_CAPTIONS": "자막 표시", "SHOW_DASHBOARD": "대시보드 표시", "SHOW_DASHBOARD_DESCRIPTION": "작업 공간 레일에서 대시보드를 사용할 수 있게 유지합니다. 비활성화하면 소스가 작업 공간의 첫 번째 페이지가 됩니다.", "ADD_EPG_SOURCE": "EPG 소스 추가", @@ -418,9 +418,9 @@ "EPG_DATA_CLEAR_FAILED": "EPG 데이터를 지우지 못했습니다. 다시 시도해 주세요.", "CLEARING_EPG_DATA": "지우는 중…", "EPG_URL_ERROR": "값이 유효한 URL이 아닙니다.", - "EPG_SOURCE_LIST_TITLE": "Source list", - "EPG_SOURCE_FORMATS_HINT": "Remote XMLTV links (http/https) and files on this computer are both supported, as plain .xml or gzip-compressed .xml.gz. Local files need an absolute path or a file:// URL.", - "EPG_SOURCE_FORMATS_EXAMPLES": "Examples:", + "EPG_SOURCE_LIST_TITLE": "소스 목록", + "EPG_SOURCE_FORMATS_HINT": "원격 XMLTV 링크(http/https)와 이 컴퓨터의 파일을 모두 지원하며, 일반 .xml 또는 gzip으로 압축된 .xml.gz 형식을 사용할 수 있습니다. 로컬 파일은 절대 경로나 file:// URL로 지정해야 합니다.", + "EPG_SOURCE_FORMATS_EXAMPLES": "예시:", "VIDEO_PLAYER_DESCRIPTION": "기본 비디오 플레이어 선택", "WEB_PLAYER_SHARED_CONTROLS": "웹 플레이어 통합 컨트롤", "WEB_PLAYER_SHARED_CONTROLS_DESCRIPTION": "HTML5, Video.js 및 ArtPlayer에서 IPTVnator 공통 컨트롤을 사용합니다.", @@ -480,7 +480,7 @@ "SUPPORT_TITLE": "프로젝트 후원", "SUPPORT_DESCRIPTION": "IPTVnator는 무료 오픈 소스 프로젝트로 공개적으로 개발되고 있습니다. 일상적으로 사용하신다면, 작은 기여로 프로젝트를 계속 유지하고 향후 방향을 만드는 데 도움이 됩니다 — 감사합니다.", "SUPPORT_SPONSORS_HINT": "정기 또는 일회성", - "SUPPORT_KOFI_HINT": "Buy me a coffee", + "SUPPORT_KOFI_HINT": "커피 한 잔으로 후원", "EPG_NOTE": "현재 EPG는 IPTVnator의 Electron 데스크톱 버전에서만 사용할 수 있습니다.", "EPG_NOTE_URL_TEXT": "여기에서 확인", "IMPORT_EXPORT_DATA": "플레이리스트 백업 가져오기/내보내기", @@ -805,16 +805,16 @@ "REASON_COMPATIBLE_DRM_PATH": "이 대상은 사용 가능한 암호화 데이터와 호환됩니다", "ACTION_OPEN_MPV": "MPV에서 열기", "ACTION_OPEN_VLC": "VLC에서 열기", - "ACTION_OPENING_MPV": "Opening MPV…", - "ACTION_OPENING_VLC": "Opening VLC…", - "ACTION_REOPEN_MPV": "Open MPV again", - "ACTION_REOPEN_VLC": "Open VLC again", - "ACTION_RETRY_MPV": "Try MPV again", - "ACTION_RETRY_VLC": "Try VLC again", - "EXTERNAL_OPENING": "Opening player…", - "EXTERNAL_STARTED": "Player started", - "EXTERNAL_PLAYING": "Playing", - "EXTERNAL_FAILED": "External player error", + "ACTION_OPENING_MPV": "MPV 여는 중…", + "ACTION_OPENING_VLC": "VLC 여는 중…", + "ACTION_REOPEN_MPV": "MPV에서 다시 열기", + "ACTION_REOPEN_VLC": "VLC에서 다시 열기", + "ACTION_RETRY_MPV": "MPV로 다시 시도", + "ACTION_RETRY_VLC": "VLC로 다시 시도", + "EXTERNAL_OPENING": "플레이어 여는 중…", + "EXTERNAL_STARTED": "플레이어 시작됨", + "EXTERNAL_PLAYING": "재생 중", + "EXTERNAL_FAILED": "외부 플레이어 오류", "ACTION_OPEN_MPV_HINT": "설정된 플레이어", "ACTION_OPEN_VLC_HINT": "설정된 플레이어", "ACTION_COPY_URL": "스트림 URL 복사", @@ -951,13 +951,13 @@ "CLOSE_FILTER": "필터 닫기", "SEARCH_PROGRAMS": "프로그램 검색", "CLOSE_PROGRAM_SEARCH": "프로그램 검색 닫기", - "LIVE_STREAM": "Live stream", + "LIVE_STREAM": "라이브 스트림", "ARCHIVE_PLAYBACK_UNAVAILABLE_TITLE": "아카이브 재생을 사용할 수 없습니다", "ARCHIVE_PLAYBACK_UNAVAILABLE_DESCRIPTION": "이 공급자는 채널의 편성 이력을 제공하지만 재생 가능한 아카이브/Catchup 재생은 제공하지 않습니다.", "EPG_NOT_AVAILABLE_CHANNEL_DESCRIPTION": "앱 설정에서 EPG 목록 URL을 추가하거나 변경해 주세요.", "FETCH_EPG": "EPG 데이터 가져 오기...", - "ERROR": "Ooops, EPG could not be loaded.", - "DOWNLOAD_SUCCESS": "EPG was successfully downloaded.", + "ERROR": "앗, EPG를 불러오지 못했습니다.", + "DOWNLOAD_SUCCESS": "EPG를 성공적으로 다운로드했습니다.", "NO_PROGRAM_INFO": "프로그램 정보가 없습니다", "PROGRAM_DIALOG": { "PROGRAM_DETAILS": "TV 프로그램에 대한 세부 사항", @@ -1111,16 +1111,16 @@ "GREEK": "Ελληνικά", "HUNGARIAN": "Magyar" }, - "YES": "Yes", - "NO": "No", + "YES": "예", + "NO": "아니요", "MENU": { - "OPEN": "Open menu", - "SUPPORT_ARIA": "Support IPTVnator on GitHub", - "SETTINGS_ARIA": "Open settings", - "BUG_REPORT": "Report a bug", - "WHAT_IS_NEW": "What is new", - "ABOUT": "About", - "ABOUT_ARIA": "About the application", + "OPEN": "메뉴 열기", + "SUPPORT_ARIA": "GitHub에서 IPTVnator 후원", + "SETTINGS_ARIA": "설정 열기", + "BUG_REPORT": "버그 신고", + "WHAT_IS_NEW": "새로운 내용", + "ABOUT": "정보", + "ABOUT_ARIA": "애플리케이션 정보", "SUPPORT_PROJECT": "지원사업" }, "ABOUT": { @@ -1759,12 +1759,12 @@ "RAIL_FAVORITES": "즐겨찾기", "RAIL_DOWNLOADS": "다운로드", "EXTERNAL_PLAYBACK_CLOSE": "플레이어 닫기", - "EXTERNAL_PLAYBACK_DISMISS": "Dismiss", - "EXTERNAL_PLAYBACK_OPENING": "Opening player…", - "EXTERNAL_PLAYBACK_STARTED": "Player started", - "EXTERNAL_PLAYBACK_PLAYING": "Playing", - "EXTERNAL_PLAYBACK_FAILED": "External player error", - "EXTERNAL_PLAYBACK_CLOSED": "Closed", + "EXTERNAL_PLAYBACK_DISMISS": "숨기기", + "EXTERNAL_PLAYBACK_OPENING": "플레이어 여는 중…", + "EXTERNAL_PLAYBACK_STARTED": "플레이어 시작됨", + "EXTERNAL_PLAYBACK_PLAYING": "재생 중", + "EXTERNAL_PLAYBACK_FAILED": "외부 플레이어 오류", + "EXTERNAL_PLAYBACK_CLOSED": "종료됨", "EXTERNAL_PLAYBACK_OPEN_IN_PLAYLIST": "재생목록에서 열기", "RAIL_ALL_CHANNELS": "모든 채널", "RAIL_GROUPS": "그룹", @@ -2033,49 +2033,49 @@ "FAILED_DETAIL": "저장된 소스를 다시 읽어 보세요. 데이터는 삭제되지 않았습니다." }, "SOURCE_HEALTH": { - "RECHECK": "Check again", - "M3U_SCOPE": "Playlist URL, not individual channels", + "RECHECK": "다시 확인", + "M3U_SCOPE": "개별 채널이 아닌 재생목록 URL만 확인합니다", "REASON": { - "available": "Available", - "disabled": "Account disabled", - "expired": "Subscription expired", - "auth": "Access denied; account status unconfirmed", - "http": "Server returned an error", - "timeout": "Check timed out", - "network": "Could not connect", - "paused": "Connection checks paused", - "invalid": "Unexpected response", - "unknown": "Not verified", - "cancelled": "Check cancelled", - "checking": "Checking…" + "available": "사용 가능", + "disabled": "계정 비활성화됨", + "expired": "구독 만료됨", + "auth": "접근 거부됨, 계정 상태 미확인", + "http": "서버에서 오류 반환", + "timeout": "확인 시간 초과", + "network": "연결할 수 없음", + "paused": "연결 확인 일시 중지됨", + "invalid": "예기치 않은 응답", + "unknown": "확인되지 않음", + "cancelled": "확인 취소됨", + "checking": "확인 중…" } }, "SOURCE_CLEANUP": { - "TITLE": "Clean up inactive sources…", - "SCOPE": "All network sources in your library, regardless of page filters.", - "CONSEQUENCES": "Delete only sources you select. Their saved favourites, history and playback progress will also be removed. Downloaded files are kept.", - "SUMMARY": "Checked {{checked}}/{{total}} · Available {{available}} · Deleted {{deleted}} · Skipped {{skipped}} · Failed {{failed}}", - "SELECT_ALL": "Select all candidates", - "SELECT_NONE": "Deselect all", - "UNTITLED": "Untitled source", - "DELETE": "Delete selected · {{count}}", - "CLOSE": "Close", - "STOP": "Stop after current source", - "CLEANUP_WARNING": "Source deleted; some follow-up cleanup failed", + "TITLE": "비활성 소스 정리…", + "SCOPE": "페이지 필터와 관계없이 라이브러리의 모든 네트워크 소스가 대상입니다.", + "CONSEQUENCES": "선택한 소스만 삭제됩니다. 해당 소스에 저장된 즐겨찾기, 시청 기록, 재생 진행률도 함께 제거됩니다. 다운로드한 파일은 유지됩니다.", + "SUMMARY": "확인 {{checked}}/{{total}} · 사용 가능 {{available}} · 삭제 {{deleted}} · 건너뜀 {{skipped}} · 실패 {{failed}}", + "SELECT_ALL": "모든 후보 선택", + "SELECT_NONE": "모두 선택 해제", + "UNTITLED": "제목 없는 소스", + "DELETE": "선택 항목 삭제 · {{count}}", + "CLOSE": "닫기", + "STOP": "현재 소스 처리 후 중지", + "CLEANUP_WARNING": "소스는 삭제되었지만 일부 후속 정리에 실패했습니다", "GROUP": { - "confirmed": "Confirmed inactive accounts", - "uncertain": "Review before deleting", - "skipped": "Skipped sources", - "results": "Deletion results" + "confirmed": "비활성으로 확인된 계정", + "uncertain": "삭제 전 검토 필요", + "skipped": "건너뛴 소스", + "results": "삭제 결과" }, "STATUS": { - "checking": "Checking…", - "skipped": "Playing, busy, changed or no longer present", - "deleting": "Deleting…", - "deleted": "Deleted", - "failed": "Deletion failed — select to retry" + "checking": "확인 중…", + "skipped": "재생 중, 작업 중, 변경됨 또는 이미 없음", + "deleting": "삭제 중…", + "deleted": "삭제됨", + "failed": "삭제 실패 — 다시 시도하려면 선택하세요" }, - "DELETE_PROGRESS": "Processed {{done}} of {{total}} selected sources" + "DELETE_PROGRESS": "선택한 소스 {{total}}개 중 {{done}}개 처리됨" }, "PARENTAL_LOCK": { "PIN_DIALOG": { diff --git a/apps/web/src/assets/i18n/nl.json b/apps/web/src/assets/i18n/nl.json index 375422f3a..69f8d27c5 100644 --- a/apps/web/src/assets/i18n/nl.json +++ b/apps/web/src/assets/i18n/nl.json @@ -2,7 +2,7 @@ "CANCEL": "Annuleren", "CLEAR": "Wissen", "CLEAR_SEARCH": "Zoekopdracht wissen", - "CLOSE": "Afsluiten", + "CLOSE": "Sluiten", "REMOVE": "Verwijderen", "BACK": "Terug", "SHOW_MORE": "Meer", @@ -85,7 +85,7 @@ "FROM_URL": "Toegevoegd vanuit URL", "IMPORT_DATE": "Importdatum", "CHANNELS": "Aantal kanalen", - "CLOSE": "Afsluiten", + "CLOSE": "Sluiten", "SAVE": "Opslaan", "USER_AGENT": "User-agent", "ORIGINAL_FILENAME": "Oorspronkelijke bestandsnaam", @@ -373,7 +373,7 @@ "REFRESH_EPG": "EPG vernieuwen", "REFRESH_ALL_EPG": "Alles vernieuwen", "REMOVE_EPG_SOURCE": "EPG-bron verwijderen", - "BROWSE_EPG_FILE": "Choose a local XMLTV file…", + "BROWSE_EPG_FILE": "Lokaal XMLTV-bestand kiezen…", "EPG_STATUS_FRESH": "Up-to-date", "EPG_STATUS_STALE": "Verouderd", "EPG_STATUS_ERROR": "Mislukt", @@ -418,9 +418,9 @@ "EPG_DATA_CLEAR_FAILED": "Wissen van EPG-gegevens mislukt. Probeer het opnieuw.", "CLEARING_EPG_DATA": "Wissen…", "EPG_URL_ERROR": "De opgegeven waarde is geen geldige URL.", - "EPG_SOURCE_LIST_TITLE": "Source list", - "EPG_SOURCE_FORMATS_HINT": "Remote XMLTV links (http/https) and files on this computer are both supported, as plain .xml or gzip-compressed .xml.gz. Local files need an absolute path or a file:// URL.", - "EPG_SOURCE_FORMATS_EXAMPLES": "Examples:", + "EPG_SOURCE_LIST_TITLE": "Bronnenlijst", + "EPG_SOURCE_FORMATS_HINT": "Zowel externe XMLTV-links (http/https) als bestanden op deze computer worden ondersteund, als gewone .xml of met gzip gecomprimeerde .xml.gz. Lokale bestanden vereisen een absoluut pad of een file://-URL.", + "EPG_SOURCE_FORMATS_EXAMPLES": "Voorbeelden:", "VIDEO_PLAYER_DESCRIPTION": "Selecteer de standaard videospeler", "WEB_PLAYER_SHARED_CONTROLS": "Uniforme bediening voor webspelers", "WEB_PLAYER_SHARED_CONTROLS_DESCRIPTION": "Gebruik de gedeelde IPTVnator-bediening in HTML5, Video.js en ArtPlayer.", @@ -805,16 +805,16 @@ "REASON_COMPATIBLE_DRM_PATH": "Dit doel is compatibel met de beschikbare versleutelingsgegevens", "ACTION_OPEN_MPV": "Openen in MPV", "ACTION_OPEN_VLC": "Openen in VLC", - "ACTION_OPENING_MPV": "Opening MPV…", - "ACTION_OPENING_VLC": "Opening VLC…", - "ACTION_REOPEN_MPV": "Open MPV again", - "ACTION_REOPEN_VLC": "Open VLC again", - "ACTION_RETRY_MPV": "Try MPV again", - "ACTION_RETRY_VLC": "Try VLC again", - "EXTERNAL_OPENING": "Opening player…", - "EXTERNAL_STARTED": "Player started", - "EXTERNAL_PLAYING": "Playing", - "EXTERNAL_FAILED": "External player error", + "ACTION_OPENING_MPV": "MPV wordt geopend…", + "ACTION_OPENING_VLC": "VLC wordt geopend…", + "ACTION_REOPEN_MPV": "MPV opnieuw openen", + "ACTION_REOPEN_VLC": "VLC opnieuw openen", + "ACTION_RETRY_MPV": "MPV opnieuw proberen", + "ACTION_RETRY_VLC": "VLC opnieuw proberen", + "EXTERNAL_OPENING": "Speler wordt geopend…", + "EXTERNAL_STARTED": "Speler gestart", + "EXTERNAL_PLAYING": "Speelt nu", + "EXTERNAL_FAILED": "Fout in externe speler", "ACTION_OPEN_MPV_HINT": "ingestelde speler", "ACTION_OPEN_VLC_HINT": "ingestelde speler", "ACTION_COPY_URL": "Stream-URL kopiëren", @@ -1759,12 +1759,12 @@ "RAIL_FAVORITES": "Favorieten", "RAIL_DOWNLOADS": "Downloads", "EXTERNAL_PLAYBACK_CLOSE": "Speler sluiten", - "EXTERNAL_PLAYBACK_DISMISS": "Dismiss", - "EXTERNAL_PLAYBACK_OPENING": "Opening player…", - "EXTERNAL_PLAYBACK_STARTED": "Player started", - "EXTERNAL_PLAYBACK_PLAYING": "Playing", - "EXTERNAL_PLAYBACK_FAILED": "External player error", - "EXTERNAL_PLAYBACK_CLOSED": "Closed", + "EXTERNAL_PLAYBACK_DISMISS": "Verbergen", + "EXTERNAL_PLAYBACK_OPENING": "Speler wordt geopend…", + "EXTERNAL_PLAYBACK_STARTED": "Speler gestart", + "EXTERNAL_PLAYBACK_PLAYING": "Speelt nu", + "EXTERNAL_PLAYBACK_FAILED": "Fout in externe speler", + "EXTERNAL_PLAYBACK_CLOSED": "Afgesloten", "EXTERNAL_PLAYBACK_OPEN_IN_PLAYLIST": "Openen in afspeellijst", "RAIL_ALL_CHANNELS": "Alle kanalen", "RAIL_GROUPS": "Groepen", @@ -2033,49 +2033,49 @@ "FAILED_DETAIL": "Probeer je opgeslagen bronnen opnieuw te lezen. Je gegevens zijn niet verwijderd." }, "SOURCE_HEALTH": { - "RECHECK": "Check again", - "M3U_SCOPE": "Playlist URL, not individual channels", + "RECHECK": "Opnieuw controleren", + "M3U_SCOPE": "Afspeellijst-URL, niet de afzonderlijke kanalen", "REASON": { - "available": "Available", - "disabled": "Account disabled", - "expired": "Subscription expired", - "auth": "Access denied; account status unconfirmed", - "http": "Server returned an error", - "timeout": "Check timed out", - "network": "Could not connect", - "paused": "Connection checks paused", - "invalid": "Unexpected response", - "unknown": "Not verified", - "cancelled": "Check cancelled", - "checking": "Checking…" + "available": "Beschikbaar", + "disabled": "Account uitgeschakeld", + "expired": "Abonnement verlopen", + "auth": "Toegang geweigerd; accountstatus niet bevestigd", + "http": "Server gaf een fout terug", + "timeout": "Time-out bij controle", + "network": "Kan geen verbinding maken", + "paused": "Verbindingscontroles gepauzeerd", + "invalid": "Onverwacht antwoord", + "unknown": "Niet geverifieerd", + "cancelled": "Controle geannuleerd", + "checking": "Wordt gecontroleerd…" } }, "SOURCE_CLEANUP": { - "TITLE": "Clean up inactive sources…", - "SCOPE": "All network sources in your library, regardless of page filters.", - "CONSEQUENCES": "Delete only sources you select. Their saved favourites, history and playback progress will also be removed. Downloaded files are kept.", - "SUMMARY": "Checked {{checked}}/{{total}} · Available {{available}} · Deleted {{deleted}} · Skipped {{skipped}} · Failed {{failed}}", - "SELECT_ALL": "Select all candidates", - "SELECT_NONE": "Deselect all", - "UNTITLED": "Untitled source", - "DELETE": "Delete selected · {{count}}", - "CLOSE": "Close", - "STOP": "Stop after current source", - "CLEANUP_WARNING": "Source deleted; some follow-up cleanup failed", + "TITLE": "Inactieve bronnen opschonen…", + "SCOPE": "Alle netwerkbronnen in de bibliotheek, ongeacht de paginafilters.", + "CONSEQUENCES": "Alleen de geselecteerde bronnen worden verwijderd. Hun opgeslagen favorieten, kijkgeschiedenis en afspeelvoortgang worden ook verwijderd. Gedownloade bestanden blijven behouden.", + "SUMMARY": "Gecontroleerd {{checked}}/{{total}} · Beschikbaar {{available}} · Verwijderd {{deleted}} · Overgeslagen {{skipped}} · Mislukt {{failed}}", + "SELECT_ALL": "Alle kandidaten selecteren", + "SELECT_NONE": "Alles deselecteren", + "UNTITLED": "Naamloze bron", + "DELETE": "Geselecteerde verwijderen · {{count}}", + "CLOSE": "Sluiten", + "STOP": "Stoppen na huidige bron", + "CLEANUP_WARNING": "Bron verwijderd; een deel van de aanvullende opschoning is mislukt", "GROUP": { - "confirmed": "Confirmed inactive accounts", - "uncertain": "Review before deleting", - "skipped": "Skipped sources", - "results": "Deletion results" + "confirmed": "Bevestigde inactieve accounts", + "uncertain": "Controleren vóór verwijderen", + "skipped": "Overgeslagen bronnen", + "results": "Resultaten van verwijderen" }, "STATUS": { - "checking": "Checking…", - "skipped": "Playing, busy, changed or no longer present", - "deleting": "Deleting…", - "deleted": "Deleted", - "failed": "Deletion failed — select to retry" + "checking": "Wordt gecontroleerd…", + "skipped": "Wordt afgespeeld, bezig, gewijzigd of niet meer aanwezig", + "deleting": "Wordt verwijderd…", + "deleted": "Verwijderd", + "failed": "Verwijderen mislukt — selecteer om opnieuw te proberen" }, - "DELETE_PROGRESS": "Processed {{done}} of {{total}} selected sources" + "DELETE_PROGRESS": "{{done}} van {{total}} geselecteerde bronnen verwerkt" }, "PARENTAL_LOCK": { "PIN_DIALOG": { diff --git a/apps/web/src/assets/i18n/pl.json b/apps/web/src/assets/i18n/pl.json index c95253de5..c3eaf6069 100644 --- a/apps/web/src/assets/i18n/pl.json +++ b/apps/web/src/assets/i18n/pl.json @@ -373,7 +373,7 @@ "REFRESH_EPG": "Odśwież EPG", "REFRESH_ALL_EPG": "Odśwież wszystko", "REMOVE_EPG_SOURCE": "Usuń źródło EPG", - "BROWSE_EPG_FILE": "Choose a local XMLTV file…", + "BROWSE_EPG_FILE": "Wybierz lokalny plik XMLTV…", "EPG_STATUS_FRESH": "Aktualne", "EPG_STATUS_STALE": "Wymaga odświeżenia", "EPG_STATUS_ERROR": "Błąd", @@ -418,9 +418,9 @@ "EPG_DATA_CLEAR_FAILED": "Nie udało się wyczyścić danych EPG. Spróbuj ponownie.", "CLEARING_EPG_DATA": "Czyszczenie…", "EPG_URL_ERROR": "Wartość nie jest prawidłowym URL", - "EPG_SOURCE_LIST_TITLE": "Source list", - "EPG_SOURCE_FORMATS_HINT": "Remote XMLTV links (http/https) and files on this computer are both supported, as plain .xml or gzip-compressed .xml.gz. Local files need an absolute path or a file:// URL.", - "EPG_SOURCE_FORMATS_EXAMPLES": "Examples:", + "EPG_SOURCE_LIST_TITLE": "Lista źródeł", + "EPG_SOURCE_FORMATS_HINT": "Obsługiwane są zarówno zdalne linki XMLTV (http/https), jak i pliki na tym komputerze, w postaci zwykłego pliku .xml lub skompresowanego gzipem .xml.gz. Dla plików lokalnych podaj ścieżkę bezwzględną lub URL file://.", + "EPG_SOURCE_FORMATS_EXAMPLES": "Przykłady:", "VIDEO_PLAYER_DESCRIPTION": "Wybierz domyślny odtwarzacz wideo", "WEB_PLAYER_SHARED_CONTROLS": "Ujednolicone sterowanie odtwarzaczami internetowymi", "WEB_PLAYER_SHARED_CONTROLS_DESCRIPTION": "Używaj wspólnych elementów sterowania IPTVnator w HTML5, Video.js i ArtPlayer.", @@ -805,16 +805,16 @@ "REASON_COMPATIBLE_DRM_PATH": "Ten cel jest zgodny z dostępnymi danymi szyfrowania", "ACTION_OPEN_MPV": "Otwórz w MPV", "ACTION_OPEN_VLC": "Otwórz w VLC", - "ACTION_OPENING_MPV": "Opening MPV…", - "ACTION_OPENING_VLC": "Opening VLC…", - "ACTION_REOPEN_MPV": "Open MPV again", - "ACTION_REOPEN_VLC": "Open VLC again", - "ACTION_RETRY_MPV": "Try MPV again", - "ACTION_RETRY_VLC": "Try VLC again", - "EXTERNAL_OPENING": "Opening player…", - "EXTERNAL_STARTED": "Player started", - "EXTERNAL_PLAYING": "Playing", - "EXTERNAL_FAILED": "External player error", + "ACTION_OPENING_MPV": "Otwieranie MPV…", + "ACTION_OPENING_VLC": "Otwieranie VLC…", + "ACTION_REOPEN_MPV": "Otwórz MPV ponownie", + "ACTION_REOPEN_VLC": "Otwórz VLC ponownie", + "ACTION_RETRY_MPV": "Spróbuj ponownie w MPV", + "ACTION_RETRY_VLC": "Spróbuj ponownie w VLC", + "EXTERNAL_OPENING": "Otwieranie odtwarzacza…", + "EXTERNAL_STARTED": "Odtwarzacz uruchomiony", + "EXTERNAL_PLAYING": "Odtwarzanie", + "EXTERNAL_FAILED": "Błąd zewnętrznego odtwarzacza", "ACTION_OPEN_MPV_HINT": "skonfigurowany odtwarzacz", "ACTION_OPEN_VLC_HINT": "skonfigurowany odtwarzacz", "ACTION_COPY_URL": "Kopiuj URL strumienia", @@ -1547,7 +1547,7 @@ "NEEDS_ATTENTION": "Wymaga uwagi", "READY_TO_WATCH": "Gotowe do oglądania", "OFFLINE": "Dostępne offline", - "OFFLINE_BADGE": "Tryb offline", + "OFFLINE_BADGE": "Dostępne offline", "FILTER": { "LABEL": "Filtruj pobrania", "ALL": "Wszystkie", @@ -1759,12 +1759,12 @@ "RAIL_FAVORITES": "Ulubione", "RAIL_DOWNLOADS": "Pobrane", "EXTERNAL_PLAYBACK_CLOSE": "Zamknij odtwarzacz", - "EXTERNAL_PLAYBACK_DISMISS": "Dismiss", - "EXTERNAL_PLAYBACK_OPENING": "Opening player…", - "EXTERNAL_PLAYBACK_STARTED": "Player started", - "EXTERNAL_PLAYBACK_PLAYING": "Playing", - "EXTERNAL_PLAYBACK_FAILED": "External player error", - "EXTERNAL_PLAYBACK_CLOSED": "Closed", + "EXTERNAL_PLAYBACK_DISMISS": "Ukryj", + "EXTERNAL_PLAYBACK_OPENING": "Otwieranie odtwarzacza…", + "EXTERNAL_PLAYBACK_STARTED": "Odtwarzacz uruchomiony", + "EXTERNAL_PLAYBACK_PLAYING": "Odtwarzanie", + "EXTERNAL_PLAYBACK_FAILED": "Błąd zewnętrznego odtwarzacza", + "EXTERNAL_PLAYBACK_CLOSED": "Zamknięty", "EXTERNAL_PLAYBACK_OPEN_IN_PLAYLIST": "Otwórz na liście odtwarzania", "RAIL_ALL_CHANNELS": "Wszystkie kanały", "RAIL_GROUPS": "Grupy", @@ -2033,49 +2033,49 @@ "FAILED_DETAIL": "Spróbuj ponownie odczytać zapisane źródła. Twoje dane nie zostały usunięte." }, "SOURCE_HEALTH": { - "RECHECK": "Check again", - "M3U_SCOPE": "Playlist URL, not individual channels", + "RECHECK": "Sprawdź ponownie", + "M3U_SCOPE": "URL listy odtwarzania, nie poszczególne kanały", "REASON": { - "available": "Available", - "disabled": "Account disabled", - "expired": "Subscription expired", - "auth": "Access denied; account status unconfirmed", - "http": "Server returned an error", - "timeout": "Check timed out", - "network": "Could not connect", - "paused": "Connection checks paused", - "invalid": "Unexpected response", - "unknown": "Not verified", - "cancelled": "Check cancelled", - "checking": "Checking…" + "available": "Dostępne", + "disabled": "Konto wyłączone", + "expired": "Subskrypcja wygasła", + "auth": "Odmowa dostępu; status konta niepotwierdzony", + "http": "Serwer zwrócił błąd", + "timeout": "Przekroczono limit czasu sprawdzania", + "network": "Nie udało się połączyć", + "paused": "Sprawdzanie połączenia wstrzymane", + "invalid": "Nieoczekiwana odpowiedź", + "unknown": "Niezweryfikowane", + "cancelled": "Sprawdzanie anulowane", + "checking": "Sprawdzanie…" } }, "SOURCE_CLEANUP": { - "TITLE": "Clean up inactive sources…", - "SCOPE": "All network sources in your library, regardless of page filters.", - "CONSEQUENCES": "Delete only sources you select. Their saved favourites, history and playback progress will also be removed. Downloaded files are kept.", - "SUMMARY": "Checked {{checked}}/{{total}} · Available {{available}} · Deleted {{deleted}} · Skipped {{skipped}} · Failed {{failed}}", - "SELECT_ALL": "Select all candidates", - "SELECT_NONE": "Deselect all", - "UNTITLED": "Untitled source", - "DELETE": "Delete selected · {{count}}", - "CLOSE": "Close", - "STOP": "Stop after current source", - "CLEANUP_WARNING": "Source deleted; some follow-up cleanup failed", + "TITLE": "Wyczyść nieaktywne źródła…", + "SCOPE": "Wszystkie źródła sieciowe w Twojej bibliotece, niezależnie od filtrów strony.", + "CONSEQUENCES": "Usuwane są tylko zaznaczone źródła. Ich zapisane ulubione, historia i postęp odtwarzania również zostaną usunięte. Pobrane pliki zostaną zachowane.", + "SUMMARY": "Sprawdzono {{checked}}/{{total}} · Dostępne {{available}} · Usunięto {{deleted}} · Pominięto {{skipped}} · Nieudane {{failed}}", + "SELECT_ALL": "Zaznacz wszystkie proponowane", + "SELECT_NONE": "Odznacz wszystkie", + "UNTITLED": "Źródło bez tytułu", + "DELETE": "Usuń zaznaczone · {{count}}", + "CLOSE": "Zamknij", + "STOP": "Zatrzymaj po bieżącym źródle", + "CLEANUP_WARNING": "Źródło usunięte; nie udało się wyczyścić części powiązanych danych", "GROUP": { - "confirmed": "Confirmed inactive accounts", - "uncertain": "Review before deleting", - "skipped": "Skipped sources", - "results": "Deletion results" + "confirmed": "Konta potwierdzone jako nieaktywne", + "uncertain": "Sprawdź przed usunięciem", + "skipped": "Pominięte źródła", + "results": "Wyniki usuwania" }, "STATUS": { - "checking": "Checking…", - "skipped": "Playing, busy, changed or no longer present", - "deleting": "Deleting…", - "deleted": "Deleted", - "failed": "Deletion failed — select to retry" + "checking": "Sprawdzanie…", + "skipped": "Odtwarzane, zajęte, zmienione lub już nieistniejące", + "deleting": "Usuwanie…", + "deleted": "Usunięte", + "failed": "Nie udało się usunąć — zaznacz, aby ponowić" }, - "DELETE_PROGRESS": "Processed {{done}} of {{total}} selected sources" + "DELETE_PROGRESS": "Przetworzono {{done}} z {{total}} zaznaczonych źródeł" }, "PARENTAL_LOCK": { "PIN_DIALOG": { diff --git a/apps/web/src/assets/i18n/pt.json b/apps/web/src/assets/i18n/pt.json index 055472192..ab15f4548 100644 --- a/apps/web/src/assets/i18n/pt.json +++ b/apps/web/src/assets/i18n/pt.json @@ -373,7 +373,7 @@ "REFRESH_EPG": "Atualizar EPG", "REFRESH_ALL_EPG": "Atualizar tudo", "REMOVE_EPG_SOURCE": "Remover fonte EPG", - "BROWSE_EPG_FILE": "Choose a local XMLTV file…", + "BROWSE_EPG_FILE": "Escolher um arquivo XMLTV local…", "EPG_STATUS_FRESH": "Atualizado", "EPG_STATUS_STALE": "Necessita atualização", "EPG_STATUS_ERROR": "Falha", @@ -418,9 +418,9 @@ "EPG_DATA_CLEAR_FAILED": "Falha ao limpar os dados de EPG. Tente novamente.", "CLEARING_EPG_DATA": "Limpando…", "EPG_URL_ERROR": "O valor não é uma URL válida", - "EPG_SOURCE_LIST_TITLE": "Source list", - "EPG_SOURCE_FORMATS_HINT": "Remote XMLTV links (http/https) and files on this computer are both supported, as plain .xml or gzip-compressed .xml.gz. Local files need an absolute path or a file:// URL.", - "EPG_SOURCE_FORMATS_EXAMPLES": "Examples:", + "EPG_SOURCE_LIST_TITLE": "Lista de fontes", + "EPG_SOURCE_FORMATS_HINT": "São aceitos tanto links XMLTV remotos (http/https) quanto arquivos neste computador, em .xml simples ou .xml.gz compactado com gzip. Arquivos locais precisam de um caminho absoluto ou de uma URL file://.", + "EPG_SOURCE_FORMATS_EXAMPLES": "Exemplos:", "VIDEO_PLAYER_DESCRIPTION": "Selecionar reprodutor de vídeo padrão", "WEB_PLAYER_SHARED_CONTROLS": "Controlos unificados para leitores web", "WEB_PLAYER_SHARED_CONTROLS_DESCRIPTION": "Usa os controlos partilhados do IPTVnator em HTML5, Video.js e ArtPlayer.", @@ -805,16 +805,16 @@ "REASON_COMPATIBLE_DRM_PATH": "Este destino é compatível com os dados de criptografia disponíveis", "ACTION_OPEN_MPV": "Abrir no MPV", "ACTION_OPEN_VLC": "Abrir no VLC", - "ACTION_OPENING_MPV": "Opening MPV…", - "ACTION_OPENING_VLC": "Opening VLC…", - "ACTION_REOPEN_MPV": "Open MPV again", - "ACTION_REOPEN_VLC": "Open VLC again", - "ACTION_RETRY_MPV": "Try MPV again", - "ACTION_RETRY_VLC": "Try VLC again", - "EXTERNAL_OPENING": "Opening player…", - "EXTERNAL_STARTED": "Player started", - "EXTERNAL_PLAYING": "Playing", - "EXTERNAL_FAILED": "External player error", + "ACTION_OPENING_MPV": "Abrindo o MPV…", + "ACTION_OPENING_VLC": "Abrindo o VLC…", + "ACTION_REOPEN_MPV": "Abrir o MPV novamente", + "ACTION_REOPEN_VLC": "Abrir o VLC novamente", + "ACTION_RETRY_MPV": "Tentar novamente no MPV", + "ACTION_RETRY_VLC": "Tentar novamente no VLC", + "EXTERNAL_OPENING": "Abrindo reprodutor…", + "EXTERNAL_STARTED": "Reprodutor iniciado", + "EXTERNAL_PLAYING": "Reproduzindo", + "EXTERNAL_FAILED": "Erro no reprodutor externo", "ACTION_OPEN_MPV_HINT": "reprodutor configurado", "ACTION_OPEN_VLC_HINT": "reprodutor configurado", "ACTION_COPY_URL": "Copiar URL do stream", @@ -1217,7 +1217,7 @@ "ACCOUNT_INFO": { "TITLE": "Informações da conta", "USER_INFO": "Informações do usuário", - "STATUS": "Status", + "STATUS": "Estado", "USERNAME": "Nome de usuário", "ACTIVE_CONNECTIONS": "Conexões ativas", "CREATED": "Criada", @@ -1455,7 +1455,7 @@ "OPEN_IN_EXTERNAL_PLAYER": "Abrir no reprodutor externo", "SHOW_IN_CATEGORY": "Mostrar na categoria", "HIDE_FROM_CONTINUE_WATCHING": "Ocultar de «Continuar assistindo»", - "GROUP_WATCHING": "Assistindo", + "GROUP_WATCHING": "Visualização", "GROUP_SOURCE": "Fonte", "DURATION_HOURS_MINUTES": "{{hours}} h {{minutes}} min", "DURATION_MINUTES": "{{minutes}} min", @@ -1759,12 +1759,12 @@ "RAIL_FAVORITES": "Favoritos", "RAIL_DOWNLOADS": "Downloads", "EXTERNAL_PLAYBACK_CLOSE": "Fechar reprodutor", - "EXTERNAL_PLAYBACK_DISMISS": "Dismiss", - "EXTERNAL_PLAYBACK_OPENING": "Opening player…", - "EXTERNAL_PLAYBACK_STARTED": "Player started", - "EXTERNAL_PLAYBACK_PLAYING": "Playing", - "EXTERNAL_PLAYBACK_FAILED": "External player error", - "EXTERNAL_PLAYBACK_CLOSED": "Closed", + "EXTERNAL_PLAYBACK_DISMISS": "Ocultar", + "EXTERNAL_PLAYBACK_OPENING": "Abrindo reprodutor…", + "EXTERNAL_PLAYBACK_STARTED": "Reprodutor iniciado", + "EXTERNAL_PLAYBACK_PLAYING": "Reproduzindo", + "EXTERNAL_PLAYBACK_FAILED": "Erro no reprodutor externo", + "EXTERNAL_PLAYBACK_CLOSED": "Fechado", "EXTERNAL_PLAYBACK_OPEN_IN_PLAYLIST": "Abrir na playlist", "RAIL_ALL_CHANNELS": "Todos os canais", "RAIL_GROUPS": "Grupos", @@ -2033,49 +2033,49 @@ "FAILED_DETAIL": "Tente ler novamente as fontes guardadas. Os seus dados não foram eliminados." }, "SOURCE_HEALTH": { - "RECHECK": "Check again", - "M3U_SCOPE": "Playlist URL, not individual channels", + "RECHECK": "Verificar novamente", + "M3U_SCOPE": "URL da playlist, não canais individuais", "REASON": { - "available": "Available", - "disabled": "Account disabled", - "expired": "Subscription expired", - "auth": "Access denied; account status unconfirmed", - "http": "Server returned an error", - "timeout": "Check timed out", - "network": "Could not connect", - "paused": "Connection checks paused", - "invalid": "Unexpected response", - "unknown": "Not verified", - "cancelled": "Check cancelled", - "checking": "Checking…" + "available": "Disponível", + "disabled": "Conta desativada", + "expired": "Assinatura expirada", + "auth": "Acesso negado; status da conta não confirmado", + "http": "O servidor retornou um erro", + "timeout": "Tempo de verificação esgotado", + "network": "Não foi possível conectar", + "paused": "Verificações de conexão pausadas", + "invalid": "Resposta inesperada", + "unknown": "Não verificada", + "cancelled": "Verificação cancelada", + "checking": "Verificando…" } }, "SOURCE_CLEANUP": { - "TITLE": "Clean up inactive sources…", - "SCOPE": "All network sources in your library, regardless of page filters.", - "CONSEQUENCES": "Delete only sources you select. Their saved favourites, history and playback progress will also be removed. Downloaded files are kept.", - "SUMMARY": "Checked {{checked}}/{{total}} · Available {{available}} · Deleted {{deleted}} · Skipped {{skipped}} · Failed {{failed}}", - "SELECT_ALL": "Select all candidates", - "SELECT_NONE": "Deselect all", - "UNTITLED": "Untitled source", - "DELETE": "Delete selected · {{count}}", - "CLOSE": "Close", - "STOP": "Stop after current source", - "CLEANUP_WARNING": "Source deleted; some follow-up cleanup failed", + "TITLE": "Limpar fontes inativas…", + "SCOPE": "Todas as fontes de rede da sua biblioteca, independentemente dos filtros da página.", + "CONSEQUENCES": "Somente as fontes que você selecionar serão excluídas. Os favoritos, o histórico e o progresso de reprodução salvos dessas fontes também serão removidos. Os arquivos baixados são mantidos.", + "SUMMARY": "Verificadas {{checked}}/{{total}} · Disponíveis {{available}} · Excluídas {{deleted}} · Ignoradas {{skipped}} · Falhas {{failed}}", + "SELECT_ALL": "Selecionar todas as candidatas", + "SELECT_NONE": "Desmarcar todos", + "UNTITLED": "Fonte sem título", + "DELETE": "Excluir selecionadas · {{count}}", + "CLOSE": "Fechar", + "STOP": "Parar após a fonte atual", + "CLEANUP_WARNING": "Fonte excluída; parte da limpeza complementar falhou", "GROUP": { - "confirmed": "Confirmed inactive accounts", - "uncertain": "Review before deleting", - "skipped": "Skipped sources", - "results": "Deletion results" + "confirmed": "Contas inativas confirmadas", + "uncertain": "Revisar antes de excluir", + "skipped": "Fontes ignoradas", + "results": "Resultados da exclusão" }, "STATUS": { - "checking": "Checking…", - "skipped": "Playing, busy, changed or no longer present", - "deleting": "Deleting…", - "deleted": "Deleted", - "failed": "Deletion failed — select to retry" + "checking": "Verificando…", + "skipped": "Em reprodução, ocupada, alterada ou não existe mais", + "deleting": "Excluindo…", + "deleted": "Excluída", + "failed": "Falha ao excluir — selecione para tentar novamente" }, - "DELETE_PROGRESS": "Processed {{done}} of {{total}} selected sources" + "DELETE_PROGRESS": "Processadas {{done}} de {{total}} fontes selecionadas" }, "PARENTAL_LOCK": { "PIN_DIALOG": { diff --git a/apps/web/src/assets/i18n/ru.json b/apps/web/src/assets/i18n/ru.json index 1461bf5ae..91867c5de 100644 --- a/apps/web/src/assets/i18n/ru.json +++ b/apps/web/src/assets/i18n/ru.json @@ -307,7 +307,7 @@ "RESET_DESCRIPTION": "Навсегда удалить контент, сохранённый в этом приложении.", "ABOUT": "О приложении", "NAV_GENERAL": "Общие", - "NAV_PLAYBACK": "Плеер", + "NAV_PLAYBACK": "Воспроизведение", "NAV_EPG": "EPG", "NAV_REMOTE": "Пульт", "NAV_DATA": "Данные", @@ -385,7 +385,7 @@ "PLAYER_MPV": "MPV-плеер", "PLAYER_VLC": "VLC", "VIDEO_PLAYER_PLACEHOLDER": "Выберите из списка", - "VERSION": "Версия приложения", + "VERSION": "Версия", "SAVE_CHANGES": "Сохранить", "UNSAVED_CHANGES": "У вас есть несохранённые изменения", "DISCARD_CHANGES": "Отменить изменения", @@ -531,7 +531,7 @@ "EXTERNAL_PLAYER_ARGUMENTS_HINT": "Используйте один аргумент на строку. Эти значения применяются перед параметрами IPTVnator, специфичными для потока.", "VLC_REUSE_INSTANCE_LABEL": "Переиспользовать экземпляр VLC", "VLC_REUSE_INSTANCE_DESCRIPTION": "Когда включено, одно и то же окно VLC будет использоваться для воспроизведения разных потоков. Когда отключено, каждый поток открывается в новом окне VLC.", - "REMOTE_CONTROL": "Удалённое управление", + "REMOTE_CONTROL": "Дистанционное управление", "REMOTE_CONTROL_DESCRIPTION": "Включить удалённое управление приложением.", "REMOTE_CONTROL_PORT": "Порт удалённого управления", "REMOTE_CONTROL_PORT_DESCRIPTION": "Порт для удалённого управления приложением. По умолчанию используется порт 8765.", @@ -868,7 +868,7 @@ "SEARCH_GROUPS": "Поиск групп", "UNGROUPED": "Негруппированные", "UNNAMED_CHANNEL": "Канал без названия", - "FAVORITES": "Избранные", + "FAVORITES": "Избранное", "FAVORITE": "Избранное", "NO_FAVORITES": "Избранных каналов пока нет", "USE_STAR_TO_FAVORITE": "Используйте иконку звезды, чтобы добавлять каналы в избранное", @@ -2056,7 +2056,7 @@ "CONSEQUENCES": "Удаляются только выбранные источники, вместе с их избранным, историей и прогрессом воспроизведения. Скачанные файлы сохраняются.", "SUMMARY": "Проверено {{checked}}/{{total}} · Доступно {{available}} · Удалено {{deleted}} · Пропущено {{skipped}} · Ошибок {{failed}}", "SELECT_ALL": "Выбрать всех кандидатов", - "SELECT_NONE": "Снять выбор", + "SELECT_NONE": "Снять выделение", "UNTITLED": "Источник без названия", "DELETE": "Удалить выбранные · {{count}}", "CLOSE": "Закрыть", diff --git a/apps/web/src/assets/i18n/tr.json b/apps/web/src/assets/i18n/tr.json index ad0f228a0..f54f32a7d 100644 --- a/apps/web/src/assets/i18n/tr.json +++ b/apps/web/src/assets/i18n/tr.json @@ -373,7 +373,7 @@ "REFRESH_EPG": "EPG'yi yenile", "REFRESH_ALL_EPG": "Tümünü yenile", "REMOVE_EPG_SOURCE": "EPG kaynağını kaldır", - "BROWSE_EPG_FILE": "Choose a local XMLTV file…", + "BROWSE_EPG_FILE": "Yerel XMLTV dosyası seç…", "EPG_STATUS_FRESH": "Güncel", "EPG_STATUS_STALE": "Yenilenmeli", "EPG_STATUS_ERROR": "Başarısız", @@ -418,9 +418,9 @@ "EPG_DATA_CLEAR_FAILED": "EPG verileri temizlenemedi. Lütfen tekrar deneyin.", "CLEARING_EPG_DATA": "Temizleniyor…", "EPG_URL_ERROR": "Girilen değer geçerli bir URL değildir", - "EPG_SOURCE_LIST_TITLE": "Source list", - "EPG_SOURCE_FORMATS_HINT": "Remote XMLTV links (http/https) and files on this computer are both supported, as plain .xml or gzip-compressed .xml.gz. Local files need an absolute path or a file:// URL.", - "EPG_SOURCE_FORMATS_EXAMPLES": "Examples:", + "EPG_SOURCE_LIST_TITLE": "Kaynak listesi", + "EPG_SOURCE_FORMATS_HINT": "Hem uzak XMLTV bağlantıları (http/https) hem de bu bilgisayardaki dosyalar, düz .xml veya gzip ile sıkıştırılmış .xml.gz biçiminde desteklenir. Yerel dosyalar için mutlak bir yol veya file:// URL’si gerekir.", + "EPG_SOURCE_FORMATS_EXAMPLES": "Örnekler:", "VIDEO_PLAYER_DESCRIPTION": "Varsayılan video oynatıcıyı seçin", "WEB_PLAYER_SHARED_CONTROLS": "Web oynatıcıları için birleşik kontroller", "WEB_PLAYER_SHARED_CONTROLS_DESCRIPTION": "HTML5, Video.js ve ArtPlayer'da IPTVnator'ın ortak kontrollerini kullan.", @@ -805,16 +805,16 @@ "REASON_COMPATIBLE_DRM_PATH": "Bu hedef kullanılabilir şifreleme verileriyle uyumludur", "ACTION_OPEN_MPV": "MPV’de aç", "ACTION_OPEN_VLC": "VLC’de aç", - "ACTION_OPENING_MPV": "Opening MPV…", - "ACTION_OPENING_VLC": "Opening VLC…", - "ACTION_REOPEN_MPV": "Open MPV again", - "ACTION_REOPEN_VLC": "Open VLC again", - "ACTION_RETRY_MPV": "Try MPV again", - "ACTION_RETRY_VLC": "Try VLC again", - "EXTERNAL_OPENING": "Opening player…", - "EXTERNAL_STARTED": "Player started", - "EXTERNAL_PLAYING": "Playing", - "EXTERNAL_FAILED": "External player error", + "ACTION_OPENING_MPV": "MPV açılıyor…", + "ACTION_OPENING_VLC": "VLC açılıyor…", + "ACTION_REOPEN_MPV": "MPV’yi yeniden aç", + "ACTION_REOPEN_VLC": "VLC’yi yeniden aç", + "ACTION_RETRY_MPV": "MPV ile yeniden dene", + "ACTION_RETRY_VLC": "VLC ile yeniden dene", + "EXTERNAL_OPENING": "Oynatıcı açılıyor…", + "EXTERNAL_STARTED": "Oynatıcı başlatıldı", + "EXTERNAL_PLAYING": "Oynatılıyor", + "EXTERNAL_FAILED": "Harici oynatıcı hatası", "ACTION_OPEN_MPV_HINT": "yapılandırılmış oynatıcı", "ACTION_OPEN_VLC_HINT": "yapılandırılmış oynatıcı", "ACTION_COPY_URL": "Akış URL’sini kopyala", @@ -933,7 +933,7 @@ "TITLE": "Grupları yönet", "SELECTED": "Seçildi", "SELECT_ALL": "Tümünü seç", - "DESELECT_ALL": "Tümünü kaldır", + "DESELECT_ALL": "Tümünün seçimini kaldır", "SEARCH_PLACEHOLDER": "Grupları ara...", "NO_RESULTS": "Eşleşen grup bulunamadı", "SAVE": "Kaydet" @@ -1759,12 +1759,12 @@ "RAIL_FAVORITES": "Favoriler", "RAIL_DOWNLOADS": "İndirilenler", "EXTERNAL_PLAYBACK_CLOSE": "Oynatıcıyı kapat", - "EXTERNAL_PLAYBACK_DISMISS": "Dismiss", - "EXTERNAL_PLAYBACK_OPENING": "Opening player…", - "EXTERNAL_PLAYBACK_STARTED": "Player started", - "EXTERNAL_PLAYBACK_PLAYING": "Playing", - "EXTERNAL_PLAYBACK_FAILED": "External player error", - "EXTERNAL_PLAYBACK_CLOSED": "Closed", + "EXTERNAL_PLAYBACK_DISMISS": "Gizle", + "EXTERNAL_PLAYBACK_OPENING": "Oynatıcı açılıyor…", + "EXTERNAL_PLAYBACK_STARTED": "Oynatıcı başlatıldı", + "EXTERNAL_PLAYBACK_PLAYING": "Oynatılıyor", + "EXTERNAL_PLAYBACK_FAILED": "Harici oynatıcı hatası", + "EXTERNAL_PLAYBACK_CLOSED": "Kapatıldı", "EXTERNAL_PLAYBACK_OPEN_IN_PLAYLIST": "Oynatma listesinde aç", "RAIL_ALL_CHANNELS": "Tüm kanallar", "RAIL_GROUPS": "Gruplar", @@ -2033,49 +2033,49 @@ "FAILED_DETAIL": "Kayıtlı kaynaklarınızı okumayı yeniden deneyin. Verileriniz silinmedi." }, "SOURCE_HEALTH": { - "RECHECK": "Check again", - "M3U_SCOPE": "Playlist URL, not individual channels", + "RECHECK": "Tekrar denetle", + "M3U_SCOPE": "Oynatma listesi URL’si, tek tek kanallar değil", "REASON": { - "available": "Available", - "disabled": "Account disabled", - "expired": "Subscription expired", - "auth": "Access denied; account status unconfirmed", - "http": "Server returned an error", - "timeout": "Check timed out", - "network": "Could not connect", - "paused": "Connection checks paused", - "invalid": "Unexpected response", - "unknown": "Not verified", - "cancelled": "Check cancelled", - "checking": "Checking…" + "available": "Kullanılabilir", + "disabled": "Hesap devre dışı", + "expired": "Abonelik süresi doldu", + "auth": "Erişim reddedildi; hesap durumu doğrulanamadı", + "http": "Sunucu hata döndürdü", + "timeout": "Kontrol zaman aşımına uğradı", + "network": "Bağlanılamadı", + "paused": "Bağlantı kontrolleri duraklatıldı", + "invalid": "Beklenmeyen yanıt", + "unknown": "Kontrol edilmedi", + "cancelled": "Kontrol iptal edildi", + "checking": "Kontrol ediliyor…" } }, "SOURCE_CLEANUP": { - "TITLE": "Clean up inactive sources…", - "SCOPE": "All network sources in your library, regardless of page filters.", - "CONSEQUENCES": "Delete only sources you select. Their saved favourites, history and playback progress will also be removed. Downloaded files are kept.", - "SUMMARY": "Checked {{checked}}/{{total}} · Available {{available}} · Deleted {{deleted}} · Skipped {{skipped}} · Failed {{failed}}", - "SELECT_ALL": "Select all candidates", - "SELECT_NONE": "Deselect all", - "UNTITLED": "Untitled source", - "DELETE": "Delete selected · {{count}}", - "CLOSE": "Close", - "STOP": "Stop after current source", - "CLEANUP_WARNING": "Source deleted; some follow-up cleanup failed", + "TITLE": "Etkin olmayan kaynakları temizle…", + "SCOPE": "Sayfa filtrelerinden bağımsız olarak kitaplığınızdaki tüm ağ kaynakları.", + "CONSEQUENCES": "Yalnızca seçtiğiniz kaynaklar silinir. Bu kaynakların kayıtlı favorileri, geçmişi ve oynatma ilerlemesi de kaldırılır. İndirilen dosyalar korunur.", + "SUMMARY": "Kontrol edildi {{checked}}/{{total}} · Kullanılabilir {{available}} · Silindi {{deleted}} · Atlandı {{skipped}} · Başarısız {{failed}}", + "SELECT_ALL": "Tüm adayları seç", + "SELECT_NONE": "Tümünün seçimini kaldır", + "UNTITLED": "Adsız kaynak", + "DELETE": "Seçilenleri sil · {{count}}", + "CLOSE": "Kapat", + "STOP": "Geçerli kaynaktan sonra durdur", + "CLEANUP_WARNING": "Kaynak silindi; bazı ek temizleme işlemleri başarısız oldu", "GROUP": { - "confirmed": "Confirmed inactive accounts", - "uncertain": "Review before deleting", - "skipped": "Skipped sources", - "results": "Deletion results" + "confirmed": "Etkin olmadığı doğrulanan hesaplar", + "uncertain": "Silmeden önce gözden geçirin", + "skipped": "Atlanan kaynaklar", + "results": "Silme sonuçları" }, "STATUS": { - "checking": "Checking…", - "skipped": "Playing, busy, changed or no longer present", - "deleting": "Deleting…", - "deleted": "Deleted", - "failed": "Deletion failed — select to retry" + "checking": "Kontrol ediliyor…", + "skipped": "Oynatılıyor, meşgul, değişmiş veya artık mevcut değil", + "deleting": "Siliniyor…", + "deleted": "Silindi", + "failed": "Silinemedi — yeniden denemek için seçin" }, - "DELETE_PROGRESS": "Processed {{done}} of {{total}} selected sources" + "DELETE_PROGRESS": "Seçilen {{total}} kaynaktan {{done}} tanesi işlendi" }, "PARENTAL_LOCK": { "PIN_DIALOG": { diff --git a/apps/web/src/assets/i18n/zh.json b/apps/web/src/assets/i18n/zh.json index 4f853bccc..9318a271e 100644 --- a/apps/web/src/assets/i18n/zh.json +++ b/apps/web/src/assets/i18n/zh.json @@ -373,7 +373,7 @@ "REFRESH_EPG": "刷新电子节目单EPG", "REFRESH_ALL_EPG": "全部刷新", "REMOVE_EPG_SOURCE": "移除 EPG 源", - "BROWSE_EPG_FILE": "Choose a local XMLTV file…", + "BROWSE_EPG_FILE": "选择本地 XMLTV 文件…", "EPG_STATUS_FRESH": "已更新", "EPG_STATUS_STALE": "需要刷新", "EPG_STATUS_ERROR": "失败", @@ -418,9 +418,9 @@ "EPG_DATA_CLEAR_FAILED": "清除 EPG 数据失败。请重试。", "CLEARING_EPG_DATA": "清除中…", "EPG_URL_ERROR": "该值不是有效的 URL", - "EPG_SOURCE_LIST_TITLE": "Source list", - "EPG_SOURCE_FORMATS_HINT": "Remote XMLTV links (http/https) and files on this computer are both supported, as plain .xml or gzip-compressed .xml.gz. Local files need an absolute path or a file:// URL.", - "EPG_SOURCE_FORMATS_EXAMPLES": "Examples:", + "EPG_SOURCE_LIST_TITLE": "源列表", + "EPG_SOURCE_FORMATS_HINT": "支持远程 XMLTV 链接(http/https)和本机上的文件,格式可以是普通 .xml 或经 gzip 压缩的 .xml.gz。本地文件需要使用绝对路径或 file:// URL。", + "EPG_SOURCE_FORMATS_EXAMPLES": "示例:", "VIDEO_PLAYER_DESCRIPTION": "选择默认视频播放器", "WEB_PLAYER_SHARED_CONTROLS": "Web 播放器统一控件", "WEB_PLAYER_SHARED_CONTROLS_DESCRIPTION": "在 HTML5、Video.js 和 ArtPlayer 中使用 IPTVnator 的共享控件。", @@ -805,19 +805,19 @@ "REASON_COMPATIBLE_DRM_PATH": "此目标与可用的加密数据兼容", "ACTION_OPEN_MPV": "在 MPV 中打开", "ACTION_OPEN_VLC": "在 VLC 中打开", - "ACTION_OPENING_MPV": "Opening MPV…", - "ACTION_OPENING_VLC": "Opening VLC…", - "ACTION_REOPEN_MPV": "Open MPV again", - "ACTION_REOPEN_VLC": "Open VLC again", - "ACTION_RETRY_MPV": "Try MPV again", - "ACTION_RETRY_VLC": "Try VLC again", - "EXTERNAL_OPENING": "Opening player…", - "EXTERNAL_STARTED": "Player started", - "EXTERNAL_PLAYING": "Playing", - "EXTERNAL_FAILED": "External player error", + "ACTION_OPENING_MPV": "正在打开 MPV…", + "ACTION_OPENING_VLC": "正在打开 VLC…", + "ACTION_REOPEN_MPV": "再次打开 MPV", + "ACTION_REOPEN_VLC": "再次打开 VLC", + "ACTION_RETRY_MPV": "再次尝试 MPV", + "ACTION_RETRY_VLC": "再次尝试 VLC", + "EXTERNAL_OPENING": "正在打开播放器…", + "EXTERNAL_STARTED": "播放器已启动", + "EXTERNAL_PLAYING": "正在播放", + "EXTERNAL_FAILED": "外部播放器错误", "ACTION_OPEN_MPV_HINT": "已配置的播放器", "ACTION_OPEN_VLC_HINT": "已配置的播放器", - "ACTION_COPY_URL": "复制 URL", + "ACTION_COPY_URL": "复制流 URL", "ACTION_RETRY": "重试", "DETAILS_SUMMARY": "技术详情", "CODEC_HINT": "检测到 {{codecs}}。Chromium/Electron 浏览器播放器通常对此类编码支持有限。", @@ -962,7 +962,7 @@ "PROGRAM_DIALOG": { "PROGRAM_DETAILS": "电视节目详情", "TITLE": "标题", - "CATEGORY": "类别", + "CATEGORY": "分类", "PARENTAL_RATING_SYSTEM": "电视内容分级系统", "DESCRIPTION": "描述", "LANGUAGE": "语言", @@ -1554,7 +1554,7 @@ "MOVIES": "电影", "SERIES": "剧集", "IN_PROGRESS": "进行中", - "RECORDINGS": "录制" + "RECORDINGS": "录制内容" }, "RECORDING_NOW": "正在录制", "RECORDINGS": "录制内容", @@ -1759,12 +1759,12 @@ "RAIL_FAVORITES": "收藏", "RAIL_DOWNLOADS": "下载", "EXTERNAL_PLAYBACK_CLOSE": "关闭播放器", - "EXTERNAL_PLAYBACK_DISMISS": "Dismiss", - "EXTERNAL_PLAYBACK_OPENING": "Opening player…", - "EXTERNAL_PLAYBACK_STARTED": "Player started", - "EXTERNAL_PLAYBACK_PLAYING": "Playing", - "EXTERNAL_PLAYBACK_FAILED": "External player error", - "EXTERNAL_PLAYBACK_CLOSED": "Closed", + "EXTERNAL_PLAYBACK_DISMISS": "隐藏", + "EXTERNAL_PLAYBACK_OPENING": "正在打开播放器…", + "EXTERNAL_PLAYBACK_STARTED": "播放器已启动", + "EXTERNAL_PLAYBACK_PLAYING": "正在播放", + "EXTERNAL_PLAYBACK_FAILED": "外部播放器错误", + "EXTERNAL_PLAYBACK_CLOSED": "已关闭", "EXTERNAL_PLAYBACK_OPEN_IN_PLAYLIST": "在播放列表中打开", "RAIL_ALL_CHANNELS": "所有频道", "RAIL_GROUPS": "分组", @@ -2033,49 +2033,49 @@ "FAILED_DETAIL": "请重试读取已保存的来源。您的数据未被删除。" }, "SOURCE_HEALTH": { - "RECHECK": "Check again", - "M3U_SCOPE": "Playlist URL, not individual channels", + "RECHECK": "再次检查", + "M3U_SCOPE": "仅检查播放列表 URL,不检查单个频道", "REASON": { - "available": "Available", - "disabled": "Account disabled", - "expired": "Subscription expired", - "auth": "Access denied; account status unconfirmed", - "http": "Server returned an error", - "timeout": "Check timed out", - "network": "Could not connect", - "paused": "Connection checks paused", - "invalid": "Unexpected response", - "unknown": "Not verified", - "cancelled": "Check cancelled", - "checking": "Checking…" + "available": "可用", + "disabled": "账户已禁用", + "expired": "订阅已过期", + "auth": "访问被拒绝;无法确认账户状态", + "http": "服务器返回错误", + "timeout": "检查超时", + "network": "无法连接", + "paused": "连接检查已暂停", + "invalid": "响应异常", + "unknown": "未验证", + "cancelled": "检查已取消", + "checking": "正在检查…" } }, "SOURCE_CLEANUP": { - "TITLE": "Clean up inactive sources…", - "SCOPE": "All network sources in your library, regardless of page filters.", - "CONSEQUENCES": "Delete only sources you select. Their saved favourites, history and playback progress will also be removed. Downloaded files are kept.", - "SUMMARY": "Checked {{checked}}/{{total}} · Available {{available}} · Deleted {{deleted}} · Skipped {{skipped}} · Failed {{failed}}", - "SELECT_ALL": "Select all candidates", - "SELECT_NONE": "Deselect all", - "UNTITLED": "Untitled source", - "DELETE": "Delete selected · {{count}}", - "CLOSE": "Close", - "STOP": "Stop after current source", - "CLEANUP_WARNING": "Source deleted; some follow-up cleanup failed", + "TITLE": "清理失效的源…", + "SCOPE": "媒体库中的所有网络源,不受页面筛选条件影响。", + "CONSEQUENCES": "仅删除您选择的源。其保存的收藏、观看历史和播放进度也将一并移除。已下载的文件会保留。", + "SUMMARY": "已检查 {{checked}}/{{total}} · 可用 {{available}} · 已删除 {{deleted}} · 已跳过 {{skipped}} · 失败 {{failed}}", + "SELECT_ALL": "全选候选源", + "SELECT_NONE": "取消全选", + "UNTITLED": "未命名源", + "DELETE": "删除所选 · {{count}}", + "CLOSE": "关闭", + "STOP": "当前源完成后停止", + "CLEANUP_WARNING": "源已删除,但部分后续清理失败", "GROUP": { - "confirmed": "Confirmed inactive accounts", - "uncertain": "Review before deleting", - "skipped": "Skipped sources", - "results": "Deletion results" + "confirmed": "已确认失效的账户", + "uncertain": "删除前请确认", + "skipped": "已跳过的源", + "results": "删除结果" }, "STATUS": { - "checking": "Checking…", - "skipped": "Playing, busy, changed or no longer present", - "deleting": "Deleting…", - "deleted": "Deleted", - "failed": "Deletion failed — select to retry" + "checking": "正在检查…", + "skipped": "正在播放、正忙、已更改或已不存在", + "deleting": "正在删除…", + "deleted": "已删除", + "failed": "删除失败 — 勾选以重试" }, - "DELETE_PROGRESS": "Processed {{done}} of {{total}} selected sources" + "DELETE_PROGRESS": "已处理所选 {{total}} 个源中的 {{done}} 个" }, "PARENTAL_LOCK": { "PIN_DIALOG": { diff --git a/apps/web/src/assets/i18n/zhtw.json b/apps/web/src/assets/i18n/zhtw.json index 2f07560b7..4e34981d6 100644 --- a/apps/web/src/assets/i18n/zhtw.json +++ b/apps/web/src/assets/i18n/zhtw.json @@ -373,7 +373,7 @@ "REFRESH_EPG": "重新整理 EPG", "REFRESH_ALL_EPG": "全部重新整理", "REMOVE_EPG_SOURCE": "移除 EPG 來源", - "BROWSE_EPG_FILE": "Choose a local XMLTV file…", + "BROWSE_EPG_FILE": "選擇本機 XMLTV 檔案…", "EPG_STATUS_FRESH": "已更新", "EPG_STATUS_STALE": "需要重新整理", "EPG_STATUS_ERROR": "失敗", @@ -418,9 +418,9 @@ "EPG_DATA_CLEAR_FAILED": "清除 EPG 資料失敗。請重試。", "CLEARING_EPG_DATA": "正在清除…", "EPG_URL_ERROR": "該值不是有效的網址", - "EPG_SOURCE_LIST_TITLE": "Source list", - "EPG_SOURCE_FORMATS_HINT": "Remote XMLTV links (http/https) and files on this computer are both supported, as plain .xml or gzip-compressed .xml.gz. Local files need an absolute path or a file:// URL.", - "EPG_SOURCE_FORMATS_EXAMPLES": "Examples:", + "EPG_SOURCE_LIST_TITLE": "來源清單", + "EPG_SOURCE_FORMATS_HINT": "支援遠端 XMLTV 連結(http/https)與這台電腦上的檔案,格式可為一般 .xml 或經 gzip 壓縮的 .xml.gz。本機檔案需使用絕對路徑或 file:// URL。", + "EPG_SOURCE_FORMATS_EXAMPLES": "範例:", "VIDEO_PLAYER_DESCRIPTION": "選擇預設影片播放器", "WEB_PLAYER_SHARED_CONTROLS": "Web 播放器統一控制項", "WEB_PLAYER_SHARED_CONTROLS_DESCRIPTION": "在 HTML5、Video.js 和 ArtPlayer 中使用 IPTVnator 的共用控制項。", @@ -805,19 +805,19 @@ "REASON_COMPATIBLE_DRM_PATH": "此目標與可用的加密資料相容", "ACTION_OPEN_MPV": "在 MPV 中開啟", "ACTION_OPEN_VLC": "在 VLC 中開啟", - "ACTION_OPENING_MPV": "Opening MPV…", - "ACTION_OPENING_VLC": "Opening VLC…", - "ACTION_REOPEN_MPV": "Open MPV again", - "ACTION_REOPEN_VLC": "Open VLC again", - "ACTION_RETRY_MPV": "Try MPV again", - "ACTION_RETRY_VLC": "Try VLC again", - "EXTERNAL_OPENING": "Opening player…", - "EXTERNAL_STARTED": "Player started", - "EXTERNAL_PLAYING": "Playing", - "EXTERNAL_FAILED": "External player error", + "ACTION_OPENING_MPV": "正在開啟 MPV…", + "ACTION_OPENING_VLC": "正在開啟 VLC…", + "ACTION_REOPEN_MPV": "再次開啟 MPV", + "ACTION_REOPEN_VLC": "再次開啟 VLC", + "ACTION_RETRY_MPV": "重新嘗試 MPV", + "ACTION_RETRY_VLC": "重新嘗試 VLC", + "EXTERNAL_OPENING": "正在開啟播放器…", + "EXTERNAL_STARTED": "播放器已啟動", + "EXTERNAL_PLAYING": "播放中", + "EXTERNAL_FAILED": "外部播放器錯誤", "ACTION_OPEN_MPV_HINT": "已設定的播放器", "ACTION_OPEN_VLC_HINT": "已設定的播放器", - "ACTION_COPY_URL": "複製 URL", + "ACTION_COPY_URL": "複製串流網址", "ACTION_RETRY": "重試", "DETAILS_SUMMARY": "技術詳情", "CODEC_HINT": "偵測到 {{codecs}}。Chromium/Electron 瀏覽器播放器通常對此類編碼支援有限。", @@ -1172,7 +1172,7 @@ "RATING": "評分", "IMDB_RATING": "IMDb 評分", "KINOPOISK_RATING": "Kinopoisk 評分", - "DESCRIPTION": "描述", + "DESCRIPTION": "說明", "YEAR": "年份", "AGE": "年齡", "YOUTUBE_TRAILER": "YouTube 預告片", @@ -1759,12 +1759,12 @@ "RAIL_FAVORITES": "我的最愛", "RAIL_DOWNLOADS": "下載", "EXTERNAL_PLAYBACK_CLOSE": "關閉播放器", - "EXTERNAL_PLAYBACK_DISMISS": "Dismiss", - "EXTERNAL_PLAYBACK_OPENING": "Opening player…", - "EXTERNAL_PLAYBACK_STARTED": "Player started", - "EXTERNAL_PLAYBACK_PLAYING": "Playing", - "EXTERNAL_PLAYBACK_FAILED": "External player error", - "EXTERNAL_PLAYBACK_CLOSED": "Closed", + "EXTERNAL_PLAYBACK_DISMISS": "隱藏", + "EXTERNAL_PLAYBACK_OPENING": "正在開啟播放器…", + "EXTERNAL_PLAYBACK_STARTED": "播放器已啟動", + "EXTERNAL_PLAYBACK_PLAYING": "播放中", + "EXTERNAL_PLAYBACK_FAILED": "外部播放器錯誤", + "EXTERNAL_PLAYBACK_CLOSED": "已關閉", "EXTERNAL_PLAYBACK_OPEN_IN_PLAYLIST": "在播放清單中開啟", "RAIL_ALL_CHANNELS": "所有頻道", "RAIL_GROUPS": "群組", @@ -2033,49 +2033,49 @@ "FAILED_DETAIL": "請重試讀取已儲存的來源。您的資料未被刪除。" }, "SOURCE_HEALTH": { - "RECHECK": "Check again", - "M3U_SCOPE": "Playlist URL, not individual channels", + "RECHECK": "再次檢查", + "M3U_SCOPE": "檢查播放清單網址,而非個別頻道", "REASON": { - "available": "Available", - "disabled": "Account disabled", - "expired": "Subscription expired", - "auth": "Access denied; account status unconfirmed", - "http": "Server returned an error", - "timeout": "Check timed out", - "network": "Could not connect", - "paused": "Connection checks paused", - "invalid": "Unexpected response", - "unknown": "Not verified", - "cancelled": "Check cancelled", - "checking": "Checking…" + "available": "可用", + "disabled": "帳戶已停用", + "expired": "訂閱已到期", + "auth": "存取被拒;無法確認帳戶狀態", + "http": "伺服器傳回錯誤", + "timeout": "檢查逾時", + "network": "無法連線", + "paused": "連線檢查已暫停", + "invalid": "非預期的回應", + "unknown": "尚未驗證", + "cancelled": "檢查已取消", + "checking": "檢查中…" } }, "SOURCE_CLEANUP": { - "TITLE": "Clean up inactive sources…", - "SCOPE": "All network sources in your library, regardless of page filters.", - "CONSEQUENCES": "Delete only sources you select. Their saved favourites, history and playback progress will also be removed. Downloaded files are kept.", - "SUMMARY": "Checked {{checked}}/{{total}} · Available {{available}} · Deleted {{deleted}} · Skipped {{skipped}} · Failed {{failed}}", - "SELECT_ALL": "Select all candidates", - "SELECT_NONE": "Deselect all", - "UNTITLED": "Untitled source", - "DELETE": "Delete selected · {{count}}", - "CLOSE": "Close", - "STOP": "Stop after current source", - "CLEANUP_WARNING": "Source deleted; some follow-up cleanup failed", + "TITLE": "清理失效的來源…", + "SCOPE": "媒體庫中的所有網路來源,不受頁面篩選條件影響。", + "CONSEQUENCES": "僅刪除您選取的來源。這些來源已儲存的我的最愛、觀看記錄和播放進度也會一併移除。已下載的檔案會保留。", + "SUMMARY": "已檢查 {{checked}}/{{total}} · 可用 {{available}} · 已刪除 {{deleted}} · 已略過 {{skipped}} · 失敗 {{failed}}", + "SELECT_ALL": "選取所有候選來源", + "SELECT_NONE": "全部取消選取", + "UNTITLED": "未命名的來源", + "DELETE": "刪除選取項目 · {{count}}", + "CLOSE": "關閉", + "STOP": "完成目前來源後停止", + "CLEANUP_WARNING": "來源已刪除,但部分後續清理失敗", "GROUP": { - "confirmed": "Confirmed inactive accounts", - "uncertain": "Review before deleting", - "skipped": "Skipped sources", - "results": "Deletion results" + "confirmed": "已確認失效的帳戶", + "uncertain": "刪除前請先確認", + "skipped": "已略過的來源", + "results": "刪除結果" }, "STATUS": { - "checking": "Checking…", - "skipped": "Playing, busy, changed or no longer present", - "deleting": "Deleting…", - "deleted": "Deleted", - "failed": "Deletion failed — select to retry" + "checking": "檢查中…", + "skipped": "正在播放、忙碌中、已變更或已不存在", + "deleting": "刪除中…", + "deleted": "已刪除", + "failed": "刪除失敗 — 選取以重試" }, - "DELETE_PROGRESS": "Processed {{done}} of {{total}} selected sources" + "DELETE_PROGRESS": "所選的 {{total}} 個來源中已處理 {{done}} 個" }, "PARENTAL_LOCK": { "PIN_DIALOG": { diff --git a/docs/architecture/validation-map.md b/docs/architecture/validation-map.md index 9c7ab34ab..7562aa512 100644 --- a/docs/architecture/validation-map.md +++ b/docs/architecture/validation-map.md @@ -259,6 +259,7 @@ pnpm run coverage:e2e:v8:web pnpm run i18n:validate # checker unit tests, then the check (CI) pnpm run i18n:check # the check only: locale drift, then key usage pnpm run i18n:usage # key usage only +pnpm run i18n:duplicates # report: one English string, diverging translations pnpm run i18n:baseline:update # deliberate: rewrite the English-identical baseline ``` @@ -296,6 +297,12 @@ a template literal such as `` `EPG.DIALOG.${name}` `` must name a group. Keys built entirely at runtime are not checked. CI runs `pnpm run i18n:validate` in the unit test job. +`pnpm run i18n:duplicates` (`tools/i18n/check-duplicates.mjs`) is a report, +not a gate: it lists English strings defined under several keys that a locale +translates differently. Align drifted wording in the locale files; a group may +stay when context needs another grammatical form. `--max ` makes it fail +above n groups. + ## Performance ```bash diff --git a/package.json b/package.json index cf1aa8256..56bcb81c6 100644 --- a/package.json +++ b/package.json @@ -91,8 +91,9 @@ "serve:website": "nx serve website", "build:website": "nx build website", "i18n:check": "node tools/i18n/check-drift.mjs && node tools/i18n/check-usage.mjs", - "i18n:test": "node --test tools/i18n/check-drift.test.mjs tools/i18n/check-usage.test.mjs", + "i18n:test": "node --test tools/i18n/check-drift.test.mjs tools/i18n/check-usage.test.mjs tools/i18n/check-duplicates.test.mjs", "i18n:usage": "node tools/i18n/check-usage.mjs", + "i18n:duplicates": "node tools/i18n/check-duplicates.mjs", "i18n:validate": "pnpm run i18n:test && pnpm run i18n:check", "i18n:baseline:update": "node tools/i18n/check-drift.mjs --update-baseline", "perf:initial-bytes": "node tools/performance/measure-initial-bytes.mjs", diff --git a/tools/i18n/README.md b/tools/i18n/README.md index 2553e9500..6df554276 100644 --- a/tools/i18n/README.md +++ b/tools/i18n/README.md @@ -80,6 +80,22 @@ The checkers' own tests run with `pnpm run i18n:test`; CI runs both through node tools/i18n/check-drift.mjs --fail-on-identical ``` +`pnpm run i18n:duplicates` lists English strings that `en.json` defines under +several keys while a locale translates those keys differently, such as one +"Close" button saying "Afsluiten" and another "Sluiten". Add `--verbose` for +each locale's variants and keys, or `--max ` to fail above n groups. It is +a report, not a CI gate: a group can be legitimate when context needs another +grammatical form. When aligning, change the drifted values rather than +removing keys. + +## Changing existing translations + +`fill-missing.mjs` never overwrites, so rewording an existing value or paying +down baseline debt means editing the value in the locale file directly (keep +the key order, 4-space indent and trailing newline), then running +`pnpm run i18n:baseline:update` and checking that the baseline diff only +removes entries. + ## Translation rules - Preserve `{{interpolation}}` placeholders verbatim. diff --git a/tools/i18n/check-duplicates.mjs b/tools/i18n/check-duplicates.mjs new file mode 100644 index 000000000..9c449655d --- /dev/null +++ b/tools/i18n/check-duplicates.mjs @@ -0,0 +1,141 @@ +#!/usr/bin/env node +/** + * Lists English strings that en.json defines under several keys while a + * locale translates those keys differently ("Close" as "Fermer" in one dialog + * and "Fermer la fenêtre" in another). Such groups are usually drift: one + * wording was copied, the other translated later. Some are legitimate, where + * the same English word needs a different grammatical form in context. + * + * The report is informational. `--max ` fails when more than n groups + * diverge; `--verbose` prints every locale's variants. + */ +import { readdirSync, readFileSync } from 'node:fs'; +import { resolve } from 'node:path'; +import { fileURLToPath } from 'node:url'; + +import { collectLeaves, I18N_DIR } from './check-drift.mjs'; + +const EN_LOCALE = 'en'; + +/** + * Groups en.json keys by English text and returns every group of two or more + * keys that at least one locale translates with more than one distinct value. + * Each group lists, per diverging locale, the keys behind each variant. + */ +export function findDivergentDuplicates(enLeaves, leavesByLocale) { + const keysByText = new Map(); + for (const [key, text] of enLeaves) { + if (typeof text === 'string' && text.trim().length > 0) { + keysByText.set(text, [...(keysByText.get(text) ?? []), key]); + } + } + + const groups = []; + for (const [english, keys] of keysByText) { + if (keys.length < 2) { + continue; + } + const locales = new Map(); + for (const [locale, leaves] of leavesByLocale) { + const variants = new Map(); + for (const key of keys) { + const value = leaves.get(key); + if (typeof value === 'string') { + variants.set(value, [...(variants.get(value) ?? []), key]); + } + } + if (variants.size > 1) { + locales.set(locale, variants); + } + } + if (locales.size > 0) { + groups.push({ english, keys, locales }); + } + } + + return groups.sort( + (a, b) => + b.locales.size - a.locales.size || + b.keys.length - a.keys.length || + (a.english < b.english ? -1 : 1) + ); +} + +function readLeaves(i18nDir, locale) { + return collectLeaves( + JSON.parse(readFileSync(resolve(i18nDir, `${locale}.json`), 'utf8')) + ); +} + +function parseArgs(argv) { + const options = { max: undefined, verbose: false }; + for (let index = 0; index < argv.length; index += 1) { + const arg = argv[index]; + if (arg === '--verbose') { + options.verbose = true; + } else if (arg === '--max' && /^\d+$/.test(argv[index + 1] ?? '')) { + options.max = Number(argv[index + 1]); + index += 1; + } else if (arg !== '--') { + return null; + } + } + return options; +} + +/** Runs the report and returns the process exit code. */ +export function run({ i18nDir = I18N_DIR, argv = [], log = console.log } = {}) { + const options = parseArgs(argv); + if (!options) { + log( + `FAIL unsupported arguments: ${argv.join(' ')}; use --max and --verbose.` + ); + return 1; + } + + const leavesByLocale = new Map( + readdirSync(i18nDir) + .filter((file) => file.endsWith('.json')) + .map((file) => file.slice(0, -'.json'.length)) + .filter((locale) => locale !== EN_LOCALE) + .sort() + .map((locale) => [locale, readLeaves(i18nDir, locale)]) + ); + const groups = findDivergentDuplicates( + readLeaves(i18nDir, EN_LOCALE), + leavesByLocale + ); + + for (const { english, keys, locales } of groups) { + log( + `${JSON.stringify(english)}: ${keys.length} keys, ${ + locales.size + } locale(s) differ (${[...locales.keys()].join(', ')})` + ); + if (options.verbose) { + for (const [locale, variants] of locales) { + for (const [value, variantKeys] of variants) { + log( + ` ${locale} ${JSON.stringify(value)}: ${variantKeys.join(', ')}` + ); + } + } + } + } + + const over = options.max !== undefined && groups.length > options.max; + log( + `${over ? 'FAIL' : 'ok'} ${groups.length} duplicate English string(s) with diverging translations${ + options.max === undefined ? '' : ` (max ${options.max})` + }` + ); + return over ? 1 : 0; +} + +const isMain = + process.argv[1] && + resolve(process.argv[1]) === resolve(fileURLToPath(import.meta.url)); + +if (isMain) { + process.exitCode = run({ argv: process.argv.slice(2) }); +} diff --git a/tools/i18n/check-duplicates.test.mjs b/tools/i18n/check-duplicates.test.mjs new file mode 100644 index 000000000..34cdb1e94 --- /dev/null +++ b/tools/i18n/check-duplicates.test.mjs @@ -0,0 +1,130 @@ +import assert from 'node:assert/strict'; +import { mkdtempSync, rmSync, writeFileSync } from 'node:fs'; +import os from 'node:os'; +import path from 'node:path'; +import { afterEach, beforeEach, test } from 'node:test'; + +import { findDivergentDuplicates, run } from './check-duplicates.mjs'; + +const EN = { + CLOSE: 'Close', + DIALOG: { CLOSE: 'Close', SAVE: 'Save' }, + MENU: { SAVE: 'Save', TITLE: 'Menu' }, +}; + +let dir; + +beforeEach(() => { + dir = mkdtempSync(path.join(os.tmpdir(), 'i18n-duplicates-')); +}); + +afterEach(() => { + rmSync(dir, { recursive: true, force: true }); +}); + +function writeLocale(locale, content) { + writeFileSync(path.join(dir, `${locale}.json`), JSON.stringify(content)); +} + +function report(...argv) { + const lines = []; + const code = run({ i18nDir: dir, argv, log: (line) => lines.push(line) }); + return { code, output: lines.join('\n') }; +} + +test('groups keys by English text and keeps only diverging locales', () => { + const en = new Map([ + ['CLOSE', 'Close'], + ['DIALOG.CLOSE', 'Close'], + ['DIALOG.SAVE', 'Save'], + ['MENU.SAVE', 'Save'], + ['MENU.TITLE', 'Menu'], + ]); + const locales = new Map([ + [ + 'de', + new Map([ + ['CLOSE', 'Schließen'], + ['DIALOG.CLOSE', 'Schliessen'], + ['DIALOG.SAVE', 'Speichern'], + ['MENU.SAVE', 'Speichern'], + ]), + ], + [ + 'fr', + new Map([ + ['CLOSE', 'Fermer'], + ['DIALOG.CLOSE', 'Fermer'], + ['DIALOG.SAVE', 'Save'], + ['MENU.SAVE', 'Enregistrer'], + ]), + ], + ]); + + const groups = findDivergentDuplicates(en, locales); + + assert.deepEqual( + groups.map(({ english, keys, locales: diverging }) => ({ + english, + keys, + locales: [...diverging.keys()], + })), + [ + { + english: 'Close', + keys: ['CLOSE', 'DIALOG.CLOSE'], + locales: ['de'], + }, + { + english: 'Save', + keys: ['DIALOG.SAVE', 'MENU.SAVE'], + locales: ['fr'], + }, + ] + ); + assert.deepEqual( + [...groups[1].locales.get('fr')], + [ + ['Save', ['DIALOG.SAVE']], + ['Enregistrer', ['MENU.SAVE']], + ] + ); +}); + +test('reports nothing when every locale agrees', () => { + writeLocale('en', EN); + writeLocale('de', { + CLOSE: 'Schließen', + DIALOG: { CLOSE: 'Schließen', SAVE: 'Speichern' }, + MENU: { SAVE: 'Speichern', TITLE: 'Menü' }, + }); + + const { code, output } = report('--max', '0'); + + assert.equal(code, 0); + assert.match(output, /^ok 0 duplicate English string/m); +}); + +test('fails only when diverging groups exceed --max', () => { + writeLocale('en', EN); + writeLocale('de', { + CLOSE: 'Schließen', + DIALOG: { CLOSE: 'Schliessen', SAVE: 'Speichern' }, + MENU: { SAVE: 'Sichern', TITLE: 'Menü' }, + }); + + assert.equal(report('--max', '2').code, 0); + const { code, output } = report('--max', '1', '--verbose'); + + assert.equal(code, 1); + assert.match(output, /^"Close": 2 keys, 1 locale\(s\) differ \(de\)$/m); + assert.match(output, /^ {2}de "Schliessen": DIALOG\.CLOSE$/m); + assert.match(output, /^FAIL 2 duplicate English string/m); +}); + +test('rejects unsupported arguments', () => { + writeLocale('en', EN); + + assert.equal(report('--max').code, 1); + assert.equal(report('--strict').code, 1); +}); diff --git a/tools/i18n/identical-en-baseline.json b/tools/i18n/identical-en-baseline.json index f9b01b15a..0b03decfa 100644 --- a/tools/i18n/identical-en-baseline.json +++ b/tools/i18n/identical-en-baseline.json @@ -29,72 +29,17 @@ "LANGUAGES.SPANISH": "Español", "LANGUAGES.TRADITIONAL_CHINESE": "繁體中文", "LANGUAGES.TURKISH": "Türkçe", - "PLAYBACK_DIAGNOSTICS.ACTION_OPENING_MPV": "Opening MPV…", - "PLAYBACK_DIAGNOSTICS.ACTION_OPENING_VLC": "Opening VLC…", - "PLAYBACK_DIAGNOSTICS.ACTION_REOPEN_MPV": "Open MPV again", - "PLAYBACK_DIAGNOSTICS.ACTION_REOPEN_VLC": "Open VLC again", - "PLAYBACK_DIAGNOSTICS.ACTION_RETRY_MPV": "Try MPV again", - "PLAYBACK_DIAGNOSTICS.ACTION_RETRY_VLC": "Try VLC again", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_FAILED": "External player error", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_OPENING": "Opening player…", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_PLAYING": "Playing", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_STARTED": "Player started", "PORTALS.MULTI_SOURCE.FILTER_HD": "HD+", "SETTINGS.APP_UPDATE_CHANNEL_NIGHTLY": "Nightly", "SETTINGS.APP_UPDATE_CHANNEL_STABLE": "Stable", - "SETTINGS.BROWSE_EPG_FILE": "Choose a local XMLTV file…", "SETTINGS.CARD_XTREAM": "Xtream", - "SETTINGS.EPG_SOURCE_FORMATS_EXAMPLES": "Examples:", - "SETTINGS.EPG_SOURCE_FORMATS_HINT": "Remote XMLTV links (http/https) and files on this computer are both supported, as plain .xml or gzip-compressed .xml.gz. Local files need an absolute path or a file:// URL.", - "SETTINGS.EPG_SOURCE_LIST_TITLE": "Source list", "SETTINGS.NAV_EPG": "EPG", "SETTINGS.PLAYER_ARTPLAYER": "ArtPlayer", "SETTINGS.PLAYER_VLC": "VLC", - "SOURCE_CLEANUP.CLEANUP_WARNING": "Source deleted; some follow-up cleanup failed", - "SOURCE_CLEANUP.CLOSE": "Close", - "SOURCE_CLEANUP.CONSEQUENCES": "Delete only sources you select. Their saved favourites, history and playback progress will also be removed. Downloaded files are kept.", - "SOURCE_CLEANUP.DELETE": "Delete selected · {{count}}", - "SOURCE_CLEANUP.DELETE_PROGRESS": "Processed {{done}} of {{total}} selected sources", - "SOURCE_CLEANUP.GROUP.confirmed": "Confirmed inactive accounts", - "SOURCE_CLEANUP.GROUP.results": "Deletion results", - "SOURCE_CLEANUP.GROUP.skipped": "Skipped sources", - "SOURCE_CLEANUP.GROUP.uncertain": "Review before deleting", - "SOURCE_CLEANUP.SCOPE": "All network sources in your library, regardless of page filters.", - "SOURCE_CLEANUP.SELECT_ALL": "Select all candidates", - "SOURCE_CLEANUP.SELECT_NONE": "Deselect all", - "SOURCE_CLEANUP.STATUS.checking": "Checking…", - "SOURCE_CLEANUP.STATUS.deleted": "Deleted", - "SOURCE_CLEANUP.STATUS.deleting": "Deleting…", - "SOURCE_CLEANUP.STATUS.failed": "Deletion failed — select to retry", - "SOURCE_CLEANUP.STATUS.skipped": "Playing, busy, changed or no longer present", - "SOURCE_CLEANUP.STOP": "Stop after current source", - "SOURCE_CLEANUP.SUMMARY": "Checked {{checked}}/{{total}} · Available {{available}} · Deleted {{deleted}} · Skipped {{skipped}} · Failed {{failed}}", - "SOURCE_CLEANUP.TITLE": "Clean up inactive sources…", - "SOURCE_CLEANUP.UNTITLED": "Untitled source", - "SOURCE_HEALTH.M3U_SCOPE": "Playlist URL, not individual channels", - "SOURCE_HEALTH.REASON.auth": "Access denied; account status unconfirmed", - "SOURCE_HEALTH.REASON.available": "Available", - "SOURCE_HEALTH.REASON.cancelled": "Check cancelled", - "SOURCE_HEALTH.REASON.checking": "Checking…", - "SOURCE_HEALTH.REASON.disabled": "Account disabled", - "SOURCE_HEALTH.REASON.expired": "Subscription expired", - "SOURCE_HEALTH.REASON.http": "Server returned an error", - "SOURCE_HEALTH.REASON.invalid": "Unexpected response", - "SOURCE_HEALTH.REASON.network": "Could not connect", - "SOURCE_HEALTH.REASON.paused": "Connection checks paused", - "SOURCE_HEALTH.REASON.timeout": "Check timed out", - "SOURCE_HEALTH.REASON.unknown": "Not verified", - "SOURCE_HEALTH.RECHECK": "Check again", "WORKSPACE.DASHBOARD.M3U": "M3U", "WORKSPACE.DASHBOARD.STALKER": "Stalker", "WORKSPACE.DASHBOARD.STALKER_PORTAL": "Stalker Portal", "WORKSPACE.DASHBOARD.XTREAM": "Xtream", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_CLOSED": "Closed", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_DISMISS": "Dismiss", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_FAILED": "External player error", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_OPENING": "Opening player…", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_PLAYING": "Playing", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_STARTED": "Player started", "WORKSPACE.SHELL.STALKER_PORTAL": "Stalker Portal", "WORKSPACE.SHELL.XTREAM_CODE": "Xtream Code", "XTREAM.ACCOUNT_INFO.HTTPS_PORT": "HTTPS", @@ -107,8 +52,6 @@ "CHANNELS.DETAILS_DIALOG.HTTP_REFERRER": "Referrer", "CHANNELS.DETAILS_DIALOG.HTTP_USER_AGENT": "User-Agent", "CHANNELS.DETAILS_DIALOG.TVG_ID": "TVG ID", - "CHANNELS.DETAILS_DIALOG.TVG_LOGO": "TVG logo", - "CHANNELS.DETAILS_DIALOG.TVG_NAME": "TVG name", "CHANNELS.DETAILS_DIALOG.TVG_REC": "TVG rec", "CHANNELS.DETAILS_DIALOG.TVG_URL": "TVG URL", "DOWNLOADS.OFFLINE_DETAIL.FILE_SIZE": "{{size}}", @@ -138,73 +81,18 @@ "LANGUAGES.SPANISH": "Español", "LANGUAGES.TRADITIONAL_CHINESE": "繁體中文", "LANGUAGES.TURKISH": "Türkçe", - "PLAYBACK_DIAGNOSTICS.ACTION_OPENING_MPV": "Opening MPV…", - "PLAYBACK_DIAGNOSTICS.ACTION_OPENING_VLC": "Opening VLC…", - "PLAYBACK_DIAGNOSTICS.ACTION_REOPEN_MPV": "Open MPV again", - "PLAYBACK_DIAGNOSTICS.ACTION_REOPEN_VLC": "Open VLC again", - "PLAYBACK_DIAGNOSTICS.ACTION_RETRY_MPV": "Try MPV again", - "PLAYBACK_DIAGNOSTICS.ACTION_RETRY_VLC": "Try VLC again", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_FAILED": "External player error", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_OPENING": "Opening player…", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_PLAYING": "Playing", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_STARTED": "Player started", "PORTALS.MULTI_SOURCE.FILTER_HD": "HD+", "SETTINGS.APP_UPDATE_CHANNEL_NIGHTLY": "Nightly", "SETTINGS.APP_UPDATE_CHANNEL_STABLE": "Stable", - "SETTINGS.BROWSE_EPG_FILE": "Choose a local XMLTV file…", "SETTINGS.CARD_XTREAM": "Xtream", - "SETTINGS.EPG_SOURCE_FORMATS_EXAMPLES": "Examples:", - "SETTINGS.EPG_SOURCE_FORMATS_HINT": "Remote XMLTV links (http/https) and files on this computer are both supported, as plain .xml or gzip-compressed .xml.gz. Local files need an absolute path or a file:// URL.", - "SETTINGS.EPG_SOURCE_LIST_TITLE": "Source list", "SETTINGS.NAV_EPG": "EPG", "SETTINGS.PLAYER_ARTPLAYER": "ArtPlayer", "SETTINGS.PLAYER_VLC": "VLC", - "SOURCE_CLEANUP.CLEANUP_WARNING": "Source deleted; some follow-up cleanup failed", - "SOURCE_CLEANUP.CLOSE": "Close", - "SOURCE_CLEANUP.CONSEQUENCES": "Delete only sources you select. Their saved favourites, history and playback progress will also be removed. Downloaded files are kept.", - "SOURCE_CLEANUP.DELETE": "Delete selected · {{count}}", - "SOURCE_CLEANUP.DELETE_PROGRESS": "Processed {{done}} of {{total}} selected sources", - "SOURCE_CLEANUP.GROUP.confirmed": "Confirmed inactive accounts", - "SOURCE_CLEANUP.GROUP.results": "Deletion results", - "SOURCE_CLEANUP.GROUP.skipped": "Skipped sources", - "SOURCE_CLEANUP.GROUP.uncertain": "Review before deleting", - "SOURCE_CLEANUP.SCOPE": "All network sources in your library, regardless of page filters.", - "SOURCE_CLEANUP.SELECT_ALL": "Select all candidates", - "SOURCE_CLEANUP.SELECT_NONE": "Deselect all", - "SOURCE_CLEANUP.STATUS.checking": "Checking…", - "SOURCE_CLEANUP.STATUS.deleted": "Deleted", - "SOURCE_CLEANUP.STATUS.deleting": "Deleting…", - "SOURCE_CLEANUP.STATUS.failed": "Deletion failed — select to retry", - "SOURCE_CLEANUP.STATUS.skipped": "Playing, busy, changed or no longer present", - "SOURCE_CLEANUP.STOP": "Stop after current source", - "SOURCE_CLEANUP.SUMMARY": "Checked {{checked}}/{{total}} · Available {{available}} · Deleted {{deleted}} · Skipped {{skipped}} · Failed {{failed}}", - "SOURCE_CLEANUP.TITLE": "Clean up inactive sources…", - "SOURCE_CLEANUP.UNTITLED": "Untitled source", - "SOURCE_HEALTH.M3U_SCOPE": "Playlist URL, not individual channels", - "SOURCE_HEALTH.REASON.auth": "Access denied; account status unconfirmed", - "SOURCE_HEALTH.REASON.available": "Available", - "SOURCE_HEALTH.REASON.cancelled": "Check cancelled", - "SOURCE_HEALTH.REASON.checking": "Checking…", - "SOURCE_HEALTH.REASON.disabled": "Account disabled", - "SOURCE_HEALTH.REASON.expired": "Subscription expired", - "SOURCE_HEALTH.REASON.http": "Server returned an error", - "SOURCE_HEALTH.REASON.invalid": "Unexpected response", - "SOURCE_HEALTH.REASON.network": "Could not connect", - "SOURCE_HEALTH.REASON.paused": "Connection checks paused", - "SOURCE_HEALTH.REASON.timeout": "Check timed out", - "SOURCE_HEALTH.REASON.unknown": "Not verified", - "SOURCE_HEALTH.RECHECK": "Check again", "WORKSPACE.CONTEXT.STALKER_PORTAL": "Stalker portal", "WORKSPACE.DASHBOARD.M3U": "M3U", "WORKSPACE.DASHBOARD.STALKER": "Stalker", "WORKSPACE.DASHBOARD.STALKER_PORTAL": "Stalker Portal", "WORKSPACE.DASHBOARD.XTREAM": "Xtream", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_CLOSED": "Closed", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_DISMISS": "Dismiss", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_FAILED": "External player error", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_OPENING": "Opening player…", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_PLAYING": "Playing", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_STARTED": "Player started", "WORKSPACE.SHELL.STALKER_PORTAL": "Stalker Portal", "WORKSPACE.SHELL.XTREAM_CODE": "Xtream Code", "XTREAM.ACCOUNT_INFO.HTTPS_PORT": "HTTPS", @@ -248,71 +136,16 @@ "LANGUAGES.TRADITIONAL_CHINESE": "繁體中文", "LANGUAGES.TURKISH": "Türkçe", "PARENTAL_LOCK.PIN_DIALOG.PIN_LABEL": "PIN", - "PLAYBACK_DIAGNOSTICS.ACTION_OPENING_MPV": "Opening MPV…", - "PLAYBACK_DIAGNOSTICS.ACTION_OPENING_VLC": "Opening VLC…", - "PLAYBACK_DIAGNOSTICS.ACTION_REOPEN_MPV": "Open MPV again", - "PLAYBACK_DIAGNOSTICS.ACTION_REOPEN_VLC": "Open VLC again", - "PLAYBACK_DIAGNOSTICS.ACTION_RETRY_MPV": "Try MPV again", - "PLAYBACK_DIAGNOSTICS.ACTION_RETRY_VLC": "Try VLC again", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_FAILED": "External player error", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_OPENING": "Opening player…", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_PLAYING": "Playing", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_STARTED": "Player started", "PORTALS.MULTI_SOURCE.FILTER_HD": "HD+", "SETTINGS.APP_UPDATE_CHANNEL_NIGHTLY": "Nightly", "SETTINGS.APP_UPDATE_CHANNEL_STABLE": "Stable", - "SETTINGS.BROWSE_EPG_FILE": "Choose a local XMLTV file…", "SETTINGS.CARD_XTREAM": "Xtream", - "SETTINGS.EPG_SOURCE_FORMATS_EXAMPLES": "Examples:", - "SETTINGS.EPG_SOURCE_FORMATS_HINT": "Remote XMLTV links (http/https) and files on this computer are both supported, as plain .xml or gzip-compressed .xml.gz. Local files need an absolute path or a file:// URL.", - "SETTINGS.EPG_SOURCE_LIST_TITLE": "Source list", "SETTINGS.NAV_EPG": "EPG", "SETTINGS.PLAYER_ARTPLAYER": "ArtPlayer", "SETTINGS.PLAYER_VLC": "VLC", - "SOURCE_CLEANUP.CLEANUP_WARNING": "Source deleted; some follow-up cleanup failed", - "SOURCE_CLEANUP.CLOSE": "Close", - "SOURCE_CLEANUP.CONSEQUENCES": "Delete only sources you select. Their saved favourites, history and playback progress will also be removed. Downloaded files are kept.", - "SOURCE_CLEANUP.DELETE": "Delete selected · {{count}}", - "SOURCE_CLEANUP.DELETE_PROGRESS": "Processed {{done}} of {{total}} selected sources", - "SOURCE_CLEANUP.GROUP.confirmed": "Confirmed inactive accounts", - "SOURCE_CLEANUP.GROUP.results": "Deletion results", - "SOURCE_CLEANUP.GROUP.skipped": "Skipped sources", - "SOURCE_CLEANUP.GROUP.uncertain": "Review before deleting", - "SOURCE_CLEANUP.SCOPE": "All network sources in your library, regardless of page filters.", - "SOURCE_CLEANUP.SELECT_ALL": "Select all candidates", - "SOURCE_CLEANUP.SELECT_NONE": "Deselect all", - "SOURCE_CLEANUP.STATUS.checking": "Checking…", - "SOURCE_CLEANUP.STATUS.deleted": "Deleted", - "SOURCE_CLEANUP.STATUS.deleting": "Deleting…", - "SOURCE_CLEANUP.STATUS.failed": "Deletion failed — select to retry", - "SOURCE_CLEANUP.STATUS.skipped": "Playing, busy, changed or no longer present", - "SOURCE_CLEANUP.STOP": "Stop after current source", - "SOURCE_CLEANUP.SUMMARY": "Checked {{checked}}/{{total}} · Available {{available}} · Deleted {{deleted}} · Skipped {{skipped}} · Failed {{failed}}", - "SOURCE_CLEANUP.TITLE": "Clean up inactive sources…", - "SOURCE_CLEANUP.UNTITLED": "Untitled source", - "SOURCE_HEALTH.M3U_SCOPE": "Playlist URL, not individual channels", - "SOURCE_HEALTH.REASON.auth": "Access denied; account status unconfirmed", - "SOURCE_HEALTH.REASON.available": "Available", - "SOURCE_HEALTH.REASON.cancelled": "Check cancelled", - "SOURCE_HEALTH.REASON.checking": "Checking…", - "SOURCE_HEALTH.REASON.disabled": "Account disabled", - "SOURCE_HEALTH.REASON.expired": "Subscription expired", - "SOURCE_HEALTH.REASON.http": "Server returned an error", - "SOURCE_HEALTH.REASON.invalid": "Unexpected response", - "SOURCE_HEALTH.REASON.network": "Could not connect", - "SOURCE_HEALTH.REASON.paused": "Connection checks paused", - "SOURCE_HEALTH.REASON.timeout": "Check timed out", - "SOURCE_HEALTH.REASON.unknown": "Not verified", - "SOURCE_HEALTH.RECHECK": "Check again", "WORKSPACE.DASHBOARD.M3U": "M3U", "WORKSPACE.DASHBOARD.STALKER": "Stalker", "WORKSPACE.DASHBOARD.XTREAM": "Xtream", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_CLOSED": "Closed", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_DISMISS": "Dismiss", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_FAILED": "External player error", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_OPENING": "Opening player…", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_PLAYING": "Playing", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_STARTED": "Player started", "WORKSPACE.SHELL.XTREAM_CODE": "Xtream Code", "XTREAM.ACCOUNT_INFO.HTTPS_PORT": "HTTPS", "XTREAM.ACCOUNT_INFO.HTTP_PORT": "HTTP", @@ -393,41 +226,6 @@ "SETTINGS.PLAYER_VLC": "VLC", "SETTINGS.PORT_RANGE_LABEL": "Port (1-65535)", "SETTINGS.VERSION": "Version", - "SOURCE_CLEANUP.CLEANUP_WARNING": "Source deleted; some follow-up cleanup failed", - "SOURCE_CLEANUP.CLOSE": "Close", - "SOURCE_CLEANUP.CONSEQUENCES": "Delete only sources you select. Their saved favourites, history and playback progress will also be removed. Downloaded files are kept.", - "SOURCE_CLEANUP.DELETE": "Delete selected · {{count}}", - "SOURCE_CLEANUP.DELETE_PROGRESS": "Processed {{done}} of {{total}} selected sources", - "SOURCE_CLEANUP.GROUP.confirmed": "Confirmed inactive accounts", - "SOURCE_CLEANUP.GROUP.results": "Deletion results", - "SOURCE_CLEANUP.GROUP.skipped": "Skipped sources", - "SOURCE_CLEANUP.GROUP.uncertain": "Review before deleting", - "SOURCE_CLEANUP.SCOPE": "All network sources in your library, regardless of page filters.", - "SOURCE_CLEANUP.SELECT_ALL": "Select all candidates", - "SOURCE_CLEANUP.SELECT_NONE": "Deselect all", - "SOURCE_CLEANUP.STATUS.checking": "Checking…", - "SOURCE_CLEANUP.STATUS.deleted": "Deleted", - "SOURCE_CLEANUP.STATUS.deleting": "Deleting…", - "SOURCE_CLEANUP.STATUS.failed": "Deletion failed — select to retry", - "SOURCE_CLEANUP.STATUS.skipped": "Playing, busy, changed or no longer present", - "SOURCE_CLEANUP.STOP": "Stop after current source", - "SOURCE_CLEANUP.SUMMARY": "Checked {{checked}}/{{total}} · Available {{available}} · Deleted {{deleted}} · Skipped {{skipped}} · Failed {{failed}}", - "SOURCE_CLEANUP.TITLE": "Clean up inactive sources…", - "SOURCE_CLEANUP.UNTITLED": "Untitled source", - "SOURCE_HEALTH.M3U_SCOPE": "Playlist URL, not individual channels", - "SOURCE_HEALTH.REASON.auth": "Access denied; account status unconfirmed", - "SOURCE_HEALTH.REASON.available": "Available", - "SOURCE_HEALTH.REASON.cancelled": "Check cancelled", - "SOURCE_HEALTH.REASON.checking": "Checking…", - "SOURCE_HEALTH.REASON.disabled": "Account disabled", - "SOURCE_HEALTH.REASON.expired": "Subscription expired", - "SOURCE_HEALTH.REASON.http": "Server returned an error", - "SOURCE_HEALTH.REASON.invalid": "Unexpected response", - "SOURCE_HEALTH.REASON.network": "Could not connect", - "SOURCE_HEALTH.REASON.paused": "Connection checks paused", - "SOURCE_HEALTH.REASON.timeout": "Check timed out", - "SOURCE_HEALTH.REASON.unknown": "Not verified", - "SOURCE_HEALTH.RECHECK": "Check again", "STALKER.ACCOUNT_INFO.LOGIN": "Login", "STALKER.ACCOUNT_INFO.PORTAL_INFO": "Portal", "STALKER.ACCOUNT_INFO.STATUS": "Status", @@ -461,13 +259,10 @@ "DOWNLOADS.OFFLINE_DETAIL.FILE_SIZE": "{{size}}", "EMBEDDED_MPV.PLAYER.TIMELINE_SEGMENT_POSITION": "{{title}} · {{time}}", "HOME.ADD_PLAYLIST.METHOD_URL_LABEL": "M3U URL", - "HOME.FILE_UPLOAD.OR": "or", "HOME.PLAYLISTS.CONTENT_EPG": "EPG", "HOME.PLAYLISTS.FEATURE_STALKER": "Stalker Portal", "HOME.PLAYLISTS.FEATURE_XTREAM": "Xtream Codes", - "HOME.PLAYLISTS.INFO_DIALOG.TITLE": "Title", "HOME.PLAYLISTS.STALKER_PORTAL": "Stalker portal", - "HOME.PLAYLISTS.XTREAM_PLAYLIST": "Xtream playlist", "HOME.PLAYLIST_TYPES.STALKER": "Stalker", "HOME.PLAYLIST_TYPES.XTREAM": "Xtream", "HOME.TITLE": "IPTVnator", @@ -491,75 +286,19 @@ "LANGUAGES.TRADITIONAL_CHINESE": "繁體中文", "LANGUAGES.TURKISH": "Türkçe", "PARENTAL_LOCK.PIN_DIALOG.PIN_LABEL": "PIN", - "PLAYBACK_DIAGNOSTICS.ACTION_OPENING_MPV": "Opening MPV…", - "PLAYBACK_DIAGNOSTICS.ACTION_OPENING_VLC": "Opening VLC…", - "PLAYBACK_DIAGNOSTICS.ACTION_REOPEN_MPV": "Open MPV again", - "PLAYBACK_DIAGNOSTICS.ACTION_REOPEN_VLC": "Open VLC again", - "PLAYBACK_DIAGNOSTICS.ACTION_RETRY_MPV": "Try MPV again", - "PLAYBACK_DIAGNOSTICS.ACTION_RETRY_VLC": "Try VLC again", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_FAILED": "External player error", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_OPENING": "Opening player…", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_PLAYING": "Playing", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_STARTED": "Player started", "PORTALS.MULTI_SOURCE.FILTER_HD": "HD+", "SETTINGS.APP_UPDATE_CHANNEL_NIGHTLY": "Nightly", "SETTINGS.APP_UPDATE_CHANNEL_STABLE": "Stable", - "SETTINGS.BROWSE_EPG_FILE": "Choose a local XMLTV file…", "SETTINGS.CARD_XTREAM": "Xtream", - "SETTINGS.EPG_SOURCE_FORMATS_EXAMPLES": "Examples:", - "SETTINGS.EPG_SOURCE_FORMATS_HINT": "Remote XMLTV links (http/https) and files on this computer are both supported, as plain .xml or gzip-compressed .xml.gz. Local files need an absolute path or a file:// URL.", - "SETTINGS.EPG_SOURCE_LIST_TITLE": "Source list", "SETTINGS.LINK_BLOG": "Blog", "SETTINGS.NAV_EPG": "EPG", "SETTINGS.PLAYER_ARTPLAYER": "ArtPlayer", - "SETTINGS.PLAYER_MPV": "MPV player", "SETTINGS.PLAYER_VLC": "VLC", - "SOURCE_CLEANUP.CLEANUP_WARNING": "Source deleted; some follow-up cleanup failed", - "SOURCE_CLEANUP.CLOSE": "Close", - "SOURCE_CLEANUP.CONSEQUENCES": "Delete only sources you select. Their saved favourites, history and playback progress will also be removed. Downloaded files are kept.", - "SOURCE_CLEANUP.DELETE": "Delete selected · {{count}}", - "SOURCE_CLEANUP.DELETE_PROGRESS": "Processed {{done}} of {{total}} selected sources", - "SOURCE_CLEANUP.GROUP.confirmed": "Confirmed inactive accounts", - "SOURCE_CLEANUP.GROUP.results": "Deletion results", - "SOURCE_CLEANUP.GROUP.skipped": "Skipped sources", - "SOURCE_CLEANUP.GROUP.uncertain": "Review before deleting", - "SOURCE_CLEANUP.SCOPE": "All network sources in your library, regardless of page filters.", - "SOURCE_CLEANUP.SELECT_ALL": "Select all candidates", - "SOURCE_CLEANUP.SELECT_NONE": "Deselect all", - "SOURCE_CLEANUP.STATUS.checking": "Checking…", - "SOURCE_CLEANUP.STATUS.deleted": "Deleted", - "SOURCE_CLEANUP.STATUS.deleting": "Deleting…", - "SOURCE_CLEANUP.STATUS.failed": "Deletion failed — select to retry", - "SOURCE_CLEANUP.STATUS.skipped": "Playing, busy, changed or no longer present", - "SOURCE_CLEANUP.STOP": "Stop after current source", - "SOURCE_CLEANUP.SUMMARY": "Checked {{checked}}/{{total}} · Available {{available}} · Deleted {{deleted}} · Skipped {{skipped}} · Failed {{failed}}", - "SOURCE_CLEANUP.TITLE": "Clean up inactive sources…", - "SOURCE_CLEANUP.UNTITLED": "Untitled source", - "SOURCE_HEALTH.M3U_SCOPE": "Playlist URL, not individual channels", - "SOURCE_HEALTH.REASON.auth": "Access denied; account status unconfirmed", - "SOURCE_HEALTH.REASON.available": "Available", - "SOURCE_HEALTH.REASON.cancelled": "Check cancelled", - "SOURCE_HEALTH.REASON.checking": "Checking…", - "SOURCE_HEALTH.REASON.disabled": "Account disabled", - "SOURCE_HEALTH.REASON.expired": "Subscription expired", - "SOURCE_HEALTH.REASON.http": "Server returned an error", - "SOURCE_HEALTH.REASON.invalid": "Unexpected response", - "SOURCE_HEALTH.REASON.network": "Could not connect", - "SOURCE_HEALTH.REASON.paused": "Connection checks paused", - "SOURCE_HEALTH.REASON.timeout": "Check timed out", - "SOURCE_HEALTH.REASON.unknown": "Not verified", - "SOURCE_HEALTH.RECHECK": "Check again", "WORKSPACE.CONTEXT.STALKER_PORTAL": "Stalker portal", "WORKSPACE.DASHBOARD.M3U": "M3U", "WORKSPACE.DASHBOARD.STALKER": "Stalker", "WORKSPACE.DASHBOARD.STALKER_PORTAL": "Stalker Portal", "WORKSPACE.DASHBOARD.XTREAM": "Xtream", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_CLOSED": "Closed", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_DISMISS": "Dismiss", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_FAILED": "External player error", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_OPENING": "Opening player…", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_PLAYING": "Playing", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_STARTED": "Player started", "WORKSPACE.SHELL.STALKER_PORTAL": "Stalker Portal", "WORKSPACE.SHELL.XTREAM_CODE": "Xtream Code", "XTREAM.ACCOUNT_INFO.HTTPS_PORT": "HTTPS", @@ -608,16 +347,6 @@ "LANGUAGES.TURKISH": "Türkçe", "NO": "No", "PARENTAL_LOCK.PIN_DIALOG.PIN_LABEL": "PIN", - "PLAYBACK_DIAGNOSTICS.ACTION_OPENING_MPV": "Opening MPV…", - "PLAYBACK_DIAGNOSTICS.ACTION_OPENING_VLC": "Opening VLC…", - "PLAYBACK_DIAGNOSTICS.ACTION_REOPEN_MPV": "Open MPV again", - "PLAYBACK_DIAGNOSTICS.ACTION_REOPEN_VLC": "Open VLC again", - "PLAYBACK_DIAGNOSTICS.ACTION_RETRY_MPV": "Try MPV again", - "PLAYBACK_DIAGNOSTICS.ACTION_RETRY_VLC": "Try VLC again", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_FAILED": "External player error", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_OPENING": "Opening player…", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_PLAYING": "Playing", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_STARTED": "Player started", "PORTALS.DETAIL.DURATION_HOURS_MINUTES": "{{hours}} h {{minutes}} min", "PORTALS.DETAIL.DURATION_MINUTES": "{{minutes}} min", "PORTALS.MULTI_SOURCE.FILTER_HD": "HD+", @@ -626,66 +355,21 @@ "REMOTE_CONTROL.VOLUME_ABBR": "VOL", "SETTINGS.APP_UPDATE_CHANNEL_NIGHTLY": "Nightly", "SETTINGS.APP_UPDATE_CHANNEL_STABLE": "Stable", - "SETTINGS.BROWSE_EPG_FILE": "Choose a local XMLTV file…", "SETTINGS.CARD_XTREAM": "Xtream", "SETTINGS.CHIP_EXPERIMENTAL": "Experimental", "SETTINGS.EPG_OFFSET_UNIT": "min", - "SETTINGS.EPG_SOURCE_FORMATS_EXAMPLES": "Examples:", - "SETTINGS.EPG_SOURCE_FORMATS_HINT": "Remote XMLTV links (http/https) and files on this computer are both supported, as plain .xml or gzip-compressed .xml.gz. Local files need an absolute path or a file:// URL.", - "SETTINGS.EPG_SOURCE_LIST_TITLE": "Source list", "SETTINGS.GENERAL": "General", "SETTINGS.LINK_BLOG": "Blog", "SETTINGS.NAV_EPG": "EPG", "SETTINGS.NAV_GENERAL": "General", "SETTINGS.PLAYER_ARTPLAYER": "ArtPlayer", "SETTINGS.PLAYER_VLC": "VLC", - "SOURCE_CLEANUP.CLEANUP_WARNING": "Source deleted; some follow-up cleanup failed", - "SOURCE_CLEANUP.CLOSE": "Close", - "SOURCE_CLEANUP.CONSEQUENCES": "Delete only sources you select. Their saved favourites, history and playback progress will also be removed. Downloaded files are kept.", - "SOURCE_CLEANUP.DELETE": "Delete selected · {{count}}", - "SOURCE_CLEANUP.DELETE_PROGRESS": "Processed {{done}} of {{total}} selected sources", - "SOURCE_CLEANUP.GROUP.confirmed": "Confirmed inactive accounts", - "SOURCE_CLEANUP.GROUP.results": "Deletion results", - "SOURCE_CLEANUP.GROUP.skipped": "Skipped sources", - "SOURCE_CLEANUP.GROUP.uncertain": "Review before deleting", - "SOURCE_CLEANUP.SCOPE": "All network sources in your library, regardless of page filters.", - "SOURCE_CLEANUP.SELECT_ALL": "Select all candidates", - "SOURCE_CLEANUP.SELECT_NONE": "Deselect all", - "SOURCE_CLEANUP.STATUS.checking": "Checking…", - "SOURCE_CLEANUP.STATUS.deleted": "Deleted", - "SOURCE_CLEANUP.STATUS.deleting": "Deleting…", - "SOURCE_CLEANUP.STATUS.failed": "Deletion failed — select to retry", - "SOURCE_CLEANUP.STATUS.skipped": "Playing, busy, changed or no longer present", - "SOURCE_CLEANUP.STOP": "Stop after current source", - "SOURCE_CLEANUP.SUMMARY": "Checked {{checked}}/{{total}} · Available {{available}} · Deleted {{deleted}} · Skipped {{skipped}} · Failed {{failed}}", - "SOURCE_CLEANUP.TITLE": "Clean up inactive sources…", - "SOURCE_CLEANUP.UNTITLED": "Untitled source", - "SOURCE_HEALTH.M3U_SCOPE": "Playlist URL, not individual channels", - "SOURCE_HEALTH.REASON.auth": "Access denied; account status unconfirmed", - "SOURCE_HEALTH.REASON.available": "Available", - "SOURCE_HEALTH.REASON.cancelled": "Check cancelled", - "SOURCE_HEALTH.REASON.checking": "Checking…", - "SOURCE_HEALTH.REASON.disabled": "Account disabled", - "SOURCE_HEALTH.REASON.expired": "Subscription expired", - "SOURCE_HEALTH.REASON.http": "Server returned an error", - "SOURCE_HEALTH.REASON.invalid": "Unexpected response", - "SOURCE_HEALTH.REASON.network": "Could not connect", - "SOURCE_HEALTH.REASON.paused": "Connection checks paused", - "SOURCE_HEALTH.REASON.timeout": "Check timed out", - "SOURCE_HEALTH.REASON.unknown": "Not verified", - "SOURCE_HEALTH.RECHECK": "Check again", "STALKER.ACCOUNT_INFO.PORTAL_INFO": "Portal", "WORKSPACE.DASHBOARD.M3U": "M3U", "WORKSPACE.DASHBOARD.STALKER": "Stalker", "WORKSPACE.DASHBOARD.STALKER_PORTAL": "Stalker Portal", "WORKSPACE.DASHBOARD.XTREAM": "Xtream", "WORKSPACE.SHELL.COMMANDS.GO_TO_SERIES_LABEL": "Series", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_CLOSED": "Closed", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_DISMISS": "Dismiss", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_FAILED": "External player error", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_OPENING": "Opening player…", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_PLAYING": "Playing", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_STARTED": "Player started", "WORKSPACE.SHELL.RAIL_SERIES": "Series", "WORKSPACE.SHELL.STALKER_PORTAL": "Stalker Portal", "WORKSPACE.SHELL.XTREAM_CODE": "Xtream Code", @@ -747,16 +431,6 @@ "LANGUAGES.SPANISH": "Español", "LANGUAGES.TRADITIONAL_CHINESE": "繁體中文", "LANGUAGES.TURKISH": "Türkçe", - "PLAYBACK_DIAGNOSTICS.ACTION_OPENING_MPV": "Opening MPV…", - "PLAYBACK_DIAGNOSTICS.ACTION_OPENING_VLC": "Opening VLC…", - "PLAYBACK_DIAGNOSTICS.ACTION_REOPEN_MPV": "Open MPV again", - "PLAYBACK_DIAGNOSTICS.ACTION_REOPEN_VLC": "Open VLC again", - "PLAYBACK_DIAGNOSTICS.ACTION_RETRY_MPV": "Try MPV again", - "PLAYBACK_DIAGNOSTICS.ACTION_RETRY_VLC": "Try VLC again", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_FAILED": "External player error", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_OPENING": "Opening player…", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_PLAYING": "Playing", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_STARTED": "Player started", "PORTALS.DETAIL.DURATION_HOURS_MINUTES": "{{hours}} h {{minutes}} min", "PORTALS.DETAIL.DURATION_MINUTES": "{{minutes}} min", "PORTALS.DETAIL.GROUP_SOURCE": "Source", @@ -769,15 +443,11 @@ "REMOTE_CONTROL.VOLUME_ABBR": "VOL", "SETTINGS.APP_UPDATE_CHANNEL_NIGHTLY": "Nightly", "SETTINGS.APP_UPDATE_CHANNEL_STABLE": "Stable", - "SETTINGS.BROWSE_EPG_FILE": "Choose a local XMLTV file…", "SETTINGS.CARD_CACHE": "Cache", "SETTINGS.CARD_GUIDE": "Guide", "SETTINGS.CARD_SOURCES": "Sources", "SETTINGS.CARD_XTREAM": "Xtream", "SETTINGS.EPG_OFFSET_UNIT": "min", - "SETTINGS.EPG_SOURCE_FORMATS_EXAMPLES": "Examples:", - "SETTINGS.EPG_SOURCE_FORMATS_HINT": "Remote XMLTV links (http/https) and files on this computer are both supported, as plain .xml or gzip-compressed .xml.gz. Local files need an absolute path or a file:// URL.", - "SETTINGS.EPG_SOURCE_LIST_TITLE": "Source list", "SETTINGS.LINK_BLOG": "Blog", "SETTINGS.NAV_EPG": "EPG", "SETTINGS.PLAYER_ARTPLAYER": "ArtPlayer", @@ -786,51 +456,10 @@ "SETTINGS.SOURCE_PLURAL": "sources", "SETTINGS.SOURCE_SINGULAR": "source", "SETTINGS.VERSION": "Version", - "SOURCE_CLEANUP.CLEANUP_WARNING": "Source deleted; some follow-up cleanup failed", - "SOURCE_CLEANUP.CLOSE": "Close", - "SOURCE_CLEANUP.CONSEQUENCES": "Delete only sources you select. Their saved favourites, history and playback progress will also be removed. Downloaded files are kept.", - "SOURCE_CLEANUP.DELETE": "Delete selected · {{count}}", - "SOURCE_CLEANUP.DELETE_PROGRESS": "Processed {{done}} of {{total}} selected sources", - "SOURCE_CLEANUP.GROUP.confirmed": "Confirmed inactive accounts", - "SOURCE_CLEANUP.GROUP.results": "Deletion results", - "SOURCE_CLEANUP.GROUP.skipped": "Skipped sources", - "SOURCE_CLEANUP.GROUP.uncertain": "Review before deleting", - "SOURCE_CLEANUP.SCOPE": "All network sources in your library, regardless of page filters.", - "SOURCE_CLEANUP.SELECT_ALL": "Select all candidates", - "SOURCE_CLEANUP.SELECT_NONE": "Deselect all", - "SOURCE_CLEANUP.STATUS.checking": "Checking…", - "SOURCE_CLEANUP.STATUS.deleted": "Deleted", - "SOURCE_CLEANUP.STATUS.deleting": "Deleting…", - "SOURCE_CLEANUP.STATUS.failed": "Deletion failed — select to retry", - "SOURCE_CLEANUP.STATUS.skipped": "Playing, busy, changed or no longer present", - "SOURCE_CLEANUP.STOP": "Stop after current source", - "SOURCE_CLEANUP.SUMMARY": "Checked {{checked}}/{{total}} · Available {{available}} · Deleted {{deleted}} · Skipped {{skipped}} · Failed {{failed}}", - "SOURCE_CLEANUP.TITLE": "Clean up inactive sources…", - "SOURCE_CLEANUP.UNTITLED": "Untitled source", - "SOURCE_HEALTH.M3U_SCOPE": "Playlist URL, not individual channels", - "SOURCE_HEALTH.REASON.auth": "Access denied; account status unconfirmed", - "SOURCE_HEALTH.REASON.available": "Available", - "SOURCE_HEALTH.REASON.cancelled": "Check cancelled", - "SOURCE_HEALTH.REASON.checking": "Checking…", - "SOURCE_HEALTH.REASON.disabled": "Account disabled", - "SOURCE_HEALTH.REASON.expired": "Subscription expired", - "SOURCE_HEALTH.REASON.http": "Server returned an error", - "SOURCE_HEALTH.REASON.invalid": "Unexpected response", - "SOURCE_HEALTH.REASON.network": "Could not connect", - "SOURCE_HEALTH.REASON.paused": "Connection checks paused", - "SOURCE_HEALTH.REASON.timeout": "Check timed out", - "SOURCE_HEALTH.REASON.unknown": "Not verified", - "SOURCE_HEALTH.RECHECK": "Check again", "WORKSPACE.DASHBOARD.M3U": "M3U", "WORKSPACE.DASHBOARD.SEASON_EPISODE_BADGE": "S{{season}}·E{{episode}}", "WORKSPACE.DASHBOARD.STALKER": "Stalker", "WORKSPACE.DASHBOARD.XTREAM": "Xtream", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_CLOSED": "Closed", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_DISMISS": "Dismiss", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_FAILED": "External player error", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_OPENING": "Opening player…", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_PLAYING": "Playing", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_STARTED": "Player started", "WORKSPACE.SHELL.RAIL_SOURCES": "Sources", "WORKSPACE.SHELL.XTREAM_CODE": "Xtream Code", "WORKSPACE.SOURCES.TITLE": "Sources", @@ -850,31 +479,9 @@ "CHANNELS.DETAILS_DIALOG.HTTP_USER_AGENT": "User-Agent", "CHANNELS.DETAILS_DIALOG.TVG_REC": "TVG rec", "CHANNELS.MAP_EPG": "Map EPG channel", - "DOWNLOADS.ACTION_FAILED": "Action failed", "DOWNLOADS.OFFLINE_DETAIL.FILE_SIZE": "{{size}}", - "DOWNLOADS.PAUSE": "Pause", "DOWNLOADS.RECORDING_CHIP": "REC", - "DOWNLOADS.RESUME": "Resume", - "DOWNLOADS.STATUS.PAUSED": "Paused", - "EMBEDDED_MPV.PLAYER.BACK": "Back", "EMBEDDED_MPV.PLAYER.TIMELINE_SEGMENT_POSITION": "{{title}} · {{time}}", - "EPG_MAPPING_DIALOG.CLOSE": "Close", - "EPG_MAPPING_DIALOG.CURRENT_MAPPING": "Current mapping", - "EPG_MAPPING_DIALOG.NO_MAPPING": "No EPG mapping set", - "EPG_MAPPING_DIALOG.NO_RESULTS": "No EPG channels found", - "EPG_MAPPING_DIALOG.REMOVE": "Remove mapping", - "EPG_MAPPING_DIALOG.REMOVED": "EPG mapping removed", - "EPG_MAPPING_DIALOG.SAVE": "Save mapping", - "EPG_MAPPING_DIALOG.SAVED": "EPG mapping saved", - "EPG_MAPPING_DIALOG.SAVE_FAILED": "Could not update the EPG mapping", - "EPG_MAPPING_DIALOG.SEARCH_HINT": "Type at least {{min}} characters to search", - "EPG_MAPPING_DIALOG.SEARCH_PLACEHOLDER": "Search EPG channels...", - "EPG_MAPPING_DIALOG.SUBTITLE": "Manually select an EPG channel for \"{{channelName}}\"", - "EPG_MAPPING_DIALOG.TITLE": "Map EPG Channel", - "HOME.PLAYLISTS.AUTO_REFRESH_UPDATE_FAILED": "Playlist auto-refresh failed. None of the {{total}} playlists could be updated.", - "HOME.PLAYLISTS.AUTO_REFRESH_UPDATE_PARTIAL": "Playlist auto-refresh incomplete: {{updated}} of {{total}} playlists updated, {{failed}} failed.", - "HOME.PLAYLISTS.AUTO_REFRESH_UPDATE_PARTIAL_WITH_SKIPPED": "Playlist auto-refresh incomplete: {{updated}} of {{total}} playlists updated, {{failed}} failed, {{skipped}} skipped (no URL or file path).", - "HOME.PLAYLISTS.AUTO_REFRESH_UPDATE_SKIPPED": "Playlist auto-refresh: {{updated}} of {{total}} playlists updated, {{skipped}} skipped (no URL or file path).", "HOME.PLAYLISTS.CONTENT_EPG": "EPG", "HOME.PLAYLISTS.FEATURE_XTREAM": "Xtream Codes", "HOME.PLAYLIST_TYPES.STALKER": "Stalker", @@ -899,84 +506,20 @@ "LANGUAGES.SPANISH": "Español", "LANGUAGES.TRADITIONAL_CHINESE": "繁體中文", "LANGUAGES.TURKISH": "Türkçe", - "PLAYBACK_DIAGNOSTICS.ACTION_OPENING_MPV": "Opening MPV…", - "PLAYBACK_DIAGNOSTICS.ACTION_OPENING_VLC": "Opening VLC…", - "PLAYBACK_DIAGNOSTICS.ACTION_REOPEN_MPV": "Open MPV again", - "PLAYBACK_DIAGNOSTICS.ACTION_REOPEN_VLC": "Open VLC again", - "PLAYBACK_DIAGNOSTICS.ACTION_RETRY_MPV": "Try MPV again", - "PLAYBACK_DIAGNOSTICS.ACTION_RETRY_VLC": "Try VLC again", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_FAILED": "External player error", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_OPENING": "Opening player…", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_PLAYING": "Playing", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_STARTED": "Player started", - "PORTALS.ITEM": "item", - "PORTALS.ITEMS": "items", - "PORTALS.LOADING_ALL_CHANNELS": "Loading full channel list…", "PORTALS.MULTI_SOURCE.FILTER_HD": "HD+", - "PORTALS.NO_CHANNELS_IN_CATEGORY": "No channels in this category", - "PORTALS.REFRESH_CHANNEL_LIST": "Refresh channel list", "SETTINGS.APP_UPDATE_CHANNEL_NIGHTLY": "Nightly", "SETTINGS.APP_UPDATE_CHANNEL_STABLE": "Stable", - "SETTINGS.BROWSE_EPG_FILE": "Choose a local XMLTV file…", "SETTINGS.CARD_XTREAM": "Xtream", - "SETTINGS.EPG_SOURCE_FORMATS_EXAMPLES": "Examples:", - "SETTINGS.EPG_SOURCE_FORMATS_HINT": "Remote XMLTV links (http/https) and files on this computer are both supported, as plain .xml or gzip-compressed .xml.gz. Local files need an absolute path or a file:// URL.", - "SETTINGS.EPG_SOURCE_LIST_TITLE": "Source list", "SETTINGS.LINK_BLOG": "Blog", "SETTINGS.NAV_EPG": "EPG", - "SETTINGS.PLAYER_AMBIENT_MODE": "Ambient background fill", - "SETTINGS.PLAYER_AMBIENT_MODE_DESCRIPTION": "Fill the space around the player with a blurred, dimmed poster instead of plain black bars.", "SETTINGS.PLAYER_ARTPLAYER": "ArtPlayer", "SETTINGS.PLAYER_VLC": "VLC", - "SOURCE_CLEANUP.CLEANUP_WARNING": "Source deleted; some follow-up cleanup failed", - "SOURCE_CLEANUP.CLOSE": "Close", - "SOURCE_CLEANUP.CONSEQUENCES": "Delete only sources you select. Their saved favourites, history and playback progress will also be removed. Downloaded files are kept.", - "SOURCE_CLEANUP.DELETE": "Delete selected · {{count}}", - "SOURCE_CLEANUP.DELETE_PROGRESS": "Processed {{done}} of {{total}} selected sources", - "SOURCE_CLEANUP.GROUP.confirmed": "Confirmed inactive accounts", - "SOURCE_CLEANUP.GROUP.results": "Deletion results", - "SOURCE_CLEANUP.GROUP.skipped": "Skipped sources", - "SOURCE_CLEANUP.GROUP.uncertain": "Review before deleting", - "SOURCE_CLEANUP.SCOPE": "All network sources in your library, regardless of page filters.", - "SOURCE_CLEANUP.SELECT_ALL": "Select all candidates", - "SOURCE_CLEANUP.SELECT_NONE": "Deselect all", - "SOURCE_CLEANUP.STATUS.checking": "Checking…", - "SOURCE_CLEANUP.STATUS.deleted": "Deleted", - "SOURCE_CLEANUP.STATUS.deleting": "Deleting…", - "SOURCE_CLEANUP.STATUS.failed": "Deletion failed — select to retry", - "SOURCE_CLEANUP.STATUS.skipped": "Playing, busy, changed or no longer present", - "SOURCE_CLEANUP.STOP": "Stop after current source", - "SOURCE_CLEANUP.SUMMARY": "Checked {{checked}}/{{total}} · Available {{available}} · Deleted {{deleted}} · Skipped {{skipped}} · Failed {{failed}}", - "SOURCE_CLEANUP.TITLE": "Clean up inactive sources…", - "SOURCE_CLEANUP.UNTITLED": "Untitled source", - "SOURCE_HEALTH.M3U_SCOPE": "Playlist URL, not individual channels", - "SOURCE_HEALTH.REASON.auth": "Access denied; account status unconfirmed", - "SOURCE_HEALTH.REASON.available": "Available", - "SOURCE_HEALTH.REASON.cancelled": "Check cancelled", - "SOURCE_HEALTH.REASON.checking": "Checking…", - "SOURCE_HEALTH.REASON.disabled": "Account disabled", - "SOURCE_HEALTH.REASON.expired": "Subscription expired", - "SOURCE_HEALTH.REASON.http": "Server returned an error", - "SOURCE_HEALTH.REASON.invalid": "Unexpected response", - "SOURCE_HEALTH.REASON.network": "Could not connect", - "SOURCE_HEALTH.REASON.paused": "Connection checks paused", - "SOURCE_HEALTH.REASON.timeout": "Check timed out", - "SOURCE_HEALTH.REASON.unknown": "Not verified", - "SOURCE_HEALTH.RECHECK": "Check again", "WORKSPACE.DASHBOARD.M3U": "M3U", "WORKSPACE.DASHBOARD.STALKER": "Stalker", "WORKSPACE.DASHBOARD.XTREAM": "Xtream", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_CLOSED": "Closed", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_DISMISS": "Dismiss", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_FAILED": "External player error", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_OPENING": "Opening player…", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_PLAYING": "Playing", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_STARTED": "Player started", "XTREAM.ACCOUNT_INFO.HTTPS_PORT": "HTTPS", "XTREAM.ACCOUNT_INFO.HTTP_PORT": "HTTP", "XTREAM.ACCOUNT_INFO.RTMP_PORT": "RTMP", - "XTREAM.CREW_JOB_CREATOR": "Creator", - "XTREAM.CREW_JOB_DIRECTOR": "Director", "XTREAM.SERIES_STATUS_PILOT": "Pilot" }, "it": { @@ -1026,16 +569,6 @@ "LANGUAGES.TURKISH": "Türkçe", "NO": "No", "PARENTAL_LOCK.PIN_DIALOG.PIN_LABEL": "PIN", - "PLAYBACK_DIAGNOSTICS.ACTION_OPENING_MPV": "Opening MPV…", - "PLAYBACK_DIAGNOSTICS.ACTION_OPENING_VLC": "Opening VLC…", - "PLAYBACK_DIAGNOSTICS.ACTION_REOPEN_MPV": "Open MPV again", - "PLAYBACK_DIAGNOSTICS.ACTION_REOPEN_VLC": "Open VLC again", - "PLAYBACK_DIAGNOSTICS.ACTION_RETRY_MPV": "Try MPV again", - "PLAYBACK_DIAGNOSTICS.ACTION_RETRY_VLC": "Try VLC again", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_FAILED": "External player error", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_OPENING": "Opening player…", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_PLAYING": "Playing", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_STARTED": "Player started", "PORTALS.DETAIL.DURATION_HOURS_MINUTES": "{{hours}} h {{minutes}} min", "PORTALS.DETAIL.DURATION_MINUTES": "{{minutes}} min", "PORTALS.DETAIL.TRAILER": "Trailer", @@ -1046,14 +579,10 @@ "REMOTE_CONTROL.VOLUME_ABBR": "VOL", "SETTINGS.APP_UPDATE_CHANNEL_NIGHTLY": "Nightly", "SETTINGS.APP_UPDATE_CHANNEL_STABLE": "Stable", - "SETTINGS.BROWSE_EPG_FILE": "Choose a local XMLTV file…", "SETTINGS.CARD_CACHE": "Cache", "SETTINGS.CARD_DESKTOP": "Desktop", "SETTINGS.CARD_XTREAM": "Xtream", "SETTINGS.EPG_OFFSET_UNIT": "min", - "SETTINGS.EPG_SOURCE_FORMATS_EXAMPLES": "Examples:", - "SETTINGS.EPG_SOURCE_FORMATS_HINT": "Remote XMLTV links (http/https) and files on this computer are both supported, as plain .xml or gzip-compressed .xml.gz. Local files need an absolute path or a file:// URL.", - "SETTINGS.EPG_SOURCE_LIST_TITLE": "Source list", "SETTINGS.EPG_VIEW_MODE_TIMELINE": "Timeline", "SETTINGS.LINK_BLOG": "Blog", "SETTINGS.NAV_EPG": "EPG", @@ -1061,41 +590,6 @@ "SETTINGS.NAV_REMOTE": "Remote", "SETTINGS.PLAYER_ARTPLAYER": "ArtPlayer", "SETTINGS.PLAYER_VLC": "VLC", - "SOURCE_CLEANUP.CLEANUP_WARNING": "Source deleted; some follow-up cleanup failed", - "SOURCE_CLEANUP.CLOSE": "Close", - "SOURCE_CLEANUP.CONSEQUENCES": "Delete only sources you select. Their saved favourites, history and playback progress will also be removed. Downloaded files are kept.", - "SOURCE_CLEANUP.DELETE": "Delete selected · {{count}}", - "SOURCE_CLEANUP.DELETE_PROGRESS": "Processed {{done}} of {{total}} selected sources", - "SOURCE_CLEANUP.GROUP.confirmed": "Confirmed inactive accounts", - "SOURCE_CLEANUP.GROUP.results": "Deletion results", - "SOURCE_CLEANUP.GROUP.skipped": "Skipped sources", - "SOURCE_CLEANUP.GROUP.uncertain": "Review before deleting", - "SOURCE_CLEANUP.SCOPE": "All network sources in your library, regardless of page filters.", - "SOURCE_CLEANUP.SELECT_ALL": "Select all candidates", - "SOURCE_CLEANUP.SELECT_NONE": "Deselect all", - "SOURCE_CLEANUP.STATUS.checking": "Checking…", - "SOURCE_CLEANUP.STATUS.deleted": "Deleted", - "SOURCE_CLEANUP.STATUS.deleting": "Deleting…", - "SOURCE_CLEANUP.STATUS.failed": "Deletion failed — select to retry", - "SOURCE_CLEANUP.STATUS.skipped": "Playing, busy, changed or no longer present", - "SOURCE_CLEANUP.STOP": "Stop after current source", - "SOURCE_CLEANUP.SUMMARY": "Checked {{checked}}/{{total}} · Available {{available}} · Deleted {{deleted}} · Skipped {{skipped}} · Failed {{failed}}", - "SOURCE_CLEANUP.TITLE": "Clean up inactive sources…", - "SOURCE_CLEANUP.UNTITLED": "Untitled source", - "SOURCE_HEALTH.M3U_SCOPE": "Playlist URL, not individual channels", - "SOURCE_HEALTH.REASON.auth": "Access denied; account status unconfirmed", - "SOURCE_HEALTH.REASON.available": "Available", - "SOURCE_HEALTH.REASON.cancelled": "Check cancelled", - "SOURCE_HEALTH.REASON.checking": "Checking…", - "SOURCE_HEALTH.REASON.disabled": "Account disabled", - "SOURCE_HEALTH.REASON.expired": "Subscription expired", - "SOURCE_HEALTH.REASON.http": "Server returned an error", - "SOURCE_HEALTH.REASON.invalid": "Unexpected response", - "SOURCE_HEALTH.REASON.network": "Could not connect", - "SOURCE_HEALTH.REASON.paused": "Connection checks paused", - "SOURCE_HEALTH.REASON.timeout": "Check timed out", - "SOURCE_HEALTH.REASON.unknown": "Not verified", - "SOURCE_HEALTH.RECHECK": "Check again", "STALKER.ACCOUNT_INFO.ACCOUNT": "Account", "STALKER.ACCOUNT_INFO.LOGIN": "Login", "WORKSPACE.DASHBOARD.M3U": "M3U", @@ -1103,12 +597,6 @@ "WORKSPACE.DASHBOARD.STALKER": "Stalker", "WORKSPACE.DASHBOARD.TYPE_LIVE": "Live", "WORKSPACE.DASHBOARD.XTREAM": "Xtream", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_CLOSED": "Closed", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_DISMISS": "Dismiss", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_FAILED": "External player error", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_OPENING": "Opening player…", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_PLAYING": "Playing", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_STARTED": "Player started", "WORKSPACE.SHELL.RAIL_DASHBOARD": "Dashboard", "WORKSPACE.SOURCES.PLAYLIST_COUNT_ONE": "1 playlist", "XTREAM.ACCOUNT_INFO.HTTPS_PORT": "HTTPS", @@ -1122,8 +610,6 @@ "CHANNELS.DETAILS_DIALOG.HTTP_REFERRER": "Referrer", "CHANNELS.DETAILS_DIALOG.HTTP_USER_AGENT": "User-Agent", "CHANNELS.DETAILS_DIALOG.TVG_ID": "TVG ID", - "CHANNELS.DETAILS_DIALOG.TVG_LOGO": "TVG logo", - "CHANNELS.DETAILS_DIALOG.TVG_NAME": "TVG name", "CHANNELS.DETAILS_DIALOG.TVG_REC": "TVG rec", "CHANNELS.DETAILS_DIALOG.TVG_URL": "TVG URL", "DOWNLOADS.OFFLINE_DETAIL.FILE_SIZE": "{{size}}", @@ -1154,71 +640,16 @@ "LANGUAGES.TRADITIONAL_CHINESE": "繁體中文", "LANGUAGES.TURKISH": "Türkçe", "PARENTAL_LOCK.PIN_DIALOG.PIN_LABEL": "PIN", - "PLAYBACK_DIAGNOSTICS.ACTION_OPENING_MPV": "Opening MPV…", - "PLAYBACK_DIAGNOSTICS.ACTION_OPENING_VLC": "Opening VLC…", - "PLAYBACK_DIAGNOSTICS.ACTION_REOPEN_MPV": "Open MPV again", - "PLAYBACK_DIAGNOSTICS.ACTION_REOPEN_VLC": "Open VLC again", - "PLAYBACK_DIAGNOSTICS.ACTION_RETRY_MPV": "Try MPV again", - "PLAYBACK_DIAGNOSTICS.ACTION_RETRY_VLC": "Try VLC again", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_FAILED": "External player error", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_OPENING": "Opening player…", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_PLAYING": "Playing", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_STARTED": "Player started", "PORTALS.MULTI_SOURCE.FILTER_HD": "HD+", "SETTINGS.APP_UPDATE_CHANNEL_NIGHTLY": "Nightly", "SETTINGS.APP_UPDATE_CHANNEL_STABLE": "Stable", - "SETTINGS.BROWSE_EPG_FILE": "Choose a local XMLTV file…", "SETTINGS.CARD_XTREAM": "Xtream", - "SETTINGS.EPG_SOURCE_FORMATS_EXAMPLES": "Examples:", - "SETTINGS.EPG_SOURCE_FORMATS_HINT": "Remote XMLTV links (http/https) and files on this computer are both supported, as plain .xml or gzip-compressed .xml.gz. Local files need an absolute path or a file:// URL.", - "SETTINGS.EPG_SOURCE_LIST_TITLE": "Source list", "SETTINGS.NAV_EPG": "EPG", "SETTINGS.PLAYER_ARTPLAYER": "ArtPlayer", "SETTINGS.PLAYER_VLC": "VLC", - "SOURCE_CLEANUP.CLEANUP_WARNING": "Source deleted; some follow-up cleanup failed", - "SOURCE_CLEANUP.CLOSE": "Close", - "SOURCE_CLEANUP.CONSEQUENCES": "Delete only sources you select. Their saved favourites, history and playback progress will also be removed. Downloaded files are kept.", - "SOURCE_CLEANUP.DELETE": "Delete selected · {{count}}", - "SOURCE_CLEANUP.DELETE_PROGRESS": "Processed {{done}} of {{total}} selected sources", - "SOURCE_CLEANUP.GROUP.confirmed": "Confirmed inactive accounts", - "SOURCE_CLEANUP.GROUP.results": "Deletion results", - "SOURCE_CLEANUP.GROUP.skipped": "Skipped sources", - "SOURCE_CLEANUP.GROUP.uncertain": "Review before deleting", - "SOURCE_CLEANUP.SCOPE": "All network sources in your library, regardless of page filters.", - "SOURCE_CLEANUP.SELECT_ALL": "Select all candidates", - "SOURCE_CLEANUP.SELECT_NONE": "Deselect all", - "SOURCE_CLEANUP.STATUS.checking": "Checking…", - "SOURCE_CLEANUP.STATUS.deleted": "Deleted", - "SOURCE_CLEANUP.STATUS.deleting": "Deleting…", - "SOURCE_CLEANUP.STATUS.failed": "Deletion failed — select to retry", - "SOURCE_CLEANUP.STATUS.skipped": "Playing, busy, changed or no longer present", - "SOURCE_CLEANUP.STOP": "Stop after current source", - "SOURCE_CLEANUP.SUMMARY": "Checked {{checked}}/{{total}} · Available {{available}} · Deleted {{deleted}} · Skipped {{skipped}} · Failed {{failed}}", - "SOURCE_CLEANUP.TITLE": "Clean up inactive sources…", - "SOURCE_CLEANUP.UNTITLED": "Untitled source", - "SOURCE_HEALTH.M3U_SCOPE": "Playlist URL, not individual channels", - "SOURCE_HEALTH.REASON.auth": "Access denied; account status unconfirmed", - "SOURCE_HEALTH.REASON.available": "Available", - "SOURCE_HEALTH.REASON.cancelled": "Check cancelled", - "SOURCE_HEALTH.REASON.checking": "Checking…", - "SOURCE_HEALTH.REASON.disabled": "Account disabled", - "SOURCE_HEALTH.REASON.expired": "Subscription expired", - "SOURCE_HEALTH.REASON.http": "Server returned an error", - "SOURCE_HEALTH.REASON.invalid": "Unexpected response", - "SOURCE_HEALTH.REASON.network": "Could not connect", - "SOURCE_HEALTH.REASON.paused": "Connection checks paused", - "SOURCE_HEALTH.REASON.timeout": "Check timed out", - "SOURCE_HEALTH.REASON.unknown": "Not verified", - "SOURCE_HEALTH.RECHECK": "Check again", "WORKSPACE.DASHBOARD.M3U": "M3U", "WORKSPACE.DASHBOARD.STALKER": "Stalker", "WORKSPACE.DASHBOARD.XTREAM": "Xtream", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_CLOSED": "Closed", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_DISMISS": "Dismiss", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_FAILED": "External player error", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_OPENING": "Opening player…", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_PLAYING": "Playing", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_STARTED": "Player started", "WORKSPACE.SHELL.XTREAM_CODE": "Xtream Code", "XTREAM.ACCOUNT_INFO.HTTPS_PORT": "HTTPS", "XTREAM.ACCOUNT_INFO.HTTP_PORT": "HTTP", @@ -1233,17 +664,10 @@ "DOWNLOADS.OFFLINE_DETAIL.FILE_SIZE": "{{size}}", "DOWNLOADS.RECORDING_CHIP": "REC", "EMBEDDED_MPV.PLAYER.TIMELINE_SEGMENT_POSITION": "{{title}} · {{time}}", - "EPG.DOWNLOAD_SUCCESS": "EPG was successfully downloaded.", - "EPG.ERROR": "Ooops, EPG could not be loaded.", - "EPG.LIVE_STREAM": "Live stream", "HOME.ADD_PLAYLIST.METHOD_URL_LABEL": "M3U URL", "HOME.PLAYLISTS.CONTENT_EPG": "EPG", - "HOME.PLAYLISTS.GLOBAL_FAVORITES": "Global favorites", - "HOME.PLAYLISTS.GLOBAL_FAVORITES_DESCRIPTION": "Auto-generated playlist with aggregated favorites from all playlists", - "HOME.PLAYLISTS.MY_PLAYLISTS": "My playlists", "HOME.PLAYLIST_TYPES.STALKER": "Stalker", "HOME.PLAYLIST_TYPES.XTREAM": "Xtream", - "HOME.TEXT_IMPORT.LABEL": "Insert m3u(8) playlist as text", "HOME.TITLE": "IPTVnator", "LANGUAGES.ARABIC": "العربية", "LANGUAGES.BELARUSIAN": "Беларуская", @@ -1264,87 +688,21 @@ "LANGUAGES.SPANISH": "Español", "LANGUAGES.TRADITIONAL_CHINESE": "繁體中文", "LANGUAGES.TURKISH": "Türkçe", - "MENU.ABOUT": "About", - "MENU.ABOUT_ARIA": "About the application", - "MENU.BUG_REPORT": "Report a bug", - "MENU.OPEN": "Open menu", - "MENU.SETTINGS_ARIA": "Open settings", - "MENU.SUPPORT_ARIA": "Support IPTVnator on GitHub", - "MENU.WHAT_IS_NEW": "What is new", - "NO": "No", "PARENTAL_LOCK.PIN_DIALOG.PIN_LABEL": "PIN", - "PLAYBACK_DIAGNOSTICS.ACTION_OPENING_MPV": "Opening MPV…", - "PLAYBACK_DIAGNOSTICS.ACTION_OPENING_VLC": "Opening VLC…", - "PLAYBACK_DIAGNOSTICS.ACTION_REOPEN_MPV": "Open MPV again", - "PLAYBACK_DIAGNOSTICS.ACTION_REOPEN_VLC": "Open VLC again", - "PLAYBACK_DIAGNOSTICS.ACTION_RETRY_MPV": "Try MPV again", - "PLAYBACK_DIAGNOSTICS.ACTION_RETRY_VLC": "Try VLC again", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_FAILED": "External player error", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_OPENING": "Opening player…", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_PLAYING": "Playing", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_STARTED": "Player started", "PORTALS.MULTI_SOURCE.FILTER_HD": "HD+", "SETTINGS.APP_UPDATE_CHANNEL_NIGHTLY": "Nightly", "SETTINGS.APP_UPDATE_CHANNEL_STABLE": "Stable", - "SETTINGS.BROWSE_EPG_FILE": "Choose a local XMLTV file…", "SETTINGS.CARD_XTREAM": "Xtream", - "SETTINGS.EPG_SOURCE_FORMATS_EXAMPLES": "Examples:", - "SETTINGS.EPG_SOURCE_FORMATS_HINT": "Remote XMLTV links (http/https) and files on this computer are both supported, as plain .xml or gzip-compressed .xml.gz. Local files need an absolute path or a file:// URL.", - "SETTINGS.EPG_SOURCE_LIST_TITLE": "Source list", "SETTINGS.NAV_EPG": "EPG", "SETTINGS.PLAYER_ARTPLAYER": "ArtPlayer", "SETTINGS.PLAYER_VLC": "VLC", - "SETTINGS.SHOW_CAPTIONS": "Show subtitles", - "SETTINGS.SUPPORT_KOFI_HINT": "Buy me a coffee", - "SOURCE_CLEANUP.CLEANUP_WARNING": "Source deleted; some follow-up cleanup failed", - "SOURCE_CLEANUP.CLOSE": "Close", - "SOURCE_CLEANUP.CONSEQUENCES": "Delete only sources you select. Their saved favourites, history and playback progress will also be removed. Downloaded files are kept.", - "SOURCE_CLEANUP.DELETE": "Delete selected · {{count}}", - "SOURCE_CLEANUP.DELETE_PROGRESS": "Processed {{done}} of {{total}} selected sources", - "SOURCE_CLEANUP.GROUP.confirmed": "Confirmed inactive accounts", - "SOURCE_CLEANUP.GROUP.results": "Deletion results", - "SOURCE_CLEANUP.GROUP.skipped": "Skipped sources", - "SOURCE_CLEANUP.GROUP.uncertain": "Review before deleting", - "SOURCE_CLEANUP.SCOPE": "All network sources in your library, regardless of page filters.", - "SOURCE_CLEANUP.SELECT_ALL": "Select all candidates", - "SOURCE_CLEANUP.SELECT_NONE": "Deselect all", - "SOURCE_CLEANUP.STATUS.checking": "Checking…", - "SOURCE_CLEANUP.STATUS.deleted": "Deleted", - "SOURCE_CLEANUP.STATUS.deleting": "Deleting…", - "SOURCE_CLEANUP.STATUS.failed": "Deletion failed — select to retry", - "SOURCE_CLEANUP.STATUS.skipped": "Playing, busy, changed or no longer present", - "SOURCE_CLEANUP.STOP": "Stop after current source", - "SOURCE_CLEANUP.SUMMARY": "Checked {{checked}}/{{total}} · Available {{available}} · Deleted {{deleted}} · Skipped {{skipped}} · Failed {{failed}}", - "SOURCE_CLEANUP.TITLE": "Clean up inactive sources…", - "SOURCE_CLEANUP.UNTITLED": "Untitled source", - "SOURCE_HEALTH.M3U_SCOPE": "Playlist URL, not individual channels", - "SOURCE_HEALTH.REASON.auth": "Access denied; account status unconfirmed", - "SOURCE_HEALTH.REASON.available": "Available", - "SOURCE_HEALTH.REASON.cancelled": "Check cancelled", - "SOURCE_HEALTH.REASON.checking": "Checking…", - "SOURCE_HEALTH.REASON.disabled": "Account disabled", - "SOURCE_HEALTH.REASON.expired": "Subscription expired", - "SOURCE_HEALTH.REASON.http": "Server returned an error", - "SOURCE_HEALTH.REASON.invalid": "Unexpected response", - "SOURCE_HEALTH.REASON.network": "Could not connect", - "SOURCE_HEALTH.REASON.paused": "Connection checks paused", - "SOURCE_HEALTH.REASON.timeout": "Check timed out", - "SOURCE_HEALTH.REASON.unknown": "Not verified", - "SOURCE_HEALTH.RECHECK": "Check again", "WORKSPACE.DASHBOARD.M3U": "M3U", "WORKSPACE.DASHBOARD.STALKER": "Stalker", "WORKSPACE.DASHBOARD.XTREAM": "Xtream", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_CLOSED": "Closed", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_DISMISS": "Dismiss", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_FAILED": "External player error", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_OPENING": "Opening player…", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_PLAYING": "Playing", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_STARTED": "Player started", "XTREAM.ACCOUNT_INFO.HTTPS_PORT": "HTTPS", "XTREAM.ACCOUNT_INFO.HTTP_PORT": "HTTP", "XTREAM.ACCOUNT_INFO.RTMP_PORT": "RTMP", - "XTREAM.ACCOUNT_INFO.URL": "URL", - "YES": "Yes" + "XTREAM.ACCOUNT_INFO.URL": "URL" }, "nl": { "AUDIO_PLAYER.RADIO": "Radio", @@ -1399,16 +757,6 @@ "LANGUAGES.TRADITIONAL_CHINESE": "繁體中文", "LANGUAGES.TURKISH": "Türkçe", "MENU.OPEN": "Open menu", - "PLAYBACK_DIAGNOSTICS.ACTION_OPENING_MPV": "Opening MPV…", - "PLAYBACK_DIAGNOSTICS.ACTION_OPENING_VLC": "Opening VLC…", - "PLAYBACK_DIAGNOSTICS.ACTION_REOPEN_MPV": "Open MPV again", - "PLAYBACK_DIAGNOSTICS.ACTION_REOPEN_VLC": "Open VLC again", - "PLAYBACK_DIAGNOSTICS.ACTION_RETRY_MPV": "Try MPV again", - "PLAYBACK_DIAGNOSTICS.ACTION_RETRY_VLC": "Try VLC again", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_FAILED": "External player error", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_OPENING": "Opening player…", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_PLAYING": "Playing", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_STARTED": "Player started", "PORTALS.DETAIL.CAST_AND_CREW": "Cast & crew", "PORTALS.DETAIL.DURATION_MINUTES": "{{minutes}} min", "PORTALS.DETAIL.TRAILER": "Trailer", @@ -1424,15 +772,11 @@ "REMOTE_CONTROL.VOLUME_ABBR": "VOL", "SETTINGS.APP_UPDATE_CHANNEL_NIGHTLY": "Nightly", "SETTINGS.APP_UPDATE_CHANNEL_STABLE": "Stable", - "SETTINGS.BROWSE_EPG_FILE": "Choose a local XMLTV file…", "SETTINGS.CARD_CACHE": "Cache", "SETTINGS.CARD_DESKTOP": "Desktop", "SETTINGS.CARD_XTREAM": "Xtream", "SETTINGS.COMMUNITY": "Project & community", "SETTINGS.EPG_OFFSET_UNIT": "min", - "SETTINGS.EPG_SOURCE_FORMATS_EXAMPLES": "Examples:", - "SETTINGS.EPG_SOURCE_FORMATS_HINT": "Remote XMLTV links (http/https) and files on this computer are both supported, as plain .xml or gzip-compressed .xml.gz. Local files need an absolute path or a file:// URL.", - "SETTINGS.EPG_SOURCE_LIST_TITLE": "Source list", "SETTINGS.LINK_BLOG": "Blog", "SETTINGS.NAV_EPG": "EPG", "SETTINGS.NAV_GROUP_APP": "App", @@ -1442,41 +786,6 @@ "SETTINGS.RESTART_LATER": "Later", "SETTINGS.TMDB": "Metadata (TMDB)", "SETTINGS.TMDB_CREDITS": "Metadata", - "SOURCE_CLEANUP.CLEANUP_WARNING": "Source deleted; some follow-up cleanup failed", - "SOURCE_CLEANUP.CLOSE": "Close", - "SOURCE_CLEANUP.CONSEQUENCES": "Delete only sources you select. Their saved favourites, history and playback progress will also be removed. Downloaded files are kept.", - "SOURCE_CLEANUP.DELETE": "Delete selected · {{count}}", - "SOURCE_CLEANUP.DELETE_PROGRESS": "Processed {{done}} of {{total}} selected sources", - "SOURCE_CLEANUP.GROUP.confirmed": "Confirmed inactive accounts", - "SOURCE_CLEANUP.GROUP.results": "Deletion results", - "SOURCE_CLEANUP.GROUP.skipped": "Skipped sources", - "SOURCE_CLEANUP.GROUP.uncertain": "Review before deleting", - "SOURCE_CLEANUP.SCOPE": "All network sources in your library, regardless of page filters.", - "SOURCE_CLEANUP.SELECT_ALL": "Select all candidates", - "SOURCE_CLEANUP.SELECT_NONE": "Deselect all", - "SOURCE_CLEANUP.STATUS.checking": "Checking…", - "SOURCE_CLEANUP.STATUS.deleted": "Deleted", - "SOURCE_CLEANUP.STATUS.deleting": "Deleting…", - "SOURCE_CLEANUP.STATUS.failed": "Deletion failed — select to retry", - "SOURCE_CLEANUP.STATUS.skipped": "Playing, busy, changed or no longer present", - "SOURCE_CLEANUP.STOP": "Stop after current source", - "SOURCE_CLEANUP.SUMMARY": "Checked {{checked}}/{{total}} · Available {{available}} · Deleted {{deleted}} · Skipped {{skipped}} · Failed {{failed}}", - "SOURCE_CLEANUP.TITLE": "Clean up inactive sources…", - "SOURCE_CLEANUP.UNTITLED": "Untitled source", - "SOURCE_HEALTH.M3U_SCOPE": "Playlist URL, not individual channels", - "SOURCE_HEALTH.REASON.auth": "Access denied; account status unconfirmed", - "SOURCE_HEALTH.REASON.available": "Available", - "SOURCE_HEALTH.REASON.cancelled": "Check cancelled", - "SOURCE_HEALTH.REASON.checking": "Checking…", - "SOURCE_HEALTH.REASON.disabled": "Account disabled", - "SOURCE_HEALTH.REASON.expired": "Subscription expired", - "SOURCE_HEALTH.REASON.http": "Server returned an error", - "SOURCE_HEALTH.REASON.invalid": "Unexpected response", - "SOURCE_HEALTH.REASON.network": "Could not connect", - "SOURCE_HEALTH.REASON.paused": "Connection checks paused", - "SOURCE_HEALTH.REASON.timeout": "Check timed out", - "SOURCE_HEALTH.REASON.unknown": "Not verified", - "SOURCE_HEALTH.RECHECK": "Check again", "STALKER.ACCOUNT_INFO.ACCOUNT": "Account", "STALKER.ACCOUNT_INFO.STATUS": "Status", "WORKSPACE.CONTEXT.ITEM_COUNT_ONE": "1 item", @@ -1493,12 +802,6 @@ "WORKSPACE.SHELL.COMMANDS.OPEN_DASHBOARD_LABEL": "Open dashboard", "WORKSPACE.SHELL.COMMANDS.OPEN_DOWNLOADS_LABEL": "Open downloads", "WORKSPACE.SHELL.CONTEXT_DRAWER_FILTERS_TOOLTIP": "Filters", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_CLOSED": "Closed", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_DISMISS": "Dismiss", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_FAILED": "External player error", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_OPENING": "Opening player…", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_PLAYING": "Playing", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_STARTED": "Player started", "WORKSPACE.SHELL.OPEN_DOWNLOADS": "Open downloads", "WORKSPACE.SHELL.RAIL_DASHBOARD": "Dashboard", "WORKSPACE.SHELL.RAIL_DOWNLOADS": "Downloads", @@ -1553,81 +856,26 @@ "LANGUAGES.SPANISH": "Español", "LANGUAGES.TRADITIONAL_CHINESE": "繁體中文", "LANGUAGES.TURKISH": "Türkçe", - "PLAYBACK_DIAGNOSTICS.ACTION_OPENING_MPV": "Opening MPV…", - "PLAYBACK_DIAGNOSTICS.ACTION_OPENING_VLC": "Opening VLC…", - "PLAYBACK_DIAGNOSTICS.ACTION_REOPEN_MPV": "Open MPV again", - "PLAYBACK_DIAGNOSTICS.ACTION_REOPEN_VLC": "Open VLC again", - "PLAYBACK_DIAGNOSTICS.ACTION_RETRY_MPV": "Try MPV again", - "PLAYBACK_DIAGNOSTICS.ACTION_RETRY_VLC": "Try VLC again", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_FAILED": "External player error", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_OPENING": "Opening player…", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_PLAYING": "Playing", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_STARTED": "Player started", "PORTALS.DETAIL.DURATION_MINUTES": "{{minutes}} min", "PORTALS.MULTI_SOURCE.FILTER_HD": "HD+", "REMOTE_CONTROL.CHANNEL_ABBR": "CH", "REMOTE_CONTROL.VOLUME_ABBR": "VOL", "SETTINGS.APP_UPDATE_CHANNEL_NIGHTLY": "Nightly", "SETTINGS.APP_UPDATE_CHANNEL_STABLE": "Stable", - "SETTINGS.BROWSE_EPG_FILE": "Choose a local XMLTV file…", "SETTINGS.CARD_XTREAM": "Xtream", "SETTINGS.CHIP_RESTART": "Restart", "SETTINGS.EPG_OFFSET_UNIT": "min", - "SETTINGS.EPG_SOURCE_FORMATS_EXAMPLES": "Examples:", - "SETTINGS.EPG_SOURCE_FORMATS_HINT": "Remote XMLTV links (http/https) and files on this computer are both supported, as plain .xml or gzip-compressed .xml.gz. Local files need an absolute path or a file:// URL.", - "SETTINGS.EPG_SOURCE_LIST_TITLE": "Source list", "SETTINGS.LINK_BLOG": "Blog", "SETTINGS.NAV_EPG": "EPG", "SETTINGS.PLAYER_ARTPLAYER": "ArtPlayer", "SETTINGS.PLAYER_VLC": "VLC", "SETTINGS.PORT_RANGE_LABEL": "Port (1-65535)", - "SOURCE_CLEANUP.CLEANUP_WARNING": "Source deleted; some follow-up cleanup failed", - "SOURCE_CLEANUP.CLOSE": "Close", - "SOURCE_CLEANUP.CONSEQUENCES": "Delete only sources you select. Their saved favourites, history and playback progress will also be removed. Downloaded files are kept.", - "SOURCE_CLEANUP.DELETE": "Delete selected · {{count}}", - "SOURCE_CLEANUP.DELETE_PROGRESS": "Processed {{done}} of {{total}} selected sources", - "SOURCE_CLEANUP.GROUP.confirmed": "Confirmed inactive accounts", - "SOURCE_CLEANUP.GROUP.results": "Deletion results", - "SOURCE_CLEANUP.GROUP.skipped": "Skipped sources", - "SOURCE_CLEANUP.GROUP.uncertain": "Review before deleting", - "SOURCE_CLEANUP.SCOPE": "All network sources in your library, regardless of page filters.", - "SOURCE_CLEANUP.SELECT_ALL": "Select all candidates", - "SOURCE_CLEANUP.SELECT_NONE": "Deselect all", - "SOURCE_CLEANUP.STATUS.checking": "Checking…", - "SOURCE_CLEANUP.STATUS.deleted": "Deleted", - "SOURCE_CLEANUP.STATUS.deleting": "Deleting…", - "SOURCE_CLEANUP.STATUS.failed": "Deletion failed — select to retry", - "SOURCE_CLEANUP.STATUS.skipped": "Playing, busy, changed or no longer present", - "SOURCE_CLEANUP.STOP": "Stop after current source", - "SOURCE_CLEANUP.SUMMARY": "Checked {{checked}}/{{total}} · Available {{available}} · Deleted {{deleted}} · Skipped {{skipped}} · Failed {{failed}}", - "SOURCE_CLEANUP.TITLE": "Clean up inactive sources…", - "SOURCE_CLEANUP.UNTITLED": "Untitled source", - "SOURCE_HEALTH.M3U_SCOPE": "Playlist URL, not individual channels", - "SOURCE_HEALTH.REASON.auth": "Access denied; account status unconfirmed", - "SOURCE_HEALTH.REASON.available": "Available", - "SOURCE_HEALTH.REASON.cancelled": "Check cancelled", - "SOURCE_HEALTH.REASON.checking": "Checking…", - "SOURCE_HEALTH.REASON.disabled": "Account disabled", - "SOURCE_HEALTH.REASON.expired": "Subscription expired", - "SOURCE_HEALTH.REASON.http": "Server returned an error", - "SOURCE_HEALTH.REASON.invalid": "Unexpected response", - "SOURCE_HEALTH.REASON.network": "Could not connect", - "SOURCE_HEALTH.REASON.paused": "Connection checks paused", - "SOURCE_HEALTH.REASON.timeout": "Check timed out", - "SOURCE_HEALTH.REASON.unknown": "Not verified", - "SOURCE_HEALTH.RECHECK": "Check again", "STALKER.ACCOUNT_INFO.LOGIN": "Login", "STALKER.ACCOUNT_INFO.PORTAL_INFO": "Portal", "STALKER.ACCOUNT_INFO.STATUS": "Status", "WORKSPACE.DASHBOARD.M3U": "M3U", "WORKSPACE.DASHBOARD.STALKER": "Stalker", "WORKSPACE.DASHBOARD.XTREAM": "Xtream", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_CLOSED": "Closed", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_DISMISS": "Dismiss", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_FAILED": "External player error", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_OPENING": "Opening player…", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_PLAYING": "Playing", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_STARTED": "Player started", "WORKSPACE.SHELL.XTREAM_CODE": "Xtream Code", "XTREAM.ACCOUNT_INFO.HTTPS_PORT": "HTTPS", "XTREAM.ACCOUNT_INFO.HTTP_PORT": "HTTP", @@ -1677,16 +925,6 @@ "LANGUAGES.TRADITIONAL_CHINESE": "繁體中文", "LANGUAGES.TURKISH": "Türkçe", "PARENTAL_LOCK.PIN_DIALOG.PIN_LABEL": "PIN", - "PLAYBACK_DIAGNOSTICS.ACTION_OPENING_MPV": "Opening MPV…", - "PLAYBACK_DIAGNOSTICS.ACTION_OPENING_VLC": "Opening VLC…", - "PLAYBACK_DIAGNOSTICS.ACTION_REOPEN_MPV": "Open MPV again", - "PLAYBACK_DIAGNOSTICS.ACTION_REOPEN_VLC": "Open VLC again", - "PLAYBACK_DIAGNOSTICS.ACTION_RETRY_MPV": "Try MPV again", - "PLAYBACK_DIAGNOSTICS.ACTION_RETRY_VLC": "Try VLC again", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_FAILED": "External player error", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_OPENING": "Opening player…", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_PLAYING": "Playing", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_STARTED": "Player started", "PLAYLISTS": "Playlists", "PORTALS.DETAIL.DURATION_HOURS_MINUTES": "{{hours}} h {{minutes}} min", "PORTALS.DETAIL.DURATION_MINUTES": "{{minutes}} min", @@ -1699,65 +937,20 @@ "REMOTE_CONTROL.VOLUME_ABBR": "VOL", "SETTINGS.APP_UPDATE_CHANNEL_NIGHTLY": "Nightly", "SETTINGS.APP_UPDATE_CHANNEL_STABLE": "Stable", - "SETTINGS.BROWSE_EPG_FILE": "Choose a local XMLTV file…", "SETTINGS.CARD_CACHE": "Cache", "SETTINGS.CARD_XTREAM": "Xtream", "SETTINGS.CHIP_EXPERIMENTAL": "Experimental", "SETTINGS.EPG_OFFSET_UNIT": "min", - "SETTINGS.EPG_SOURCE_FORMATS_EXAMPLES": "Examples:", - "SETTINGS.EPG_SOURCE_FORMATS_HINT": "Remote XMLTV links (http/https) and files on this computer are both supported, as plain .xml or gzip-compressed .xml.gz. Local files need an absolute path or a file:// URL.", - "SETTINGS.EPG_SOURCE_LIST_TITLE": "Source list", "SETTINGS.LINK_BLOG": "Blog", "SETTINGS.NAV_EPG": "EPG", "SETTINGS.PLAYER_ARTPLAYER": "ArtPlayer", "SETTINGS.PLAYER_VLC": "VLC", - "SOURCE_CLEANUP.CLEANUP_WARNING": "Source deleted; some follow-up cleanup failed", - "SOURCE_CLEANUP.CLOSE": "Close", - "SOURCE_CLEANUP.CONSEQUENCES": "Delete only sources you select. Their saved favourites, history and playback progress will also be removed. Downloaded files are kept.", - "SOURCE_CLEANUP.DELETE": "Delete selected · {{count}}", - "SOURCE_CLEANUP.DELETE_PROGRESS": "Processed {{done}} of {{total}} selected sources", - "SOURCE_CLEANUP.GROUP.confirmed": "Confirmed inactive accounts", - "SOURCE_CLEANUP.GROUP.results": "Deletion results", - "SOURCE_CLEANUP.GROUP.skipped": "Skipped sources", - "SOURCE_CLEANUP.GROUP.uncertain": "Review before deleting", - "SOURCE_CLEANUP.SCOPE": "All network sources in your library, regardless of page filters.", - "SOURCE_CLEANUP.SELECT_ALL": "Select all candidates", - "SOURCE_CLEANUP.SELECT_NONE": "Deselect all", - "SOURCE_CLEANUP.STATUS.checking": "Checking…", - "SOURCE_CLEANUP.STATUS.deleted": "Deleted", - "SOURCE_CLEANUP.STATUS.deleting": "Deleting…", - "SOURCE_CLEANUP.STATUS.failed": "Deletion failed — select to retry", - "SOURCE_CLEANUP.STATUS.skipped": "Playing, busy, changed or no longer present", - "SOURCE_CLEANUP.STOP": "Stop after current source", - "SOURCE_CLEANUP.SUMMARY": "Checked {{checked}}/{{total}} · Available {{available}} · Deleted {{deleted}} · Skipped {{skipped}} · Failed {{failed}}", - "SOURCE_CLEANUP.TITLE": "Clean up inactive sources…", - "SOURCE_CLEANUP.UNTITLED": "Untitled source", - "SOURCE_HEALTH.M3U_SCOPE": "Playlist URL, not individual channels", - "SOURCE_HEALTH.REASON.auth": "Access denied; account status unconfirmed", - "SOURCE_HEALTH.REASON.available": "Available", - "SOURCE_HEALTH.REASON.cancelled": "Check cancelled", - "SOURCE_HEALTH.REASON.checking": "Checking…", - "SOURCE_HEALTH.REASON.disabled": "Account disabled", - "SOURCE_HEALTH.REASON.expired": "Subscription expired", - "SOURCE_HEALTH.REASON.http": "Server returned an error", - "SOURCE_HEALTH.REASON.invalid": "Unexpected response", - "SOURCE_HEALTH.REASON.network": "Could not connect", - "SOURCE_HEALTH.REASON.paused": "Connection checks paused", - "SOURCE_HEALTH.REASON.timeout": "Check timed out", - "SOURCE_HEALTH.REASON.unknown": "Not verified", - "SOURCE_HEALTH.RECHECK": "Check again", "STALKER.ACCOUNT_INFO.PORTAL_INFO": "Portal", "WORKSPACE.CONTEXT.ITEM_COUNT_ONE": "1 item", "WORKSPACE.DASHBOARD.HERO_ROLE_SLIDE": "slide", "WORKSPACE.DASHBOARD.M3U": "M3U", "WORKSPACE.DASHBOARD.STALKER": "Stalker", "WORKSPACE.DASHBOARD.XTREAM": "Xtream", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_CLOSED": "Closed", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_DISMISS": "Dismiss", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_FAILED": "External player error", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_OPENING": "Opening player…", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_PLAYING": "Playing", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_STARTED": "Player started", "WORKSPACE.SHELL.RAIL_DASHBOARD": "Dashboard", "WORKSPACE.SHELL.RAIL_DOWNLOADS": "Downloads", "WORKSPACE.SHELL.XTREAM_CODE": "Xtream Code", @@ -1766,7 +959,6 @@ "XTREAM.ACCOUNT_INFO.HTTPS_PORT": "HTTPS", "XTREAM.ACCOUNT_INFO.HTTP_PORT": "HTTP", "XTREAM.ACCOUNT_INFO.RTMP_PORT": "RTMP", - "XTREAM.ACCOUNT_INFO.STATUS": "Status", "XTREAM.ACCOUNT_INFO.URL": "URL" }, "ru": { @@ -1855,74 +1047,19 @@ "LANGUAGES.TRADITIONAL_CHINESE": "繁體中文", "LANGUAGES.TURKISH": "Türkçe", "PARENTAL_LOCK.PIN_DIALOG.PIN_LABEL": "PIN", - "PLAYBACK_DIAGNOSTICS.ACTION_OPENING_MPV": "Opening MPV…", - "PLAYBACK_DIAGNOSTICS.ACTION_OPENING_VLC": "Opening VLC…", - "PLAYBACK_DIAGNOSTICS.ACTION_REOPEN_MPV": "Open MPV again", - "PLAYBACK_DIAGNOSTICS.ACTION_REOPEN_VLC": "Open VLC again", - "PLAYBACK_DIAGNOSTICS.ACTION_RETRY_MPV": "Try MPV again", - "PLAYBACK_DIAGNOSTICS.ACTION_RETRY_VLC": "Try VLC again", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_FAILED": "External player error", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_OPENING": "Opening player…", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_PLAYING": "Playing", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_STARTED": "Player started", "PORTALS.MULTI_SOURCE.FILTER_HD": "HD+", "SETTINGS.APP_UPDATE_CHANNEL_NIGHTLY": "Nightly", "SETTINGS.APP_UPDATE_CHANNEL_STABLE": "Stable", - "SETTINGS.BROWSE_EPG_FILE": "Choose a local XMLTV file…", "SETTINGS.CARD_XTREAM": "Xtream", - "SETTINGS.EPG_SOURCE_FORMATS_EXAMPLES": "Examples:", - "SETTINGS.EPG_SOURCE_FORMATS_HINT": "Remote XMLTV links (http/https) and files on this computer are both supported, as plain .xml or gzip-compressed .xml.gz. Local files need an absolute path or a file:// URL.", - "SETTINGS.EPG_SOURCE_LIST_TITLE": "Source list", "SETTINGS.LINK_BLOG": "Blog", "SETTINGS.NAV_EPG": "EPG", "SETTINGS.PLAYER_ARTPLAYER": "ArtPlayer", "SETTINGS.PLAYER_VLC": "VLC", "SETTINGS.PORT_RANGE_LABEL": "Port (1-65535)", - "SOURCE_CLEANUP.CLEANUP_WARNING": "Source deleted; some follow-up cleanup failed", - "SOURCE_CLEANUP.CLOSE": "Close", - "SOURCE_CLEANUP.CONSEQUENCES": "Delete only sources you select. Their saved favourites, history and playback progress will also be removed. Downloaded files are kept.", - "SOURCE_CLEANUP.DELETE": "Delete selected · {{count}}", - "SOURCE_CLEANUP.DELETE_PROGRESS": "Processed {{done}} of {{total}} selected sources", - "SOURCE_CLEANUP.GROUP.confirmed": "Confirmed inactive accounts", - "SOURCE_CLEANUP.GROUP.results": "Deletion results", - "SOURCE_CLEANUP.GROUP.skipped": "Skipped sources", - "SOURCE_CLEANUP.GROUP.uncertain": "Review before deleting", - "SOURCE_CLEANUP.SCOPE": "All network sources in your library, regardless of page filters.", - "SOURCE_CLEANUP.SELECT_ALL": "Select all candidates", - "SOURCE_CLEANUP.SELECT_NONE": "Deselect all", - "SOURCE_CLEANUP.STATUS.checking": "Checking…", - "SOURCE_CLEANUP.STATUS.deleted": "Deleted", - "SOURCE_CLEANUP.STATUS.deleting": "Deleting…", - "SOURCE_CLEANUP.STATUS.failed": "Deletion failed — select to retry", - "SOURCE_CLEANUP.STATUS.skipped": "Playing, busy, changed or no longer present", - "SOURCE_CLEANUP.STOP": "Stop after current source", - "SOURCE_CLEANUP.SUMMARY": "Checked {{checked}}/{{total}} · Available {{available}} · Deleted {{deleted}} · Skipped {{skipped}} · Failed {{failed}}", - "SOURCE_CLEANUP.TITLE": "Clean up inactive sources…", - "SOURCE_CLEANUP.UNTITLED": "Untitled source", - "SOURCE_HEALTH.M3U_SCOPE": "Playlist URL, not individual channels", - "SOURCE_HEALTH.REASON.auth": "Access denied; account status unconfirmed", - "SOURCE_HEALTH.REASON.available": "Available", - "SOURCE_HEALTH.REASON.cancelled": "Check cancelled", - "SOURCE_HEALTH.REASON.checking": "Checking…", - "SOURCE_HEALTH.REASON.disabled": "Account disabled", - "SOURCE_HEALTH.REASON.expired": "Subscription expired", - "SOURCE_HEALTH.REASON.http": "Server returned an error", - "SOURCE_HEALTH.REASON.invalid": "Unexpected response", - "SOURCE_HEALTH.REASON.network": "Could not connect", - "SOURCE_HEALTH.REASON.paused": "Connection checks paused", - "SOURCE_HEALTH.REASON.timeout": "Check timed out", - "SOURCE_HEALTH.REASON.unknown": "Not verified", - "SOURCE_HEALTH.RECHECK": "Check again", "STALKER.ACCOUNT_INFO.PORTAL_INFO": "Portal", "WORKSPACE.DASHBOARD.M3U": "M3U", "WORKSPACE.DASHBOARD.STALKER": "Stalker", "WORKSPACE.DASHBOARD.XTREAM": "Xtream", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_CLOSED": "Closed", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_DISMISS": "Dismiss", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_FAILED": "External player error", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_OPENING": "Opening player…", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_PLAYING": "Playing", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_STARTED": "Player started", "XTREAM.ACCOUNT_INFO.HTTPS_PORT": "HTTPS", "XTREAM.ACCOUNT_INFO.HTTP_PORT": "HTTP", "XTREAM.ACCOUNT_INFO.RTMP_PORT": "RTMP", @@ -1964,72 +1101,17 @@ "LANGUAGES.SPANISH": "Español", "LANGUAGES.TRADITIONAL_CHINESE": "繁體中文", "LANGUAGES.TURKISH": "Türkçe", - "PLAYBACK_DIAGNOSTICS.ACTION_OPENING_MPV": "Opening MPV…", - "PLAYBACK_DIAGNOSTICS.ACTION_OPENING_VLC": "Opening VLC…", - "PLAYBACK_DIAGNOSTICS.ACTION_REOPEN_MPV": "Open MPV again", - "PLAYBACK_DIAGNOSTICS.ACTION_REOPEN_VLC": "Open VLC again", - "PLAYBACK_DIAGNOSTICS.ACTION_RETRY_MPV": "Try MPV again", - "PLAYBACK_DIAGNOSTICS.ACTION_RETRY_VLC": "Try VLC again", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_FAILED": "External player error", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_OPENING": "Opening player…", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_PLAYING": "Playing", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_STARTED": "Player started", "PORTALS.MULTI_SOURCE.FILTER_HD": "HD+", "SETTINGS.APP_UPDATE_CHANNEL_NIGHTLY": "Nightly", "SETTINGS.APP_UPDATE_CHANNEL_STABLE": "Stable", - "SETTINGS.BROWSE_EPG_FILE": "Choose a local XMLTV file…", "SETTINGS.CARD_XTREAM": "Xtream", - "SETTINGS.EPG_SOURCE_FORMATS_EXAMPLES": "Examples:", - "SETTINGS.EPG_SOURCE_FORMATS_HINT": "Remote XMLTV links (http/https) and files on this computer are both supported, as plain .xml or gzip-compressed .xml.gz. Local files need an absolute path or a file:// URL.", - "SETTINGS.EPG_SOURCE_LIST_TITLE": "Source list", "SETTINGS.NAV_EPG": "EPG", "SETTINGS.PLAYER_ARTPLAYER": "ArtPlayer", "SETTINGS.PLAYER_VLC": "VLC", - "SOURCE_CLEANUP.CLEANUP_WARNING": "Source deleted; some follow-up cleanup failed", - "SOURCE_CLEANUP.CLOSE": "Close", - "SOURCE_CLEANUP.CONSEQUENCES": "Delete only sources you select. Their saved favourites, history and playback progress will also be removed. Downloaded files are kept.", - "SOURCE_CLEANUP.DELETE": "Delete selected · {{count}}", - "SOURCE_CLEANUP.DELETE_PROGRESS": "Processed {{done}} of {{total}} selected sources", - "SOURCE_CLEANUP.GROUP.confirmed": "Confirmed inactive accounts", - "SOURCE_CLEANUP.GROUP.results": "Deletion results", - "SOURCE_CLEANUP.GROUP.skipped": "Skipped sources", - "SOURCE_CLEANUP.GROUP.uncertain": "Review before deleting", - "SOURCE_CLEANUP.SCOPE": "All network sources in your library, regardless of page filters.", - "SOURCE_CLEANUP.SELECT_ALL": "Select all candidates", - "SOURCE_CLEANUP.SELECT_NONE": "Deselect all", - "SOURCE_CLEANUP.STATUS.checking": "Checking…", - "SOURCE_CLEANUP.STATUS.deleted": "Deleted", - "SOURCE_CLEANUP.STATUS.deleting": "Deleting…", - "SOURCE_CLEANUP.STATUS.failed": "Deletion failed — select to retry", - "SOURCE_CLEANUP.STATUS.skipped": "Playing, busy, changed or no longer present", - "SOURCE_CLEANUP.STOP": "Stop after current source", - "SOURCE_CLEANUP.SUMMARY": "Checked {{checked}}/{{total}} · Available {{available}} · Deleted {{deleted}} · Skipped {{skipped}} · Failed {{failed}}", - "SOURCE_CLEANUP.TITLE": "Clean up inactive sources…", - "SOURCE_CLEANUP.UNTITLED": "Untitled source", - "SOURCE_HEALTH.M3U_SCOPE": "Playlist URL, not individual channels", - "SOURCE_HEALTH.REASON.auth": "Access denied; account status unconfirmed", - "SOURCE_HEALTH.REASON.available": "Available", - "SOURCE_HEALTH.REASON.cancelled": "Check cancelled", - "SOURCE_HEALTH.REASON.checking": "Checking…", - "SOURCE_HEALTH.REASON.disabled": "Account disabled", - "SOURCE_HEALTH.REASON.expired": "Subscription expired", - "SOURCE_HEALTH.REASON.http": "Server returned an error", - "SOURCE_HEALTH.REASON.invalid": "Unexpected response", - "SOURCE_HEALTH.REASON.network": "Could not connect", - "SOURCE_HEALTH.REASON.paused": "Connection checks paused", - "SOURCE_HEALTH.REASON.timeout": "Check timed out", - "SOURCE_HEALTH.REASON.unknown": "Not verified", - "SOURCE_HEALTH.RECHECK": "Check again", "WORKSPACE.DASHBOARD.M3U": "M3U", "WORKSPACE.DASHBOARD.SEASON_EPISODE_BADGE": "S{{season}}·E{{episode}}", "WORKSPACE.DASHBOARD.STALKER": "Stalker", "WORKSPACE.DASHBOARD.XTREAM": "Xtream", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_CLOSED": "Closed", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_DISMISS": "Dismiss", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_FAILED": "External player error", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_OPENING": "Opening player…", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_PLAYING": "Playing", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_STARTED": "Player started", "WORKSPACE.SHELL.XTREAM_CODE": "Xtream Code", "XTREAM.ACCOUNT_INFO.HTTPS_PORT": "HTTPS", "XTREAM.ACCOUNT_INFO.HTTP_PORT": "HTTP", @@ -2067,73 +1149,18 @@ "LANGUAGES.SPANISH": "Español", "LANGUAGES.TRADITIONAL_CHINESE": "繁體中文", "LANGUAGES.TURKISH": "Türkçe", - "PLAYBACK_DIAGNOSTICS.ACTION_OPENING_MPV": "Opening MPV…", - "PLAYBACK_DIAGNOSTICS.ACTION_OPENING_VLC": "Opening VLC…", - "PLAYBACK_DIAGNOSTICS.ACTION_REOPEN_MPV": "Open MPV again", - "PLAYBACK_DIAGNOSTICS.ACTION_REOPEN_VLC": "Open VLC again", - "PLAYBACK_DIAGNOSTICS.ACTION_RETRY_MPV": "Try MPV again", - "PLAYBACK_DIAGNOSTICS.ACTION_RETRY_VLC": "Try VLC again", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_FAILED": "External player error", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_OPENING": "Opening player…", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_PLAYING": "Playing", - "PLAYBACK_DIAGNOSTICS.EXTERNAL_STARTED": "Player started", "PORTALS.MULTI_SOURCE.FILTER_HD": "HD+", "SETTINGS.APP_UPDATE_CHANNEL_NIGHTLY": "Nightly", "SETTINGS.APP_UPDATE_CHANNEL_STABLE": "Stable", - "SETTINGS.BROWSE_EPG_FILE": "Choose a local XMLTV file…", "SETTINGS.CARD_XTREAM": "Xtream", - "SETTINGS.EPG_SOURCE_FORMATS_EXAMPLES": "Examples:", - "SETTINGS.EPG_SOURCE_FORMATS_HINT": "Remote XMLTV links (http/https) and files on this computer are both supported, as plain .xml or gzip-compressed .xml.gz. Local files need an absolute path or a file:// URL.", - "SETTINGS.EPG_SOURCE_LIST_TITLE": "Source list", "SETTINGS.NAV_EPG": "EPG", "SETTINGS.PLAYER_ARTPLAYER": "ArtPlayer", "SETTINGS.PLAYER_VLC": "VLC", - "SOURCE_CLEANUP.CLEANUP_WARNING": "Source deleted; some follow-up cleanup failed", - "SOURCE_CLEANUP.CLOSE": "Close", - "SOURCE_CLEANUP.CONSEQUENCES": "Delete only sources you select. Their saved favourites, history and playback progress will also be removed. Downloaded files are kept.", - "SOURCE_CLEANUP.DELETE": "Delete selected · {{count}}", - "SOURCE_CLEANUP.DELETE_PROGRESS": "Processed {{done}} of {{total}} selected sources", - "SOURCE_CLEANUP.GROUP.confirmed": "Confirmed inactive accounts", - "SOURCE_CLEANUP.GROUP.results": "Deletion results", - "SOURCE_CLEANUP.GROUP.skipped": "Skipped sources", - "SOURCE_CLEANUP.GROUP.uncertain": "Review before deleting", - "SOURCE_CLEANUP.SCOPE": "All network sources in your library, regardless of page filters.", - "SOURCE_CLEANUP.SELECT_ALL": "Select all candidates", - "SOURCE_CLEANUP.SELECT_NONE": "Deselect all", - "SOURCE_CLEANUP.STATUS.checking": "Checking…", - "SOURCE_CLEANUP.STATUS.deleted": "Deleted", - "SOURCE_CLEANUP.STATUS.deleting": "Deleting…", - "SOURCE_CLEANUP.STATUS.failed": "Deletion failed — select to retry", - "SOURCE_CLEANUP.STATUS.skipped": "Playing, busy, changed or no longer present", - "SOURCE_CLEANUP.STOP": "Stop after current source", - "SOURCE_CLEANUP.SUMMARY": "Checked {{checked}}/{{total}} · Available {{available}} · Deleted {{deleted}} · Skipped {{skipped}} · Failed {{failed}}", - "SOURCE_CLEANUP.TITLE": "Clean up inactive sources…", - "SOURCE_CLEANUP.UNTITLED": "Untitled source", - "SOURCE_HEALTH.M3U_SCOPE": "Playlist URL, not individual channels", - "SOURCE_HEALTH.REASON.auth": "Access denied; account status unconfirmed", - "SOURCE_HEALTH.REASON.available": "Available", - "SOURCE_HEALTH.REASON.cancelled": "Check cancelled", - "SOURCE_HEALTH.REASON.checking": "Checking…", - "SOURCE_HEALTH.REASON.disabled": "Account disabled", - "SOURCE_HEALTH.REASON.expired": "Subscription expired", - "SOURCE_HEALTH.REASON.http": "Server returned an error", - "SOURCE_HEALTH.REASON.invalid": "Unexpected response", - "SOURCE_HEALTH.REASON.network": "Could not connect", - "SOURCE_HEALTH.REASON.paused": "Connection checks paused", - "SOURCE_HEALTH.REASON.timeout": "Check timed out", - "SOURCE_HEALTH.REASON.unknown": "Not verified", - "SOURCE_HEALTH.RECHECK": "Check again", "WORKSPACE.DASHBOARD.M3U": "M3U", "WORKSPACE.DASHBOARD.SEASON_EPISODE_BADGE": "S{{season}}·E{{episode}}", "WORKSPACE.DASHBOARD.STALKER": "Stalker", "WORKSPACE.DASHBOARD.STALKER_PORTAL": "Stalker Portal", "WORKSPACE.DASHBOARD.XTREAM": "Xtream", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_CLOSED": "Closed", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_DISMISS": "Dismiss", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_FAILED": "External player error", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_OPENING": "Opening player…", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_PLAYING": "Playing", - "WORKSPACE.SHELL.EXTERNAL_PLAYBACK_STARTED": "Player started", "WORKSPACE.SHELL.STALKER_PORTAL": "Stalker Portal", "WORKSPACE.SHELL.XTREAM_CODE": "Xtream Code", "XTREAM.ACCOUNT_INFO.HTTPS_PORT": "HTTPS",