youtube-legend-cli 0.4.0

Non-interactive Rust CLI that downloads YouTube subtitles through third-party providers, using a native Unix stdin/stdout interface.
//! Arabic catalogue. Compiled only with the `i18n-rtl` feature.
//!
//! The strings are stored in logical order; bidirectional reordering is
//! the terminal's job, so no explicit direction marks are embedded.

use super::Message;

/// Render `msg` in Arabic.
pub(super) fn text(msg: Message) -> &'static str {
    match msg {
        Message::ErrInvalidUsage => "استخدام غير صالح",
        Message::ErrInvalidInput => "مدخل غير صالح",
        Message::ErrStdinEmpty => "الإدخال القياسي فارغ",
        Message::ErrInvalidUrl => "رابط غير صالح",
        Message::ErrNoSubtitle => "لا توجد ترجمة",
        Message::ErrProviderUnavailable => "المزودون غير متاحين",
        Message::ErrRateLimited => "حد الطلبات مفروض من المزود (HTTP 429)",
        Message::ErrTimeout => "انتهت المهلة",
        Message::ErrIo => "خطأ في الإدخال والإخراج",
        Message::ErrHttp => "خطأ HTTP",
        Message::ErrUrlParse => "خطأ في تحليل الرابط",
        Message::ErrSerde => "خطأ في التسلسل",
        Message::ErrCrypto => "خطأ في التشفير",
        Message::ErrSubtitleTooLarge => "الترجمة تتجاوز الحد",
        Message::ErrInternal => "خطأ داخلي",
        Message::ErrPlayerResponseMissing => "استجابة المشغل مفقودة",
        Message::ErrPlayerResponseTooLarge => "استجابة المشغل كبيرة جدًا",
        Message::ErrCaptionTrackNotFound => "لم يتم العثور على مسار الترجمة",
        Message::ErrCaptionsAsrOnly => "ترجمات مولدة تلقائيا فقط، ولا يمكن جلب أي منها",
        Message::ErrPlayabilityStatusDenied => "تم رفض التشغيل بسبب حالة الفيديو",
        Message::ErrLanguageParse => "خطأ في تحليل اللغة",
        Message::ErrSignatureDecipherFailed => "فشل فك تشفير التوقيع",
        Message::ErrTimedtextUpstream => "خطأ في خدمة timedtext",
        Message::ErrProviderProtocol => "خطأ في بروتوكول المزود",
        Message::ErrBrowserNotFound => "لم يتم العثور على Chromium/Chrome",
        Message::ErrConfig => "خطأ في الإعدادات",
        Message::ErrCaptchaChallengeFrom => "تحدي كابتشا من",
        Message::ErrCaptchaHumanRequired => "التفاعل البشري مطلوب",
        Message::UnitBytes => "بايت",
        Message::WordExceeds => "يتجاوز",
        Message::WordAvailable => "متاح",

        Message::ReasonPrivateOrAgeRestricted => {
            "الفيديو خاص أو مقيد بالعمر (HTTP 403)"
        }
        Message::ReasonNotFound => "لم يتم العثور على الفيديو (HTTP 404)",
        Message::ReasonGone => "أزال المؤلف الفيديو (HTTP 410)",
        Message::ReasonUnavailableForLegalReasons => {
            "الفيديو غير متاح لأسباب قانونية (HTTP 451)"
        }
        Message::ReasonNotPublished => "لا توجد ترجمات منشورة لهذا الفيديو",
        Message::ReasonLanguageUnavailable => "اللغة المطلوبة غير متاحة",

        Message::UsageBatchWithUrl => "لا يمكن دمج ‎--batch‎ مع رابط موضعي",
        Message::UsageNoUrl => {
            "لم يتم توفير رابط؛ مرر رابطًا موضعيًا أو استخدم أنبوبًا على الإدخال القياسي أو استخدم ‎--batch"
        }
        Message::UsageUrlTooLong => "الرابط يتجاوز 2048 حرفًا",
        Message::UsageQuietWithVerbose => "لا يمكن دمج ‎--quiet‎ مع ‎--verbose",
        Message::UsageTimeoutZero => "يجب أن تكون قيمة ‎--timeout‎ أكبر من صفر",
        Message::UsageCacheTtlZero => "يجب أن تكون قيمة ‎--cache-ttl‎ أكبر من صفر",
        Message::UsageDryRunWithBatch => "لا يمكن دمج ‎--dry-run‎ مع ‎--batch",

        Message::ConfigCouldNotRead => "تعذّرت قراءة ملف الإعدادات",
        Message::ConfigNotValidToml => "ليس TOML صالحًا",
        Message::ConfigUnknownKey => "الإعدادات: مفتاح غير معروف",
        Message::ConfigKeyPrefix => "الإعدادات: المفتاح",
        Message::ConfigWrongType => "من نوع خاطئ، المتوقع",
        Message::ConfigInvalidFormat => "الإعدادات: قيمة format غير صالحة (txt أو srt أو vtt)",
        Message::ConfigInvalidProvider => {
            "الإعدادات: قيمة provider غير صالحة (راجع --help للقيم المقبولة)"
        }
        Message::ConfigInvalidLogLevel => {
            "الإعدادات: قيمة log_level غير صالحة (error أو warn أو info أو debug أو trace)"
        }
        Message::ConfigInvalidLogFormat => {
            "الإعدادات: قيمة log_format غير صالحة (text أو json)"
        }
        Message::ConfigInvalidColor => {
            "الإعدادات: قيمة color غير صالحة (auto أو always أو never)"
        }
        Message::ConfigInvalidUiLang => "الإعدادات: قيمة ui_lang غير صالحة لهذا الإصدار",

        Message::LangInvalidTag => "ليست علامة لغة BCP 47 صالحة",
        Message::LangUnsupportedUi => "لغة الواجهة غير مضمّنة في هذا الإصدار",

        Message::ErrTracingInit => "فشل تهيئة التتبع",
        Message::ConfigDirUnavailable => "تعذّر تحديد دليل الإعدادات الخاص بالمنصة",
        Message::ConfigKeyNotSet => "غير مضبوط؛ ويُستخدم الافتراضي المُصرَّف",
        Message::ConfigKeyIsSecret => {
            "قيمة سرّية؛ استخدم --from-stdin، لأن argv مرئي في جدول العمليات لكل مستخدم على المضيف"
        }
        Message::ConfigSetNeedsValue => "يحتاج إلى قيمة، أو إلى --from-stdin",
        Message::ConfigKeySetNeedsYes => "مضبوط حاليًا؛ مرّر --yes العام قبل الأمر الفرعي `config` لإزالته",
        Message::ConfigUnknownKeyHint => "نفّذ `config list-keys` لعرض السجل",
        Message::ConfigExpectsInteger => "يتوقع عددًا صحيحًا",
        Message::ConfigExpectsBoolean => "يتوقع قيمة منطقية، لكنه تلقّى",
    }
}