Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -259,7 +259,7 @@ This is an Nx monorepo with the following structure:
- **ui/playback** - Player UI (video/audio players)
- **ui/pipes** - Angular pipes
- **ui/remote-control** - Remote-control UI pieces
- **ui/shared-portals** - Portal-related UI components
- **ui/shared-portals** - Shared portal types (`LiveEpgPanelSummary`)
- **ui/styles** - Shared styles/theme
- **workspace/{shell,dashboard}** - Workspace shell (layout/navigation) and dashboard

Expand Down Expand Up @@ -757,7 +757,6 @@ No formal migration system yet. Schema changes are applied via raw SQL in the `c
- Use NgRx for global application state (M3U playlists, `libs/m3u-state`)
- Use NgRx Signal Store with `signalStoreFeature()` composition for portal/feature state (XtreamStore, StalkerStore)
- Use NgRx signals for reactive data streams
- `@ngrx/component-store` is listed in `package.json` but unused in the codebase — do not introduce new usages

<!-- nx configuration start-->
<!-- Leave the start & end comments to automatically receive updates. -->
Expand Down
22 changes: 2 additions & 20 deletions apps/web/src/assets/i18n/ar.json
Original file line number Diff line number Diff line change
Expand Up @@ -192,10 +192,8 @@
"VALIDATING": "جارٍ التحقق من البوابة..."
},
"FILTER_BY_NAME": "التصفية حسب الاسم",
"FILTER_BY_TYPE": "التصفية حسب النوع",
"FILTER_AND_SORT": "تصفية وفرز",
"SORT_PLAYLISTS": "فرز القوائم",
"SORT_BY": "ترتيب حسب",
"SORT_OPTIONS": {
"NAME_ASC": "الاسم (أ-ي)",
"NAME_DESC": "الاسم (ي-أ)",
Expand Down Expand Up @@ -487,7 +485,6 @@
"TOGGLE_SIDEBAR_TOOLTIP": "تبديل قائمة القنوات (⌘/Ctrl+B)"
},
"CHANNELS": {
"SEARCH_CHANNEL": "البحث عن قناة",
"UPLOAD_OR_SELECT_OTHER_PLAYLIST": "تحميل أو اختيار قائمة أخرى",
"ALL_CHANNELS": "جميع القنوات",
"GROUPS": "المجموعات",
Expand Down Expand Up @@ -561,14 +558,9 @@
}
},
"TOP_MENU": {
"OPEN_CHANNELS_LIST": "فتح قائمة القنوات",
"TOGGLE_FAVORITE_FLAG": "تبديل حالة المفضلة",
"OPEN_EPG_LIST": "فتح قائمة EPG",
"OPEN_MULTI_EPG": "فتح عرض Multi-EPG",
"SHOW_INFO": "عرض معلومات البرنامج (اضغط I)"
"OPEN_MULTI_EPG": "فتح عرض Multi-EPG"
},
"EPG": {
"TITLE": "الدليل الإلكتروني للبرامج",
"NEXT_DAY": "اليوم التالي",
"PREVIOUS_DAY": "اليوم السابق",
"ZOOM_IN": "تكبير",
Expand All @@ -577,14 +569,9 @@
"CLOSE_FILTER": "إغلاق التصفية",
"SEARCH_PROGRAMS": "البحث في البرامج",
"CLOSE_PROGRAM_SEARCH": "إغلاق بحث البرامج",
"LIVE_NOW": "يُبث الآن",
"LIVE_STREAM": "بث مباشر",
"TIMESHIFT_AVAILABLE": "التحريك الزمني متاح، انقر للتشغيل",
"ARCHIVE_PLAYBACK_UNAVAILABLE_TITLE": "تشغيل الأرشيف غير متاح",
"ARCHIVE_PLAYBACK_UNAVAILABLE_DESCRIPTION": "يكشف هذا المزود عن سجل الجدول لهذه القناة، لكنه لا يوفر تشغيلًا قابلًا للأرشيف أو Catchup.",
"EPG_NOT_AVAILABLE_DATE": "عذراً، الدليل غير متاح لهذا التاريخ",
"NO_GUIDE_HINT": "جرب تاريخاً آخر أو حدّث قائمة التشغيل.",
"EPG_NOT_AVAILABLE_CHANNEL_TITLE": "عذراً، الدليل غير متاح لهذه القناة",
"EPG_NOT_AVAILABLE_CHANNEL_DESCRIPTION": "يرجى إضافة/تعديل رابط EPG في إعدادات التطبيق.",
"FETCH_EPG": "جارٍ جلب بيانات EPG...",
"ERROR": "عذراً، فشل تحميل الدليل.",
Expand Down Expand Up @@ -619,7 +606,6 @@
"TRUST_TLS_HOST_WARNING": "Only continue if you trust this host. IPTVnator will allow invalid TLS certificates for this host, but other hosts still require valid certificates.",
"CURRENT_PROGRAM": "Current program",
"ARCHIVE_PLAYBACK": "تشغيل الأرشيف",
"RETURN_TO_LIVE": "العودة إلى البث المباشر",
"COLLAPSE_PANEL": "Collapse EPG panel",
"EXPAND_PANEL": "Expand EPG panel",
"TIMELINE": {
Expand Down Expand Up @@ -683,7 +669,6 @@
"MENU": {
"OPEN": "فتح القائمة",
"SUPPORT_ARIA": "دعم IPTVnator على GitHub",
"SETTINGS": "الإعدادات",
"SETTINGS_ARIA": "فتح الإعدادات",
"BUG_REPORT": "ابلاغ عن خلل",
"WHAT_IS_NEW": "ما الجديد",
Expand Down Expand Up @@ -808,10 +793,7 @@
"SEARCH": "بحث",
"RECENT": "الأخيرة",
"RECENTLY_ADDED": "أُضيفت مؤخرًا",
"FAVORITES": "المفضلة",
"HOME": "الرئيسية",
"PLAYLIST_INFO": "معلومات قائمة التشغيل",
"ACCOUNT_INFO": "معلومات الحساب"
"FAVORITES": "المفضلة"
},
"ERROR_VIEW": {
"IMPORT_CANCELLED": {
Expand Down
22 changes: 2 additions & 20 deletions apps/web/src/assets/i18n/ary.json
Original file line number Diff line number Diff line change
Expand Up @@ -192,10 +192,8 @@
"VALIDATING": "جاري التحقق من البوابة..."
},
"FILTER_BY_NAME": "فلتر بالاسم",
"FILTER_BY_TYPE": "فلتر بالنوع",
"FILTER_AND_SORT": "فلتر وترتيب",
"SORT_PLAYLISTS": "رتب قوائم التشغيل",
"SORT_BY": "رتب بـ",
"SORT_OPTIONS": {
"NAME_ASC": "الاسم (أ-ي)",
"NAME_DESC": "الاسم (ي-أ)",
Expand Down Expand Up @@ -487,7 +485,6 @@
"TOGGLE_SIDEBAR_TOOLTIP": "تبديل قائمة القنوات (⌘/Ctrl+B)"
},
"CHANNELS": {
"SEARCH_CHANNEL": "قلب على قناة",
"UPLOAD_OR_SELECT_OTHER_PLAYLIST": "رفع ولا اختار قائمة تشغيل أخرى",
"ALL_CHANNELS": "جميع القنوات",
"GROUPS": "المجموعات",
Expand Down Expand Up @@ -561,14 +558,9 @@
}
},
"TOP_MENU": {
"OPEN_CHANNELS_LIST": "حل قائمة القنوات",
"TOGGLE_FAVORITE_FLAG": "بدل علامة المفضلة",
"OPEN_EPG_LIST": "حل قائمة EPG",
"OPEN_MULTI_EPG": "حل عرض EPG المتعدد",
"SHOW_INFO": "وري معلومات البرنامج (ضغط على I)"
"OPEN_MULTI_EPG": "حل عرض EPG المتعدد"
},
"EPG": {
"TITLE": "دليل البرامج الإلكتروني",
"NEXT_DAY": "اليوم التالي",
"PREVIOUS_DAY": "اليوم السابق",
"ZOOM_IN": "كبر",
Expand All @@ -577,14 +569,9 @@
"CLOSE_FILTER": "سد الفلتر",
"SEARCH_PROGRAMS": "قلب على البرامج",
"CLOSE_PROGRAM_SEARCH": "سد البحث على البرامج",
"LIVE_NOW": "مباشر الآن",
"LIVE_STREAM": "بث مباشر",
"TIMESHIFT_AVAILABLE": "التأجيل الزمني متوفر، ضغط باش تلعب",
"ARCHIVE_PLAYBACK_UNAVAILABLE_TITLE": "تشغيل الأرشيف ما متوفرش",
"ARCHIVE_PLAYBACK_UNAVAILABLE_DESCRIPTION": "هاد المزود كيوفر تاريخ جدول البرامج للقناة، ولكن ما كيوفرش تشغيل أرشيف/Catchup.",
"EPG_NOT_AVAILABLE_DATE": "أوه، EPG ما متوفرش للتاريخ اللي اختاريتيه",
"NO_GUIDE_HINT": "جرب تاريخ آخر أو حدّث اللائحة.",
"EPG_NOT_AVAILABLE_CHANNEL_TITLE": "أوه، EPG ما متوفرش لهاد القناة.",
"EPG_NOT_AVAILABLE_CHANNEL_DESCRIPTION": "عفاك زيد/بدل رابط قائمة EPG في إعدادات التطبيق.",
"FETCH_EPG": "جاري جلب بيانات EPG...",
"ERROR": "أوه، EPG ما قدرش يتشارجا.",
Expand Down Expand Up @@ -619,7 +606,6 @@
"TRUST_TLS_HOST_WARNING": "Only continue if you trust this host. IPTVnator will allow invalid TLS certificates for this host, but other hosts still require valid certificates.",
"CURRENT_PROGRAM": "Current program",
"ARCHIVE_PLAYBACK": "تشغيل الأرشيف",
"RETURN_TO_LIVE": "رجع للبث المباشر",
"COLLAPSE_PANEL": "Collapse EPG panel",
"EXPAND_PANEL": "Expand EPG panel",
"TIMELINE": {
Expand Down Expand Up @@ -683,7 +669,6 @@
"MENU": {
"OPEN": "حل القائمة",
"SUPPORT_ARIA": "دعم IPTVnator على GitHub",
"SETTINGS": "الإعدادات",
"SETTINGS_ARIA": "حل الإعدادات",
"BUG_REPORT": "بلغ على شي مشكل",
"WHAT_IS_NEW": "شنو الجديد",
Expand Down Expand Up @@ -808,10 +793,7 @@
"SEARCH": "بحث",
"RECENT": "أخير",
"RECENTLY_ADDED": "تزادو مؤخراً",
"FAVORITES": "المفضلة",
"HOME": "الرئيسية",
"PLAYLIST_INFO": "معلومات قائمة التشغيل",
"ACCOUNT_INFO": "معلومات الحساب"
"FAVORITES": "المفضلة"
},
"ERROR_VIEW": {
"IMPORT_CANCELLED": {
Expand Down
22 changes: 2 additions & 20 deletions apps/web/src/assets/i18n/by.json
Original file line number Diff line number Diff line change
Expand Up @@ -192,10 +192,8 @@
"VALIDATING": "Праверка партала..."
},
"FILTER_BY_NAME": "Фільтраваць па імені",
"FILTER_BY_TYPE": "Фільтраваць па тыпу",
"FILTER_AND_SORT": "Фільтр і сартаванне",
"SORT_PLAYLISTS": "Сартаваць плэйлісты",
"SORT_BY": "Сартаваць па",
"SORT_OPTIONS": {
"NAME_ASC": "Назва (А-Я)",
"NAME_DESC": "Назва (Я-А)",
Expand Down Expand Up @@ -487,7 +485,6 @@
"TOGGLE_SIDEBAR_TOOLTIP": "Пераключыць спіс каналаў (⌘/Ctrl+B)"
},
"CHANNELS": {
"SEARCH_CHANNEL": "Пошук каналаў",
"UPLOAD_OR_SELECT_OTHER_PLAYLIST": "Загрузіць або выбраць іншы плэйліст",
"ALL_CHANNELS": "Усе каналы",
"GROUPS": "Групы",
Expand Down Expand Up @@ -561,14 +558,9 @@
}
},
"TOP_MENU": {
"OPEN_CHANNELS_LIST": "Адкрыць спіс каналаў",
"TOGGLE_FAVORITE_FLAG": "Выбраны",
"OPEN_EPG_LIST": "Адкрыць праграму (EPG)",
"OPEN_MULTI_EPG": "Адкрыць мульты-EPG прагляд",
"SHOW_INFO": "Паказаць інфармацыю аб праграме (націсніце I)"
"OPEN_MULTI_EPG": "Адкрыць мульты-EPG прагляд"
},
"EPG": {
"TITLE": "Электронная праграма перадач",
"NEXT_DAY": "Наступны дзень",
"PREVIOUS_DAY": "Папярэдні дзень",
"ZOOM_IN": "Павялічыць маштаб",
Expand All @@ -577,14 +569,9 @@
"CLOSE_FILTER": "Закрыць фільтр",
"SEARCH_PROGRAMS": "Пошук перадач",
"CLOSE_PROGRAM_SEARCH": "Закрыць пошук перадач",
"LIVE_NOW": "Цяпер",
"LIVE_STREAM": "Прамая трансляцыя",
"TIMESHIFT_AVAILABLE": "Даступная функцыя архіва (timeshift). Націсніце на перадачу для прайгравання.",
"ARCHIVE_PLAYBACK_UNAVAILABLE_TITLE": "Прайграванне архіва недаступна",
"ARCHIVE_PLAYBACK_UNAVAILABLE_DESCRIPTION": "Гэты правайдэр прадастаўляе гісторыю перадач для канала, але не падтрымлівае прайграванне архіва/catch-up.",
"EPG_NOT_AVAILABLE_DATE": "Ой, праграма на гэты дзень, на жаль, адсутнічае.",
"NO_GUIDE_HINT": "Паспрабуйце іншую дату або абнавіце плэйліст.",
"EPG_NOT_AVAILABLE_CHANNEL_TITLE": "Праграма для гэтага канала недаступная.",
"EPG_NOT_AVAILABLE_CHANNEL_DESCRIPTION": "Паспрабуйце змяніць або абнавіць спасылку на EPG у наладах праграмы.",
"FETCH_EPG": "Загружаю праграму ТБ-перадач (EPG)...",
"ERROR": "Ой, не ўдалося загрузіць праграму каналаў (EPG)",
Expand Down Expand Up @@ -619,7 +606,6 @@
"TRUST_TLS_HOST_WARNING": "Only continue if you trust this host. IPTVnator will allow invalid TLS certificates for this host, but other hosts still require valid certificates.",
"CURRENT_PROGRAM": "Current program",
"ARCHIVE_PLAYBACK": "Прайграванне архіва",
"RETURN_TO_LIVE": "Вярнуцца да эфіру",
"COLLAPSE_PANEL": "Collapse EPG panel",
"EXPAND_PANEL": "Expand EPG panel",
"TIMELINE": {
Expand Down Expand Up @@ -683,7 +669,6 @@
"MENU": {
"OPEN": "Адкрыць меню",
"SUPPORT_ARIA": "Падтрымаць IPTVnator на GitHub",
"SETTINGS": "Налады",
"SETTINGS_ARIA": "Адкрыць налады",
"BUG_REPORT": "Паведаміць аб памылцы",
"WHAT_IS_NEW": "Што новага?",
Expand Down Expand Up @@ -808,10 +793,7 @@
"SEARCH": "Пошук",
"RECENT": "Нядаўнія",
"RECENTLY_ADDED": "Нядаўна дададзеныя",
"FAVORITES": "Выбранае",
"HOME": "Галоўная",
"PLAYLIST_INFO": "Інфармацыя аб плэйлісце",
"ACCOUNT_INFO": "Інфармацыя аб уліковым запісе"
"FAVORITES": "Выбранае"
},
"ERROR_VIEW": {
"IMPORT_CANCELLED": {
Expand Down
22 changes: 2 additions & 20 deletions apps/web/src/assets/i18n/de.json
Original file line number Diff line number Diff line change
Expand Up @@ -192,10 +192,8 @@
"VALIDATING": "Portal wird überprüft …"
},
"FILTER_BY_NAME": "Nach Namen filtern",
"FILTER_BY_TYPE": "Playlist-Typen",
"FILTER_AND_SORT": "Filtern & Sortieren",
"SORT_PLAYLISTS": "Playlisten sortieren",
"SORT_BY": "Sortieren nach",
"SORT_OPTIONS": {
"NAME_ASC": "Name (A-Z)",
"NAME_DESC": "Name (Z-A)",
Expand Down Expand Up @@ -487,7 +485,6 @@
"TOGGLE_SIDEBAR_TOOLTIP": "Senderliste umschalten (⌘/Strg+B)"
},
"CHANNELS": {
"SEARCH_CHANNEL": "Nach Sender suchen",
"UPLOAD_OR_SELECT_OTHER_PLAYLIST": "Neue Playlist hochladen oder eine andere aussuchen",
"ALL_CHANNELS": "Alle Sender",
"GROUPS": "Gruppen",
Expand Down Expand Up @@ -561,14 +558,9 @@
}
},
"TOP_MENU": {
"OPEN_CHANNELS_LIST": "Senderliste öffnen",
"TOGGLE_FAVORITE_FLAG": "Als Favoriten hinzufügen/entfernen",
"OPEN_EPG_LIST": "TV-Guide (EPG) öffnen",
"OPEN_MULTI_EPG": "Open Multi-EPG view",
"SHOW_INFO": "Programminfo anzeigen (Taste I)"
"OPEN_MULTI_EPG": "Open Multi-EPG view"
},
"EPG": {
"TITLE": "Elektronischer Programmführer",
"NEXT_DAY": "Zum nächsten Tag",
"PREVIOUS_DAY": "Zum vorherigen Tag",
"ZOOM_IN": "Vergrößern",
Expand All @@ -577,14 +569,9 @@
"CLOSE_FILTER": "Filter schließen",
"SEARCH_PROGRAMS": "Sendungen suchen",
"CLOSE_PROGRAM_SEARCH": "Sendungssuche schließen",
"LIVE_NOW": "Live jetzt",
"LIVE_STREAM": "Live stream",
"TIMESHIFT_AVAILABLE": "Die Timeshift-Funktion (Archiv) ist verfügbar, klicken Sie an um abzuspielen",
"ARCHIVE_PLAYBACK_UNAVAILABLE_TITLE": "Archivwiedergabe nicht verfügbar",
"ARCHIVE_PLAYBACK_UNAVAILABLE_DESCRIPTION": "Dieser Anbieter stellt zwar den Programmverlauf für den Sender bereit, jedoch keine abspielbare Archiv-/Catchup-Wiedergabe.",
"EPG_NOT_AVAILABLE_DATE": "Ups, leider ist das TV-Programm für das ausgewählte Datum nicht verfügbar",
"NO_GUIDE_HINT": "Versuchen Sie ein anderes Datum oder aktualisieren Sie die Playlist.",
"EPG_NOT_AVAILABLE_CHANNEL_TITLE": "Ups, leider ist das TV-Programm nicht verfügbar.",
"EPG_NOT_AVAILABLE_CHANNEL_DESCRIPTION": "Versuchen Sie bitte die TV-Guide Einstellungen zu ändern.",
"FETCH_EPG": "EPG-Daten werden geladen...",
"ERROR": "Ooops, EPG konnte nicht geladen werden",
Expand Down Expand Up @@ -619,7 +606,6 @@
"TRUST_TLS_HOST_WARNING": "Only continue if you trust this host. IPTVnator will allow invalid TLS certificates for this host, but other hosts still require valid certificates.",
"CURRENT_PROGRAM": "Current program",
"ARCHIVE_PLAYBACK": "Archivwiedergabe",
"RETURN_TO_LIVE": "Zurück zum Live-TV",
"COLLAPSE_PANEL": "Collapse EPG panel",
"EXPAND_PANEL": "Expand EPG panel",
"TIMELINE": {
Expand Down Expand Up @@ -683,7 +669,6 @@
"MENU": {
"OPEN": "Menü öffnen",
"SUPPORT_ARIA": "IPTVnator auf GitHub unterstützen",
"SETTINGS": "Einstellungen",
"SETTINGS_ARIA": "Einstellungen öffnen",
"BUG_REPORT": "Fehler melden",
"WHAT_IS_NEW": "Was ist neu",
Expand Down Expand Up @@ -808,10 +793,7 @@
"SEARCH": "Suche",
"RECENT": "Zuletzt angesehen",
"RECENTLY_ADDED": "Kürzlich hinzugefügt",
"FAVORITES": "Favoriten",
"HOME": "Startseite",
"PLAYLIST_INFO": "Playlist-Info",
"ACCOUNT_INFO": "Account-Info"
"FAVORITES": "Favoriten"
},
"ERROR_VIEW": {
"IMPORT_CANCELLED": {
Expand Down
Loading
Loading