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": "ترافیک پوششی فعال است: قابهای ساختگی تصادفی (۳۲ تا ۱۲۸ بایت هر ۱۵ تا ۳۰ ثانیه) روی کانال رچت",
|
||||
"desktop.sec.coverOff": "مولد ترافیک پوششی در حال اجرا نیست",
|
||||
"desktop.sec.coverUnsupported": "ترافیک پوششی به نشست Double Ratchet نیاز دارد (طرف مقابل نسخهٔ قدیمیتری دارد)",
|
||||
"desktop.tagline": "آزادی سرتاسری"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user