"""Bilingual bot message templates.

All Arabic strings are MSA (Modern Standard Arabic).
"""
from __future__ import annotations

from typing import Any


# ── Language toggle ────────────────────────────────────────────────────────────

def t(key: str, lang: str = "ar", **kwargs: Any) -> str:
    """Return a translated message, formatted with kwargs."""
    msg = _MESSAGES.get(lang, _MESSAGES["ar"]).get(key, _MESSAGES["ar"].get(key, key))
    return msg.format(**kwargs) if kwargs else msg


# ── Message registry ───────────────────────────────────────────────────────────

_MESSAGES: dict[str, dict[str, str]] = {
    "ar": {
        # ── Onboarding ───────────────────────────────────────────────
        "welcome": (
            "مرحباً بك في بوت مكتبتي الإعلامية 📥\n\n"
            "أنا مساعدك الذكي لحفظ الروابط والوسائط وتنظيمها تلقائياً.\n\n"
            "ما الذي يمكنني فعله؟\n"
            "• حفظ الروابط والصور ومقاطع الفيديو\n"
            "• توليد ملخصات ذكية للمحتوى\n"
            "• استخراج الوسوم تلقائياً\n"
            "• البحث بالعربية الطبيعية في محتواك\n\n"
            "ابدأ بإرسال أي رابط الآن، أو اكتب /help للمساعدة."
        ),
        # ── URL received ──────────────────────────────────────────────
        "url_received": (
            "✅ تم استلام الرابط بنجاح.\n\n"
            "🔗 {url}\n\n"
            "كيف تريد حفظه؟"
        ),
        # ── Save mode buttons ─────────────────────────────────────────
        "btn_link_only": "🔗 رابط فقط",
        "btn_with_media": "📥 تحميل الوسائط",
        "btn_cancel": "❌ إلغاء",
        # ── Processing ────────────────────────────────────────────────
        "processing": (
            "⏳ جارٍ معالجة المحتوى...\n\n"
            "سيتم إشعارك فور الانتهاء. قد تستغرق العملية بضع ثوانٍ."
        ),
        "processing_link": (
            "⏳ جارٍ تحليل الرابط...\n\n"
            "سيتم إشعارك فور الانتهاء."
        ),
        # ── Success ───────────────────────────────────────────────────
        "save_complete": (
            "✅ تمت المعالجة بنجاح!\n\n"
            "─────────────────────────\n"
            "📌 {title}\n"
            "🌐 {domain}\n"
            "📅 {date}\n\n"
            "📝 الملخص:\n{summary}\n\n"
            "🏷 {tags}"
        ),
        "save_complete_no_summary": (
            "✅ تم الحفظ بنجاح!\n\n"
            "📌 {title}\n"
            "🌐 {domain}\n"
            "📅 {date}\n\n"
            "🏷 {tags}"
        ),
        # ── Errors ────────────────────────────────────────────────────
        "invalid_url": (
            "⚠️ الرابط الذي أرسلته غير صالح أو لا يمكن الوصول إليه.\n\n"
            "تأكد من أن الرابط:\n"
            "• يبدأ بـ https:// أو http://\n"
            "• مكتوب بشكل صحيح وكامل\n\n"
            "أرسل الرابط مرة أخرى أو اكتب /help للمساعدة."
        ),
        "unsupported_domain": (
            "⚠️ هذه المنصة غير مدعومة حالياً.\n\n"
            "المنصات المدعومة: تويتر/X، تيك توك، يوتيوب، إنستغرام، ريديت، وغيرها.\n\n"
            "يمكنني حفظ الرابط فقط مع العنوان والوصف إن وُجدا."
        ),
        "download_failed": (
            "❌ تعذّر تحميل الوسائط من هذا الرابط.\n\n"
            "قد يكون السبب:\n"
            "• المحتوى محمي أو يتطلب تسجيل دخول\n"
            "• الخادم غير متاح حالياً\n\n"
            "يمكنني حفظ الرابط فقط بدلاً من ذلك. هل تريد المتابعة؟"
        ),
        "btn_save_link_instead": "💾 حفظ الرابط فقط",
        "btn_retry": "🔄 إعادة المحاولة",
        "btn_dismiss": "❌ تجاهل",
        "duplicate_url": (
            "♻️ هذا الرابط محفوظ مسبقاً في مكتبتك.\n\n"
            "📅 تاريخ الحفظ الأول: {date}\n\n"
            "هل تريد عرض العنصر المحفوظ؟"
        ),
        "btn_view_saved": "📂 عرض المحفوظ",
        "processing_timeout": (
            "⌛ هذا يستغرق وقتاً أطول من المعتاد.\n\n"
            "نحن نعمل على ذلك في الخلفية. ستصلك إشعار عند الانتهاء."
        ),
        "job_failed": (
            "❌ حدث خطأ أثناء معالجة طلبك.\n\n"
            "يُرجى المحاولة مرة أخرى لاحقاً."
        ),
        "cancelled": "تم الإلغاء.",
        # ── Search ────────────────────────────────────────────────────
        "search_prompt": (
            "🔍 ما الذي تبحث عنه؟\n\n"
            "اكتب بحثك باللغة العربية الطبيعية.\n"
            "مثال: مقالات عن الذكاء الاصطناعي\n"
            "مثال: فيديوهات تصميم حفظتها الأسبوع الماضي"
        ),
        "search_results_header": "🔍 نتائج البحث عن: «{query}»\n\nوجدت {count} نتيجة:\n",
        "search_no_results": (
            "🔍 بحثت عن: «{query}»\n\n"
            "لم أجد أي نتائج مطابقة.\n\n"
            "💡 اقتراحات:\n"
            "• جرّب كلمات مختلفة أو أقل تحديداً\n"
            "• تحقق من الإملاء\n"
            "• ابحث بكلمات مفردة"
        ),
        "search_result_item": (
            "─────────────────\n"
            "{num}. 📌 {title}\n"
            "   🌐 {domain}\n"
            "   📅 {date}\n"
            "   📝 {snippet}...\n"
            "   🏷 {tags}"
        ),
        "btn_open": "🔗 فتح",
        "btn_details": "📋 التفاصيل",
        "btn_next": "التالي ▶",
        "btn_prev": "◀ السابق",
        "btn_new_search": "🔍 بحث جديد",
        # ── Recent ────────────────────────────────────────────────────
        "recent_header": "🕐 آخر {count} عناصر محفوظة:\n\n",
        "recent_empty": "لا توجد عناصر محفوظة بعد. أرسل أي رابط للبدء!",
        # ── Stats ─────────────────────────────────────────────────────
        "stats": (
            "📊 إحصائيات مكتبتك\n\n"
            "إجمالي العناصر: {total}\n"
            "─────────────────\n"
            "📹 فيديوهات: {videos}\n"
            "🔗 روابط: {links}\n\n"
            "هذا الأسبوع: {this_week} عنصر جديد\n"
            "الوسم الأكثر استخداماً: #{top_tag}"
        ),
        # ── Help ──────────────────────────────────────────────────────
        "help": (
            "📖 دليل الاستخدام\n\n"
            "━━━━━━━━━━━━━━━\n"
            "🔗 حفظ المحتوى\n"
            "أرسل أي رابط مباشرة وسأقوم بمعالجته تلقائياً.\n\n"
            "🔍 البحث\n"
            "/search ثم اكتب كلماتك للبحث في محتواك المحفوظ.\n\n"
            "🕐 الأخير\n"
            "/recent لاستعراض آخر العناصر المحفوظة.\n\n"
            "📊 الإحصائيات\n"
            "/stats لعرض إحصائيات مكتبتك.\n\n"
            "🌐 اللغة\n"
            "/lang للتبديل بين العربية والإنجليزية.\n\n"
            "━━━━━━━━━━━━━━━"
        ),
        "lang_switched_ar": "تم التبديل إلى العربية.",
        "lang_switched_en": "Switched to English.",
        # ── Generic ───────────────────────────────────────────────────
        "unknown_command": "⚠️ أمر غير معروف. اكتب /help للمساعدة.",
        "error_generic": "❌ حدث خطأ. يُرجى المحاولة مرة أخرى.",
    },

    "en": {
        "welcome": (
            "Welcome to My Media Bot 📥\n\n"
            "Your personal AI-powered media library.\n"
            "Save anything. Find everything.\n\n"
            "Send me any URL to get started, or type /help."
        ),
        "url_received": (
            "✅ URL received!\n\n"
            "🔗 {url}\n\n"
            "How would you like to save this?"
        ),
        "btn_link_only": "🔗 Link only",
        "btn_with_media": "📥 Download media",
        "btn_cancel": "❌ Cancel",
        "processing": (
            "⏳ Processing your URL...\n\n"
            "You'll be notified when it's done. This may take a few seconds."
        ),
        "processing_link": (
            "⏳ Analyzing link...\n\n"
            "You'll be notified when it's done."
        ),
        "save_complete": (
            "✅ Saved successfully!\n\n"
            "─────────────────────────\n"
            "📌 {title}\n"
            "🌐 {domain}\n"
            "📅 {date}\n\n"
            "📝 Summary:\n{summary}\n\n"
            "🏷 {tags}"
        ),
        "save_complete_no_summary": (
            "✅ Saved!\n\n"
            "📌 {title}\n"
            "🌐 {domain}\n"
            "📅 {date}\n\n"
            "🏷 {tags}"
        ),
        "invalid_url": (
            "⚠️ That doesn't look like a valid URL.\n\n"
            "Please send a complete link starting with https:// or http://\n\n"
            "Type /help for assistance."
        ),
        "unsupported_domain": (
            "⚠️ This platform isn't fully supported.\n\n"
            "Supported: Twitter/X, TikTok, YouTube, Instagram, Reddit, and more.\n\n"
            "I can still save the link with title and description if available."
        ),
        "download_failed": (
            "❌ Could not download media from this URL.\n\n"
            "Reason: Page may require login or be behind a paywall.\n\n"
            "Would you like to save the link only instead?"
        ),
        "btn_save_link_instead": "💾 Save link only",
        "btn_retry": "🔄 Try again",
        "btn_dismiss": "❌ Dismiss",
        "duplicate_url": (
            "♻️ You've already saved this!\n\n"
            "📅 Originally saved: {date}\n\n"
            "Would you like to view the saved item?"
        ),
        "btn_view_saved": "📂 View saved item",
        "processing_timeout": (
            "⌛ This is taking longer than expected.\n\n"
            "We're still working on it in the background. "
            "You'll get a notification when it's ready."
        ),
        "job_failed": "❌ Something went wrong processing your request.\n\nPlease try again later.",
        "cancelled": "Cancelled.",
        "search_prompt": (
            "🔍 What are you looking for?\n\n"
            "Type your search in plain language.\n"
            "Example: articles about machine learning\n"
            "Example: design tutorials from last week"
        ),
        "search_results_header": "🔍 Results for: \"{query}\"\n\nFound {count} items:\n",
        "search_no_results": (
            "🔍 Searched for: \"{query}\"\n\n"
            "No results found.\n\n"
            "💡 Try:\n"
            "• Broader terms\n"
            "• Check spelling\n"
            "• Single keywords instead of phrases"
        ),
        "search_result_item": (
            "─────────────────\n"
            "{num}. 📌 {title}\n"
            "   🌐 {domain}\n"
            "   📅 {date}\n"
            "   📝 {snippet}...\n"
            "   🏷 {tags}"
        ),
        "btn_open": "🔗 Open",
        "btn_details": "📋 Details",
        "btn_next": "Next ▶",
        "btn_prev": "◀ Prev",
        "btn_new_search": "🔍 New search",
        "recent_header": "🕐 Last {count} saved items:\n\n",
        "recent_empty": "Nothing saved yet. Send me any URL to start!",
        "stats": (
            "📊 Your Collection Stats\n\n"
            "Total items: {total}\n"
            "─────────────────\n"
            "📹 Videos: {videos}\n"
            "🔗 Links: {links}\n\n"
            "This week: {this_week} new\n"
            "Top tag: #{top_tag}"
        ),
        "help": (
            "📖 Help Guide\n\n"
            "━━━━━━━━━━━━━━━\n"
            "🔗 Save content\n"
            "Send any URL and I'll process it automatically.\n\n"
            "🔍 Search\n"
            "/search then type your query.\n\n"
            "🕐 Recent\n"
            "/recent to browse your latest saves.\n\n"
            "📊 Stats\n"
            "/stats to see your collection stats.\n\n"
            "🌐 Language\n"
            "/lang to toggle Arabic/English.\n\n"
            "━━━━━━━━━━━━━━━"
        ),
        "lang_switched_ar": "تم التبديل إلى العربية.",
        "lang_switched_en": "Switched to English.",
        "unknown_command": "⚠️ Unknown command. Type /help for assistance.",
        "error_generic": "❌ Something went wrong. Please try again.",
    },
}
