mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-16 14:16:16 -08:00
feat(playlist): auto-detect import method that parses pasted provider messages (#1445)
Adds an "Auto-detect" method to the Add playlist dialog: paste the message a provider sent — links, Xtream credentials, a MAC address with device identity — and a deterministic parser recognizes the source(s) and prefills the matching import form. - detectProviderImportCandidates (libs/shared/interfaces) extracts URLs, MAC addresses and labeled fields, classifies each finding as Xtream, Stalker or an M3U link/body, and returns ranked candidates. Pure and synchronous. - Built against a corpus of 19 real reseller handouts kept verbatim in the spec: Unicode "font" labels, arrow/dingbat separators, separator-less hex serials, dual device IDs, multi-MAC lists, bare three-line handouts, and a guard so a parental PIN is never read as the account password. - Detection only proposes: the target form's own validation and behavioral probes remain the sole path into the store, and no pasted text leaves the app. Passwords are masked on candidate cards, including query and HTTP Basic userinfo forms. - Covered by parser, component and dialog unit tests plus two web E2E specs for the paste → pick → prefilled form workflow; i18n for all 19 languages.
This commit is contained in:
1 parent
03719ba51d
commit
bee7df1e02
38 files changed
+3432
-49
No files matched your search
@@ -144,7 +144,9 @@
|
||||
"METHOD_STALKER_LABEL": "بوابة Stalker",
|
||||
"METHOD_STALKER_SUB": "عنوان MAC ورابط البوابة",
|
||||
"METHOD_TEXT_LABEL": "نص m3u الخام",
|
||||
"METHOD_TEXT_SUB": "للقوائم العابرة أو عندما يتوفر لديك النص فقط"
|
||||
"METHOD_TEXT_SUB": "للقوائم العابرة أو عندما يتوفر لديك النص فقط",
|
||||
"METHOD_AUTO_LABEL": "اكتشاف تلقائي",
|
||||
"METHOD_AUTO_SUB": "الصق رسالة مزوّد الخدمة"
|
||||
},
|
||||
"FILE_UPLOAD": {
|
||||
"DRAG_DROP": "اسحب وأفلت الملفات هنا",
|
||||
@@ -228,7 +230,18 @@
|
||||
"STALKER": "Stalker"
|
||||
},
|
||||
"IMPORTED_AS_TEXT": "مستوردة كنص",
|
||||
"PARSING_ERROR": "خطأ: فشل التحليل، ليست قائمة تشغيل صالحة:"
|
||||
"PARSING_ERROR": "خطأ: فشل التحليل، ليست قائمة تشغيل صالحة:",
|
||||
"AUTO_DETECT": {
|
||||
"LABEL": "رسالة مزوّد الخدمة",
|
||||
"PLACEHOLDER": "الصق كل ما أرسله مزوّد الخدمة — الروابط واسم المستخدم وكلمة المرور وعنوان MAC…",
|
||||
"PRIVACY_HINT": "يتم الاكتشاف محليًا داخل التطبيق؛ النص الملصق لا يُرسل إلى أي مكان.",
|
||||
"NO_MATCHES": "لم يتم التعرف على شيء بعد. الصق الرسالة كاملة مع الرابط أو بيانات الدخول.",
|
||||
"CONFIDENCE_HIGH": "تطابق مؤكد",
|
||||
"CONFIDENCE_MEDIUM": "تطابق محتمل",
|
||||
"CONFIDENCE_LOW": "تخمين",
|
||||
"USE": "ملء النموذج",
|
||||
"M3U_TEXT_NOTE": "يبدو أنها قائمة تشغيل M3U — سيتم استيرادها كنص ملصق."
|
||||
}
|
||||
},
|
||||
"SETTINGS": {
|
||||
"TITLE": "الإعدادات",
|
||||
|
||||
@@ -144,7 +144,9 @@
|
||||
"METHOD_STALKER_LABEL": "بوابة Stalker",
|
||||
"METHOD_STALKER_SUB": "عنوان MAC ورابط البوابة",
|
||||
"METHOD_TEXT_LABEL": "نص m3u خام",
|
||||
"METHOD_TEXT_SUB": "للقوائم المؤقتة ولا إلى عندك غير النص"
|
||||
"METHOD_TEXT_SUB": "للقوائم المؤقتة ولا إلى عندك غير النص",
|
||||
"METHOD_AUTO_LABEL": "اكتشاف تلقائي",
|
||||
"METHOD_AUTO_SUB": "الصق رسالة مزوّد الخدمة"
|
||||
},
|
||||
"FILE_UPLOAD": {
|
||||
"DRAG_DROP": "جر وأفلت الملفات هنا",
|
||||
@@ -228,7 +230,18 @@
|
||||
"STALKER": "Stalker"
|
||||
},
|
||||
"IMPORTED_AS_TEXT": "استورد كنص",
|
||||
"PARSING_ERROR": "خطأ: التحليل فشل، ماشي قائمة تشغيل صحيحة:"
|
||||
"PARSING_ERROR": "خطأ: التحليل فشل، ماشي قائمة تشغيل صحيحة:",
|
||||
"AUTO_DETECT": {
|
||||
"LABEL": "رسالة مزوّد الخدمة",
|
||||
"PLACEHOLDER": "الصق كل ما أرسله مزوّد الخدمة — الروابط واسم المستخدم وكلمة المرور وعنوان MAC…",
|
||||
"PRIVACY_HINT": "يتم الاكتشاف محليًا داخل التطبيق؛ النص الملصق لا يُرسل إلى أي مكان.",
|
||||
"NO_MATCHES": "لم يتم التعرف على شيء بعد. الصق الرسالة كاملة مع الرابط أو بيانات الدخول.",
|
||||
"CONFIDENCE_HIGH": "تطابق مؤكد",
|
||||
"CONFIDENCE_MEDIUM": "تطابق محتمل",
|
||||
"CONFIDENCE_LOW": "تخمين",
|
||||
"USE": "ملء النموذج",
|
||||
"M3U_TEXT_NOTE": "يبدو أنها قائمة تشغيل M3U — سيتم استيرادها كنص ملصق."
|
||||
}
|
||||
},
|
||||
"SETTINGS": {
|
||||
"TITLE": "الإعدادات",
|
||||
|
||||
@@ -144,7 +144,9 @@
|
||||
"METHOD_STALKER_LABEL": "Stalker партал",
|
||||
"METHOD_STALKER_SUB": "MAC-адрас і URL партала",
|
||||
"METHOD_TEXT_LABEL": "Тэкст M3U",
|
||||
"METHOD_TEXT_SUB": "Для разавых спісаў або калі ў вас ёсць толькі тэкст"
|
||||
"METHOD_TEXT_SUB": "Для разавых спісаў або калі ў вас ёсць толькі тэкст",
|
||||
"METHOD_AUTO_LABEL": "Аўтавызначэнне",
|
||||
"METHOD_AUTO_SUB": "Устаўце паведамленне ад правайдара"
|
||||
},
|
||||
"FILE_UPLOAD": {
|
||||
"DRAG_DROP": "Перацягніце файл у гэтую вобласць",
|
||||
@@ -228,7 +230,18 @@
|
||||
"STALKER": "Stalker"
|
||||
},
|
||||
"IMPORTED_AS_TEXT": "Імпартавана як тэкст",
|
||||
"PARSING_ERROR": "Памылка парсінгу, несапраўдны плэйліст:"
|
||||
"PARSING_ERROR": "Памылка парсінгу, несапраўдны плэйліст:",
|
||||
"AUTO_DETECT": {
|
||||
"LABEL": "Паведамленне ад правайдара",
|
||||
"PLACEHOLDER": "Устаўце ўсё, што даслаў правайдар — спасылкі, лагін і пароль, MAC-адрас…",
|
||||
"PRIVACY_HINT": "Распазнаванне выконваецца лакальна ў праграме; устаўлены тэкст нікуды не адпраўляецца.",
|
||||
"NO_MATCHES": "Пакуль нічога не распазнана. Устаўце паведамленне цалкам — са спасылкай або ўліковымі данымі.",
|
||||
"CONFIDENCE_HIGH": "Дакладнае супадзенне",
|
||||
"CONFIDENCE_MEDIUM": "Верагоднае супадзенне",
|
||||
"CONFIDENCE_LOW": "Здагадка",
|
||||
"USE": "Запоўніць форму",
|
||||
"M3U_TEXT_NOTE": "Падобна на плэйліст M3U — ён будзе імпартаваны як устаўлены тэкст."
|
||||
}
|
||||
},
|
||||
"SETTINGS": {
|
||||
"TITLE": "Налады",
|
||||
|
||||
@@ -144,7 +144,9 @@
|
||||
"METHOD_STALKER_LABEL": "Stalker-Portal",
|
||||
"METHOD_STALKER_SUB": "MAC-Adresse und Portal-URL",
|
||||
"METHOD_TEXT_LABEL": "M3U-Text",
|
||||
"METHOD_TEXT_SUB": "Für einmalige Listen oder wenn Sie nur Text haben"
|
||||
"METHOD_TEXT_SUB": "Für einmalige Listen oder wenn Sie nur Text haben",
|
||||
"METHOD_AUTO_LABEL": "Automatisch erkennen",
|
||||
"METHOD_AUTO_SUB": "Nachricht des Anbieters einfügen"
|
||||
},
|
||||
"FILE_UPLOAD": {
|
||||
"DRAG_DROP": "Ziehen Sie Dateien per Drag & Drop",
|
||||
@@ -228,7 +230,18 @@
|
||||
"STALKER": "Stalker"
|
||||
},
|
||||
"IMPORTED_AS_TEXT": "Als Text importiert",
|
||||
"PARSING_ERROR": "Fehler: Parsen fehlgeschlagen, keine gültige Playlist:"
|
||||
"PARSING_ERROR": "Fehler: Parsen fehlgeschlagen, keine gültige Playlist:",
|
||||
"AUTO_DETECT": {
|
||||
"LABEL": "Nachricht Ihres Anbieters",
|
||||
"PLACEHOLDER": "Fügen Sie alles ein, was Ihr Anbieter geschickt hat — Links, Benutzername und Passwort, MAC-Adresse…",
|
||||
"PRIVACY_HINT": "Die Erkennung läuft lokal in der App; der eingefügte Text wird nirgendwohin gesendet.",
|
||||
"NO_MATCHES": "Noch nichts erkannt. Fügen Sie die vollständige Nachricht mit Link oder Zugangsdaten ein.",
|
||||
"CONFIDENCE_HIGH": "Sichere Übereinstimmung",
|
||||
"CONFIDENCE_MEDIUM": "Wahrscheinliche Übereinstimmung",
|
||||
"CONFIDENCE_LOW": "Vermutung",
|
||||
"USE": "Formular ausfüllen",
|
||||
"M3U_TEXT_NOTE": "Sieht wie eine M3U-Playlist aus — sie wird als eingefügter Text importiert."
|
||||
}
|
||||
},
|
||||
"SETTINGS": {
|
||||
"TITLE": "Einstellungen",
|
||||
|
||||
@@ -144,7 +144,9 @@
|
||||
"METHOD_STALKER_LABEL": "Πύλη Stalker",
|
||||
"METHOD_STALKER_SUB": "MAC address και URL πύλης",
|
||||
"METHOD_TEXT_LABEL": "Ακατέργαστο κείμενο m3u",
|
||||
"METHOD_TEXT_SUB": "Για λίστες μίας χρήσης ή όταν έχετε μόνο κείμενο"
|
||||
"METHOD_TEXT_SUB": "Για λίστες μίας χρήσης ή όταν έχετε μόνο κείμενο",
|
||||
"METHOD_AUTO_LABEL": "Αυτόματη αναγνώριση",
|
||||
"METHOD_AUTO_SUB": "Επικολλήστε το μήνυμα του παρόχου σας"
|
||||
},
|
||||
"FILE_UPLOAD": {
|
||||
"DRAG_DROP": "Σύρετε και αποθέστε αρχεία εδώ",
|
||||
@@ -228,7 +230,18 @@
|
||||
"STALKER": "Stalker"
|
||||
},
|
||||
"IMPORTED_AS_TEXT": "Εισήχθη ως κείμενο",
|
||||
"PARSING_ERROR": "Σφάλμα: Η ανάλυση απέτυχε, δεν είναι έγκυρη λίστα αναπαραγωγής:"
|
||||
"PARSING_ERROR": "Σφάλμα: Η ανάλυση απέτυχε, δεν είναι έγκυρη λίστα αναπαραγωγής:",
|
||||
"AUTO_DETECT": {
|
||||
"LABEL": "Μήνυμα του παρόχου σας",
|
||||
"PLACEHOLDER": "Επικολλήστε ό,τι σας έστειλε ο πάροχος — συνδέσμους, όνομα χρήστη και κωδικό, διεύθυνση MAC…",
|
||||
"PRIVACY_HINT": "Η αναγνώριση γίνεται τοπικά στην εφαρμογή· το κείμενο δεν αποστέλλεται πουθενά.",
|
||||
"NO_MATCHES": "Δεν αναγνωρίστηκε τίποτα ακόμη. Επικολλήστε ολόκληρο το μήνυμα με τον σύνδεσμο ή τα διαπιστευτήρια.",
|
||||
"CONFIDENCE_HIGH": "Σίγουρη αντιστοιχία",
|
||||
"CONFIDENCE_MEDIUM": "Πιθανή αντιστοιχία",
|
||||
"CONFIDENCE_LOW": "Εικασία",
|
||||
"USE": "Συμπλήρωση φόρμας",
|
||||
"M3U_TEXT_NOTE": "Μοιάζει με λίστα M3U — θα εισαχθεί ως επικολλημένο κείμενο."
|
||||
}
|
||||
},
|
||||
"SETTINGS": {
|
||||
"TITLE": "Ρυθμίσεις",
|
||||
|
||||
@@ -144,7 +144,9 @@
|
||||
"METHOD_STALKER_LABEL": "Stalker portal",
|
||||
"METHOD_STALKER_SUB": "MAC address and portal URL",
|
||||
"METHOD_TEXT_LABEL": "Raw m3u text",
|
||||
"METHOD_TEXT_SUB": "For one-off lists or when you only have text"
|
||||
"METHOD_TEXT_SUB": "For one-off lists or when you only have text",
|
||||
"METHOD_AUTO_LABEL": "Auto-detect",
|
||||
"METHOD_AUTO_SUB": "Paste the message from your provider"
|
||||
},
|
||||
"FILE_UPLOAD": {
|
||||
"DRAG_DROP": "Drop an .m3u or .m3u8 file here",
|
||||
@@ -228,7 +230,18 @@
|
||||
"STALKER": "Stalker"
|
||||
},
|
||||
"IMPORTED_AS_TEXT": "Imported as text",
|
||||
"PARSING_ERROR": "Error: Parsing failed, not a valid playlist:"
|
||||
"PARSING_ERROR": "Error: Parsing failed, not a valid playlist:",
|
||||
"AUTO_DETECT": {
|
||||
"LABEL": "Message from your provider",
|
||||
"PLACEHOLDER": "Paste everything your provider sent — links, username and password, MAC address…",
|
||||
"PRIVACY_HINT": "Detection runs locally in the app; nothing you paste is sent anywhere.",
|
||||
"NO_MATCHES": "Nothing recognized yet. Paste the full message including the link or credentials.",
|
||||
"CONFIDENCE_HIGH": "Confident match",
|
||||
"CONFIDENCE_MEDIUM": "Likely match",
|
||||
"CONFIDENCE_LOW": "Guess",
|
||||
"USE": "Fill the form",
|
||||
"M3U_TEXT_NOTE": "Looks like a raw M3U playlist — it will be imported as pasted text."
|
||||
}
|
||||
},
|
||||
"SETTINGS": {
|
||||
"TITLE": "Settings",
|
||||
|
||||
@@ -144,7 +144,9 @@
|
||||
"METHOD_STALKER_LABEL": "Portal Stalker",
|
||||
"METHOD_STALKER_SUB": "Dirección MAC y URL del portal",
|
||||
"METHOD_TEXT_LABEL": "Texto m3u sin formato",
|
||||
"METHOD_TEXT_SUB": "Para listas puntuales o cuando solo tienes texto"
|
||||
"METHOD_TEXT_SUB": "Para listas puntuales o cuando solo tienes texto",
|
||||
"METHOD_AUTO_LABEL": "Detección automática",
|
||||
"METHOD_AUTO_SUB": "Pega el mensaje de tu proveedor"
|
||||
},
|
||||
"FILE_UPLOAD": {
|
||||
"DRAG_DROP": "Arrastre & suelte archivos aquí",
|
||||
@@ -228,7 +230,18 @@
|
||||
"STALKER": "Stalker"
|
||||
},
|
||||
"IMPORTED_AS_TEXT": "Importado como texto",
|
||||
"PARSING_ERROR": "Error: Error al analizar, no es una lista de reproducción válida:"
|
||||
"PARSING_ERROR": "Error: Error al analizar, no es una lista de reproducción válida:",
|
||||
"AUTO_DETECT": {
|
||||
"LABEL": "Mensaje de tu proveedor",
|
||||
"PLACEHOLDER": "Pega todo lo que te envió tu proveedor: enlaces, usuario y contraseña, dirección MAC…",
|
||||
"PRIVACY_HINT": "La detección se realiza localmente en la aplicación; el texto pegado no se envía a ningún sitio.",
|
||||
"NO_MATCHES": "Aún no se ha reconocido nada. Pega el mensaje completo con el enlace o las credenciales.",
|
||||
"CONFIDENCE_HIGH": "Coincidencia segura",
|
||||
"CONFIDENCE_MEDIUM": "Coincidencia probable",
|
||||
"CONFIDENCE_LOW": "Suposición",
|
||||
"USE": "Rellenar el formulario",
|
||||
"M3U_TEXT_NOTE": "Parece una lista M3U: se importará como texto pegado."
|
||||
}
|
||||
},
|
||||
"SETTINGS": {
|
||||
"TITLE": "Ajustes",
|
||||
|
||||
@@ -144,7 +144,9 @@
|
||||
"METHOD_STALKER_LABEL": "Portail Stalker",
|
||||
"METHOD_STALKER_SUB": "Adresse MAC et URL du portail",
|
||||
"METHOD_TEXT_LABEL": "Texte m3u brut",
|
||||
"METHOD_TEXT_SUB": "Pour les listes ponctuelles ou quand vous n'avez que du texte"
|
||||
"METHOD_TEXT_SUB": "Pour les listes ponctuelles ou quand vous n'avez que du texte",
|
||||
"METHOD_AUTO_LABEL": "Détection automatique",
|
||||
"METHOD_AUTO_SUB": "Collez le message de votre fournisseur"
|
||||
},
|
||||
"FILE_UPLOAD": {
|
||||
"DRAG_DROP": "Glissez un fichier ici",
|
||||
@@ -228,7 +230,18 @@
|
||||
"STALKER": "Stalker"
|
||||
},
|
||||
"IMPORTED_AS_TEXT": "Importé sous forme de texte",
|
||||
"PARSING_ERROR": "Erreur : échec de l'analyse, liste de lecture non valide :"
|
||||
"PARSING_ERROR": "Erreur : échec de l'analyse, liste de lecture non valide :",
|
||||
"AUTO_DETECT": {
|
||||
"LABEL": "Message de votre fournisseur",
|
||||
"PLACEHOLDER": "Collez tout ce que votre fournisseur a envoyé : liens, identifiant et mot de passe, adresse MAC…",
|
||||
"PRIVACY_HINT": "La détection s'effectue localement dans l'application ; le texte collé n'est envoyé nulle part.",
|
||||
"NO_MATCHES": "Rien de reconnu pour l'instant. Collez le message complet avec le lien ou les identifiants.",
|
||||
"CONFIDENCE_HIGH": "Correspondance sûre",
|
||||
"CONFIDENCE_MEDIUM": "Correspondance probable",
|
||||
"CONFIDENCE_LOW": "Supposition",
|
||||
"USE": "Remplir le formulaire",
|
||||
"M3U_TEXT_NOTE": "Ressemble à une liste M3U — elle sera importée comme texte collé."
|
||||
}
|
||||
},
|
||||
"SETTINGS": {
|
||||
"TITLE": "Paramètres",
|
||||
|
||||
@@ -144,7 +144,9 @@
|
||||
"METHOD_STALKER_LABEL": "Stalker-portál",
|
||||
"METHOD_STALKER_SUB": "MAC-cím és a portál URL-címe",
|
||||
"METHOD_TEXT_LABEL": "Nyers M3U-szöveg",
|
||||
"METHOD_TEXT_SUB": "Egyszeri listákhoz, vagy ha csak szöveg áll rendelkezésére"
|
||||
"METHOD_TEXT_SUB": "Egyszeri listákhoz, vagy ha csak szöveg áll rendelkezésére",
|
||||
"METHOD_AUTO_LABEL": "Automatikus felismerés",
|
||||
"METHOD_AUTO_SUB": "Illessze be a szolgáltató üzenetét"
|
||||
},
|
||||
"FILE_UPLOAD": {
|
||||
"DRAG_DROP": "Húzzon ide egy .m3u- vagy .m3u8-fájlt",
|
||||
@@ -228,7 +230,18 @@
|
||||
"STALKER": "Stalker"
|
||||
},
|
||||
"IMPORTED_AS_TEXT": "Szövegként importálva",
|
||||
"PARSING_ERROR": "Hiba: a feldolgozás sikertelen; ez nem érvényes lejátszási lista:"
|
||||
"PARSING_ERROR": "Hiba: a feldolgozás sikertelen; ez nem érvényes lejátszási lista:",
|
||||
"AUTO_DETECT": {
|
||||
"LABEL": "A szolgáltató üzenete",
|
||||
"PLACEHOLDER": "Illesszen be mindent, amit a szolgáltató küldött — linkek, felhasználónév és jelszó, MAC-cím…",
|
||||
"PRIVACY_HINT": "A felismerés helyben, az alkalmazásban történik; a beillesztett szöveg nem kerül elküldésre.",
|
||||
"NO_MATCHES": "Még semmi sem felismerhető. Illessze be a teljes üzenetet a linkkel vagy a belépési adatokkal.",
|
||||
"CONFIDENCE_HIGH": "Biztos találat",
|
||||
"CONFIDENCE_MEDIUM": "Valószínű találat",
|
||||
"CONFIDENCE_LOW": "Feltételezés",
|
||||
"USE": "Űrlap kitöltése",
|
||||
"M3U_TEXT_NOTE": "M3U-lejátszási listának tűnik — beillesztett szövegként lesz importálva."
|
||||
}
|
||||
},
|
||||
"SETTINGS": {
|
||||
"TITLE": "Beállítások",
|
||||
|
||||
@@ -144,7 +144,9 @@
|
||||
"METHOD_STALKER_LABEL": "Portale Stalker",
|
||||
"METHOD_STALKER_SUB": "Indirizzo MAC e URL del portale",
|
||||
"METHOD_TEXT_LABEL": "Testo m3u grezzo",
|
||||
"METHOD_TEXT_SUB": "Per liste occasionali o quando hai solo il testo"
|
||||
"METHOD_TEXT_SUB": "Per liste occasionali o quando hai solo il testo",
|
||||
"METHOD_AUTO_LABEL": "Rilevamento automatico",
|
||||
"METHOD_AUTO_SUB": "Incolla il messaggio del tuo provider"
|
||||
},
|
||||
"FILE_UPLOAD": {
|
||||
"DRAG_DROP": "Trascina e rilascia qui i file",
|
||||
@@ -228,7 +230,18 @@
|
||||
"STALKER": "Stalker"
|
||||
},
|
||||
"IMPORTED_AS_TEXT": "Importato come testo",
|
||||
"PARSING_ERROR": "Errore: analisi fallita, non è una playlist valida:"
|
||||
"PARSING_ERROR": "Errore: analisi fallita, non è una playlist valida:",
|
||||
"AUTO_DETECT": {
|
||||
"LABEL": "Messaggio del tuo provider",
|
||||
"PLACEHOLDER": "Incolla tutto ciò che il provider ti ha inviato: link, nome utente e password, indirizzo MAC…",
|
||||
"PRIVACY_HINT": "Il rilevamento avviene localmente nell'app; il testo incollato non viene inviato da nessuna parte.",
|
||||
"NO_MATCHES": "Ancora nulla di riconosciuto. Incolla il messaggio completo con il link o le credenziali.",
|
||||
"CONFIDENCE_HIGH": "Corrispondenza sicura",
|
||||
"CONFIDENCE_MEDIUM": "Corrispondenza probabile",
|
||||
"CONFIDENCE_LOW": "Ipotesi",
|
||||
"USE": "Compila il modulo",
|
||||
"M3U_TEXT_NOTE": "Sembra una playlist M3U: verrà importata come testo incollato."
|
||||
}
|
||||
},
|
||||
"SETTINGS": {
|
||||
"TITLE": "Impostazioni IPTVnator",
|
||||
|
||||
@@ -144,7 +144,9 @@
|
||||
"METHOD_STALKER_LABEL": "Stalkerポータル",
|
||||
"METHOD_STALKER_SUB": "MACアドレスとポータルURL",
|
||||
"METHOD_TEXT_LABEL": "M3Uテキスト",
|
||||
"METHOD_TEXT_SUB": "一度限りのリストやテキストしかない場合に"
|
||||
"METHOD_TEXT_SUB": "一度限りのリストやテキストしかない場合に",
|
||||
"METHOD_AUTO_LABEL": "自動検出",
|
||||
"METHOD_AUTO_SUB": "プロバイダーからのメッセージを貼り付け"
|
||||
},
|
||||
"FILE_UPLOAD": {
|
||||
"DRAG_DROP": "ここにファイルをドラッグ&ドロップ",
|
||||
@@ -228,7 +230,18 @@
|
||||
"STALKER": "Stalker"
|
||||
},
|
||||
"IMPORTED_AS_TEXT": "テキストとしてインポート",
|
||||
"PARSING_ERROR": "エラー:解析に失敗しました。有効なプレイリストではありません:"
|
||||
"PARSING_ERROR": "エラー:解析に失敗しました。有効なプレイリストではありません:",
|
||||
"AUTO_DETECT": {
|
||||
"LABEL": "プロバイダーからのメッセージ",
|
||||
"PLACEHOLDER": "プロバイダーから送られた内容をすべて貼り付けてください — リンク、ユーザー名とパスワード、MACアドレスなど…",
|
||||
"PRIVACY_HINT": "検出はアプリ内でローカルに実行され、貼り付けたテキストはどこにも送信されません。",
|
||||
"NO_MATCHES": "まだ何も認識されていません。リンクや認証情報を含むメッセージ全体を貼り付けてください。",
|
||||
"CONFIDENCE_HIGH": "確実な一致",
|
||||
"CONFIDENCE_MEDIUM": "可能性の高い一致",
|
||||
"CONFIDENCE_LOW": "推測",
|
||||
"USE": "フォームに入力",
|
||||
"M3U_TEXT_NOTE": "M3Uプレイリストのようです — 貼り付けたテキストとしてインポートされます。"
|
||||
}
|
||||
},
|
||||
"SETTINGS": {
|
||||
"TITLE": "設定",
|
||||
|
||||
@@ -144,7 +144,9 @@
|
||||
"METHOD_STALKER_LABEL": "Stalker 포털",
|
||||
"METHOD_STALKER_SUB": "MAC 주소와 포털 URL",
|
||||
"METHOD_TEXT_LABEL": "원본 m3u 텍스트",
|
||||
"METHOD_TEXT_SUB": "일회성 목록이나 텍스트만 있을 때 사용하세요"
|
||||
"METHOD_TEXT_SUB": "일회성 목록이나 텍스트만 있을 때 사용하세요",
|
||||
"METHOD_AUTO_LABEL": "자동 감지",
|
||||
"METHOD_AUTO_SUB": "제공업체의 메시지를 붙여넣으세요"
|
||||
},
|
||||
"FILE_UPLOAD": {
|
||||
"DRAG_DROP": "파일을 드래그 앤 드롭",
|
||||
@@ -228,7 +230,18 @@
|
||||
"STALKER": "Stalker"
|
||||
},
|
||||
"IMPORTED_AS_TEXT": "텍스트로 가져옴",
|
||||
"PARSING_ERROR": "오류: 파싱에 실패했습니다. 유효한 재생목록이 아닙니다:"
|
||||
"PARSING_ERROR": "오류: 파싱에 실패했습니다. 유효한 재생목록이 아닙니다:",
|
||||
"AUTO_DETECT": {
|
||||
"LABEL": "제공업체의 메시지",
|
||||
"PLACEHOLDER": "제공업체가 보낸 모든 내용을 붙여넣으세요 — 링크, 사용자 이름과 비밀번호, MAC 주소…",
|
||||
"PRIVACY_HINT": "감지는 앱에서 로컬로 실행되며 붙여넣은 텍스트는 어디에도 전송되지 않습니다.",
|
||||
"NO_MATCHES": "아직 인식된 내용이 없습니다. 링크나 자격 증명이 포함된 전체 메시지를 붙여넣으세요.",
|
||||
"CONFIDENCE_HIGH": "확실한 일치",
|
||||
"CONFIDENCE_MEDIUM": "유력한 일치",
|
||||
"CONFIDENCE_LOW": "추측",
|
||||
"USE": "양식 채우기",
|
||||
"M3U_TEXT_NOTE": "M3U 재생목록으로 보입니다 — 붙여넣은 텍스트로 가져옵니다."
|
||||
}
|
||||
},
|
||||
"SETTINGS": {
|
||||
"TITLE": "설정",
|
||||
|
||||
@@ -144,7 +144,9 @@
|
||||
"METHOD_STALKER_LABEL": "Stalker-portaal",
|
||||
"METHOD_STALKER_SUB": "MAC-adres en portal-URL",
|
||||
"METHOD_TEXT_LABEL": "Ruwe m3u-tekst",
|
||||
"METHOD_TEXT_SUB": "Voor eenmalige lijsten of als je alleen tekst hebt"
|
||||
"METHOD_TEXT_SUB": "Voor eenmalige lijsten of als je alleen tekst hebt",
|
||||
"METHOD_AUTO_LABEL": "Automatisch detecteren",
|
||||
"METHOD_AUTO_SUB": "Plak het bericht van je provider"
|
||||
},
|
||||
"FILE_UPLOAD": {
|
||||
"DRAG_DROP": "Sleep bestanden hierheen",
|
||||
@@ -228,7 +230,18 @@
|
||||
"STALKER": "Stalker"
|
||||
},
|
||||
"IMPORTED_AS_TEXT": "Geïmporteerd als tekst",
|
||||
"PARSING_ERROR": "Fout: parsing mislukt, geen geldige afspeellijst:"
|
||||
"PARSING_ERROR": "Fout: parsing mislukt, geen geldige afspeellijst:",
|
||||
"AUTO_DETECT": {
|
||||
"LABEL": "Bericht van je provider",
|
||||
"PLACEHOLDER": "Plak alles wat je provider heeft gestuurd — links, gebruikersnaam en wachtwoord, MAC-adres…",
|
||||
"PRIVACY_HINT": "Detectie gebeurt lokaal in de app; geplakte tekst wordt nergens naartoe gestuurd.",
|
||||
"NO_MATCHES": "Nog niets herkend. Plak het volledige bericht met de link of inloggegevens.",
|
||||
"CONFIDENCE_HIGH": "Zekere match",
|
||||
"CONFIDENCE_MEDIUM": "Waarschijnlijke match",
|
||||
"CONFIDENCE_LOW": "Gok",
|
||||
"USE": "Formulier invullen",
|
||||
"M3U_TEXT_NOTE": "Lijkt op een M3U-afspeellijst — deze wordt als geplakte tekst geïmporteerd."
|
||||
}
|
||||
},
|
||||
"SETTINGS": {
|
||||
"TITLE": "Instellingen",
|
||||
|
||||
@@ -144,7 +144,9 @@
|
||||
"METHOD_STALKER_LABEL": "Portal Stalker",
|
||||
"METHOD_STALKER_SUB": "Adres MAC i URL portalu",
|
||||
"METHOD_TEXT_LABEL": "Surowy tekst m3u",
|
||||
"METHOD_TEXT_SUB": "Do jednorazowych list lub gdy dostępny jest tylko tekst"
|
||||
"METHOD_TEXT_SUB": "Do jednorazowych list lub gdy dostępny jest tylko tekst",
|
||||
"METHOD_AUTO_LABEL": "Automatyczne wykrywanie",
|
||||
"METHOD_AUTO_SUB": "Wklej wiadomość od dostawcy"
|
||||
},
|
||||
"FILE_UPLOAD": {
|
||||
"DRAG_DROP": "Przeciągnij i upuść pliki tutaj",
|
||||
@@ -228,7 +230,18 @@
|
||||
"STALKER": "Stalker"
|
||||
},
|
||||
"IMPORTED_AS_TEXT": "Zaimportowano jako tekst",
|
||||
"PARSING_ERROR": "Błąd: Analiza nie powiodła się, nieprawidłowa lista odtwarzania:"
|
||||
"PARSING_ERROR": "Błąd: Analiza nie powiodła się, nieprawidłowa lista odtwarzania:",
|
||||
"AUTO_DETECT": {
|
||||
"LABEL": "Wiadomość od dostawcy",
|
||||
"PLACEHOLDER": "Wklej wszystko, co przysłał dostawca — linki, login i hasło, adres MAC…",
|
||||
"PRIVACY_HINT": "Wykrywanie odbywa się lokalnie w aplikacji; wklejony tekst nigdzie nie jest wysyłany.",
|
||||
"NO_MATCHES": "Na razie nic nie rozpoznano. Wklej całą wiadomość z linkiem lub danymi logowania.",
|
||||
"CONFIDENCE_HIGH": "Pewne dopasowanie",
|
||||
"CONFIDENCE_MEDIUM": "Prawdopodobne dopasowanie",
|
||||
"CONFIDENCE_LOW": "Przypuszczenie",
|
||||
"USE": "Wypełnij formularz",
|
||||
"M3U_TEXT_NOTE": "Wygląda na playlistę M3U — zostanie zaimportowana jako wklejony tekst."
|
||||
}
|
||||
},
|
||||
"SETTINGS": {
|
||||
"TITLE": "Ustawienia",
|
||||
|
||||
@@ -144,7 +144,9 @@
|
||||
"METHOD_STALKER_LABEL": "Portal Stalker",
|
||||
"METHOD_STALKER_SUB": "Endereço MAC e URL do portal",
|
||||
"METHOD_TEXT_LABEL": "Texto m3u bruto",
|
||||
"METHOD_TEXT_SUB": "Para listas pontuais ou quando você só tem o texto"
|
||||
"METHOD_TEXT_SUB": "Para listas pontuais ou quando você só tem o texto",
|
||||
"METHOD_AUTO_LABEL": "Deteção automática",
|
||||
"METHOD_AUTO_SUB": "Cole a mensagem do seu provedor"
|
||||
},
|
||||
"FILE_UPLOAD": {
|
||||
"DRAG_DROP": "Arraste e solte os arquivos aqui",
|
||||
@@ -228,7 +230,18 @@
|
||||
"STALKER": "Stalker"
|
||||
},
|
||||
"IMPORTED_AS_TEXT": "Importado como texto",
|
||||
"PARSING_ERROR": "Erro: Falha na análise, não é uma playlist válida:"
|
||||
"PARSING_ERROR": "Erro: Falha na análise, não é uma playlist válida:",
|
||||
"AUTO_DETECT": {
|
||||
"LABEL": "Mensagem do seu provedor",
|
||||
"PLACEHOLDER": "Cole tudo o que o provedor enviou — links, utilizador e palavra-passe, endereço MAC…",
|
||||
"PRIVACY_HINT": "A deteção é feita localmente na aplicação; o texto colado não é enviado para lado nenhum.",
|
||||
"NO_MATCHES": "Ainda nada reconhecido. Cole a mensagem completa com o link ou as credenciais.",
|
||||
"CONFIDENCE_HIGH": "Correspondência segura",
|
||||
"CONFIDENCE_MEDIUM": "Correspondência provável",
|
||||
"CONFIDENCE_LOW": "Palpite",
|
||||
"USE": "Preencher o formulário",
|
||||
"M3U_TEXT_NOTE": "Parece uma playlist M3U — será importada como texto colado."
|
||||
}
|
||||
},
|
||||
"SETTINGS": {
|
||||
"TITLE": "Configurações",
|
||||
|
||||
@@ -144,7 +144,9 @@
|
||||
"METHOD_STALKER_LABEL": "Stalker портал",
|
||||
"METHOD_STALKER_SUB": "MAC-адрес и URL портала",
|
||||
"METHOD_TEXT_LABEL": "M3U текстом",
|
||||
"METHOD_TEXT_SUB": "Для разовых плейлистов или когда есть только текст"
|
||||
"METHOD_TEXT_SUB": "Для разовых плейлистов или когда есть только текст",
|
||||
"METHOD_AUTO_LABEL": "Автоопределение",
|
||||
"METHOD_AUTO_SUB": "Вставьте сообщение от провайдера"
|
||||
},
|
||||
"FILE_UPLOAD": {
|
||||
"DRAG_DROP": "Перетащите файл в эту область",
|
||||
@@ -228,7 +230,18 @@
|
||||
"STALKER": "Stalker"
|
||||
},
|
||||
"IMPORTED_AS_TEXT": "Импортировано как текст",
|
||||
"PARSING_ERROR": "Ошибка парсинга, недействительный плейлист:"
|
||||
"PARSING_ERROR": "Ошибка парсинга, недействительный плейлист:",
|
||||
"AUTO_DETECT": {
|
||||
"LABEL": "Сообщение от провайдера",
|
||||
"PLACEHOLDER": "Вставьте всё, что прислал провайдер — ссылки, логин и пароль, MAC-адрес…",
|
||||
"PRIVACY_HINT": "Распознавание выполняется локально в приложении; вставленный текст никуда не отправляется.",
|
||||
"NO_MATCHES": "Пока ничего не распознано. Вставьте сообщение целиком — со ссылкой или учётными данными.",
|
||||
"CONFIDENCE_HIGH": "Точное совпадение",
|
||||
"CONFIDENCE_MEDIUM": "Вероятное совпадение",
|
||||
"CONFIDENCE_LOW": "Предположение",
|
||||
"USE": "Заполнить форму",
|
||||
"M3U_TEXT_NOTE": "Похоже на плейлист M3U — он будет импортирован как вставленный текст."
|
||||
}
|
||||
},
|
||||
"SETTINGS": {
|
||||
"TITLE": "Настройки",
|
||||
|
||||
@@ -144,7 +144,9 @@
|
||||
"METHOD_STALKER_LABEL": "Stalker portalı",
|
||||
"METHOD_STALKER_SUB": "MAC adresi ve portal URL'si",
|
||||
"METHOD_TEXT_LABEL": "Ham m3u metni",
|
||||
"METHOD_TEXT_SUB": "Tek seferlik listeler veya yalnızca metniniz olduğunda"
|
||||
"METHOD_TEXT_SUB": "Tek seferlik listeler veya yalnızca metniniz olduğunda",
|
||||
"METHOD_AUTO_LABEL": "Otomatik algılama",
|
||||
"METHOD_AUTO_SUB": "Sağlayıcınızın mesajını yapıştırın"
|
||||
},
|
||||
"FILE_UPLOAD": {
|
||||
"DRAG_DROP": "Dosyaları buraya sürükleyip bırakın",
|
||||
@@ -228,7 +230,18 @@
|
||||
"STALKER": "Stalker"
|
||||
},
|
||||
"IMPORTED_AS_TEXT": "Metin olarak içe aktarıldı",
|
||||
"PARSING_ERROR": "Hata: Ayrıştırma başarısız, geçerli bir oynatma listesi değil:"
|
||||
"PARSING_ERROR": "Hata: Ayrıştırma başarısız, geçerli bir oynatma listesi değil:",
|
||||
"AUTO_DETECT": {
|
||||
"LABEL": "Sağlayıcınızın mesajı",
|
||||
"PLACEHOLDER": "Sağlayıcınızın gönderdiği her şeyi yapıştırın — bağlantılar, kullanıcı adı ve şifre, MAC adresi…",
|
||||
"PRIVACY_HINT": "Algılama uygulama içinde yerel olarak yapılır; yapıştırılan metin hiçbir yere gönderilmez.",
|
||||
"NO_MATCHES": "Henüz bir şey tanınmadı. Bağlantı veya kimlik bilgileriyle birlikte mesajın tamamını yapıştırın.",
|
||||
"CONFIDENCE_HIGH": "Kesin eşleşme",
|
||||
"CONFIDENCE_MEDIUM": "Olası eşleşme",
|
||||
"CONFIDENCE_LOW": "Tahmin",
|
||||
"USE": "Formu doldur",
|
||||
"M3U_TEXT_NOTE": "M3U çalma listesine benziyor — yapıştırılan metin olarak içe aktarılacak."
|
||||
}
|
||||
},
|
||||
"SETTINGS": {
|
||||
"TITLE": "Ayarlar",
|
||||
|
||||
@@ -144,7 +144,9 @@
|
||||
"METHOD_STALKER_LABEL": "Stalker 门户",
|
||||
"METHOD_STALKER_SUB": "MAC 地址和门户 URL",
|
||||
"METHOD_TEXT_LABEL": "原始 m3u 文本",
|
||||
"METHOD_TEXT_SUB": "用于一次性列表,或仅有文本时"
|
||||
"METHOD_TEXT_SUB": "用于一次性列表,或仅有文本时",
|
||||
"METHOD_AUTO_LABEL": "自动识别",
|
||||
"METHOD_AUTO_SUB": "粘贴服务商发来的消息"
|
||||
},
|
||||
"FILE_UPLOAD": {
|
||||
"DRAG_DROP": "将文件拖放到此处",
|
||||
@@ -228,7 +230,18 @@
|
||||
"STALKER": "Stalker"
|
||||
},
|
||||
"IMPORTED_AS_TEXT": "以文本形式导入",
|
||||
"PARSING_ERROR": "错误:解析失败,不是有效的播放列表:"
|
||||
"PARSING_ERROR": "错误:解析失败,不是有效的播放列表:",
|
||||
"AUTO_DETECT": {
|
||||
"LABEL": "服务商发来的消息",
|
||||
"PLACEHOLDER": "粘贴服务商发送的全部内容——链接、用户名和密码、MAC 地址等…",
|
||||
"PRIVACY_HINT": "识别在应用内本地完成;粘贴的文本不会被发送到任何地方。",
|
||||
"NO_MATCHES": "尚未识别出任何内容。请粘贴包含链接或凭据的完整消息。",
|
||||
"CONFIDENCE_HIGH": "确定匹配",
|
||||
"CONFIDENCE_MEDIUM": "可能匹配",
|
||||
"CONFIDENCE_LOW": "推测",
|
||||
"USE": "填写表单",
|
||||
"M3U_TEXT_NOTE": "看起来是 M3U 播放列表——将作为粘贴文本导入。"
|
||||
}
|
||||
},
|
||||
"SETTINGS": {
|
||||
"TITLE": "设置",
|
||||
|
||||
@@ -144,7 +144,9 @@
|
||||
"METHOD_STALKER_LABEL": "Stalker 入口網站",
|
||||
"METHOD_STALKER_SUB": "MAC 位址與入口網址",
|
||||
"METHOD_TEXT_LABEL": "M3U 原始文字",
|
||||
"METHOD_TEXT_SUB": "適合一次性清單,或您只有文字內容時使用"
|
||||
"METHOD_TEXT_SUB": "適合一次性清單,或您只有文字內容時使用",
|
||||
"METHOD_AUTO_LABEL": "自動辨識",
|
||||
"METHOD_AUTO_SUB": "貼上服務商傳來的訊息"
|
||||
},
|
||||
"FILE_UPLOAD": {
|
||||
"DRAG_DROP": "在此處拖放檔案",
|
||||
@@ -228,7 +230,18 @@
|
||||
"STALKER": "Stalker"
|
||||
},
|
||||
"IMPORTED_AS_TEXT": "以文字方式匯入",
|
||||
"PARSING_ERROR": "錯誤:解析失敗,不是有效的播放清單:"
|
||||
"PARSING_ERROR": "錯誤:解析失敗,不是有效的播放清單:",
|
||||
"AUTO_DETECT": {
|
||||
"LABEL": "服務商傳來的訊息",
|
||||
"PLACEHOLDER": "貼上服務商傳送的全部內容——連結、使用者名稱與密碼、MAC 位址等…",
|
||||
"PRIVACY_HINT": "辨識在應用程式內本機完成;貼上的文字不會傳送到任何地方。",
|
||||
"NO_MATCHES": "尚未辨識出任何內容。請貼上包含連結或憑證的完整訊息。",
|
||||
"CONFIDENCE_HIGH": "確定匹配",
|
||||
"CONFIDENCE_MEDIUM": "可能匹配",
|
||||
"CONFIDENCE_LOW": "推測",
|
||||
"USE": "填寫表單",
|
||||
"M3U_TEXT_NOTE": "看起來是 M3U 播放清單——將作為貼上的文字匯入。"
|
||||
}
|
||||
},
|
||||
"SETTINGS": {
|
||||
"TITLE": "設定",
|
||||
|
||||
Reference in new issue
Block a user