From 27215f327852d73740ec328e9ed156723b8b3162 Mon Sep 17 00:00:00 2001 From: Julian Jelfs Date: Fri, 2 Aug 2024 11:18:30 +0100 Subject: [PATCH] add farsi / persian (#6183) --- frontend/app/generate.js | 1 + frontend/app/src/i18n/fa.json | 1539 ++++++++++++++++++++++++++++++++ frontend/app/src/i18n/fr.json | 2 +- frontend/app/src/i18n/i18n.ts | 6 + frontend/app/src/stores/rtl.ts | 5 +- 5 files changed, 1551 insertions(+), 2 deletions(-) create mode 100644 frontend/app/src/i18n/fa.json diff --git a/frontend/app/generate.js b/frontend/app/generate.js index 5b8ebc796e..b253e44e6c 100644 --- a/frontend/app/generate.js +++ b/frontend/app/generate.js @@ -147,6 +147,7 @@ const languages = [ { lang: "uk", code: "uk" }, { lang: "vi", code: "vi" }, { lang: "pl", code: "pl" }, + { lang: "fa", code: "fa" }, ]; languages.forEach(async ({ lang, code }) => { diff --git a/frontend/app/src/i18n/fa.json b/frontend/app/src/i18n/fa.json new file mode 100644 index 0000000000..bd74ac24fb --- /dev/null +++ b/frontend/app/src/i18n/fa.json @@ -0,0 +1,1539 @@ +{ + "aboutOpenChat": "درباره OpenChat", + "access": { + "addGate": "دروازه را اضافه کنید", + "addGateInfo": "چندین دروازه را می توان با هم در گروه هایی برای انعطاف پذیری بیشتر ترکیب کرد. می توانید از وصال ها بخواهید که همه یا هر یک از دروازه ها را در یک گروه ملاقات کنند.", + "amount": "مقدار (توکن)", + "amountN": "مقدار {n} توکن", + "and": "نیاز به تمام دروازه ها", + "approvePaymentTitle": "تایید پرداخت", + "bypassWarning": "⚠️ کاربرانی که صریحاً به این {level} دعوت شده اند، نیازی به عبور از گیت های دسترسی نخواهند داشت.", + "cannotMakePublic": "شما نمی توانید یک {level} خصوصی را عمومی کنید زیرا این امر حریم خصوصی اعضای موجود را به خطر می اندازد.", + "chooseGate": "نوع دروازه دسترسی", + "chooseNervousSystem": "سیستم عصبی را انتخاب کنید", + "chooseOneGate": "یک دروازه انتخاب کنید", + "chooseOneGateInfo": "برای عضویت باید یکی از شرایط زیر را داشته باشید. کدام را ترجیح می دهید انتخاب کنید.", + "chooseToken": "رمز را انتخاب کنید", + "compositeGate": "دروازه دسترسی ترکیبی", + "credential": { + "addArgument": "یک آرگومان اضافه کنید", + "argumentName": "نام", + "argumentNamePlaceholder": "نام آرگومان را وارد کنید", + "argumentValue": "ارزش", + "argumentValuePlaceholder": "یک مقدار آرگومان وارد کنید", + "credentialCheckFailed": "متأسفیم، ما نتوانستیم اعتبار \"{credential}\" را تأیید کنیم و بنابراین شما نمی توانید به این {level} بپیوندید.", + "credentialCheckMessage": "برای پیوستن به این {level} باید اعتبار \"{credential}\" را تأیید کنید", + "credentialGateInfo": "فقط کاربرانی که می توانند اعتبارنامه \"{credential}\" را ارائه کنند مجاز به پیوستن خواهند بود", + "credentialIssuer": "صادرکننده اعتبارنامه", + "credentialName": "نام اعتبار", + "credentialNamePlaceholder": "یک نام برای اعتبار وارد کنید", + "credentialParamCredential": "اعتبار: {credential}", + "credentialParamIssuer": "صادرکننده: {issuer}", + "credentialType": "نوع اعتبار", + "credentialTypePlaceholder": "یک نوع اعتبار وارد کنید", + "initiateCredentialCheck": "تأیید اعتبار", + "issuerCanisterId": "شناسه قوطی صادر کننده", + "issuerCanisterIdPlaceholder": "شناسه قوطی صادرکننده را وارد کنید", + "issuerOrigin": "مبدأ صادر کننده", + "issuerOriginPlaceholder": "مبدا صادر کننده را وارد کنید", + "label": "اعتبار تایید شده", + "requiredCredential": "اعتبار مورد نیاز" + }, + "diamondGateInfo": "فقط کاربران با عضویت Diamond مجاز به پیوستن خواهند بود", + "diamondGateInfo2": "برای پیوستن به این {level} باید عضویت Diamond داشته باشید.", + "diamondMember": "عضویت الماس", + "doYouHaveUniquePersonCredential": "مهم! لطفاً قبل از ادامه، تأیید کنید که شخصیت منحصر به فرد خود را از طریق وب سایت DecideAI تأیید کرده اید.", + "gate": "دروازه دسترسی", + "gateCheckFailed": "دروازه دسترسی برقرار نشد", + "gateInvalid": "دروازه دسترسی نامعتبر است", + "join": "پیوستن", + "lifetimeDiamondGateInfo": "فقط کاربران با عضویت مادام العمر الماس مجاز به پیوستن خواهند بود", + "lifetimeDiamondGateInfo2": "برای پیوستن به این {level} باید عضویت دایموند مادام العمر داشته باشید.", + "lifetimeDiamondMember": "عضویت مادام العمر الماس", + "lockedGate": "قفل شده است", + "lockedGateInfo": "این {level} قفل است و نمی توان به آن ملحق شد", + "messagesVisibleToNonMembers": "پیام ها می توانند توسط افراد غیرعضو پیش نمایش شوند", + "minDissolveDelay": "حداقل تاخیر انحلال (روز)", + "minDissolveDelayN": "حداقل تاخیر انحلال {n} روز", + "minimumBalance": "حداقل موجودی توکن", + "minimumBalanceInfo": "کاربران تنها در صورتی می توانند عضو شوند که دارای حداقل موجودی توکن باشند", + "minimumBalanceInfo2": "کاربران تنها در صورتی می توانند به آن بپیوندند که حداقل نشانه {n} {token} در کیف پول خود داشته باشند", + "minimumBalanceN": "حداقل موجودی توکن {n}", + "minimumTokenBalance": "حداقل موجودی {token}", + "minStake": "حداقل سهم (توکن ها)", + "minStakeN": "حداقل سهم {n} توکن", + "neuronHolder": "نگهدارنده نورون", + "neuronHolderInfo": "فقط دارندگان نورون های {token} مجاز به پیوستن خواهند بود", + "next": "بعد", + "nftHolder": "دارنده NFT (به زودی)", + "openAccess": "هیچ (دسترسی باز)", + "openAccessInfo": "هیچ شرایط دسترسی خاصی برای پیوستن وجود ندارد", + "optional": "اختیاری", + "or": "نیاز به هر دروازه", + "payAndJoin": "پرداخت کنید و عضو شوید", + "payment": "پرداخت", + "paymentApprovalMessage": "برای پیوستن به این {level} باید توکن های **{amount}** {token} را پرداخت کنید.", + "paymentDistributionMessage": "از این میزان، 98٪ به مالک(های) {level} و 2٪ به خزانه OpenChat SNS تعلق می گیرد.", + "paymentFailed": "پرداخت ناموفق", + "predefinedCredentialIssuer": "صادرکننده اعتبار از پیش تعریف شده", + "private": "خصوصی", + "public": "عمومی", + "readonlyTitle": "دروازه دسترسی", + "subscriptionComingSoon": "مدل اشتراک به زودی.", + "title": "به روز رسانی دروازه دسترسی", + "tokenBalance": "موجودی رمز", + "tokenComingSoon": "{token} (به زودی)", + "tokenNeuronHolder": "نگهدارنده نورون {token}", + "tokenPayment": "پرداخت {token}", + "tokenPaymentInfo": "کاربران تنها در صورتی می توانند بپیوندند که مبلغی را به صورت {token} بپردازند.", + "uniquePerson": "شخص منحصر به فرد", + "uniquePersonInfo": "فقط کاربرانی که مدرک شخصی منحصر به فرد ارائه کرده اند مجاز به پیوستن خواهند بود", + "uniquePersonInfo1": "اگر اعتبار قابل تایید را نداشته باشم چه می شود؟", + "uniquePersonInfo2": "اگر این کار را انجام نداده اید، به سادگی به DecideAI بروید، با استفاده از همان هویت اینترنتی که قبلاً به آن دسترسی داشتید وارد شوید. باز چت کنید و دستورالعمل ها را دنبال کنید تا شخصیت منحصر به فرد خود را ثابت کنید.", + "uniquePersonInfo3": "انجام آن ساده است، فقط چند دقیقه طول می کشد و فقط یک بار باید انجام شود. پس از تکمیل فرآیند، به اینجا برگردید و \"تأیید\" را بزنید.", + "verify": "تأیید کنید", + "visibility": "دسترسی داشته باشید" + }, + "account": "حساب", + "accounts": "حساب ها", + "accountSuspended": "حساب معلق شده است", + "addedBy": "{changedBy} {changed} را به {level} اضافه کرد", + "admin": "مدیر", + "advanced": "پیشرفته", + "alsoCanisterId": "همچنین شناسه قوطی شما", + "andNMore": "و {n} موارد دیگر", + "appearance": "ظاهر", + "apply": "درخواست دادن", + "architecture": "معماری", + "archiveChat": "آرشیو چت", + "archiveChatFailed": "گپ بایگانی نشد", + "areYouSure": "مطمئنی؟", + "attachFile": "تصویر/فیلم/فایل را پیوست کنید", + "avatarTooBig": "آواتار انتخاب شده خیلی بزرگ است", + "avatarUpdated": "آواتار با موفقیت به روز شد", + "avatarUpdateFailed": "به‌روزرسانی آواتار انجام نشد", + "backToResults": "بازگشت", + "bio": "بیوگرافی کاربر", + "blocked": "مسدود", + "blockedBy": "{changedBy} مسدود شد {changed}", + "blockUser": "مسدود کردن کاربر", + "blockUserFailed": "مسدود کردن کاربر ممکن نیست", + "blockUserSucceeded": "کاربر مسدود شده است", + "cancel": "لغو کنید", + "challenge": { + "alreadyRegistered": "لطفاً ببندید و بعداً دوباره امتحان کنید", + "failed": "چالش شکست خورد. لطفا دوباره تلاش کنید.", + "prompt": "کاراکترهایی را که می بینید تایپ کنید", + "throttled": "سرویس مشغول است - لطفاً ببندید و بعداً دوباره امتحان کنید", + "title": "ثابت کن که ربات نیستی" + }, + "change": "تغییر دادن", + "changeTheme": "تغییر زمینه", + "channelAlreadyExists": "کانالی با آن نام از قبل وجود دارد", + "chatFrozen": "این چت مسدود شده است", + "chatFrozenBy": "گپ ثابت شده توسط {frozenBy}", + "chatMenu": "منوی چت", + "chatNotFound": "متأسفیم - نتوانستیم گپ انتخابی را پیدا کنیم", + "chats": "چت ها", + "chatSummary": { + "mentions": "{count} ذکر(های) خوانده نشده", + "unread": "{count} پیام(های) خوانده نشده" + }, + "chatUnfrozenBy": "گپ مسدود شده توسط {unfrozenBy}", + "chatWith": "چت با {username}", + "checkBackLater": "لطفاً بعداً دوباره امتحان کنید. ", + "chitBalance": "تعادل CHIT", + "chooseAStorageLevel": "سطح فضای ذخیره سازی حداکثر تا 1 گیگابایت را انتخاب کنید", + "chooseMembers": "اعضا را انتخاب کنید", + "chooseReaction": "یک واکنش را انتخاب کنید", + "chooseTransfer": "می توانید تا 1 گیگابایت فضای ذخیره سازی را از طریق انتقال ICP پرداخت کنید.", + "chooseUpgrade": "می‌توانید با دریافت کد تأیید پیامکی 100 مگابایت فضای ذخیره‌سازی رایگان ادعا کنید، یا می‌توانید تا 1 گیگابایت فضای ذخیره‌سازی را از طریق انتقال ICP پرداخت کنید.", + "close": "بستن", + "collapse": "سقوط - فروپاشی", + "communities": { + "addToFavourites": "اضافه کردن به علاقه مندی ها", + "adult": "بالغ", + "autoExpand": "گسترش خودکار منوی انجمن ها", + "back": "بازگشت", + "browseChannels": "کانال ها را مرور کنید", + "channelCount": "کانال(ها)", + "channelPlaceholder": "نام کانال را وارد کنید", + "channels": "کانال ها", + "channelsInfo": "شما باید یک یا چند کانال عمومی ایجاد کنید. هر کاربری که به انجمن شما بپیوندد به طور خودکار در این کانال ها ثبت نام می شود. همیشه می توانید بعداً این را تغییر دهید.", + "chooseCommunity": "جامعه ای را انتخاب کنید", + "communityLabel": "انجمن", + "confirmDeleteUserGroup": "آیا مطمئن هستید که می خواهید این گروه کاربری را حذف کنید؟", + "convert": "تبدیل به انجمن", + "convertButton": "تبدیل", + "converted": "گروه شما به یک انجمن تبدیل شده است.", + "convertInfo": "ما می توانیم از تبدیل گروه شما به انجمن مراقبت کنیم.\n\n این یک فرآیند غیرقابل برگشت است و موارد زیر را انجام می دهد:\n\n* گروه موجود را مسدود کنید\n* یک انجمن جدید با همان نام گروه ایجاد کنید\n* یک کانال عمومی به انجمن با همان نام گروه اضافه کنید\n* همه اعضای گروه را به عنوان اعضای انجمن اضافه کنید\n* تاریخچه کامل پیام را از گروه در کانال کپی کنید\n* گروه موجود را حذف کنید\n* به همه اعضای گروه اطلاع دهید که به انجمن تبدیل شده است\n\nاین فرآیند بسته به اندازه گروه ممکن است چند دقیقه طول بکشد، لطفا صبور باشید.", + "create": "یک جامعه ایجاد کنید", + "createChannel": "کانال جدید", + "created": "انجمن شما با موفقیت ایجاد شد", + "default": "پیش فرض", + "defaultInfo": "کاربرانی که به این انجمن می پیوندند به طور خودکار به همه کانال های عمومی اضافه می شوند", + "delete": "حذف انجمن", + "deleteMessage": "آیا واقعاً می خواهید این انجمن را حذف کنید؟", + "description": "شرح", + "descriptionPlaceholder": "به ما بگویید جامعه شما چیست؟", + "details": "جزئیات", + "directChats": "چت های مستقیم", + "edit": "انجمن را ویرایش کنید", + "enterUserGroupName": "نام گروه کاربری را وارد کنید", + "errors": { + "convertFailed": "متأسفیم، اما نتوانستیم گروه های شما را به انجمن تبدیل کنیم", + "createGroupFailed": "متأسفانه نتوانستیم گروه کاربری را ایجاد کنیم", + "deleteFailed": "متأسفیم که نتوانستیم این انجمن را حذف کنیم", + "deleteUserGroupFailed": "متأسفانه نتوانستیم گروه کاربری را حذف کنیم", + "failure": "متأسفیم که نتوانستیم انجمن شما را ایجاد کنیم", + "importFailed": "متأسفیم که نتوانستیم گروه شما را وارد کنیم", + "inviteUsers": "متأسفیم که نتوانستیم این کاربران را دعوت کنیم", + "joinFailed": "متأسفیم که نتوانستیم شما را به این انجمن ملحق کنیم", + "leaveFailed": "متأسفیم نتوانستیم شما را از این انجمن حذف کنیم", + "name_taken": "متأسفیم - در حال حاضر یک انجمن یا گروه عمومی با این نام وجود دارد", + "saveFailed": "متأسفیم که نتوانستیم به‌روزرسانی‌های شما را ذخیره کنیم", + "updateGroupFailed": "متأسفانه نتوانستیم گروه کاربری را به روز کنیم", + "userGroupNameTaken": "متأسفیم که نام گروه کاربری قبلاً گرفته شده است" + }, + "explore": "جوامع را کاوش کنید", + "exploreMobile": "کاوش کنید", + "favourites": "موارد دلخواه", + "filters": "فیلترهای انجمن", + "flags": "پرچم ها", + "general": "عمومی", + "goto": "به انجمن بروید", + "groupChats": "چت های گروهی", + "hideLeftNav": "منوی انجمن‌ها را جمع کنید", + "imageLabel": "تصویر بنر/آواتار", + "import": "واردات به جامعه", + "importBtn": "وارد كردن", + "invite": "دعوت", + "join": "پیوستن", + "joinCommunity": "به انجمن بپیوندید", + "leave": "جامعه را ترک کنید", + "leaveMessage": "آیا واقعاً می خواهید این انجمن را ترک کنید؟", + "loadMore": "بارگذاری بیشتر...", + "mainMenu": "منوی اصلی", + "memberCount": "اعضا)", + "members": "اعضا", + "mustHaveOneChannel": "شما باید حداقل یک کانال عمومی ایجاد کنید", + "mustHaveUniqueChannels": "شما نمی توانید نام کانال های تکراری داشته باشید", + "muteAllChannels": "تمام کانال ها را بی صدا کنید", + "name": "نام", + "namedUserGroupMembers": "**{name}** اعضای گروه", + "namePlaceholder": "نام انجمن را وارد کنید", + "next": "بعد", + "noBlankChannels": "همه کانال ها باید یک نام داشته باشند", + "noInvalidChannels": "همه نام‌های کانال باید بین نویسه‌های {min} و {max} باشند", + "noMatch": "هیچ انجمن منطبقی پیدا نشد", + "noOwned": "شما مالک هیچ انجمنی نیستید", + "noSpaces": "هیچ فضایی مجاز نیست", + "noUserGroups": "هیچ گروه کاربری پیدا نشد", + "offensive": "توهین آمیز", + "otherChannels": "سایر کانال های عمومی", + "pleaseWait": "لطفا صبر کنید - ممکن است کمی طول بکشد", + "preview": "پیش نمایش", + "primaryLanguage": "زبان اولیه", + "publicChannels": "کانال های عمومی", + "refineSearch": "سعی کنید جستجوی خود را اصلاح کنید", + "removeFromFavourites": "حذف از موارد دلخواه", + "rules": "قوانین", + "saveChanges": "ذخیره تغییرات", + "saved": "انجمن شما با موفقیت به روز شد", + "search": "جستجو در جوامع", + "searchGroups": "کانال های انجمن را جستجو کنید", + "searchUserGroups": "جستجو در گروه های کاربری...", + "tags": { + "all": "همه", + "crypto": "رمزنگاری", + "gaming": "بازی کردن", + "metaverse": "متاورس", + "music": "موسیقی", + "photography": "عکاسی", + "sport": "ورزش" + }, + "underReview": "در دست بررسی", + "updateChannelPlaceholder": "نام کانال را به روز کنید", + "userGroupMembers": "اعضای گروه کاربری", + "userGroupName": "نام گروه کاربری", + "userGroups": "گروه های کاربری", + "usersInvited": "کاربران به انجمن شما دعوت شده اند", + "visibility": "دید" + }, + "communityDisplayNameRules": "فقط در جامعه انتخاب شده", + "communityMembers": "اعضای جامعه", + "communityTheme": "موضوع انجمن", + "confirmLeaveGroup": "آیا واقعاً می خواهید این {level} را ترک کنید؟", + "confirmMakeGroupPrivate": "آیا قطعاً می خواهید این {level} را خصوصی کنید؟", + "confirmMakeGroupPublic": "آیا قطعاً می خواهید این {level} را عمومی کنید؟\n\nپیام‌های موجود خصوصی خواهند ماند، همه پیام‌های جدید عمومی خواهند بود.", + "confirmMembers": "اعضا را تایید کنید", + "congratulations": "تبریک می گویم!", + "copiedToClipboard": "آدرس حساب در کلیپ بورد کپی شد!", + "copy": "کپی 🀄", + "copyGroupUrl": "آدرس گروه را کپی کنید", + "copyInviteCode": "کد دعوت را کپی کنید", + "copyMessageUrl": "آدرس پیام را کپی کنید", + "copyToClipboard": "کپی به کلیپ بورد", + "createNewGroup": "یک گروه جدید ایجاد کنید", + "cryptoAccount": { + "comingSoon": "(به زودی)", + "hideZeroBalance": "کمتر نشان دهد", + "loadMoreTransactions": "بارگذاری بیشتر", + "manage": "مدیریت کنید", + "manageHeader": "حساب {symbol} را مدیریت کنید", + "receive": "دريافت كردن", + "receiveToken": "دریافت {symbol}", + "scan": "کد QR را اسکن کنید", + "send": "ارسال", + "sendFailed": "{symbol} ارسال نشد", + "sendSucceeded": "{symbol} شما با موفقیت ارسال شد!", + "sendTarget": "آدرسی را برای ارسال وارد کنید", + "sendToken": "ارسال {symbol}", + "shortBalanceLabel": "تعادل", + "shortRemainingBalanceLabel": "موجودی باقی مانده", + "showZeroBalance": "بیشتر نشان بده، اطلاعات بیشتر", + "swap": "تعویض کنید", + "token": "رمز", + "tokens": "توکن ها", + "topUp": "شارژ کنید", + "topUpBlurb": "برای تکمیل، کافی است مقداری {token} را به حساب بالا منتقل کنید.", + "total": "جمع", + "transactionError": "متأسفیم که نتوانستیم تراکنش های شما را بارگیری کنیم", + "transactionHeaders": { + "amount": "میزان", + "from": "از جانب", + "id": "شناسه", + "timestamp": "مهر زمان", + "to": "به", + "type": "تایپ کنید" + }, + "transactions": "معاملات", + "unknownTransactionType": "ناشناخته" + }, + "currentChitBalance": "موجودی فعلی CHIT", + "currentLimit": "محدودیت فضای ذخیره فعلی شما {limit} گیگابایت و موجودی حساب شما {balance} ICP است.", + "currentUsage": "استفاده فعلی از فضای ذخیره سازی", + "dailyChit": { + "alreadyClaimed": "فردا برگرد تا خط خود را تمدید کنی!", + "available": "CHIT خود را ادعا کنید و خط خود را گسترش دهید!", + "claim": "ادعای CHIT!", + "comeback": "به {time} برگرد", + "extendStreak": "گسترش خط", + "info": "هرچه مدت طولانی تری رگ خود را حفظ کنید، CHIT روزانه بیشتری می توانید ادعا کنید!", + "title": "خط خود را حفظ کنید", + "viewStreak": "مشاهده رگه" + }, + "dark": "تاریک", + "days": "روزها", + "defaultMustBePublic": "فقط یک کانال عمومی می تواند پیش فرض باشد", + "deleteFailed": "امکان حذف پیام شما وجود ندارد", + "deleteGroup": "حذف {level}", + "deleteGroupFailure": "امکان حذف {level} وجود ندارد", + "deleteGroupSuccess": "{level} با موفقیت حذف شد", + "deleteMessage": "حذف", + "deleteMessageAndReport": "حذف و گزارش دهید", + "deleteMessageForMe": "برای من حذف کن", + "demoteFailed": "تنزل به {role} ممکن نیست", + "demoteTo": "تنزل به {role}", + "directChatCreatedAt": "چت شروع شد", + "disableNotificationsMenu": "غیر فعال کردن اعلانها", + "disappearingMessages": { + "disabled": "پیام‌های ناپدید شدن غیرفعال شد", + "disabledBy": "{changedBy} پیام‌های ناپدید شدن را غیرفعال کرد", + "durationMinutes": "{duration} دقیقه", + "label": "پیام های ناپدید شدن", + "oneMinute": "1 دقیقه", + "summary": "پیام‌ها بعد از {duration} ناپدید می‌شوند", + "timeUpdated": "زمان ناپدید شدن پیام روی {duration} تنظیم شد", + "timeUpdatedBy": "{changedBy} زمان ناپدید شدن پیام را روی {duration} تنظیم کرد" + }, + "discard": "دور انداختن", + "discoverMoreGroups": "گروه های بیشتری را کشف کنید", + "displayName": "نام نمایشی", + "displayNameRules": "اختیاری", + "displayWidth": "عرض نمایش", + "doubleClickReply": "برای پاسخ دادن/ویرایش روی پیام دوبار کلیک کنید", + "doubleTapReply": "برای پاسخ دادن/ویرایش روی پیام دو ضربه سریع بزنید", + "downloadFile": "دانلود {name}", + "dropFile": "یک فایل را اینجا رها کنید", + "durationDays": "{duration} روز", + "durationHours": "{duration} ساعت", + "durationMins": "{duration} دقیقه", + "edited": "ویرایش شده", + "editMessage": "ویرایش کنید", + "enableNotifications": "آیا می خواهید اعلان ها را فعال کنید؟", + "enableNotificationsMenu": "اعلان ها را فعال کنید", + "enjoyYourStorage": "اکنون می توانید از ارسال تصاویر و فیلم ها لذت ببرید!", + "enterBio": "در مورد خودت چیزی به ما بگو", + "enterCaption": "یک عنوان را وارد کنید", + "enterInviteCode": "کد دعوت خود را وارد کنید", + "enterMessage": "یک پیام وارد کنید...", + "enterToSend": "کلید را وارد کنید پیام ارسال می کند", + "errorBlurb": "متأسفیم، با یک خطای غیرمنتظره مواجه شدیم. لطفاً OpenChat را دوباره بارگیری کنید.", + "errorEditingMessage": "یک خطای غیرمنتظره در ویرایش پیام شما روی داد", + "errorLoadingChats": "امکان بارگیری چت های شما وجود ندارد", + "errorSearchingForUser": "هنگام جستجوی کاربران یک خطای غیرمنتظره رخ داد", + "errorSendingMessage": "یک خطای غیرمنتظره هنگام ارسال پیام شما روی داد", + "excessiveLinksNote": "پیش نمایش پیوند برای پیام هایی با بیش از 5 پیوند پنهان می شود.", + "expand": "بسط دادن", + "expandDeletedMessages": "پیام های حذف شده را در این گپ بزرگ کنید", + "exploreGroups": "گروه ها را کاوش کنید", + "failedToCopyLinkToClipboard": "پیوند در کلیپ بورد کپی نشد", + "failedToCopyToClipboard": "امکان کپی در کلیپ بورد وجود ندارد. {account}", + "failedToCopyUrlToClipboard": "کپی URL ({url}) در کلیپ بورد امکان پذیر نیست", + "failedToFreezeGroup": "ثابت کردن گروه ناموفق بود", + "failedToLeaveGroup": "هنگام حذف شما از {level} خطایی روی داد", + "failedToShareLink": "پیوند به اشتراک گذاشته نشد", + "failedToShareMessage": "امکان اشتراک گذاری این پیام وجود ندارد", + "failedToSuspendUser": "تعلیق کاربر ناموفق بود", + "failedToUnfreezeGroup": "لغو انجماد گروه انجام نشد", + "failedToUnsuspendUser": "لغو تعلیق کاربر انجام نشد", + "faq": { + "airdrop_a": "در ماه آوریل یک میلیون توکن چت به کاربران واجد شرایط Diamond ارسال شد. برای جزئیات به این پیشنهاد حرکت مراجعه کنید.

در اواخر سال جاری، تیم توسعه دهنده OpenChat پیشنهادی برای اجرای یک طرح پاداش کاربر کاربران الماس قادر خواهند بود توکن های چت را بر اساس امتیاز شهرت خود در OpenChat کسب کنند. نحوه محاسبه شهرت دقیقاً مشخص نشده است، اما تلاش زیادی برای اطمینان از جریمه شدن هرزنامه‌نویسان انجام خواهد شد. ما می‌خواهیم چت واقعی را تشویق کنیم و فرصتی برای ربات‌ها یا کاربران بی‌وجدان فراهم نکنیم تا توکن‌ها را «مزرعه کنند».", + "airdrop_q": "آیا ایردراپ انجام خواهد شد؟", + "android_app_a": "در مورد iOS (به بالا مراجعه کنید)، برنامه وب OpenChat در حال حاضر روی Android کار می‌کند و می‌توانید از منوی مرورگر «افزودن به صفحه اصلی» را انجام دهید. این به شما یک نماد استاندارد برای باز کردن برنامه می‌دهد که بیشتر شبیه یک برنامه بومی بدون نوار URL است. پشتیبانی از اپلیکیشن وب پیشرو (PWA) در اندروید بسیار خوب است. مانند iOS از اعلان‌های فشار وب پشتیبانی می‌کند، اما از خواندن مخاطبین از طریق تلفن نیز پشتیبانی می‌کند (اگر در هر مورد اجازه بدهید). فراتر از آن، پشتیبانی از WebRTC بسیار بهتر است. به این ترتیب، تولید یک برنامه اندروید بومی کمتر قانع کننده است و پس از یک برنامه بومی iOS خواهد آمد. همین ملاحظات در مورد ساختن یک برنامه اندروید به عنوان یک iOS از نظر هدف قرار دادن یک پوشش بومی نازک در اطراف یک برنامه وب اصلی و با توجه به صدور گواهینامه در فروشگاه Play Android اعمال می شود.", + "android_app_q": "چه زمانی یک برنامه اندروید وجود خواهد داشت؟", + "buychat_a": "می‌توانید چت با USDC را در Helix Markets خریداری کنید. در غیر این صورت، ابتدا باید خرید ICP که سپس می توانید آن را با CHAT تعویض کنید. در صرافی های غیرمتمرکز مختلف (DEX).DFINITY در حال اضافه کردن پشتیبانی برای Rosetta API برای توکن‌های ICRC1 (که شامل CHAT می‌شود) را بسیار آسان‌تر می‌کند. ادغام با صرافی های متمرکز (CEX). هنگامی که این اتفاق افتاد، احتمالا CHAT برای معامله در CEX برای ICP یا USDT در دسترس خواهد بود.", + "buychat_q": "چگونه توکن های چت بخرم؟", + "content_a": "برای جزئیات کامل محتوا و دستورالعمل‌های نظارت اینجا را ببینید.", + "content_q": "چه نوع محتوایی مجاز است؟", + "diamond_a": "برای دسترسی به ویژگی های اضافی یا پیشرفته در OpenChat می توانید به عضویت Diamond ارتقا دهید. برای مقایسه ویژگی ها و ارتقاء اینجا را ببینید.", + "diamond_q": "عضویت الماس چیست؟", + "header": "سوالات متداول", + "info_a": "به صفحه اصلی ما بروید و پیوندهایی را به ویژگی‌های، نقشه راه OpenChat بیابید. a>، سفید کاغذ، معماری و وبلاگ", + "info_q": "از کجا می توانم درباره OpenChat اطلاعات بیشتری کسب کنم؟", + "ios_app_a": "شایان ذکر است که برنامه وب OpenChat در حال حاضر روی iOS کار می‌کند و می‌توانید از منوی مرورگر «افزودن به صفحه اصلی» را انجام دهید. این به شما یک نماد استاندارد برای باز کردن برنامه می‌دهد که بیشتر شبیه یک برنامه بومی بدون نوار URL است. همچنین اخیراً اپل پشتیبانی از اعلان‌های فشار وب را اضافه کرده است که در صورت آفلاین بودن یا عدم استفاده از برنامه برای یک برنامه پیام‌رسان بسیار مهم است. به طور کلی پشتیبانی اپل از به اصطلاح برنامه های وب پیشرو (PWA) از اندروید عقب است زیرا PWA ها تسلط اپ استور را تهدید می کنند. فاقد پشتیبانی (در مقایسه با PWA های اندروید) برای خواندن مخاطبین تلفن است و پیاده سازی WebRTC باگ است (برای تماس های صوتی/تصویری نظیر به همتا مورد نیاز است). به دلیل این محدودیت ها، تولید یک برنامه بومی iOS در دستور کار ما قرار دارد. اگرچه در ظاهر OpenChat \"فقط یک برنامه چت\" است، اما در واقع با یک پایه کد قابل توجه بسیار پیچیده است. یک راه‌حل ایده‌آل برای ما، قرار دادن برنامه وب OpenChat در یک برنامه بومی نازک است که با APIهای تلفن بومی ارتباط برقرار می‌کند، به گونه‌ای که بخش بزرگی از پایه کد بدون به خطر انداختن تجربه برنامه بومی رایج باقی بماند. ما در حال تحقیق در این زمینه هستیم اما هنوز مشخص نیست که آیا این امکان پذیر است یا چقدر دشوار خواهد بود. یکی دیگر از موانع احتمالی، فرآیند صدور گواهینامه اپ استور است. با داشتن برنامه اصلی به عنوان یک برنامه وب، می‌توانیم تغییراتی را در یک برنامه OpenChat iOS بدون گذراندن فرآیند تأیید که ممکن است قابل قبول نباشد، ایجاد کنیم. با این حال، اگر این مشکلات می‌توانند حل شوند، ممکن است یک برنامه iOS ظرف چند ماه آماده شود. در غیر این صورت، اگر نیاز به بازنویسی (و سپس حفظ) یک OpenChat بومی iOS از ابتدا داشته باشیم، این کار به میزان قابل توجهی بیشتر طول خواهد کشید...", + "ios_app_q": "چه زمانی یک برنامه iOS وجود خواهد داشت؟", + "menu": "سوالات متداول", + "referral_rewards_a": "به‌عنوان یک عضو Diamond، می‌توانید برای هر کاربری که معرفی می‌کنید و خود عضو Diamond می‌شوند، جوایزی کسب کنید. شما نیمی از پرداخت های Diamond را در اولین سال پس از پیوستن به OpenChat دریافت خواهید کرد. می‌توانید پیوند ارجاع خود را در بخش «دعوت از دوستان/خانواده» در «تنظیمات نمایه» خود از منوی اصلی پیدا کنید.

چگونه می‌توانید این کار را انجام دهید؟ راه های زیادی وجود دارد. می‌توانید به دوستان و خانواده خود بگویید، درباره OpenChat توییت کنید، ویدیویی درباره OpenChat ایجاد کنید و آنچه را که در مورد آن دوست دارید را توصیف کنید و آن را در TikTok یا YouTube به اشتراک بگذارید. می‌توانید در توییچ استریم کنید یا یک پست وبلاگ بنویسید یا یک پادکست ایجاد کنید یا یک فضای توییتر میزبانی کنید یا حتی یک ملاقات واقعی داشته باشید. ما مشتاقانه منتظر دیدن همه ایده‌های خلاقانه‌ای هستیم که شما برای اطلاع رسانی به آن می‌دهید!

در آینده برای همه کاربرانی که به آنها ارجاع می‌دهید، صرف نظر از اینکه عضو Diamond شوند، پاداش‌های ارجاعی را باز خواهیم کرد. با این حال، از آنجا که این به راحتی قابل بهره برداری است، ابتدا باید نوعی \"اثبات شخصیت منحصر به فرد\" را معرفی کنیم.", + "referral_rewards_q": "جوایز ارجاع چیست؟", + "security_a": "به طور خلاصه، رایانه اینترنتی تضمین های امنیتی بسیار قوی را ارائه می دهد. با این حال، یک نقطه ضعف شناخته شده خاص وجود دارد که Dfinity در حال مقابله با آن است. با کمی تلاش، یک ارائه‌دهنده نود سرکش می‌تواند یک نسخه هک شده از نرم‌افزار گره را نصب کند که به آن‌ها اجازه می‌دهد پیام‌های ورودی را رهگیری و بخوانند و مستقیماً حافظه را بخوانند. با این حال، یک بار SEV-SNP در دستگاه‌های گره موجود است، کاربران می‌توانند بسیار مطمئن باشند که به غیر از گیرندگان پیام‌هایشان، داده‌های آنها برای کسی جز خودشان قابل دسترسی نخواهد بود. در تاریخ بعدی ما رمزگذاری e2e را پیاده‌سازی خواهیم کرد تا داده‌ها در واقع به شکل رمزگذاری‌شده در حافظه قوطی ذخیره شوند و در نتیجه توسط اپراتورهای نود سرکش بدون در نظر گرفتن SEV-SNP قابل دسترسی نباشند. این احتمالاً شامل محدودیت‌هایی مانند عدم امکان جستجو در تاریخچه پیام شما خواهد بود، بنابراین می‌توانید انتخاب کنید که امنیت e2e را برای چت‌های انتخابی انتخاب کنید.", + "security_q": "آیا پیام های من امن هستند؟", + "send_tokens_a": "هنگام ارسال نشانه ها به عنوان پیام چت، انتقال توسط دفتر کل برای توکن داده شده انجام می شود که مستلزم هزینه اجباری است. این هزینه سوزانده شده است و مقدار عرضه توکن را کاهش می دهد. کارمزد توکن های مختلفی که پشتیبانی می کنیم به شرح زیر است:
  • CHAT 0.001
  • ICP 0.0001
  • ckBTC 0.0000001
  • SNS1 0.00001
  • ", + "send_tokens_q": "چرا هنگام ارسال توکن ها از من کارمزد تراکنش دریافت می شود؟", + "shortcuts_a": "چندین دستور میانبر وجود دارد که می توانید از کادر ورودی پیام استفاده کنید.

    `/poll` - برای ایجاد یک نظرسنجی جدید
    `/search xyz` - برای جستجوی چت فعلی برای عبارت \"xyz\"
    `/gif kittens` - به جستجوی گیف های بچه گربه
    `/icp 0.1` - برای ارسال 0.1 ICP به شخصی
    `/faq question_id*` - برای ایجاد و ارسال یک پیوند قالب بندی شده به یک سؤال متداول خاص
    `/diamond ` - برای ایجاد و ارسال یک پیوند قالب بندی شده با جزئیات عضویت Diamond

    دستوراتی که آرگومان را می پذیرند نیز می توانند بدون آرگومان استفاده شوند.

    * شناسه سؤالات FAQ موجود هستند : airdrop، voting، wallet، buychat، send_tokens، diamond، ios_app، android_app، find_groups، style_messages، ذخیره سازی، امنیت، نقشه راه، میانبرها", + "shortcuts_q": "کدام دستورات میانبر در دسترس هستند؟", + "storage_a": "پیام های متنی فضای کمی را اشغال می کنند و بنابراین هزینه نسبتا کمی برای ما دارند. تصاویر معمولاً فضای بسیار بیشتری را اشغال می کنند و هزینه ها نیز افزایش می یابد. اکنون برخی پس‌زمینه‌های سیستم OpenChat. هر کاربر قوطی مخصوص به خود را دارد که تمام پیام‌ها را برای چت مستقیم خود نگه می‌دارد. هر گروه همچنین دارای قوطی مخصوص به خود است که تمام پیام های گروه را در خود جای می دهد. با این حال، ما هر گونه اطلاعات فایل مرتبط با پیام‌ها، مانند تصاویر و ویدئو، را در OpenStorage. هر کاربر دارای یک کمک هزینه چرخش داده است و هنگامی که پیامی ارسال می شود، داده های فایل از فرستنده کمکی خارج می شود. این همچنین در مورد پیام‌های ارسال شده به گروه‌ها صدق می‌کند، بنابراین هیچ امکانی برای داده‌های گروهی وجود ندارد، فقط برای یک فرد.

    هر کاربر OpenChat 0.1 گیگابایت فضای ذخیره‌سازی رایگان دریافت خواهد کرد. سپس کاربر می تواند به صورت اختیاری به Diamond ارتقاء دهد تا 1 گیگابایت فضای ذخیره سازی دریافت کند. وقتی کاربر به حد مجاز فضای ذخیره‌سازی خود می‌رسد، قدیمی‌ترین فایل‌های او به‌طور خودکار منقضی می‌شوند و بازیابی می‌شوند. این به این معنی است که کاربر هرگز نباید فضای ذخیره سازی را تمام کند. برای به حداقل رساندن هزینه‌های ما، فایل‌های کاربران ردیف رایگان نیز پس از نود روز بدون توجه به میزان استفاده از ذخیره‌سازی، بازپس‌گیری می‌شوند. توجه داشته باشید که خود پیام، از جمله هر عنوان و تصویر کوچک تصویر، هرگز حذف نخواهد شد و بنابراین تاریخچه پیام حفظ خواهد شد.", + "storage_q": "ذخیره سازی چگونه کار می کند؟", + "style_messages_a": "می‌توانید با استفاده از shift-enter شکستگی‌های خط اضافه کنید و ما همچنین از بیشتر جنبه‌های علامت‌گذاری پشتیبانی می‌کنیم. این پیوند را برای یک خلاصه خوب از نحو نشانه گذاری دنبال کنید.", + "style_messages_q": "آیا می توانم پیام ها را استایل کنم؟", + "translation_a": "ترجمه‌های ما به‌طور پیش‌فرض توسط Google translate ارائه می‌شوند و گاهی اوقات زمینه کافی برای انجام کار خوب Google وجود ندارد. اغلب برای ارائه ترجمه بهتر به زبان مادری نیاز است. اگر یکی از زبان های غیرانگلیسی پشتیبانی شده ما را در نمایه خود انتخاب کرده باشید، متوجه خواهید شد که در نمایه شما نیز یک کلید برای فعال کردن حالت تصحیح ترجمه وجود دارد. با فعال کردن این حالت، یک نماد ترجمه کوچک در کنار هر برچسب در رابط کاربری ترجمه شده مشاهده خواهید کرد. اگر روی این نماد کلیک کنید، می توانید اصلاح پیشنهادی را ارسال کنید. سعی کنید پیشنهادی ارائه دهید که هم دقیق باشد و هم به خوبی با UI مطابقت داشته باشد. می توانید بررسی کنید که پیشنهاد شما چگونه به نظر می رسد و هر چند بار که دوست دارید این روش را تکرار کنید. پیشنهاد شما توسط تیم بررسی می شود و در صورت تایید پذیرفته می شود. به ازای هر تصحیح تایید شده ای که ارائه می کنید، در CHAT پاداش دریافت خواهید کرد. ما واقعاً از شما متشکریم که برای بهتر کردن ترجمه های ما وقت گذاشتید - بدون شما نمی توانستیم این کار را انجام دهیم.", + "translation_q": "چگونه می توانم خطای ترجمه را تصحیح کنم؟", + "voting_a": "به گروه پیشنهادات OpenChat بپیوندید و این پست وبلاگ را بخوانید که نمای کلی دارد مدیریت OpenChat و دارای راهنمای گام به گام در مورد رای دادن است.", + "voting_q": "چگونه به پیشنهادات رای بدهم؟", + "wallet_a": "هنگامی که یک کاربر OpenChat ایجاد می شود، آنها به طور خودکار یک حساب برای دسته ای از نشانه ها (ICP، CHAT، ckBTC، SNS1) دارند. این حساب در ابتدا خالی خواهد بود اما می توانید با انتقال توکن ها به آدرس آن حساب را شارژ کنید. هنگامی که تعدادی توکن در کیف پول OpenChat خود دارید، می توانید آنها را مستقیماً از طریق یک نوع پیام خاص به حساب هر کاربر OpenChat دیگری ارسال کنید. همچنین می توانید از ICP (به زودی CHAT) در کیف پول خود برای ارتقاء به عضویت Diamond استفاده کنید. اگر می‌خواهید توکن‌ها را به حساب دیگری ارسال کنید، می‌توانید این کار را با باز کردن کیف پول خود از منوی اصلی و کلیک کردن روی پیوند «ارسال» انجام دهید. این صفحه به شما این امکان را می دهد که توکن های خود را به هر آدرس دیگری که انتخاب می کنید ارسال کنید.", + "wallet_q": "کیف پول من چگونه کار می کند؟" + }, + "faqUrlCopiedToClipboard": "url سوالات متداول در کلیپ بورد کپی شد!", + "features": "امکانات", + "filterMembers": "فیلتر اعضا", + "followThread": "این تاپیک رو دنبال کنید", + "followThreadFailed": "دنبال کردن موضوع ناموفق بود", + "fontSize": "اندازه فونت", + "forward": "رو به جلو", + "freezeGroup": "گروه فریز", + "giphyMessage": "پیام گیفی", + "goHome": "صفحه اصلی", + "goToFirstMention": "به اولین ذکر خوانده نشده بروید", + "goToLatestMessage": "به آخرین پیام بروید", + "group": { + "addGroupPhoto": "عکس {level} را اضافه کنید", + "advanced": "پیشرفته", + "back": "بازگشت", + "create": "ایجاد {level}", + "createTitle": "ایجاد {level} جدید", + "description": "توضیحات {level}", + "details": "جزئیات", + "edit": "ویرایش {level}", + "editGroupPhoto": "عکس {level} را ویرایش کنید", + "getRulesFailed": "قوانین {level} دریافت نشد", + "groupInfo": "اطلاعات {level}", + "historyPrivateMessage": "پیام های قدیمی برای اعضای جدید قابل مشاهده نیستند", + "image": "تصویر {level}", + "inviteUsers": "کاربران {level} را دعوت کنید", + "inviteUsersFailed": "در دعوت از کاربران خطایی روی داد", + "members": "اعضا", + "name": "نام {level}", + "next": "بعد", + "privateGroup": "خصوصی {level}", + "privateGroupInfo": "کاربران نمی توانند آزادانه به این {level} بپیوندند. آنها باید یا اضافه شوند یا توسط یک عضو مجاز دعوت شوند.", + "publicGroup": "عمومی {level}", + "tooManyInvites": "شما فقط می توانید 100 دعوتنامه برجسته داشته باشید", + "update": "به‌روزرسانی {level}", + "usersInvited": "پیام دعوت ارسال شد!", + "welcome": "به {groupName} خوش آمدید" + }, + "groupAlreadyExists": "یک {level} عمومی با آن نام از قبل وجود دارد", + "groupAvatar": "آواتار {level}", + "groupChangedBy": "{changedBy} {changed} را تغییر داد", + "groupCreatedBy": "{username} {level} را ایجاد کرد", + "groupCreationFailed": "متأسفیم که نتوانستیم گروه شما را ایجاد کنیم", + "groupDesc": "توضیحات {level}", + "groupDescTooLong": "توضیحات {level} خیلی طولانی است", + "groupDetails": "جزئیات {level}", + "groupInviteChangedBy": "{changedBy} {changed} پیوند دعوت گروه", + "groupName": "نام {level}", + "groupNameInvalid": "نام {level} نامعتبر است", + "groupNameReserved": "نام {level} رزرو شده است", + "groupNameTooLong": "نام {level} خیلی طولانی است", + "groupNameTooShort": "نام {level} خیلی کوتاه است", + "groupRules": "قوانین گروه", + "groupRulesDisabled": "{changedBy} قوانین گروه را غیرفعال کرد", + "groupRulesEnabled": "{changedBy} قوانین گروه را فعال کرد", + "groupRulesTooLong": "قوانین گروه خیلی طولانی است", + "groupRulesTooShort": "قوانین گروه نباید خالی باشد", + "groupUpdateFailed": "متأسفیم که نتوانستیم گروه شما را به روز کنیم", + "groupVisibilityChangedBy": "{changedBy} تغییراتی در نمای {level} ایجاد کرد", + "groupWithN": "{number} اعضا", + "guestUser": "کاربر مهمان", + "halloffame": { + "allTime": "همیشه", + "diamonds": "الماس", + "gameover": "بازی تمام شد!", + "menu": "ارجاع دهندگان برتر", + "start": "شروع کنید", + "thisMonth": "این ماه", + "username": "نام کاربری", + "users": "کاربران", + "value": "ارزش" + }, + "here": "اینجا", + "hideAuthProviders": "مخفی کردن گزینه ها", + "hideBlocked": "پنهان کردن پیام های کاربرانی که مسدود کرده ام", + "historyOffInfo": "ملحقان جدید فقط پس از پیوستن پیام های دریافتی را مشاهده خواهند کرد. 🤫", + "historyOnInfo": "تاریخچه کامل چت برای اعضای جدید قابل مشاهده خواهد بود. حالا مواظب باش! 🤐", + "historyVisible": "تاریخچه چت قابل مشاهده", + "home": "خانه", + "homepage": "صفحه نخست", + "hotGroups": "گروه های داغ", + "hours": "ساعت ها", + "howToBuyToken": "برای خرید {token} به کمک نیاز دارم", + "human": { + "already": "تبریک می گویم! شما قبلاً تأیید کرده اید که یک فرد واقعی و منحصر به فرد هستید!", + "failed": "با عرض پوزش، نتوانستیم داشتن اعتبار قابل تأیید \"شخص منحصر به فرد\" را تأیید کنیم. اگر هنوز اعتبارنامه را ندارید، دستورالعمل‌های زیر را دنبال کنید و دوباره امتحان کنید.", + "instruction": "برای اینکه با OpenChat تأیید کنید که یک فرد واقعی و منحصر به فرد هستید، باید اعتبار قابل تأیید \"شخص منحصر به فرد\" را ارائه دهید.", + "notVerified": "شما هنوز تأیید نکرده اید که یک فرد واقعی و منحصر به فرد هستید. ممکن است بخواهید به عنوان نشانه ای از قابل اعتماد بودن خود برای سایر کاربران و به عنوان راهی برای واجد شرایط بودن برای ایردراپ های آینده تأیید کنید.", + "verification": "تایید", + "verified": "شخص منحصر به فرد تایید شده", + "verify": "تأیید کنید" + }, + "identity": { + "back": "بازگشت", + "failed": "متأسفیم، اما نتوانستیم یک شناسه اینترنتی را به حساب OpenChat شما پیوند دهیم", + "link": "ارتباط دادن", + "linkIdentity": "هویت پیوند", + "mismatch": "این با اصلی که در حال حاضر با آن وارد شده اید مطابقت ندارد. آیا مطمئن هستید که از همان ارائه دهنده احراز هویت استفاده کرده اید؟", + "proceed": "ادامه دهید", + "signInCurrent": "با ارائه دهنده هویتی که در حال حاضر از آن استفاده می کنید وارد شوید", + "signInNext": "هویت اینترنتی را ایجاد کنید یا با آن وارد شوید که می‌خواهید به حساب OpenChat خود پیوند دهید", + "warning1": "برای تایید شخصیت منحصر به فرد خود باید با استفاده از هویت اینترنتی وارد سیستم شوید. اگر با استفاده از روش دیگری ثبت نام کرده اید، ابتدا باید یک شناسه اینترنتی ایجاد کرده و به حساب OpenChat خود پیوند دهید.", + "warning2": "اگر قبلاً با Internet Identity وارد شده اید، می توانید ادامه دهید." + }, + "identityMigrationMessage": "لطفاً صبر کنید تا حساب شما به سیستم جدید ما ارتقا یابد. این به ما امکان می‌دهد از گزینه‌های ورود به سیستم بسیار بیشتری در آینده پشتیبانی کنیم، از جمله بازیابی ایمیل اختیاری در صورتی که دسترسی به دستگاه خود را از دست بدهید.", + "inheritSystem": "تم سیستم را به ارث ببرید", + "install": { + "dontShow": "اینو دیگه بهم نشون نده", + "message": "برای دریافت اعلان‌ها و دریافت بهترین تجربه کاربری، توصیه می‌کنیم OpenChat را به صفحه اصلی خود اضافه کنید.", + "title": "افزودن به صفحه اصلی" + }, + "insufficientFunds": "لطفاً مطمئن شوید که حساب فوق دارای موجودی حداقل {amount} ICP برای پوشش فضای ذخیره‌سازی درخواستی است، سپس دکمه «Refresh» را فشار دهید.", + "insufficientStorage": "ذخیره سازی ناکافی", + "invite": { + "confirmReset": "آیا مطمئن هستید که می خواهید پیوند {level} را بازنشانی کنید؟ افراد دیگر نمی توانند با استفاده از پیوند فعلی به {level} بپیوندند.", + "disabled": "معلول", + "enabled": "فعال شد", + "enableLink": "فعال کردن لینک", + "errorDisablingLink": "غیرفعال کردن لینک ممکن نیست", + "errorEnablingLink": "فعال کردن پیوند ممکن نیست", + "errorGettingLink": "دریافت لینک ممکن نیست", + "errorResettingLink": "امکان بازنشانی پیوند وجود ندارد", + "invite": "دعوت", + "inviteWithLink": "{level} را از طریق پیوند به اشتراک بگذارید", + "reset": "تنظیم مجدد", + "resetLink": "بازنشانی لینک", + "shareMessage": "هر کسی که این پیوند را داشته باشد می‌تواند پیش‌نمایش کند و به {level} بپیوندد. به عنوان یک عضو Diamond می‌توانید [جوایز ارجاع] (?faq=referral_rewards) نیز کسب کنید.", + "shareMessageTrust": "آن را با افرادی که به آنها اعتماد دارید به اشتراک بگذارید." + }, + "inviteCodeCopied": "کد دعوت در کلیپ بورد شما کپی شده است", + "invited": "دعوت کرد", + "invitedBy": "{changedBy} {changed} را به {level} دعوت کرد", + "invitedUsers": "کاربران دعوت شده", + "irreversible": "آیا قطعاً می خواهید این {level} را حذف کنید؟ این قابل بازگشت نیست!", + "join": "پیوستن", + "joined": "پیوست", + "joinGroup": "به {level} بپیوندید", + "joinGroupFailed": "امکان پیوستن به {level} وجود ندارد", + "lastOnline": "آخرین بار آنلاین {duration} پیش", + "learnToEarn": { + "accepted_swap_offer": "اولین پیشنهاد مبادله شما را پذیرفت", + "appointed_as_group_admin": "به عنوان سرپرست اولین گروه/کانال شما منصوب شدم", + "appointed_as_group_mod": "به عنوان مدیر اولین گروه/کانال شما منصوب شدم", + "appointed_as_group_owner": "به عنوان مالک اولین گروه/کانال شما منصوب شدم", + "appointed_group_admin": "اولین سرپرست گروه/کانال شما را منصوب کرد", + "appointed_group_mod": "اولین ناظر گروه/کانال شما را منصوب کرد", + "appointed_group_owner": "اولین مالک گروه/کانال شما را منصوب کرد", + "changed_theme": "اولین بار است که موضوع را تغییر می دهم", + "deleted_message": "پیام اول حذف شد", + "direct_chat_5": "5 چت مستقیم داشته باشید", + "direct_chats_10": "10 چت مستقیم داشته باشید", + "direct_chats_20": "20 چت مستقیم داشته باشید", + "done": "انجام شده", + "edited_message": "اولین پیام ویرایش شد", + "enabled_disappearing_messages": "اولین باری است که پیام های ناپدید شده را فعال می کند", + "favourited_chat": "اولین گپ شما را به عنوان مورد علاقه علامت گذاری کرد", + "followed_thread": "اولین باری که یک موضوع را دنبال می کنم", + "forwarded_message": "اولین پیام فوروارد شد", + "had_message_tipped": "اولین پیام شما نوک شده بود", + "joined_call": "به اولین تماس شما ملحق شد", + "joined_community": "به اولین انجمن شما پیوست", + "joined_gated_group_or_community": "به اولین گروه/کانال دردار شما پیوست", + "joined_group": "به اولین گروه شما پیوست", + "nothingDone": "شما هنوز خیلی کار دارید!", + "nothingLeftToDo": "آروم باش! دیگر کاری برای انجام دادن ندارید", + "owned_group_with_1_diamond_member": "مالک اولین گروه/جامعه شما با 1 عضو تأیید شده است", + "owned_group_with_10_diamond_members": "مالک اولین گروه/جامعه شما با 10 عضو تأیید شده است", + "owned_group_with_100_diamond_members": "مالک اولین گروه/جامعه شما با 100 عضو تأیید شده است", + "owned_group_with_1000_diamond_members": "مالک اولین گروه/جامعه شما با 1000 عضو تأیید شده است", + "percentageComplete": "{perc}% کامل شد", + "pinned_message": "اولین پیام شما را پین کرد", + "proved_unique_personhood": "انسانیت منحصر به فرد خود را ثابت کرد", + "quote_replied": "نقل قول به پیام اول پاسخ داده شد", + "reacted_to_message": "به پیام اول واکنش نشان داد", + "received_crypto": "اولین پیام رمزنگاری شما را دریافت کرد", + "received_direct_message": "اولین پیام مستقیم شما را دریافت کردم", + "received_reaction": "اولین واکنش شما را در یک پیام دریافت کردم", + "replied_in_thread": "شروع اولین پاسخ در موضوع", + "sent_audio": "اولین صدای خود را ارسال کرد", + "sent_crypto": "اولین پیام رمزنگاری خود را ارسال کرد", + "sent_direct_message": "اولین پیام مستقیم خود را ارسال کرد", + "sent_file": "اولین فایل خود را ارسال کرد", + "sent_giphy": "اولین گیفی خود را ارسال کرد", + "sent_image": "اولین تصویر خود را ارسال کرد", + "sent_meme": "اولین پیام میم خود را ارسال کرد", + "sent_poll": "اولین نظرسنجی خود را ارسال کردید", + "sent_prize": "اولین جایزه خود را ارسال کرد", + "sent_swap_offer": "اولین پیشنهاد مبادله P2P ارسال شد", + "sent_text": "اولین پیامک خود را ارسال کرد", + "sent_video": "اولین ویدیوی خود را ارسال کرد", + "set_avatar": "آواتار نمایه شما را آپلود کرد", + "set_bio": "بیوگرافی پروفایل شما به روز شد", + "set_community_access_gate": "اولین دروازه دسترسی جامعه خود را تنظیم کنید", + "set_community_display_name": "اولین نام نمایشی انجمن خود را تنظیم کنید", + "set_display_name": "نام نمایشی شما را به روز کرد", + "set_group_access_gate": "اولین دروازه دسترسی گروه/کانال خود را تنظیم کنید", + "showChitPopup": "من را از دستاوردهایم آگاه کن", + "started_call": "تماس اول شروع شد", + "streak_14": "به یک دوره 14 روزه دست یافت", + "streak_3": "به یک رگشت 3 روزه دست یافت", + "streak_30": "به یک دوره 30 روزه دست یافت", + "streak_7": "به یک دوره 7 روزه دست یافت", + "suggested_translation": "اولین ترجمه شما را پیشنهاد کرد", + "swapped_from_wallet": "اولین توکن خود را از کیف پول عوض کردید", + "tipped_message": "پیام اول نوک داده شد", + "title": "دستاوردها", + "todo": "انجام دادن", + "translation_accepted": "آیا اولین ترجمه شما پذیرفته شده است", + "upgrade_to_gold_diamond": "به عضویت Lifetime Diamond ارتقا دهید", + "upgraded_to_diamond": "به عضویت Diamond ارتقا یافت", + "voted_on_poll": "در اولین نظرسنجی شما رای داد" + }, + "leave": "ترک کردن", + "leaveGroup": "خروج از {level}", + "leftGroup": "شما با موفقیت گروه را ترک کردید", + "level": { + "channel": "کانال", + "community": "انجمن", + "group": "گروه" + }, + "light": "سبک", + "linkCopiedToClipboard": "پیوند در کلیپ بورد کپی شد", + "loadGif": "نمایش گیف", + "loadImage": "نمایش تصویر", + "loadingTweetPreview": "در حال بارگیری پیش نمایش توییت...", + "loadMeme": "نشان دادن میم", + "login": "ورود", + "loginDialog": { + "back": "بازگشت", + "checkEmail": "روی لینکی که برای شما ارسال کرده ایم کلیک کنید و کد زیر را وارد کنید", + "codeCopiedToClipboard": "کد در کلیپ بورد کپی شد", + "failedToCopyCodeToClipboard": "کد در کلیپ بورد کپی نشد", + "failedToSendEmail": "در حال حاضر نمی‌توانیم ایمیل را ارسال کنیم. لطفاً بعداً دوباره امتحان کنید.", + "generatingLink": "ایجاد پیوند و کد ورود به سیستم امن...", + "haveAccount": "از قبل حساب کاربری دارید؟", + "invalidEmail": "آدرس ایمیل نامعتبر است.", + "noAccount": "حساب کاربری ندارید؟", + "refreshTitle": "یک کد جدید ارسال کنید", + "showMore": "نمایش گزینه های ورود بیشتر", + "signin": "ورود", + "signinEmailPlaceholder": "با ایمیل وارد شوید...", + "signinWith": "با {provider} وارد شوید", + "signup": "ثبت نام", + "signupEmailPlaceholder": "با ایمیل نام نویسی کنید...", + "signupTitle": "در OpenChat ثبت نام کنید", + "signupWith": "ثبت نام با {provider}", + "strapline": "جایی که Web3 ارتباط برقرار می کند", + "title": "وارد OpenChat شوید", + "unexpectedError": "خطای غیرمنتظره لطفاً بعداً دوباره امتحان کنید." + }, + "logout": "خروج از سیستم", + "lowBandwidth": "پهنای باند کم", + "magicLink": { + "closeMessage": "لطفاً این صفحه را ببندید و دوباره وارد سیستم شوید", + "code_invalid": "کد نامعتبر است", + "continueMessage": "لطفا این صفحه را ببندید و در صفحه اصلی ادامه دهید", + "enterCode": "کد تایید را وارد کنید", + "link_expired": "این لینک فقط 5 دقیقه معتبر است و اکنون منقضی شده است", + "link_invalid": "لینک نامعتبر است", + "success": "موفقیت! شما اکنون وارد سیستم شده اید", + "title": "با لینک ایمیل وارد شوید" + }, + "makeGroupPrivate": "گروه را خصوصی کنید", + "makeGroupPrivateFailed": "خصوصی کردن {level} انجام نشد", + "makeGroupPublicFailed": "عمومی کردن {level} انجام نشد", + "markAllRead": "همه را به عنوان خوانده شده علامت بزن", + "maxAudioSize": "کلیپ صوتی به حداکثر 1 مگابایت کوتاه شده است", + "maxFileSize": "حداکثر اندازه فایل از 1 مگابایت بیشتر شده است", + "maxGroupsCreated": "شما قبلاً حداکثر تعداد {level} را ایجاد کرده اید", + "maxImageSize": "حداکثر اندازه تصویر از 1 مگابایت بیشتر شده است", + "maxStorage": "می توانید حداکثر تا 1 گیگابایت فضای ذخیره سازی را ارتقا دهید", + "maxVideoSize": "حداکثر حجم ویدیو از 5 مگابایت بیشتر شده است", + "member": "عضو", + "memberCount": "اعضای {count}", + "memberIsTyping": "{username} در حال تایپ است", + "members": "اعضا", + "membersAreTyping": "اعضای {number} در حال تایپ هستند", + "membersHeader": "اعضای {level}", + "messageBlocked": "پیام پنهان شد", + "messageDeleted": "پیام توسط {username} در {timestamp} حذف شد", + "messageDeletedByOpenChatBot": "این پیام ابتدا توسط یک کاربر OpenChat گزارش شد، سپس به [Modclub]({modclub}) ارسال شد، جایی که تصمیم بر این شد که پیام [قانون پلتفرم] ({rules}) را زیر پا گذاشته و در نهایت توسط {username} در {xyz حذف شد. }", + "messages": "پیام ها", + "messageUrlCopiedToClipboard": "نشانی وب پیام در کلیپ بورد کپی شد!", + "minimumAmount": "حداقل: {amount} {symbol}", + "minutes": "دقایق", + "moderator": "ناظم", + "muted": "خاموش", + "muteNotifications": "نادیده گرفتن اعلان ها", + "myAccount": "حساب من", + "new": "جدید", + "newChat": "چت جدید", + "newGroup": "گروه جدید", + "newGroupDesc": "این {level} درباره چیست؟", + "newGroupName": "نام {level} را وارد کنید", + "newLimit": "{limit} / 1 گیگابایت", + "next": "بعد", + "nMessagesDeleted": "{number} پیام حذف شد", + "no": "خیر", + "noAccess": "هیچ دسترسی", + "noAccessText": "متأسفیم، اما شما به انجمن، گروه یا کانالی که می‌خواهید به آن دسترسی پیدا کنید، دسترسی ندارید.", + "noAudio": "مرورگر شما از صدای جاسازی شده پشتیبانی نمی کند", + "noChangeToStorage": "با استفاده از نوار لغزنده بالا یک محدودیت فضای ذخیره‌سازی جدید انتخاب کنید تا بتوانیم قیمت ارتقا را برای شما محاسبه کنیم.", + "noChannelSelected": "در حال حاضر کانالی انتخاب نشده است", + "noChatsAvailable": "هیچ چت در دسترس نیست!", + "noChatSelected": "هیچ گپی در حال حاضر انتخاب نشده است", + "noGroupsFound": "هیچ گروهی پیدا نشد 😭", + "noThanks": "نه ممنون", + "notificationsDisabled": "اعلان‌ها غیرفعال است", + "notificationsEnabled": "اعلان ها فعال شد", + "notInterested": "علاقه مند نیست", + "noUserSelected": "هیچ کاربری در حال حاضر انتخاب نشده است", + "noVideo": "مرورگر شما از ویدیوی جاسازی شده پشتیبانی نمی کند", + "nUsersJoined": "کاربران {number} به {level} پیوستند", + "offline": "آفلاین", + "offlineError": "متأسفیم - به نظر می رسد در حال حاضر آفلاین هستید", + "offlineMessage": "آفلاین", + "oneDay": "1 روز", + "oneHour": "1 ساعت", + "oneMessageDeleted": "1 پیام حذف شد", + "onlineNow": "هم اکنون آنلاین", + "openChat": "OpenChat", + "original": "اصلی", + "otherUsers": "سایر کاربران", + "ownedBy": "متعلق به @{username}", + "owner": "مالک", + "ownerCantLeave": "قبل از اینکه بتوانید {level} را ترک کنید باید مالک دیگری اضافه کنید", + "p2pSwap": { + "accept": "تایید کنید", + "accepted": "پذیرفته شده", + "acceptedBy": "این پیشنهاد توسط {user} پذیرفته شده است و در انتظار تکمیل است.", + "already_accepted": "این پیشنهاد مبادله قبلاً پذیرفته شده است", + "builderTitle": "پیشنهاد معاوضه بدهید", + "cancel": "لغو کنید", + "cancelled": "لغو شد", + "completed": "این پیشنهاد توسط {user} پذیرفته شده است.", + "confirmAccept": "وقتی این پیشنهاد را قبول کردید، {amount} {token} (شامل 2 کارمزد تراکنش) از کیف پول شما به مخزن ذخیره OpenChat منتقل می شود. شما در عوض {amountOther} {tokenOther} را دریافت خواهید کرد. آیا می خواهید ادامه دهید؟", + "confirmCancel": "هنگامی که این پیشنهاد را لغو کردید، {amount} {token} از قوطی محافظ OpenChat به کیف پول شما منتقل می‌شود. آیا می خواهید ادامه دهید؟", + "confirmSend": "هنگامی که این پیشنهاد را ایجاد می‌کنید، {amount} {token} (شامل 2 کارمزد تراکنش) از کیف پول شما به مخزن ذخیره OpenChat منتقل می‌شود. تا زمانی که پیشنهاد منقضی شود، پیشنهاد را لغو کنید یا پیشنهاد پذیرفته شود، در آنجا باقی می‌ماند. آیا می خواهید ادامه دهید؟", + "creatingYourMessage": "لطفاً صبر کنید تا پیشنهاد مبادله ایجاد شود", + "expired": "منقضی شده", + "expiryTime": "زمان انقضا", + "failedToCreateMessage": "پیشنهاد مبادله ایجاد نشد", + "insufficient_funds": "شما بودجه کافی برای پذیرش این پیشنهاد مبادله ندارید", + "insufficientBalance": "تعادل ناکافی", + "insufficientBalanceMessage": "برای پذیرش این مبادله به حداقل {amount} {token} (شامل 2 کارمزد تراکنش) نیاز دارید.", + "progress": { + "accepted": "[انتقال {amount1} {token1}]({token1TxnIn}) از {user1} به سپردن", + "accepting": "پذیرفته شده توسط {user1}", + "cancelled": "لغو شد", + "cancelled_pending": "بازپرداخت در انتظار لغو شد", + "completed": "تکمیل شد", + "expired": "منقضی شده", + "expired_pending": "بازپرداخت در انتظار منقضی شده است", + "open": "[انتقال {amount0} {token0}]({token0TxnIn}) از {user0} به سپردن", + "refunded": "[بازپرداخت {amount0} {token0}]({token0TxnOut}) به {user0}", + "reserved": "توسط {user1} انتقال معلق پذیرفته شد", + "swapped": "[انتقال {amount1} {token1}]({token1TxnOut}) به {user0} [و {amount0} {token0}]({token0TxnOut}) به {user1}", + "swapping": "مبادله", + "waiting": "منتظر پذیرش" + }, + "reserved": "رزرو شده است", + "reservedBy": "این پیشنهاد توسط {user} رزرو شده است و در انتظار تکمیل است.", + "summary": "این پیشنهادی برای تعویض {fromAmount} {fromToken} با {toAmount} {toToken} است.", + "swap_cancelled": "این پیشنهاد مبادله لغو شده است", + "swap_expired": "این پیشنهاد مبادله منقضی شده است", + "swap_not_found": "این پیشنهاد مبادله یافت نشد", + "swapTokenTo": "پیشنهاد تعویض {amount0} {token0} با {amount1} {token1}", + "tokenBalance": "موجودی {token}", + "unknown_accept_error": "خطا در پذیرش پیشنهاد مبادله", + "unknown_cancel_error": "خطا در لغو پیشنهاد مبادله", + "youAccepted": "شما این پیشنهاد را پذیرفته اید و در انتظار تکمیل است.", + "youCompleted": "شما این پیشنهاد را پذیرفته اید.", + "youReserved": "شما این پیشنهاد را رزرو کرده اید و در انتظار تکمیل است." + }, + "participant": "عضو", + "percLeft": "{perc}% باقی مانده است", + "performingUpgrade": "انجام ارتقا", + "permissions": { + "allMembers": "همه اعضا می توانند", + "changeRoles": "تغییر نقش اعضا", + "createPolls": "ایجاد نظرسنجی", + "createPrivateChannel": "ایجاد کانال های خصوصی", + "createPublicChannel": "ایجاد کانال های عمومی", + "currentRole": "{level} {role}", + "deleteMessages": "پیام ها را حذف کنید", + "general": "عمومی", + "inviteUsers": "دعوت از کاربران", + "manageUserGroups": "مدیریت گروه های کاربری", + "mentionAllMembers": "ذکر همه اعضا ({mention})", + "message": "پیام ها", + "messagePermissions": { + "audio": "ارسال پیام های صوتی", + "crypto": "ارسال پیام های رمزنگاری شده", + "default": "به صورت پیش فرض پیام ارسال کنید", + "file": "ارسال پیام های فایل", + "giphy": "ارسال پیام های گیفی", + "image": "ارسال پیام های تصویری", + "memeFighter": "پیام های Meme Fighter را ارسال کنید", + "p2pSwap": "ارسال پیام های مبادله P2P", + "poll": "ایجاد پیام های نظرسنجی", + "prize": "ارسال پیام جایزه", + "text": "ارسال پیامک", + "video": "ارسال پیام های ویدیویی" + }, + "nobody": "هیچکس نمی تواند", + "notPermitted": "شما مجاز به {permission} نیستید", + "overrideChatMessages": "لغو مجوزهای پیام چت", + "ownerAndAdmins": "مالکان و مدیران می توانند", + "ownerAndAdminsAndModerators": "مالکان، مدیران و مدیران می توانند", + "ownerOnly": "مالکان می توانند", + "permissions": "مجوزها", + "pinMessages": "پین کردن پیام ها", + "reactToMessages": "به پیام ها واکنش نشان دهید", + "removeMembers": "حذف/مسدود کردن اعضا", + "replyInThread": "پاسخ در تاپیک", + "sendMessages": "ارسال پیام", + "startVideoCall": "تماس های ویدیویی را شروع کنید", + "thread": "موضوعات", + "threadPermissions": { + "audio": "ارسال پیام های صوتی در رشته ها", + "crypto": "پیام های رمزنگاری شده را در موضوعات ارسال کنید", + "default": "به طور پیش فرض پیام ها را در رشته ها ارسال کنید", + "file": "ارسال پیام های فایل در رشته ها", + "giphy": "ارسال پیام های گیفی در موضوعات", + "image": "ارسال پیام های تصویری در موضوعات", + "memeFighter": "پیام های Meme Fighter را در موضوعات ارسال کنید", + "p2pSwap": "پیام های مبادله P2P را در موضوعات ارسال کنید", + "poll": "ایجاد پیام های نظرسنجی در رشته ها", + "prize": "پیام های جایزه را در موضوعات ارسال کنید", + "text": "ارسال پیام های متنی در موضوعات", + "video": "ارسال پیام های ویدیویی در رشته ها" + }, + "updateDetails": "ویرایش اطلاعات اولیه", + "updateGroup": "ویرایش اطلاعات گروه", + "whoCan": "که می تواند " + }, + "permissionsChangedBy": "{changedBy} مجوزهای {level} را تغییر داد", + "pickEmoji": "ایموجی را انتخاب کنید", + "pinChat": { + "failed": "پین کردن چت انجام نشد - لطفاً بعداً امتحان کنید", + "limitExceeded": "فقط می‌توانید چت‌های {limit} را پین کنید", + "menuItem": "پین کردن چت", + "unpinFailed": "پین گپ برداشته نشد - لطفاً بعداً امتحان کنید", + "unpinMenuItem": "پین گپ را بردارید" + }, + "pinMessage": "سنجاق", + "pinMessageFailed": "پین کردن پیام ممکن نیست", + "pinnedMessages": "پیام های پین شده", + "pinNumber": { + "changePin": "پین را تغییر دهید", + "changePinSuccess": "شماره پین تغییر کرد", + "changePinTitle": "تغییر شماره پین", + "clearPin": "پین پاک کنید", + "clearPinMessage": "پین خود را وارد کنید تا پاک شود", + "clearPinSuccess": "شماره پین پاک شد", + "clearPinTitle": "پاک کردن شماره پین", + "currentPin": "پین فعلی خود را وارد کنید", + "enterPin": "شماره پین خود را وارد کنید", + "enterPinInfo": "برای انتقال توکن ها از کیف پول خود باید شماره پین خود را وارد کنید.", + "invalid": "پین شما باید یک عدد باشد", + "newPin": "پین جدید خود را وارد کنید", + "pinIncorrect": "پین اشتباه است - لطفاً دوباره امتحان کنید", + "pinIncorrectTryLater": "پین اشتباه است - لطفاً دوباره در {duration} امتحان کنید", + "pinRequired": "پین لازم است - لطفاً دوباره امتحان کنید", + "setPin": "پین را تنظیم کنید", + "setPinMessage": "یک شماره پین تنظیم کنید تا یک لایه امنیتی اضافی به کیف پول OpenChat خود اضافه کنید. قبل از انجام هرگونه انتقال رمزی از کیف پول خود، از شما خواسته می شود پین خود را وارد کنید.", + "setPinSuccess": "مجموعه شماره پین", + "setPinTitle": "تنظیم شماره پین", + "title": "شماره پین", + "tooManyFailedAttempts": "تعداد زیادی تلاش ناموفق - لطفاً دوباره در {duration} امتحان کنید" + }, + "placeholderContent": "لطفا صبر کنید، پیام شما به زودی بارگیری می شود", + "pleaseDeposit": "لطفاً در صورت تمایل به پرداخت {amount} ICP از حساب فوق، دکمه \"تأیید\" را فشار دهید تا فضای ذخیره سازی خود را به {limit} ارتقا دهید.", + "pleaseWait": "لطفا چند ثانیه صبر کنید", + "poll": { + "addAnotherAnswer": "پاسخ دیگری اضافه کنید", + "addAnswer": "حداقل 2 پاسخ اضافه کنید", + "allowChangeVotes": "به کاربران اجازه تغییر رای دهید", + "allowMultipleVotes": "اجازه چند رای دادن", + "anonymous": "ناشناس", + "answersLabel": "پاسخ ها", + "answerText": "متن پاسخ را وارد کنید...", + "atLeastTwo": "حداقل 2", + "create": "یک نظرسنجی ایجاد کنید", + "finished": "نظرسنجی تموم شد", + "invalidAnswer": "هوم، آیا شما یک پاسخ تکراری دارید؟", + "limitedDuration": "مدت زمان محدود", + "maxReached": "حداکثر 10 پاسخ رسیده است", + "numVotes": "{votes} رأی", + "numVotesBy": "{votes} رأی توسط", + "numVotesIncludingYours": "رای {votes} از جمله شما", + "oneDay": "1 روز", + "oneHour": "1 ساعت", + "oneVote": "1 رای", + "oneVoteBy": "1 رای توسط", + "oneWeek": "1 هفته", + "optionalQuestion": "به صورت اختیاری سوال خود را در اینجا وارد کنید", + "poll": "نظرسنجی", + "pollDuration": "مدت نظرسنجی", + "pollEnds": "پایان نظرسنجی {end}", + "questionLabel": "سوال", + "settings": "تنظیمات", + "showBeforeEnd": "نمایش آرا قبل از پایان نظرسنجی", + "start": "شروع کنید", + "totalVotes": "کل آرا: {total}", + "voteFailed": "رای نظرسنجی شکست خورد", + "votersPrivate": "رای دهندگان ناشناس خواهند بود", + "votersPublic": "رای دهندگان عمومی خواهند بود" + }, + "preferredLanguage": "زبان ترجیحی", + "preview": "پیش نمایش", + "previewing": "پیش نمایش گروه", + "privateGroupInfo": "این {level} به افرادی که دعوت می کنید محدود می شود.", + "privateGroupWithN": "{level} خصوصی با اعضای {number}", + "prizeMessage": "پیام جایزه", + "prizes": { + "allClaimed": "کاملا ادعا شده است", + "anyone": "هر کاربری", + "claim": "مطالبه", + "claimed": "موفقیت!", + "claimFailed": "متاسفم که ادعای شما ناموفق بود! دفعه بعد بهتره موفق باشی ", + "click": "برای شانس برنده شدن بر روی دکمه زیر کلیک کنید.", + "creatingYourPrizeMessage": "لطفا صبر کنید تا پیام جایزه شما را ایجاد کنیم", + "distribution": "جوایز چگونه باید توزیع شود؟", + "duration": "جایزه تا چه زمانی فعال خواهد بود؟", + "equalDistribution": "توزیع برابر", + "finished": "تمام شده", + "live": "پیام جایزه به صورت زنده! دیگران می توانند برای ادعا کلیک کنند 🎁", + "maxPrize": "حداکثر جایزه چقدر است؟", + "minPrize": "حداقل جایزه چقدر است؟", + "numberOfWinners": "تعداد برندگان", + "onlyDiamond": "فقط کاربران الماس", + "prizeFinished": "پیام جایزه شما اکنون به پایان رسیده است", + "randomDistribution": "توزیع تصادفی", + "title": "جایزه", + "totalAmount": "مبلغ کل جایزه", + "whoCanWin": "چه کسی می تواند ادعای سهم کند؟", + "winner": "**{recipient}** برنده **{amount}** {token}" + }, + "profile": { + "block": "مسدود کردن", + "chat": "چت کنید", + "communities": "جوامع", + "earnMore": "بیشتر بدست آوردن", + "global": "جهانی", + "label": "مشخصات", + "ringtone": "آهنگ زنگ خود را انتخاب کنید", + "selectCommunity": "یک جامعه را انتخاب کنید", + "settings": "تنظیمات", + "title": "تنظیمات پروفایل", + "unblock": "رفع انسداد", + "videoCameraOn": "با دوربین روشن شروع کنید", + "videoMicOn": "با میکروفون روشن شروع کنید", + "videoSettings": "تنظیمات تماس تصویری", + "videoSpeakerView": "با نمای بلندگوی فعال شروع کنید" + }, + "promoteFailed": "ارتقاء به {role} ممکن نیست", + "promoteTo": "ارتقاء به {role}", + "proposal": { + "action": "عمل", + "additionalContent": "محتوای اضافی", + "adopt": "اتخاذ کردن", + "alreadyVoted": "شما قبلاً رأی داده اید - صفحه را دوباره بارگیری کنید", + "builtInAction": "ساخته شده در اقدامات", + "collapse": "کوچک کردن پیام", + "cyclesDispenserAction": "چرخه اقدامات توزیع کننده", + "details": "جزئیات", + "disableAll": "همه را غیر فعال کن", + "enableAll": "فعال کردن همه", + "filter": "پیشنهادات را فیلتر کنید", + "groupIndexAction": "اقدامات فهرست گروهی", + "makeProposal": "پیشنهاد بدهید", + "maker": { + "amount": "میزان", + "amountRules": "حداقل 1 نشانه {token}", + "enterAmount": "مقداری از نشانه‌های {token} را وارد کنید", + "enterRecipientOwner": "اصل حساب گیرنده را وارد کنید", + "enterRecipientSubaccount": "یک حساب فرعی گیرنده اختیاری وارد کنید", + "enterSummary": "خلاصه ای را وارد کنید", + "enterTitle": "عنوانی را وارد کنید", + "enterUrl": "یک URL اختیاری وارد کنید", + "header": "پیشنهاد بدهید", + "howToBuyUrl": "نحوه خرید url", + "ledgerCanisterId": "شناسه قوطی لجر", + "message": "برای ارسال یک پیشنهاد، سپرده {cost} {token} توکن (شامل دو مجموعه هزینه انتقال) لازم است که در صورت پذیرش پیشنهاد، بازپرداخت می شود.", + "recipientOwner": "اصل حساب گیرنده", + "recipientSubaccount": "حساب فرعی گیرنده", + "recipientSubaccountRules": "باید یک رشته شش گوش باشد", + "summary": "خلاصه", + "summaryRules": "از نشانه گذاری پشتیبانی می کند", + "title": "عنوان", + "tokenInfoUrl": "نشانی اینترنتی اطلاعات رمز", + "tokenLogo": "لوگو", + "transactionUrlFormat": "قالب آدرس تراکنش", + "treasury": "رمز انتقال از خزانه", + "type": "نوع پروپوزال", + "unexpectedError": "خطای غیرمنتظره در ارسال پیشنهاد", + "url": "آدرس اینترنتی", + "urlRules": "پیوند به جزئیات تکمیلی" + }, + "neuronControllerAction": "اقدامات کنترل کننده نورون", + "noEligibleNeurons": "هیچ نورون واجد شرایطی یافت نشد", + "noEligibleNeuronsMessage": "هیچ نورون واجد شرایط یا مرتبطی یافت نشد. برای رای دادن به پیشنهادات از داخل OpenChat، ابتدا باید شناسه کاربری OpenChat خود را به عنوان کلید میانبر به هر نورونی که می خواهید با آن رای دهید اضافه کنید.

    شناسه کاربری OpenChat شما این است: {userId}.

    برای اطلاعات بیشتر در مورد رأی‌گیری و حکومت، این پست وبلاگ را بخوانید.", + "notificationsAction": "اقدامات فهرست اعلان ها", + "proposalNotAceptingVotes": "این پیشنهاد رای نمی‌پذیرد - صفحه را دوباره بارگیری کنید", + "proposalsBotAction": "Proposals Bot Actions", + "proposedBy": "پیشنهاد شده توسط", + "readless": "کمتر بخوان", + "readmore": "ادامه مطلب", + "registryAction": "اقدامات رجیستری", + "reject": "رد کردن", + "storageIndexAction": "اقدامات فهرست ذخیره سازی", + "topic": "موضوع", + "unknownActionCategory": "اقدامات دیگر", + "userIndexAction": "اقدامات فهرست کاربر", + "voteFailed": "رأی دادن ناموفق بود - لطفاً بعداً امتحان کنید", + "votingPeriodEnded": "دوره رای گیری به پایان رسید", + "votingPeriodRemaining": "زمان رای گیری باقی مانده است", + "youVotedAdopt": "شما رای قبولی دادید!", + "youVotedReject": "رای رد دادی!" + }, + "publicChannelInfo": "اعضای انجمن به طور خودکار به کانال‌های عمومی اضافه می‌شوند (بعد می‌توانند آن را ترک کنند).", + "publicGroupInfo": "هر کسی می‌تواند این {level} را پیدا کند و به آن بپیوندد.", + "publicGroups": "گروه های عمومی", + "publicGroupUnique": "نام‌های عمومی {level} باید منحصربه‌فرد باشند.", + "publicGroupWithN": "عمومی {level} با اعضای {number}", + "quoteReply": "نقل قول پاسخ", + "reactions": { + "andYou": "، و شما", + "greaterThan99People": "99+ نفر", + "reactedWith": "با واکنش نشان داد", + "youClickToRemove": "شما (برای حذف کلیک کنید)" + }, + "readOnlyChat": "این چت فقط خواندنی است", + "readOnlyThread": "این موضوع فقط خواندنی است", + "reason": "دلیل", + "reasonForSuspension": "دلیل تعلیق", + "recordAudioMessage": "ضبط پیام صوتی", + "referralHeader": "دعوت از دوستان / خانواده", + "refresh": "تازه کردن", + "register": { + "agree": "موافق", + "bioTooLong": "بیوگرافی شما خیلی طولانی است", + "choosePath": "چگونه می خواهید ثبت نام کنید؟", + "closed": "به دلیل تقاضای بسیار بالا، ثبت نام کاربران جدید به طور موقت بسته می شود. ما به زودی در چندین زیرشبکه مقیاس خواهیم داشت و سپس قادر خواهیم بود به طور نامحدود رشد کنیم!", + "closedTitle": "ثبت نام متوقف شد", + "confirm": "تایید", + "confirmCyclesTransferText": "لطفاً هنگامی که {amount} چرخه را از کیف پول چرخه های خود به کیف پول OpenChat زیر منتقل کردید، در زیر تأیید کنید.", + "confirmICPTransferText": "لطفاً هنگامی که {amount} ICP را به حساب ارائه شده در زیر انتقال دادید، در زیر تأیید کنید", + "confirmTransfer": "انتقال را تایید کنید", + "createUser": "کاربر ایجاد کنید", + "cyclesTransferred": "کارمزد چرخه {fee} تأیید شد", + "disclaimer": "با ثبت نام در OpenChat موافقت می کنید که از شرایط و ضوابط ما پیروی کنید", + "displayNameInvalid": "نام نمایشی نامعتبر است، لطفاً دوباره امتحان کنید", + "displayNameTooLong": "آن نام نمایشی خیلی طولانی است", + "displayNameTooShort": "آن نام نمایشی خیلی کوتاه است", + "doYouWantToProceed": "همچنان ممکن است ثبت نام خود را ادامه دهید، اما کد ارجاع ارائه شده هیچ تاثیری نخواهد داشت.", + "enjoy": "از چت کردن در رایانه اینترنتی لذت ببرید", + "enterDisplayName": "یک نام نمایشی انتخاب کنید", + "enterUsername": "یک نام کاربری انتخاب کنید", + "failedToGetFee": "هزینه ثبت نام ایجاد نشد", + "goBack": "برگرد", + "icpTransferred": "کارمزد ICP {fee} تأیید شد", + "invalidCode": "کد نامعتبر", + "letsGo": "بیا بریم!", + "preparingUser": "در حال آماده سازی کاربر ...", + "proceed": "ادامه دهید", + "referralCodeInvalid": "با عرض پوزش کد ارجاعی که ارائه کردید نامعتبر است یا منقضی شده است", + "registerAs": "برای ثبت نام به عنوان کاربر", + "registerUser": "ثبت نام کاربر", + "registrationComplete": "ثبت نام تکمیل شد...", + "regOptions": "آیا ترجیح می دهید از طریق یک کد پیامکی (توصیه می شود) تأیید کنید یا با انجام یک انتقال کوچک ICP؟", + "title": "با OpenChat ثبت نام کنید", + "transfer": "انتقال", + "unableToConfirmFee": "ما نتوانستیم هزینه ثبت نام شما را تأیید کنیم", + "userLimitReached": "به حد مجاز کاربر رسیده است", + "usernameInvalid": "نام کاربری نامعتبر است، لطفا دوباره امتحان کنید", + "usernameRules": "نام کاربری را فقط با استفاده از نویسه های الفبایی یا زیرخط انتخاب کنید", + "usernameTaken": "آن نام کاربری در حال حاضر گرفته شده است", + "usernameTooLong": "این نام کاربری خیلی طولانی است", + "usernameTooShort": "این نام کاربری خیلی کوتاه است", + "userNotFound": "کاربر پیدا نشد", + "welcome": "به OpenChat خوش آمدید!" + }, + "reminders": { + "cancel": "لغو یادآوری", + "cancelFailure": "متأسفیم که نتوانستیم یادآوری شما را لغو کنیم", + "cancelSuccess": "یادآوری شما با موفقیت لغو شد", + "create": "ايجاد كردن", + "failure": "متأسفیم که نتوانستیم یادآوری شما را تنظیم کنیم", + "menu": "به من یادآوری کن", + "nextWeek": "هفته بعد", + "note": "یک یادداشت اضافه کنید", + "notePlaceholder": "به من یادآوری کن که ...", + "oneHour": "در 1 ساعت", + "optional": "اختیاری", + "remindAt": "این پیام را در {datetime} به شما یادآوری خواهم کرد", + "success": "یادآوری شما با موفقیت تنظیم شد", + "threeHours": "در 3 ساعت", + "title": "یک یادآوری تنظیم کنید", + "tomorrow": "فردا", + "twentyMinutes": "در 20 دقیقه", + "youAsked": "شما از من خواستید که این پیام را به شما یادآوری کنم." + }, + "remove": "برداشتن", + "removeChat": "حذف چت", + "removedBy": "{changedBy} {changed} را از {level} حذف کرد", + "removeMemberFailed": "امکان حذف عضو وجود ندارد", + "removePreviewQuestion": "پیش نمایش حذف شود؟", + "renderPreviews": "رندر خودکار پیش نمایش پیوندها", + "reply": "پاسخ", + "replyPrivately": "به صورت خصوصی پاسخ دهید", + "report": { + "advice": "اگر فکر می‌کنید این پیام قوانین این گروه را نقض می‌کند، لطفاً در وهله اول با مالکان و سرپرستان گروه تماس بگیرید. فقط در صورتی پیامی را برای تعدیل پلتفرم گزارش دهید که احساس می‌کنید [قوانین پلتفرم] ({rules}) را نقض می‌کند، در غیر این صورت وقت مدیران را تلف می‌کند. گزارش نادرست مداوم ممکن است منجر به تعلیق حساب کاربری شما شود.", + "child": "پیام حاوی محتوای جنسی کودکان است", + "deleteMessage": "پیام گزارش شده را حذف کنید", + "failure": "متأسفیم که نتوانستیم این پیام را به ناظران پلتفرم گزارش کنیم", + "menu": "گزارش", + "messageReport": "گزارش شده توسط @{username} در {timestamp} به دلیل زیر: **{reason}**", + "nonConsensual": "پیام حاوی محتوای جنسی غیر توافقی است", + "note": "یک یادداشت اضافه کنید", + "notePlaceholder": "به ما بگویید چرا این محتوا را گزارش می کنید", + "optional": "اختیاری", + "other": "دلیل دیگر", + "pleaseSelect": "لطفا یک دلیل انتخاب کنید", + "reason": "دلیل گزارش", + "scam": "پیام یک کلاهبرداری مالی را ترویج می کند", + "selfHarm": "پیام حاوی خودآزاری یا ترویج آن است", + "showing": "نمایش جدیدترین {count} از {total} گزارش(های)", + "success": "این پیام به مدیران پلتفرم گزارش شده است", + "threat": "پیام تهدید کننده است", + "title": "گزارش پیام", + "violence": "پیام حاوی خشونت بیش از حد است" + }, + "reportBug": "اگر فکر می کنید این یک اشکال است، برای گزارش جزئیات کامل اینجا را کلیک کنید", + "reset": "بازنشانی کنید", + "restricted": { + "generic": "به منظور مطابقت با قوانین محلی، این ویژگی در حوزه قضایی فعلی شما مجاز نیست", + "swap": "به منظور مطابقت با قوانین محلی، مبادله رمزها در حوزه قضایی فعلی شما مجاز نیست.", + "title": "ویژگی محدود شده" + }, + "restrictedContent": "محتوای محدود شده", + "restrictedContentInfo": "انتخاب کنید که آیا می‌خواهید گروه‌ها و جوامعی را ببینید که پرچم‌های نظارت زیر اعمال شده است یا خیر.", + "retryMessage": "پیام را دوباره امتحان کنید", + "revealDeletedMessage": "فاش کردن پیام", + "roadmap": "نقشه راه", + "role": { + "admin": "ادمین ها", + "default": "پیش فرض", + "member": "اعضا", + "moderator": "مدیران", + "none": "هيچ كس", + "owner": "صاحبان" + }, + "roleChanged": "{changedBy} نقش {changed} را از {oldRole} به {newRole} تغییر داد", + "rules": { + "accept": "تایید کنید", + "acceptTitle": "قوانین چت", + "channelRulesExplanation": "اینها پیشوند هر قواعد انجمن خواهند بود", + "communityRulesExplanation": "هر گونه قوانین کانال پیشوند این قوانین خواهد بود", + "enable": "قوانین را فعال کنید", + "instructions": "در صورت فعال بودن، اعضای جدید قبل از ارسال پیام باید با قوانین موافقت کنند.", + "levelRules": "قوانین {level}", + "placeholder": "قوانین {level} چیست؟", + "promptExistingUsers": "درخواست اعضای موجود", + "promptExistingUsersInstructions": "اعضای موجود قبل از ارسال پیام باید با قوانین جدید موافقت کنند.", + "reject": "رد کردن", + "rules": "قوانین" + }, + "save": "صرفه جویی", + "search": "جستجو کردن...", + "searchChannelsPlaceholder": "جستجوی کانال ها...", + "searchChat": "جستجو کردن", + "searchFavouritesPlaceholder": "موارد دلخواه خود را جستجو کنید...", + "searchForUsername": "نام کاربری را جستجو کنید", + "searchGroupsPlaceholder": "جستجو برای گروه ها...", + "searchPlaceholder": "جستجوی کاربران و گروه ها...", + "searchUsersPlaceholder": "جستجوی کاربران...", + "selectAChannel": "یک کانال را از لیست انتخاب کنید یا کانال های بیشتری را در این انجمن جستجو کنید.", + "selectAChat": "یک دوست را جستجو کنید، یک گروه جدید ایجاد کنید یا یک چت را انتخاب کنید.", + "selectAFavourite": "می‌توانید چت‌های مستقیم، چت‌های گروهی یا کانال‌های انجمن را به موارد دلخواه خود اضافه کنید و آنها را در اینجا خواهید دید.", + "selectAGroup": "یک گروه را برای پیش نمایش یا پیوستن انتخاب کنید.", + "selectAGroupChat": "یک گروه را از لیست انتخاب کنید یا یک گروه جهانی را برای پیوستن جستجو کنید.", + "selectAUser": "یک کاربر را از لیست انتخاب کنید یا کاربری را برای چت جستجو کنید.", + "selectCommunityTheme": "یک موضوع انجمن را انتخاب کنید", + "send": "ارسال", + "sendGif": "گیف ارسال کنید", + "sendMessage": "پیام فرستادن", + "sendMessageDisabledAnon": "لطفا برای فرستادن پیام وارد شوید", + "sendTextDisabled": "پیامک غیرفعال است", + "sendTo": "فرستادن به...", + "sessionExpired": "جلسه تمام شده", + "sessionExpiredBlurb": "لطفاً دوباره وارد شوید", + "share": "اشتراک گذاری", + "showFilters": "نمایش فیلترها", + "showPinned": "نمایش پین شده", + "showPreview": "نمایش پیش نمایش", + "showTweet": "نمایش توییت", + "showVideo": "نمایش ویدیو", + "skip": "پرش کنید", + "startNewChat": "یک چت جدید شروع کنید", + "stats": { + "audioMessages": "پیام صوتی", + "cryptoTransfers": "پیام رمزنگاری شده", + "deletedMessages": "پیام های حذف شده", + "fileMessages": "پیام فایل", + "giphyMessages": "پیام گیفی", + "groupStats": "آمار {level}", + "icpTransfers": "پیام ICP", + "imageMessages": "پیام تصویری", + "pollMessages": "پیام نظرسنجی", + "pollVotes": "آرای نظرسنجی", + "reactions": "واکنش ها", + "replies": "پاسخ می دهد", + "reportedMessages": "پیام های گزارش شده", + "reportedMessagesInfo": "پیام های ارسال شده توسط شما که توسط دیگران حذف یا گزارش شده است. این ممکن است به عنوان نشانه ای استفاده شود که شما کمک مثبتی به جامعه نمی کنید.", + "textMessages": "پیام متنی", + "userStats": "آمار کاربر", + "videoMessages": "پیام تصویری" + }, + "stopRecording": "ضبط را متوقف کنید", + "storage": "ذخیره سازی", + "storageUsed": "{used} گیگابایت از {limit} گیگابایت استفاده شده است", + "submit": "ارسال", + "submitNewGroup": "گروه ایجاد کنید", + "supportsMarkdown": "از نشانه گذاری پشتیبانی می کند", + "suspend": "تعلیق کند", + "suspendedUser": "کاربر تعلیق شده", + "suspendUser": "تعلیق کاربر", + "switchDomain": { + "blurb": "شما در حال حاضر از دامنه [{currentDomain}]({currentDomain}) استفاده می کنید.

    از این دامنه قدیمی اعلان دریافت نخواهید کرد و به زودی به طور کلی بازنشسته خواهد شد.

    *برای ادامه استفاده از OpenChat و بهره مندی کامل از بهینه سازی عملکرد مداوم، لطفاً به دامنه جدید ما [https://oc.app](https://oc.app) بروید*

    اگر ذخیره کرده اید سایت را در صفحه اصلی خود، باید حذف/حذف نصب کنید و دوباره از دامنه جدید در صفحه اصلی ذخیره کنید.

    ", + "continue": "ادامه هید", + "title": "لطفاً به دامنه جدید ما بروید" + }, + "tapForReferralLink": "برای کپی کردن پیوند ارجاع شخصی خود ضربه بزنید", + "tapToLogin": "حالت مهمان - برای ورود به سیستم اینجا ضربه بزنید", + "tellMeMore": "اطلاعات بیشتر", + "theInternetComputer": "کامپیوتر اینترنتی", + "theme": { + "dark": "تاریک", + "light": "سبک", + "preferredDarkTheme": "تم تیره ترجیحی", + "preferredLightTheme": "تم سبک ترجیحی", + "system": "سیستم", + "title": "موضوع" + }, + "thisIsPrivateGroupWithN": "این یک {level} خصوصی با اعضای {number} است", + "thisIsPublicGroupWithN": "این یک {level} عمومی با اعضای {number} است", + "thread": { + "lastMessage": "(آخرین پیام {date}) ", + "menu": "پاسخ در تاپیک", + "moreMessages": "- {number} پیام(های) بیشتر -", + "nreplies": "{number} {replies} {message}", + "open": "باز کن", + "openThread": "تاپیک باز کن ", + "previewFailure": "بارگیری پیش نمایش های رشته امکان پذیر نیست", + "previewTitle": "موضوعات", + "replies": "پاسخ می دهد", + "reply": "پاسخ", + "title": "نخ", + "unread": "{count} رشته(های) با پیام های خوانده نشده" + }, + "throttleMessage": "پیام‌ها متوقف شدند - در {time}s از سر گرفته می‌شوند", + "tip": { + "advice": "هر چند بار که دوست دارید ضربه بزنید تا انعام بگذارید", + "failure": "متأسفیم که نتوانستیم نکته شما را اضافه کنیم", + "menu": "نکته", + "noExchangeRate": "ما هیچ نرخ تبدیلی برای {token} نداریم", + "plusFee": "+ هزینه {fee} {token}", + "showCustom": "مقدار انعام سفارشی", + "title": "نکته" + }, + "today": "امروز", + "toggleBlockMarkdown": "علامت‌گذاری سطح بلوک را تغییر دهید", + "toggleMuteNotificationsFailed": "اعلان‌ها نمی‌توانند {operation} باشند", + "toggleMuteNotificationsSucceeded": "اعلان‌ها با موفقیت {operation}", + "toggleTranslationEditMode": "تغییر وضعیت اصلاحات ترجمه", + "tokenSwap": { + "back": "بازگشت", + "findingAvailableTokens": "یافتن نشانه های موجود برای مبادله...", + "getTokenSwapsError": "خطا در دریافت مبادله برای {tokenIn}", + "noQuotes": "هیچ DEX پیشنهادی برای مبادله {tokenIn} ارائه نکرد", + "progress": { + "deposit": "انتقال {amountIn} {tokenIn} به {dex}", + "done": "تعویض کامل شد", + "error": "خطای مبادله - هیچ وجهی گم نشده است", + "failed": "مبادله ناموفق - نرخ ارز تغییر کرده است", + "get": "دریافت حساب سپرده", + "insufficientFunds": "مبادله ناموفق - بودجه کافی نیست", + "notify": "از واریز به {dex} اطلاع دهید", + "refund": "بازپرداخت {amountIn} {tokenIn} از {dex}", + "swap": "به {dex} دستور دهید تا مبادله را انجام دهد", + "withdraw": "برداشتن {amountOut} {tokenOut} از {dex}" + }, + "quote": "نقل قول", + "quoteError": "خطا در دریافت نقل قول برای تعویض {tokenIn}", + "quoteTooLow": "بهترین نرخ نقل شده {rate} {tokenOut} به ازای هر {tokenIn} از {dex} است. این به {amountOut} {tokenOut} برای {amountIn} {tokenIn} می‌دهد. فقط در صورتی می‌توانید مبادله کنید که مبلغ نقل‌شده از {minAmountOut} بیشتر باشد.", + "requote": "نقل قول مجدد", + "swap": "تعویض کنید", + "swapInfo": "بهترین نرخ نقل شده **{rate}** {tokenOut} در هر {tokenIn} از {dex} است. این کار **{amountOut}** {tokenOut} را برای **{amountIn}** {tokenIn} می‌دهد. مبادله تنها در صورتی انجام می شود که مبلغ {tokenOut} دریافتی حداقل 98 درصد مبلغ ذکر شده باشد. آیا می‌خواهید ادامه دهید و «{swap}» را امتحان کنید؟", + "swapNotAvailable": "در حال حاضر امکان تعویض {tokenIn} با هیچ توکن دیگری وجود ندارد", + "swapToken": "تعویض {tokenIn}", + "swapTokenTo": "تعویض {tokenIn} به {tokenOut}" + }, + "tokenTransfer": { + "accountNameTaken": "شما قبلاً یک حساب کاربری با این نام دارید", + "amount": "میزان", + "chooseAddress": "یکی از آدرس های ذخیره شده خود را انتخاب کنید", + "chooseReceiver": "نام کاربری گیرنده را وارد کنید", + "confirm": "تایید", + "confirmedSent": "{sender} {amount} {token} را به {receiver} ارسال کرد", + "done": "تازه کردن و ادامه دادن", + "enterAccountName": "یک نام برای این حساب وارد کنید", + "failedToSaveAccount": "متأسفیم، نتوانستیم حساب شما را ذخیره کنیم", + "fee": "هزینه های {fee} {token} اضافه خواهد شد", + "makeDeposit": "لطفا به حساب بالا واریز کنید و موجودی خود را تازه کنید.", + "max": "حداکثر", + "message": "پیام", + "messagePlaceholder": "شامل یک پیام اختیاری", + "pendingSent": "{sender} در حال ارسال {amount} {token} به {receiver} است", + "pendingSentByYou": "شما در حال ارسال {amount} {token} به {receiver} هستید", + "receiver": "گیرنده", + "saveAccount": "صرفه جویی", + "saveAccountMessage": "آیا می‌خواهید این حساب را برای دسترسی آسان‌تر دفعه بعد ذخیره کنید؟", + "send": "ارسال", + "title": "ارسال {token}", + "transfer": "انتقال {token}", + "unexpected": "یک نوع انتقال رمزنگاری غیرمنتظره دریافت شد", + "viewTransaction": "[تراکنش]({url})", + "warning": "اخطار - این مسئولیت شماست که مطمئن شوید که به هویت و انگیزه های گیرنده اعتماد دارید. OpenChat نمی تواند هیچ انتقال {token} را معکوس کند.", + "yourAccount": "آدرس {token} شما", + "zeroBalance": "شما هیچ {token} ندارید." + }, + "totalChitEarned": "کل CHIT کسب شده", + "transferOwnership": "انتقال مالکیت به", + "transferOwnershipFailed": "انتقال مالکیت ناموفق بود", + "transferOwnershipSucceeded": "مالکیت با موفقیت منتقل شد", + "translateMessage": "ترجمه کردن", + "typeGroupName": "لطفاً **{name}** را برای تأیید تایپ کنید.", + "unableToLoadEmojiPicker": "متاسف! ما نتوانستیم انتخابگر شکلک را بارگیری کنیم. لطفاً دوباره بارگیری کنید و دوباره امتحان کنید.", + "unableToLoadSMSUpgrade": "قبل از ارتقای فضای ذخیره‌سازی شما، باید OpenChat را بازخوانی کنیم. لطفاً دوباره بارگیری کنید و دوباره امتحان کنید.", + "unableToRefreshAccountBalance": "متأسفیم، نتوانستیم موجودی حساب {token} شما را بازخوانی کنیم", + "unableToSaveUserProfile": "نمایه کاربر ذخیره نشد", + "unableToTranslate": "قادر به ترجمه نیست", + "unarchiveChat": "گپ را بایگانی کنید", + "unarchiveChatFailed": "گپ بایگانی نشد", + "unauthorizedToCreatePublicGroup": "شما مجاز به ایجاد گروه های عمومی نیستید", + "unblockedBy": "{changedBy} انسداد {changed} را رفع کرد", + "unblockUser": "رفع انسداد کاربر", + "unblockUserFailed": "رفع انسداد کاربر ممکن نیست", + "unblockUserSucceeded": "کاربر رفع انسداد شده است", + "unblockUserSucceededAddFailed": "کاربر رفع انسداد شده است اما نمی توان آن را دوباره به گروه اضافه کرد", + "undeleteMessage": "حذف حذف کنید", + "undeleteMessageFailed": "لغو حذف پیام انجام نشد", + "undeletingMessage": "لغو حذف پیام توسط {username} در {timestamp}", + "unexpectedError": "خطای غیرمنتظره", + "unfollowThread": "این موضوع را لغو فالو کنید", + "unfollowThreadFailed": "لغو دنبال کردن رشته انجام نشد", + "unfreezeGroup": "گروه را از حالت انجماد خارج کنید", + "unknown": "ناشناخته", + "unknownUser": "کاربر ناشناس", + "unmuted": "بی صدا", + "unmuteNotifications": "لغو نادیده گرفتن اعلان‌ها", + "unpinMessage": "پین را بردارید", + "unpinMessageFailed": "پین پیام برداشته نشد", + "unresolvedReply": "محتوای پیام در دسترس نیست", + "unsavedGroupChanges": "شما تغییراتی در گروه ایجاد کرده اید که هنوز ذخیره نشده است", + "unsuspendedUser": "کاربر تعلیق نشده", + "unsuspendUser": "لغو تعلیق کاربر", + "untranslateMessage": "ترجمه نکردن", + "update": "به روز رسانی", + "updateNow": "اکنون بارگیری مجدد", + "updateRequired": "نسخه جدیدی از OpenChat در دسترس است - بارگیری مجدد در {countdown}s", + "upgrade": { + "airdrops": "Airdrops و پاداش", + "airdropsInfo": "کاربران الماس به طور خودکار واجد شرایط هر ایردراپ یا هدایایی خواهند بود!", + "allSupportedTokens": "همه توکن های پشتیبانی شده", + "autorenew": "تمدید خودکار", + "benefits": "فواید الماس", + "button": "ارتقا دهید", + "cannotExtend": "شما فقط می توانید عضویت خود را ظرف سه ماه پس از انقضا تمدید کنید", + "chatAndIcp": "ICP و چت", + "comingSoon": "به زودی", + "confirm": "تایید", + "congratulations": "اکنون می توانید از ویژگی های الماس ما لذت ببرید!", + "createCommunities": "جوامع ایجاد کنید", + "crypto": "کریپتو ارسال کنید", + "customThemes": "تم های سفارشی", + "diamond": "الماس", + "diamondBadge": "نشان الماس", + "diamondMediaMessages": "5 مگابایت / 50 مگابایت", + "diamondNotifications": "iOS، اندروید و دسکتاپ", + "diamondPrivateGroups": "25", + "diamondPublicGroups": "10", + "diamondStorage": "1 گیگابایت نورد", + "diamondStorageLimit": "1 گیگابایت فضای ذخیره سازی رایگان که پس از آن قدیمی ترین فایل ها به طور خودکار حذف می شوند. داده ها در محدوده ذخیره سازی هرگز منقضی نمی شوند.", + "diamondTextMessages": "تا 4000", + "directChats": "چت های مستقیم", + "displayNames": "اسامی نمایشی", + "eligible": "واجد شرایط", + "expiryMessage": "عضویت الماس شما منقضی می شود {relative} ", + "extend": "الماس را گسترش دهید", + "extendShort": "توسعه دادن، گسترش", + "extendTo": " گسترش دادن به ", + "feature": "ویژگی", + "features": "امکانات", + "featuresTitle": "به Diamond ارتقا دهید", + "forDisplayName": "برای تنظیم نام نمایشی، ارتقا دهید", + "free": "رایگان", + "freeMediaMessages": "1 مگابایت / 5 مگابایت", + "freeNotifications": "iOS، اندروید و دسکتاپ", + "freePrivateGroups": "5", + "freeStorage": "100 مگابایت نورد", + "freeStorageLimit": "100 مگابایت فضای ذخیره سازی رایگان که پس از آن قدیمی ترین فایل ها به طور خودکار حذف می شوند. فایل ها پس از 90 روز منقضی می شوند.", + "freeTextMessages": "تا 1000", + "gatedGroups": "گروه های دروازه ای", + "gatingMsg": "برای ایجاد گروه هایی با دسترسی دروازه ای، باید کاربر Diamond باشید", + "giphys": "Giphys", + "groupMsg": "برای ایجاد حداکثر 10 گروه عمومی و کنترل دسترسی گروهی، باید کاربر Diamond باشید", + "insufficientFunds": "لطفاً مطمئن شوید که حساب {token} شما دارای حداقل {amount} باشد.", + "lifetime": "طول عمر", + "lifetimeMessage": "شما عضویت دایموند مادام العمر دارید.", + "maxMessageLength": "حداکثر طول پیام {number} کاراکتر است", + "mediaLimits": "تصاویر، فایل‌ها و کلیپ‌های صوتی محدود به {image}، ویدیوها محدود به {video} هستند.", + "mediaMessages": "پیام های رسانه ای", + "membership": "عضویت", + "message": "در مورد عضویت در Diamond به من بگویید", + "nftProfile": "عکس پروفایل NFT", + "notifications": "اطلاعیه", + "oneMonth": "یک ماه", + "oneYear": "یک سال", + "p2pSwap": "مبادله p2p را انجام دهید/قبول کنید", + "paymentFailed": "پرداخت برای عضویت Diamond انجام نشد", + "paymentSmallprint": "اگر تصمیم به تمدید خودکار پرداخت خود دارید، باید مطمئن شوید که وجوه کافی در حساب OpenChat ICP خود دارید. ربات OpenChat یک یادآوری دوستانه برای شما ارسال می کند. اگر تصمیم به تمدید خودکار نکنید یا ما نتوانیم پرداخت مناسب را دریافت کنیم، فوراً به طرح رایگان برمی‌گردید و ممکن است فایل‌ها یا رسانه‌هایی را که پست کرده‌اید از دست بدهید.", + "paymentTitle": "پرداخت", + "polls": "ایجاد نظرسنجی", + "privateGroups": "گروه های خصوصی", + "publicGroups": "گروه های عمومی", + "reactions": "واکنش ها", + "reminders": "یادآوری ها", + "storage": "ذخیره سازی", + "textMessages": "پیام های متنی", + "threeMonths": "سه ماه", + "translations": "ترجمه ها", + "upgradeSuccess": "پرداخت شما با موفقیت انجام شد", + "videoCalls": "تماس های تصویری" + }, + "upgradeByTransfer": "ICP", + "upgradeStorage": "فضای ذخیره سازی را ارتقا دهید", + "urlCopiedToClipboard": "نشانی وب گروه در کلیپ بورد کپی شد!", + "useAtOwnRisk": "با مسئولیت خود استفاده کنید", + "userId": "شناسه کاربر", + "userIdCopiedToClipboard": "شناسه کاربر در کلیپ بورد کپی شد", + "userInfoHeader": "عمومی", + "userIsBlocked": "رفع انسداد کاربر برای ارسال پیام", + "userJoined": "{username} به {level} پیوست", + "username": "نام کاربری", + "usernameRules": "فقط حروف اعداد و زیرخط", + "userReferralMessage": "این پیوند را برای OpenChat با دوستان و خانواده به اشتراک بگذارید. تا زمانی که خودتان عضو Diamond هستید، برای هر فردی که با لینک شما ثبت نام می کند و به عضویت Diamond می رود، نیمی از پرداخت های عضویتی را که در سال اول خود انجام می دهد، دریافت خواهید کرد.", + "users": "کاربران", + "userSearchFailed": "در جستجوی کاربران خطایی روی داد", + "version": "نسخه", + "videoCall": { + "accessRequest": "{username} می‌خواهد صحبت کند", + "askToSpeak": "بخواهید صحبت کنید", + "broadcastCallInProgress": "تماس پخشی در این گپ در حال انجام است", + "broadcastStartedBy": "تماس پخشی توسط {username} شروع شد", + "callFailed": "متأسفیم، ما نتوانستیم تماس تصویری را شروع کنیم", + "chat": "چت کنید", + "clickToJoin": "برای پیوستن به تماس کلیک کنید", + "demoteToHidden": "بیننده ایجاد کنید", + "denied": "میزبان درخواست شما برای صحبت را رد کرد", + "duration": "بعد از {duration}", + "ended": "مکالمه تلفنی تمام شد", + "endedAt": "تماس در {time} به پایان رسید", + "hostEnded": "میزبان تماس را پایان داد", + "ignore": "چشم پوشی", + "incoming": "تماس تصویری ورودی", + "join": "به تماس بپیوندید", + "joinVideo": "به تماس تصویری بپیوندید", + "leave": "تماس را ترک کنید", + "leaveVideo": "تماس تصویری را ترک کنید", + "minimise": "به حداقل رساندن", + "noMeetingToJoin": "متأسفیم، جلسه ای که می خواهید به آن بپیوندید به پایان رسیده است", + "participants": "شركت كنندگان", + "presenters": "ارائه دهندگان ({count})", + "remoteStart": "تماس تصویری توسط {name} شروع شده است", + "showParticipants": "نشان دادن شرکت کنندگان", + "startBroadcast": "شروع پخش", + "startedBy": "تماس تصویری توسط {username} شروع شد", + "startVideo": "تماس تصویری را شروع کنید", + "switchCall": "شما در حال حاضر در تماس ویدیویی هستید. آیا می خواهید به این یکی تغییر دهید؟", + "toggleCam": "دوربین خود را تغییر دهید", + "toggleMic": "میکروفون خود را تغییر دهید", + "toggleShare": "اشتراک گذاری دسکتاپ را تغییر دهید", + "viewers": "بینندگان ({count})" + }, + "viewer": "بیننده", + "wallet": "کیف پول", + "walletSettings": "تنظیمات کیف پول", + "websiteVersion": "از وب سایت", + "whatsHot": "چه داغ است؟", + "whitepaper": "کاغذ سفید", + "yes": "آره", + "yesPlease": "بله لطفا", + "yesterday": "دیروز", + "you": "شما", + "yourAccountIsSuspended": "حساب شما به حالت تعلیق درآمده", + "yourChats": "چت های شما", + "youreBlocked": "با عرض پوزش - شما از این گروه مسدود شده اید", + "yourRoleChanged": "{changedBy} نقش شما را از {oldRole} به {newRole} تغییر داد" +} \ No newline at end of file diff --git a/frontend/app/src/i18n/fr.json b/frontend/app/src/i18n/fr.json index d68b6b5a9c..d95b42b092 100644 --- a/frontend/app/src/i18n/fr.json +++ b/frontend/app/src/i18n/fr.json @@ -1536,4 +1536,4 @@ "yourChats": "Vos discussions", "youreBlocked": "Désolé - vous avez été bloqué de ce groupe", "yourRoleChanged": "{changedBy} a changé votre rôle de {oldRole} à {newRole}" -} +} \ No newline at end of file diff --git a/frontend/app/src/i18n/i18n.ts b/frontend/app/src/i18n/i18n.ts index ad71f2e61d..92b3444e34 100644 --- a/frontend/app/src/i18n/i18n.ts +++ b/frontend/app/src/i18n/i18n.ts @@ -22,6 +22,7 @@ export const translationCodes: Record = { uk: "uk", vi: "vi", pl: "pl", + fa: "fa", }; export const supportedLanguages = [ @@ -77,6 +78,10 @@ export const supportedLanguages = [ name: "Polski", code: "pl", }, + { + name: "فارسی", + code: "fa", + }, ]; export const supportedLanguagesByCode = supportedLanguages.reduce( @@ -101,6 +106,7 @@ register("ru", () => import("./ru.json")); register("uk", () => import("./uk.json")); register("vi", () => import("./vi.json")); register("pl", () => import("./pl.json")); +register("fa", () => import("./fa.json")); export function getStoredLocale(): string { const fromStorage = localStorage.getItem(configKeys.locale); diff --git a/frontend/app/src/stores/rtl.ts b/frontend/app/src/stores/rtl.ts index 95997c13ab..02cb9e089e 100644 --- a/frontend/app/src/stores/rtl.ts +++ b/frontend/app/src/stores/rtl.ts @@ -1,6 +1,9 @@ import { derived } from "svelte/store"; import { locale } from "svelte-i18n"; -const rtlStore = derived(locale, ($locale) => $locale === "ar" || $locale === "iw"); +const rtlStore = derived( + locale, + ($locale) => $locale === "ar" || $locale === "iw" || $locale === "fa", +); export { rtlStore };