i18n: strings the desktop client needed, and its screenshots
The dictionaries here are the single source both clients read: the desktop
copies src/i18n/generated.js byte for byte, so a key added on either side is
available to the other.
* desktop.* — sentences only the desktop says. It has no QR display and no
browser to grant permissions, so its copy differs where the browser's would
mislead: "allow the microphone in system settings", not "for this site".
* msg.after5s and the rest of the disappearing-message timers, which this
client renders from hardcoded English today and can now translate too.
* secLevel.HIGH / MEDIUM / LOW, which the security panel needed and the
dictionary only had MAXIMUM for.
All of it translated into the full thirteen. Nothing here changes what this site
renders — the web client does not reference the new keys yet.
assets/screenshots/desktop-*.png are captures of the desktop client at 1.0.0,
for its Flathub listing. A reviewer opens each URL, so they have to be served
from this domain rather than from a code host.
This commit is contained in:
+76
-1
@@ -806,6 +806,81 @@
|
||||
"groupCall.speaking": "{name} يتحدّث الآن",
|
||||
"groupCall.pin": "عرض {name} بحجم كبير",
|
||||
"groupCall.unpin": "العودة إلى الجميع",
|
||||
"groupCall.showEveryone": "الجميع"
|
||||
"groupCall.showEveryone": "الجميع",
|
||||
"msg.after5s": "٥ ثوانٍ بعد القراءة",
|
||||
"msg.after15s": "١٥ ثانية بعد القراءة",
|
||||
"msg.after30s": "٣٠ ثانية بعد القراءة",
|
||||
"msg.after1m": "دقيقة واحدة بعد القراءة",
|
||||
"msg.sec30": "٣٠ ثانية",
|
||||
"msg.min5": "٥ دقائق",
|
||||
"msg.hour1": "ساعة واحدة",
|
||||
"desktop.shareDesc": "أرسل الرمز إلى الطرف الآخر. يُستخدم مرة واحدة وينتهي سريعًا.",
|
||||
"desktop.invitationCreated": "أُنشئت الدعوة الآمنة - أرسلها إلى الطرف الآخر.",
|
||||
"desktop.joinDesc": "الصق رمز دعوة الطرف الآخر لبناء ردك الآمن.",
|
||||
"desktop.offerTag": "دعوة · نسخ النص",
|
||||
"desktop.answerTag": "رد · نسخ النص",
|
||||
"desktop.offerPlaceholder": "سيظهر رمز الدعوة هنا…",
|
||||
"desktop.answerPlaceholder": "سيظهر رمز الرد هنا…",
|
||||
"desktop.backToChats": "العودة إلى المحادثات",
|
||||
"desktop.sendFeedback": "إرسال ملاحظات",
|
||||
"desktop.callsNeedVerified": "تتطلب المكالمات قناة آمنة مُتحقَّقًا منها.",
|
||||
"desktop.noOpenChannel": "لا توجد قناة آمنة مفتوحة.",
|
||||
"desktop.chatCarriesCall": "تحمل هذه المحادثة مكالمة جماعية. غادر المكالمة الجماعية قبل إجراء مكالمة فردية.",
|
||||
"desktop.err.permission_denied": "تعذّر بدء المكالمة - الوصول إلى الميكروفون والكاميرا محظور. اسمح به في إعدادات النظام ثم أعد المحاولة.",
|
||||
"desktop.language": "اللغة",
|
||||
"desktop.languageHint": "يُطبَّق فورًا. الرسائل المُرسلة تبقى بالكلمات التي كُتبت بها.",
|
||||
"desktop.compareCode": "قارن رمز التحقق مع الطرف الآخر وأكِّده إذا تطابق.",
|
||||
"desktop.verifyBeforeFiles": "أكمل التحقق قبل إرسال الملفات.",
|
||||
"desktop.verifyBeforeSending": "أكمل التحقق قبل إرسال الرسائل.",
|
||||
"desktop.disconnectedByBackend": "أُغلق الاتصال بأمان.",
|
||||
"desktop.restoreFailed": "تعذّرت استعادة الاتصال. سيتم إغلاق هذه المحادثة.",
|
||||
"desktop.channelNotReady": "قناة البيانات غير متاحة بعد. انتظر حتى يُنشأ الاتصال.",
|
||||
"desktop.enterCode": "أدخل رمز التحقق للتأكيد.",
|
||||
"desktop.noOffer": "لم يُعثر على دعوة. أنشئ واحدة أولًا.",
|
||||
"desktop.notInitiator": "لم تُنشئ هذا الاتصال، فلا يوجد رد لتطبيقه.",
|
||||
"desktop.decryptFailed": "تعذّر فك تشفير رسالة، وقد أُهملت.",
|
||||
"desktop.badMessageFormat": "وصل إطار مُشوَّه وأُهمل.",
|
||||
"desktop.notSentNotReady": "لم تُرسل الرسالة: القناة الآمنة غير جاهزة. انتظر انتهاء التحقق أو أعد الاتصال.",
|
||||
"desktop.micDenied": "رُفض الوصول إلى الميكروفون.",
|
||||
"desktop.noChannelWait": "لا توجد قناة آمنة مفتوحة - انتظر حتى يُنشأ الاتصال.",
|
||||
"desktop.sasFailed": "فشل التحقق. قد يوجد وسيط، لذلك أُلغي الاتصال.",
|
||||
"desktop.sasOk": "نجح التحقق. هذه القناة موثَّقة من طرف إلى طرف.",
|
||||
"desktop.iceForgotten": "نُسيت الخوادم المحفوظة. تُستخدم خوادم ICE العامة.",
|
||||
"desktop.icePublic": "تُستخدم خوادم ICE العامة.",
|
||||
"desktop.verificationInProgress": "ما زال التحقق الأمني جاريًا. انتظر حتى ينتهي.",
|
||||
"desktop.fileGone": "لم يعد هذا الملف متاحًا للتنزيل.",
|
||||
"desktop.codeMismatch": "رموز التحقق غير متطابقة. يجري قطع الاتصال حفاظًا على الأمان.",
|
||||
"desktop.noLocalCode": "فشل التحقق: لا يوجد رمز مشتق محليًا للمقارنة. يجري قطع الاتصال حفاظًا على الأمان.",
|
||||
"desktop.protocolViolation": "ادّعى الطرف الآخر تأكيد الرمز قبل أن تؤكّده أنت. يجري قطع الاتصال حفاظًا على الأمان.",
|
||||
"desktop.verificationRejected": "رُفض التحقق. أُلغي الاتصال حفاظًا على الأمان.",
|
||||
"secLevel.HIGH": "عالٍ",
|
||||
"secLevel.MEDIUM": "متوسط",
|
||||
"secLevel.LOW": "منخفض",
|
||||
"desktop.rerun": "إعادة الفحص",
|
||||
"desktop.ice.customDesc": "حتى {max} خادمًا، رابط واحد لكل سطر أو بصيغة JSON.",
|
||||
"desktop.ice.persistDesc": "يُحفظ محليًا على هذا الجهاز. اتركه مطفأً لاستخدامه في هذه الجلسة فقط.",
|
||||
"desktop.group.leaveNote": "يُبلَّغ بقية الأعضاء بأنك غادرت. بعد ذلك لا يبقى شيء من هذه المجموعة على هذا الجهاز - لا يوجد خادم يحتفظ بنسخة للعودة منها، لذا ستحتاج إلى دعوة جديدة.",
|
||||
"desktop.sec.ecdsaOk": "تم التحقق من توقيع حزمة مفاتيح الطرف الآخر أثناء المصافحة (ECDSA P-384 / SHA-384)",
|
||||
"desktop.sec.ecdsaNone": "لا توجد مصافحة مكتملة",
|
||||
"desktop.sec.ecdhOk": "اشتُقّت مفاتيح الجلسة من تبادل ECDH P-384 عابر عبر HKDF-SHA-256",
|
||||
"desktop.sec.ecdhNone": "لم تُشتق مفاتيح جلسة",
|
||||
"desktop.sec.encryptionOk": "تم التحقق من التشفير وفك التشفير AES-GCM داخل النواة",
|
||||
"desktop.sec.encryptionNa": "تعذّر تشغيل الاختبار الذاتي لـ AES-GCM",
|
||||
"desktop.sec.integrityOk": "تم التحقق من سلامة الرسائل (توثيق AES-GCM)",
|
||||
"desktop.sec.integrityNa": "تعذّر تشغيل اختبار السلامة الذاتي",
|
||||
"desktop.sec.pfsOk": "Double Ratchet نشط - لكل رسالة مفتاحها الخاص",
|
||||
"desktop.sec.pfsNa": "لم يُقَس",
|
||||
"desktop.sec.replayOk": "تُتلَف مفاتيح رسائل الراتشيت فور استخدامها، فلا يمكن إعادة تشغيل إطار مُلتقَط",
|
||||
"desktop.sec.replayNa": "لم يُقَس",
|
||||
"desktop.sec.dtlsPinned": "تم تثبيت بصمة DTLS للطرف الآخر: {fp}",
|
||||
"desktop.sec.dtlsNone": "لا تتوفر بصمة DTLS للطرف البعيد",
|
||||
"desktop.sec.sasBoth": "أكّد الطرفان رمز الأمان خارج القناة",
|
||||
"desktop.sec.sasIncomplete": "لم يؤكّد الطرفان رمز الأمان",
|
||||
"desktop.sec.metadataOk": "اشتُقّ مفتاح مخصص للبيانات الوصفية (HKDF metadata-protection-v4)",
|
||||
"desktop.sec.metadataNone": "لا يوجد مفتاح للبيانات الوصفية",
|
||||
"desktop.sec.coverOn": "حركة التمويه نشطة: إطارات وهمية عشوائية (32-128 بايت كل 15-30 ثانية) على قناة الراتشيت",
|
||||
"desktop.sec.coverOff": "مولّد حركة التمويه لا يعمل",
|
||||
"desktop.sec.coverUnsupported": "تحتاج حركة التمويه إلى جلسة Double Ratchet (الطرف الآخر على إصدار أقدم)",
|
||||
"desktop.tagline": "حرية من طرف إلى طرف"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user