diff --git a/apps/remix-dapp/src/components/SettingsUI/locale.tsx b/apps/remix-dapp/src/components/SettingsUI/locale.tsx index 1e1471a8728..73a13dcea70 100644 --- a/apps/remix-dapp/src/components/SettingsUI/locale.tsx +++ b/apps/remix-dapp/src/components/SettingsUI/locale.tsx @@ -1,5 +1,5 @@ -import { useContext, useEffect } from 'react'; -import { AppContext } from '../../contexts'; +import { useContext, useEffect } from 'react' +import { AppContext } from '../../contexts' const localeMap: Record = { zh: 'Chinese Simplified - 简体中文', @@ -7,26 +7,26 @@ const localeMap: Record = { fr: 'French - Français', it: 'Italian - Italiano', es: 'Spanish - Español', -}; + ir: 'Persian - فارسی', +} export function LocaleUI() { - const { appState, dispatch } = useContext(AppContext); - const { selectedLocaleCode } = appState.settings; - const localeCodeList = Object.keys(localeMap); + const { appState, dispatch } = useContext(AppContext) + const { selectedLocaleCode } = appState.settings + const localeCodeList = Object.keys(localeMap) useEffect(() => { - const defaultLocaleCode = - localStorage.getItem('selectedLocaleCode') || 'en'; - setLocaleCode(defaultLocaleCode); - }, []); + const defaultLocaleCode = localStorage.getItem('selectedLocaleCode') || 'en' + setLocaleCode(defaultLocaleCode) + }, []) const setLocaleCode = (localeCode: string) => { dispatch({ type: 'SET_SETTINGS', payload: { selectedLocaleCode: localeCode }, - }); - localStorage.setItem('selectedLocaleCode', localeCode); - }; + }) + localStorage.setItem('selectedLocaleCode', localeCode) + } return (
@@ -38,7 +38,7 @@ export function LocaleUI() { className="form-control overflow-hidden w-100 font-weight-normal custom-select pr-4" value={selectedLocaleCode || localeCodeList[0]} onChange={(e) => { - setLocaleCode(e.target.value); + setLocaleCode(e.target.value) }} > {localeCodeList.map((localeCode) => ( @@ -49,5 +49,5 @@ export function LocaleUI() {
- ); + ) } diff --git a/apps/remix-ide/src/app/tabs/locale-module.js b/apps/remix-ide/src/app/tabs/locale-module.js index 5ce5048ab14..e37c7e5a31f 100644 --- a/apps/remix-ide/src/app/tabs/locale-module.js +++ b/apps/remix-ide/src/app/tabs/locale-module.js @@ -2,7 +2,7 @@ import { Plugin } from '@remixproject/engine' import { EventEmitter } from 'events' import { QueryParams } from '@remix-project/remix-lib' import * as packageJson from '../../../../../package.json' -import {Registry} from '@remix-project/remix-lib' +import { Registry } from '@remix-project/remix-lib' import enJson from './locales/en' import zhJson from './locales/zh' import esJson from './locales/es' @@ -10,6 +10,7 @@ import frJson from './locales/fr' import itJson from './locales/it' import koJson from './locales/ko' import ruJson from './locales/ru' +import irJson from './locales/ir' const _paq = window._paq = window._paq || [] const locales = [ @@ -19,7 +20,8 @@ const locales = [ { code: 'it', name: 'Italian', localeName: 'Italiano', messages: itJson }, { code: 'ko', name: 'Korean', localeName: '한국인', messages: koJson }, { code: 'ru', name: 'Russian', localeName: 'Русский', messages: ruJson }, - { code: 'es', name: 'Spanish', localeName: 'Español', messages: esJson } + { code: 'es', name: 'Spanish', localeName: 'Español', messages: esJson }, + { code: 'ir', name: 'Persian', localeName: 'فارسی', messages: irJson } ] const profile = { @@ -31,7 +33,7 @@ const profile = { } export class LocaleModule extends Plugin { - constructor () { + constructor() { super(profile) this.events = new EventEmitter() this._deps = { @@ -56,12 +58,12 @@ export class LocaleModule extends Plugin { } /** Return the active locale */ - currentLocale () { + currentLocale() { return this.locales[this.active] } /** Returns all locales as an array */ - getLocales () { + getLocales() { return Object.keys(this.locales).map(key => this.locales[key]) } @@ -69,7 +71,7 @@ export class LocaleModule extends Plugin { * Change the current locale * @param {string} [localeCode] - The code of the locale */ - switchLocale (localeCode) { + switchLocale(localeCode) { localeCode = localeCode && localeCode.toLocaleLowerCase() if (localeCode && !Object.keys(this.locales).includes(localeCode)) { throw new Error(`Locale ${localeCode} doesn't exist`) @@ -77,7 +79,7 @@ export class LocaleModule extends Plugin { const next = localeCode || this.active // Name if (next === this.active) return // --> exit out of this method _paq.push(['trackEvent', 'localeModule', 'switchTo', next]) - + const nextLocale = this.locales[next] // Locale if (!this.forced) this._deps.config.set('settings/locale', next) diff --git a/apps/remix-ide/src/app/tabs/locales/ir/circuit.json b/apps/remix-ide/src/app/tabs/locales/ir/circuit.json new file mode 100644 index 00000000000..c10c9b599d3 --- /dev/null +++ b/apps/remix-ide/src/app/tabs/locales/ir/circuit.json @@ -0,0 +1,26 @@ +{ + "circuit.compiler": "کامپایلر", + "circuit.autoCompile": "کامپایل خودکار", + "circuit.hideWarnings": "پنهان کردن هشدارها", + "circuit.advancedConfigurations": "تنظیمات پیشرفته", + "circuit.compilerConfiguration": "پیکربندی کامپایلر", + "circuit.prime": "اول", + "circuit.useConfigurationFile": "استفاده از فایل پیکربندی", + "circuit.compile": "کامپایل", + "circuit.noFileSelected": "هیچ فایلی انتخاب نشده است", + "circuit.generateR1cs": "تولید R1CS", + "circuit.computeWitness": "محاسبه شاهد", + "circuit.generateProof": "تولید اثبات", + "circuit.signalInput": "ورودی سیگنال", + "circuit.compute": "محاسبه", + "circuit.setupExports": "راه اندازی و خروجی ها", + "circuit.provingScheme": "طرح اثبات", + "circuit.ptau": "قدرت TAU (PTAU)", + "circuit.randomText": "مراسم: متن تصادفی", + "circuit.randomBeacon": "مراسم: چراغ تصادفی", + "circuit.exportVerifierContract": "خروجی قرارداد تأیید کننده", + "circuit.exportVerificationKey": "خروجی کلید تأیید", + "circuit.exportVerifierCalldata": "خروجی داده تماس تأیید کننده", + "circuit.exportWtnsJson": "خروجی شاهد به عنوان JSON", + "circuit.runSetup": "اجرای راه اندازی" +} diff --git a/apps/remix-ide/src/app/tabs/locales/ir/contractverification.json b/apps/remix-ide/src/app/tabs/locales/ir/contractverification.json new file mode 100644 index 00000000000..a5ca4006b06 --- /dev/null +++ b/apps/remix-ide/src/app/tabs/locales/ir/contractverification.json @@ -0,0 +1,28 @@ +{ + "contract-verification.verifyNavTitle": "تأیید", + "contract-verification.receiptsNavTitle": "رسیدها", + "contract-verification.lookupNavTitle": "جستجو", + "contract-verification.settingsNavTitle": "تنظیمات", + "contract-verification.contractAddressInput": "آدرس قرارداد", + "contract-verification.proxyContractAddressInput": "آدرس پروکسی", + "contract-verification.proxyInputLabel": "قرارداد مستقر شده پشت یک پروکسی است", + "contract-verification.panelDisplayName": "تأیید قرارداد", + "contract-verification.searchableChainDropdownLabel": "زنجیره", + "contract-verification.contractAddressError": "لطفاً یک آدرس قرارداد معتبر وارد کنید", + "contract-verification.chainError": "لطفاً زنجیره را انتخاب کنید.", + "contract-verification.proxyAddressError": "لطفاً یک آدرس قرارداد پروکسی معتبر ارائه دهید.", + "contract-verification.verifyButton": "تأیید", + "contract-verification.lookupButton": "جستجو", + "contract-verification.receipts.noContractsSubmitted": "هیچ قراردادی برای تأیید ارسال نشده است", + "contract-verification.receiptsDefaultLayout.description": "وضعیت تأیید قراردادهای ارسال شده برای تأیید را بررسی کنید", + "contract-verification.verifyDefaultLayout.description": "قراردادهای کامپایل شده را در سرویس های تأیید مختلف تأیید کنید", + "contract-verification.lookupDefaultLayout.description": "قراردادهای تأیید شده را جستجو کرده و آنها را در Remix بارگیری کنید", + "contract-verification.settingsDefaultLayout.description": "تنظیمات را برای هر سرویس تأیید و زنجیره سفارشی کنید", + "contract-verification.configInputPlaceholderText": "افزودن {label}", + "contract-verification.configInputSaveButton": "ذخیره", + "contract-verification.configInputCancelButton": "لغو", + "contract-verification.constructorArgumentsToggleRawInput": "آرگومان های سازنده کدگذاری شده با ABI خام را وارد کنید", + "contract-verification.constructorArgumentsRawAbiEncodingResult": "آرگومان های سازنده کدگذاری شده با ABI", + "contract-verification.contractDropdownLabel": "{label}", + "contract-verification.contractDropDownDefaultText": "قرارداد کامپایل شده مورد نیاز است" +} diff --git a/apps/remix-ide/src/app/tabs/locales/ir/debugger.json b/apps/remix-ide/src/app/tabs/locales/ir/debugger.json new file mode 100644 index 00000000000..2503af8e745 --- /dev/null +++ b/apps/remix-ide/src/app/tabs/locales/ir/debugger.json @@ -0,0 +1,26 @@ +{ + "debugger.displayName": "دیباگر", + "debugger.debuggerConfiguration": "پیکربندی دیباگر", + "debugger.stopDebugging": "توقف دیباگ", + "debugger.provideTxNumber": "لطفاً یک هش تراکنش معتبر ارائه دهید", + "debugger.startDebugging": "شروع دیباگ", + "debugger.placeholder": "هش تراکنش، باید با 0x شروع شود", + "debugger.debugLocaNodeLabel": "اجبار به استفاده از گره محلی", + "debugger.useGeneratedSources": "استفاده از منابع تولید شده", + "debugger.debugWithGeneratedSources": "در صورت انتخاب، دیباگر همچنین از طریق فایل .yul کامپایل شده در صورت وجود عبور خواهد کرد.", + "debugger.introduction": "هنگام دیباگ با هش تراکنش، اگر قرارداد تأیید شده باشد، Remix سعی خواهد کرد کد منبع را از Sourcify یا Etherscan دریافت کند. کلید API Etherscan خود را در تنظیمات Remix قرار دهید. برای شبکه های پشتیبانی شده، لطفاً ببینید", + "debugger.forceToUseCurrentLocalNode": "دیباگر را مجبور به استفاده از گره محلی فعلی کنید", + "debugger.sourceLocationStatus1": "در حال تعیین محل نقطه شکست، این ممکن است مدتی طول بکشد...", + "debugger.sourceLocationStatus2": "محل منبع در دسترس نیست، نه در Sourcify و نه در Etherscan. لطفاً مطمئن شوید که کلید api Etherscan در تنظیمات ارائه شده است.", + "debugger.sourcifyDocs": "اسناد Sourcify", + "debugger.noDataAvailable": "داده ای موجود نیست", + "debugger.loadMore": "بارگیری بیشتر", + "debugger.copy": "کپی", + "debugger.stepOverBack": "گام به عقب", + "debugger.stepBack": "گام به عقب", + "debugger.stepInto": "گام به داخل", + "debugger.stepOverForward": "گام به جلو", + "debugger.jumpPreviousBreakpoint": "پرش به نقطه شکست قبلی", + "debugger.jumpOut": "پرش به بیرون", + "debugger.jumpNextBreakpoint": "پرش به نقطه شکست بعدی" +} diff --git a/apps/remix-ide/src/app/tabs/locales/ir/editor.json b/apps/remix-ide/src/app/tabs/locales/ir/editor.json new file mode 100644 index 00000000000..dcc92a900f9 --- /dev/null +++ b/apps/remix-ide/src/app/tabs/locales/ir/editor.json @@ -0,0 +1,37 @@ +{ + "editor.keyboardShortcuts": "میانبرهای صفحه کلید", + "editor.keyboardShortcuts.text1": "کامپایل قرارداد فعلی", + "editor.keyboardShortacts.text2": "باز کردن کاوشگر فایل", + "editor.keyboardShortcuts.text3": "باز کردن مدیر افزونه", + "editor.keyboardShortcuts.text4": "کامپایل قرارداد فعلی و اجرای اسکریپت مرتبط", + "editor.editorKeyboardShortcuts": "میانبرهای صفحه کلید ویرایشگر", + "editor.editorKeyboardShortcuts.text1": "قالب بندی کد در فایل فعلی", + "editor.importantLinks": "پیوندهای مهم", + "editor.importantLinks.text1": "وب سایت رسمی در مورد پروژه Remix", + "editor.importantLinks.text2": "مستندات رسمی", + "editor.title1": "هشدار کد جایگذاری شده", + "editor.title1.message1": "شما به تازگی یک قطعه کد یا قرارداد را در ویرایشگر جایگذاری کرده اید.", + "editor.title1.message2": "قبل از استقرار یا تعامل با این کد، مطمئن شوید که آن را کاملاً درک کرده اید. کلاهبرداری نشوید!", + "editor.title1.message3": "اجرای کد نامعتبر می تواند کیف پول شما را در معرض خطر قرار دهد. در بدترین حالت، می توانید تمام پول خود را از دست بدهید .", + "editor.title1.message4": "اگر آن را کاملاً درک نمی کنید، لطفاً این کد را اجرا نکنید.", + "editor.title1.message5": "اگر شما یک توسعه دهنده قرارداد هوشمند نیستید، از کسی که به او اعتماد دارید و مهارت های لازم برای تعیین ایمن بودن این کد را دارد، بپرسید.", + "editor.title1.message6": "برای اطلاعات بیشتر این توصیه ها را ببینید.", + "editor.zoomIn": "بزرگنمایی", + "editor.zoomOut": "کوچک نمایی", + "editor.formatCode": "قالب بندی کد", + "editor.generateDocumentation": "تولید مستندات برای این تابع", + "editor.generateDocumentation2": "تولید مستندات برای تابع \"{name}\"", + "editor.generateDocumentationByAI": "```solidity\n {content}\n```\n مستندات natspec را برای تابع {currentFunction} با استفاده از نحو و برچسب های سبک docstring پشتیبانی شده تولید یا بهبود دهید. فقط نظرات و اعلان تابع را برگردانید، نه متن دیگری.", + "editor.explainFunction": "این تابع را توضیح دهید", + "editor.explainFunctionSol": "این کد را توضیح دهید", + "editor.explainFunction2": "تابع \"{name}\" را توضیح دهید", + "editor.explainFunctionByAI": "```\n{content}\n```\nتابع {currentFunction} را توضیح دهید", + "editor.explainFunctionByAISol": "```\n{content}\n```\nتابع {currentFunction} را توضیح دهید", + "editor.ExplainPipeMessage": "```\n {content}\n```\nقطعه بالا را توضیح دهید", + "editor.PastedCodeSafety": "```\n {content}\n```\n\nبه طور خلاصه پاسخ دهید: آیا این کد حاوی آسیب پذیری های امنیتی عمده ای است که منجر به کلاهبرداری یا از دست دادن وجوه می شود؟", + "editor.executeFreeFunction": "اجرای یک تابع آزاد", + "editor.executeFreeFunction2": "اجرای تابع آزاد \"{name}\"", + "editor.toastText1": "این فقط می تواند تابع آزاد را اجرا کند", + "editor.toastText2": "لطفاً به تنظیمات Remix بروید و ویژگی های ویرایشگر کد را فعال کنید یا منتظر بمانید تا زمینه ویرایشگر فعلی بارگیری شود.", + "editor.text": "فایل در حالت فقط خواندنی باز شده است." +} diff --git a/apps/remix-ide/src/app/tabs/locales/ir/electron.json b/apps/remix-ide/src/app/tabs/locales/ir/electron.json new file mode 100644 index 00000000000..cf26204574c --- /dev/null +++ b/apps/remix-ide/src/app/tabs/locales/ir/electron.json @@ -0,0 +1,7 @@ +{ + "electron.openFolder": "باز کردن پوشه", + "electron.createProject": "ایجاد پروژه جدید", + "electron.recentFolders": "پوشه های اخیر", + "electron.gitClone": "کلون کردن یک مخزن گیت", + "electron.openFolderMessage": "برای استفاده از ویژگی های گیت، می توانید یک پوشه را باز کنید یا یک مخزن را کلون کنید." +} diff --git a/apps/remix-ide/src/app/tabs/locales/ir/filePanel.json b/apps/remix-ide/src/app/tabs/locales/ir/filePanel.json new file mode 100644 index 00000000000..6b7926c35eb --- /dev/null +++ b/apps/remix-ide/src/app/tabs/locales/ir/filePanel.json @@ -0,0 +1,157 @@ +{ + "filePanel.displayName": "کاوشگر فایل", + "filePanel.workspace": "فضاهای کاری", + "filePanel.create": "ایجاد", + "filePanel.createLabel": "ایجاد با استفاده از الگو", + "filePanel.createBlank": "ایجاد خالی", + "filePanel.create.desktop": "ایجاد پروژه", + "filePanel.clone": "کلون", + "filePanel.download": "دانلود", + "filePanel.backup": "پشتیبان گیری", + "filePanel.localFileSystem": "اتصال به سیستم فایل محلی", + "filePanel.restore": "بازیابی", + "filePanel.name": "نام", + "filePanel.save": "ذخیره", + "filePanel.workspace.create": "ایجاد فضای کاری با استفاده از الگو", + "filePanel.workspace.createBlank": "ایجاد فضای کاری خالی", + "filePanel.workspace.create.desktop": "ایجاد پروژه در پوشه جدید", + "filePanel.workspace.rename": "تغییر نام فضای کاری", + "filePanel.workspace.save_workspace": "ذخیره فضای کاری", + "filePanel.workspace.delete": "حذف فضای کاری", + "filePanel.workspace.deleteConfirm": "آیا از حذف فضای کاری فعلی مطمئن هستید؟", + "filePanel.workspace.download": "دانلود فضای کاری", + "filePanel.workspace.downloadConfirm": "این کار فضای کاری فعلی را در یک فایل فشرده دانلود می کند. آیا می خواهید ادامه دهید؟", + "filePanel.workspace.deleteAll": "حذف همه فضاهای کاری", + "filePanel.workspace.deleteAllConfirm1": "آیا کاملاً مطمئن هستید که می خواهید همه فضاهای کاری خود را حذف کنید؟", + "filePanel.workspace.deleteAllConfirm2": "فضاهای کاری حذف شده به هیچ وجه قابل بازیابی نیستند.", + "filePanel.workspace.name": "نام فضای کاری", + "filePanel.workspace.chooseTemplate": "یک الگو انتخاب کنید", + "filePanel.workspace.backup": "پشتیبان گیری از همه فضاهای کاری", + "filePanel.workspace.restore": "بازیابی فضاهای کاری از پشتیبان", + "filePanel.workspace.localFileSystem": "اتصال به سیستم فایل محلی با استفاده از Remixd", + "filePanel.workspace.clone": "کلون کردن مخزن گیت", + "filePanel.workspace.cloneMessage": "لطفاً یک آدرس مخزن گیت معتبر ارائه دهید.", + "filePanel.workspace.enterGitUrl": "آدرس مخزن گیت را وارد کنید", + "filePanel.workspace.switch": "تغییر به فضای کاری", + "filePanel.workspace.solghaction": "یک فایل yml از پیش تعیین شده برای اجرای تست های واحد solidity در CI اقدامات github اضافه می کند.", + "filePanel.solghaction": "گردش کار تست Solidity", + "filePanel.workspace.tssoltestghaction": "یک فایل yml از پیش تعیین شده برای اجرای تست های mocha و chai برای solidity در CI اقدامات github اضافه می کند", + "filePanel.tssoltestghaction": "گردش کار تست Mocha Chai", + "filePanel.workspace.addscriptetherscan": "اسکریپت هایی را اضافه می کند که می توانند برای تعامل با Etherscan API استفاده شوند", + "filePanel.addscriptetherscan": "افزودن اسکریپت های Etherscan", + "filePanel.workspace.addscriptsindri": "اسکریپت هایی برای تعامل با Sindri، یک سرویس راه دور تولید اثبات zk اضافه می کند", + "filePanel.addscriptsindri": "افزودن اسکریپت های Sindri ZK", + "filePanel.workspace.addcreate2solidityfactory": "قراردادی که به شما امکان می دهد با استفاده از CREATE2 یک قرارداد را مستقر کنید.", + "filePanel.addcreate2solidityfactory": "افزودن کارخانه Create2 Solidity", + "filePanel.workspace.addscriptdeployer": "اسکریپت هایی را اضافه می کند که می توانند برای استقرار قراردادها استفاده شوند", + "filePanel.addscriptdeployer": "افزودن اسکریپت های استقرار قرارداد", + "filePanel.workspace.slitherghaction": "یک فایل yml از پیش تعیین شده برای اجرای تجزیه و تحلیل slither در CI اقدامات github اضافه می کند", + "filePanel.slitherghaction": "گردش کار Slither", + "filePanel.workspace.helperscripts": "اسکریپت های مناسب را به دایرکتوری 'scripts' اضافه می کند", + "filePanel.helperscripts": "اسکریپت های وب 3", + "filePanel.newFile": "فایل جدید", + "filePanel.newFolder": "پوشه جدید", + "filePanel.rename": "تغییر نام", + "filePanel.delete": "حذف", + "filePanel.deleteAll": "حذف همه", + "filePanel.run": "اجرا", + "filePanel.pushChangesToGist": "ارسال تغییرات به gist", + "filePanel.publishFolderToGist": "انتشار پوشه در gist", + "filePanel.publishFileToGist": "انتشار فایل در gist", + "filePanel.copy": "کپی", + "filePanel.copyFileName": "کپی نام", + "filePanel.copyFilePath": "کپی مسیر", + "filePanel.contractflattener": "مسطح کردن", + "filePanel.nahmii-compiler": "کامپایل برای Nahmii", + "filePanel.solidityumlgen": "تولید UML", + "filePanel.doc-gen": "تولید اسناد", + "filePanel.solidity": "کامپایل", + "filePanel.paste": "چسباندن", + "filePanel.compile": "کامپایل", + "filePanel.compileForNahmii": "کامپایل برای Nahmii", + "filePanel.createNewFile": "ایجاد فایل جدید", + "filePanel.createNewFolder": "ایجاد پوشه جدید", + "filePanel.publishToGist": "انتشار در Gist", + "filePanel.workspace.publishToGist": "انتشار فضای کاری در GitHub Gist", + "filePanel.uploadFile": "باز کردن یک فایل از سیستم فایل شما", + "filePanel.uploadFolder": "آپلود پوشه", + "filePanel.updateGist": "به روز رسانی Gist", + "filePanel.workspace.updateGist": "انتشار به روز رسانی Gist", + "filePanel.viewAllBranches": "مشاهده همه شاخه ها", + "filePanel.createBranch": "ایجاد شاخه", + "filePanel.switchBranches": "تغییر شاخه ها", + "filePanel.checkoutGitBranch": "بررسی شاخه گیت", + "filePanel.findOrCreateABranch": "یک شاخه پیدا یا ایجاد کنید.", + "filePanel.initGitRepositoryLabel": "مقداردهی اولیه فضای کاری به عنوان یک مخزن گیت جدید", + "filePanel.initGitRepositoryWarning": "برای استفاده از ویژگی های گیت، نام کاربری و ایمیل را به بخش Github افزونه گیت اضافه کنید.", + "filePanel.workspaceName": "نام فضای کاری", + "filePanel.customizeTemplate": "سفارشی کردن الگو", + "filePanel.features": "ویژگی ها", + "filePanel.upgradeability": "قابلیت ارتقا", + "filePanel.ok": "تأیید", + "filePanel.yes": "بله", + "filePanel.cancel": "لغو", + "filePanel.selectFolder": "پوشه را انتخاب یا ایجاد کنید", + "filePanel.createNewWorkspace": "ایجاد یک فضای کاری جدید", + "filePanel.connectToLocalhost": "اتصال به سیستم فایل محلی", + "filePanel.copiedToClipboard": "در کلیپ بورد کپی شد {path}", + "filePanel.downloadFailed": "دانلود ناموفق بود", + "filePanel.downloadFailedMsg": "خطای غیرمنتظره هنگام دانلود: {error}", + "filePanel.close": "بستن", + "filePanel.copyFileFailed": "کپی فایل ناموفق بود", + "filePanel.copyFileFailedMsg": "خطای غیرمنتظره هنگام کپی فایل: {src}", + "filePanel.copyFolderFailed": "کپی پوشه ناموفق بود", + "filePanel.copyFolderFailedMsg": "خطای غیرمنتظره هنگام کپی پوشه: {src}", + "filePanel.runScriptFailed": "اجرای اسکریپت ناموفق بود", + "filePanel.createPublicGist": "انتشار در یک gist عمومی", + "filePanel.createPublicGistMsg1": "آیا مطمئن هستید که می خواهید تغییرات را به فایل gist راه دور در github.com ارسال کنید؟", + "filePanel.createPublicGistMsg2": "آیا مطمئن هستید که می خواهید به طور ناشناس همه فایل های خود را در پوشه {path} به عنوان یک gist عمومی در github.com منتشر کنید؟", + "filePanel.createPublicGistMsg3": "آیا مطمئن هستید که می خواهید به طور ناشناس فایل {path} را به عنوان یک gist عمومی در github.com منتشر کنید؟", + "filePanel.createPublicGistMsg4": "آیا مطمئن هستید که می خواهید به طور ناشناس همه فایل های خود را در فضای کاری {name} به عنوان یک gist عمومی در github.com منتشر کنید؟", + "filePanel.deleteMsg": "آیا مطمئن هستید که می خواهید حذف کنید", + "filePanel.theseItems": "این موارد", + "filePanel.thisItem": "این مورد", + "filePanel.deleteItems": "حذف موارد", + "filePanel.deleteItem": "حذف مورد", + "filePanel.globalToast": "نمی توان در حالت فقط خواندنی فایل سیستم را نوشت/تغییر داد.", + "filePanel.basic": "پایه", + "filePanel.blank": "خالی", + "filePanel.multiSigWallet": "کیف پول چند امضایی", + "filePanel.mintable": "قابل ضرب", + "filePanel.burnable": "قابل سوزاندن", + "filePanel.pausable": "قابل توقف", + "filePanel.semaphore": "سمافور", + "filePanel.hashchecker": "بررسی کننده هش", + "filePanel.rln": "ابطال کننده محدود کننده نرخ", + "filePanel.multNr": "ضرب کننده ساده", + "filePanel.stealthDropNr": "دراپ مخفی", + "filePanel.breakthroughLabsUniswapv4Hooks": "هوک های Breakthrough-Labs", + "filePanel.uniswapV4Template": "الگوی v4", + "filePanel.uniswapV4HookBookMultiSigSwapHook": "HookBook MultiSigSwapHook", + "filePanel.transparent": "شفاف", + "filePanel.initGitRepoTitle": "گزینه بررسی برای مقداردهی اولیه فضای کاری به عنوان یک مخزن گیت جدید", + "filePanel.switchToBranchTitle1": "بررسی شاخه جدید از شاخه راه دور", + "filePanel.switchToBranchTitle2": "بررسی به شاخه محلی", + "filePanel.readOnly": "فقط خواندنی", + "filePanel.renameFileFailed": "تغییر نام فایل ناموفق بود", + "filePanel.renameFileFailedMsg": "خطای غیرمنتظره هنگام تغییر نام: {error}", + "filePanel.fileCreationFailed": "ایجاد فایل ناموفق بود", + "filePanel.folderCreationFailed": "ایجاد پوشه ناموفق بود", + "filePanel.validationError": "خطای اعتبارسنجی", + "filePanel.validationErrorMsg": "کاراکترهای خاص مجاز نیستند", + "filePanel.reservedKeyword": "کلمه کلیدی رزرو شده", + "filePanel.reservedKeywordMsg": "نام فایل حاوی کلمات کلیدی رزرو شده Remix است. \"{content}\"", + "filePanel.moveFile": "انتقال فایل ها", + "filePanel.moveFileMsg1": "آیا مطمئن هستید که می خواهید {src} را به {dest} منتقل کنید؟", + "filePanel.movingFileFailed": "انتقال فایل ناموفق بود", + "filePanel.movingFileFailedMsg": "خطای غیرمنتظره هنگام انتقال فایل: {src}", + "filePanel.movingFolderFailed": "انتقال پوشه ناموفق بود", + "filePanel.movingFolderFailedMsg": "خطای غیرمنتظره هنگام انتقال پوشه: {src}", + "filePanel.workspaceActions": "اقدامات فضای کاری", + "filePanel.saveCodeSample": "این فضای کاری نمونه کد پایدار نخواهد بود. برای ذخیره آن اینجا را کلیک کنید.", + "filePanel.logInGithub": "وارد GitHub شوید.", + "filePanel.gitHubLoggedAs": "به عنوان {githubuser} وارد شده اید", + "filePanel.updateSubmodules": "به روز رسانی همه زیر ماژول های مخزن. برای کشیدن وابستگی ها کلیک کنید.", + "filePanel.signTypedData": "امضای داده های تایپ شده", + "filePanel.signTypedDataError": "خطا هنگام امضای این داده های تایپ شده." +} diff --git a/apps/remix-ide/src/app/tabs/locales/ir/git.json b/apps/remix-ide/src/app/tabs/locales/ir/git.json new file mode 100644 index 00000000000..1fc7a012aaa --- /dev/null +++ b/apps/remix-ide/src/app/tabs/locales/ir/git.json @@ -0,0 +1,21 @@ +{ + "git.push": "ارسال", + "git.pull": "دریافت", + "git.commit": "تعهد", + "git.sync": "همگام سازی", + "git.syncchanges": "همگام سازی تغییرات", + "git.publish": "انتشار", + "git.ignore": "نادیده گرفتن", + "git.createBranch": "ایجاد شاخه", + "git.deleteBranch": "حذف شاخه", + "git.mergeBranch": "ادغام شاخه", + "git.rebaseBranch": "ریبیس شاخه", + "git.checkout": "بررسی", + "git.fetch": "واکشی", + "git.refresh": "تازه کردن", + "git.unstageall": "لغو مرحله بندی همه", + "git.stageall": "مرحله بندی همه", + "git.noremote": "این مخزن هیچ راه دوری ندارد", + "git.init": "مقداردهی اولیه مخزن", + "git.setup": "راه اندازی گیت" +} diff --git a/apps/remix-ide/src/app/tabs/locales/ir/gitui.json b/apps/remix-ide/src/app/tabs/locales/ir/gitui.json new file mode 100644 index 00000000000..4951767e52a --- /dev/null +++ b/apps/remix-ide/src/app/tabs/locales/ir/gitui.json @@ -0,0 +1,3 @@ +{ + "gitui.openFolderMessage": "برای استفاده از ویژگی های گیت، می توانید یک پوشه را باز کنید یا یک مخزن را کلون کنید." +} diff --git a/apps/remix-ide/src/app/tabs/locales/ir/home.json b/apps/remix-ide/src/app/tabs/locales/ir/home.json new file mode 100644 index 00000000000..d92735839dd --- /dev/null +++ b/apps/remix-ide/src/app/tabs/locales/ir/home.json @@ -0,0 +1,79 @@ +{ + "home.home": "خانه", + "home.scamAlert": "هشدار کلاهبرداری", + "home.scamAlertText": "تنها URL ای که Remix استفاده می کند remix.ethereum.org است", + "home.scamAlertText2": "مراقب ویدیوهای آنلاینی باشید که \"ربات های پیشرو نقدینگی\" را تبلیغ می کنند", + "home.scamAlertText3": "نکات ایمنی اضافی", + "home.learnMore": "بیشتر بدانید", + "home.here": "بیشتر", + "home.featured": "ویژه", + "home.learnEthPromoTitle": "LearnEth: آموزش در داخل Remix", + "home.learnEthPromoButton": "شروع یادگیری", + "home.learnEthPromoText": "آموزش های مربوط به Remix، Solidity و سایر پروژه های وب 3 را بررسی کنید. برای همه سطوح مهارت عالی است.", + "home.remixYouTube": "برای یادگیری تماشا کنید", + "home.remixYouTubeText1": "نکات ویدیویی از تیم Remix", + "home.remixYouTubeMore": "تماشا کنید", + "home.remixYouTubeText2": "Remix یک کتابخانه رو به رشد از ویدیوها دارد که حاوی نکات زیادی برای استفاده از این ابزار است. آنها را بررسی کنید و برای دریافت آخرین آپلودهای ما مشترک شوید.", + "home.betaTesting": "تست بتا", + "home.betaTestingText1": "جامعه ما از ما حمایت می کند.", + "home.betaTestingText2": "به ما کمک کنید تا نسخه های بتا را اکنون آزمایش کنیم و با ویژگی های جدید آشنا شویم!", + "home.betaTestingMore": "ثبت نام", + "home.featuredPlugins": "افزونه های ویژه", + "home.solidityPluginDesc": "قراردادهای هوشمند را کامپایل، آزمایش و تجزیه و تحلیل کنید.", + "home.cookbookDesc": "قراردادهای هوشمند، کتابخانه های solidity را پیدا کنید و پروتکل ها را کشف کنید.", + "home.codeAnalyizerPluginDesc": "کد خود را با استفاده از Remix، Solhint و Slither تجزیه و تحلیل کنید.", + "home.starkNetPluginDesc": "قراردادها را با Cairo، یک زبان بومی برای StarkNet، کامپایل و مستقر کنید.", + "home.solhintPluginDesc": "Solhint یک پروژه منبع باز برای بررسی کد Solidity است.", + "home.sourcifyPluginDesc": "سرویس تأیید قرارداد و فراداده Solidity.", + "home.unitTestPluginDesc": "تست های واحد را برای قراردادهای خود در Solidity بنویسید و اجرا کنید.", + "home.contractVerificationDesc": "قراردادها را در چندین سرویس به طور همزمان تأیید کنید.", + "home.dgitPluginDesc": "کنترل منبع را به پروژه های خود اضافه کنید.", + "home.oneClickDappDesc": "به سرعت رابط های قرارداد هوشمند ایجاد کنید", + "home.getStarted": "شروع کنید", + "home.projectTemplates": "یاد بگیرید. کاوش کنید.", + "home.projectTemplates2": "ایجاد کنید.", + "home.blankTemplateDesc": "یک فضای کاری خالی ایجاد کنید.", + "home.remixDefaultTemplateDesc": "یک فضای کاری با فایل های نمونه ایجاد کنید.", + "home.ozerc20TemplateDesc": "با وارد کردن کتابخانه OpenZeppelin یک توکن ERC20 ایجاد کنید.", + "home.ozerc721TemplateDesc": "با وارد کردن کتابخانه OpenZeppelin یک توکن NFT ایجاد کنید.", + "home.ozerc1155TemplateDesc": "با وارد کردن کتابخانه OpenZeppelin یک توکن ERC1155 ایجاد کنید.", + "home.gnosisSafeMultisigTemplateDesc": "با استفاده از این الگو، کیف پول های چند امضایی ایجاد کنید.", + "home.zeroxErc20TemplateDesc": "با وارد کردن قرارداد 0xProject یک توکن ERC20 ایجاد کنید.", + "home.learnEthPluginDesc": "در مورد Remix، Solidity و سایر پروژه های وب 3 بیاموزید.", + "home.learn": "یاد بگیرید", + "home.learnEth1": "مبانی Remix", + "home.learnEth1Desc": "مقدمه ای بر رابط و عملیات اصلی Remix.", + "home.learnEth2": "مقدمه ای بر Solidity", + "home.learnEth2Desc": "مفاهیم مبتدی Solidity را به صورت تعاملی بیاموزید.", + "home.remixAdvanced": "استقرار با کتابخانه ها", + "home.remixAdvancedDesc": "یاد بگیرید که با کتابخانه ها در Remix مستقر شوید", + "home.remixYoutubePlaylist": "لیست پخش یوتیوب Remix", + "home.remixTwitterProfile": "پروفایل X Remix", + "home.remixLinkedinProfile": "پروفایل لینکدین Remix", + "home.remixMediumPosts": "پست های مدیوم Remix", + "home.joinUsOnDiscord": "به ما در دیسکورد بپیوندید", + "home.nativeIDE": "IDE بومی برای توسعه وب 3.", + "home.website": "وب سایت", + "home.documentation": "مستندات", + "home.remixPlugin": "افزونه Remix", + "home.remixDesktop": "دسکتاپ Remix", + "home.searchDocumentation": "جستجوی مستندات", + "home.files": "فایل ها", + "home.newFile": "جدید", + "home.startCoding": "شروع کدنویسی", + "home.startCodingPlayground": "یک زمین بازی برای نمونه سازی و یادگیری ساده باز کنید", + "home.openFile": "باز کردن", + "home.openFileTooltip": "باز کردن یک فایل از سیستم فایل شما", + "home.accessFileSystem": "اتصال به سیستم فایل محلی", + "home.loadFrom": "بارگیری از", + "home.resources": "منابع", + "home.connectToLocalhost": "اتصال به لوکال هاست", + "home.seeAllTutorials": "مشاهده همه آموزش ها", + "home.maintainedBy": "نگهداری توسط", + "home.gitCloneTooltip": "یک مخزن Github را در یک فضای کاری جدید کلون کنید", + "home.gistTooltip": "باز کردن مخزن Gist", + "home.newFileTooltip": "افزودن یک فایل جدید به یک فضای کاری", + "home.createNewWorkspace": "ایجاد یک فضای کاری جدید", + "home.startLearning": "شروع یادگیری", + "home.exploreAllPlugins": "کاوش در همه افزونه ها" +} diff --git a/apps/remix-ide/src/app/tabs/locales/ir/index.js b/apps/remix-ide/src/app/tabs/locales/ir/index.js new file mode 100644 index 00000000000..f6a2c04b51c --- /dev/null +++ b/apps/remix-ide/src/app/tabs/locales/ir/index.js @@ -0,0 +1,17 @@ +import enJson from '../en' + +function readAndCombineJsonFiles() { + const dataContext = require.context('./', true, /\.json$/) + + let combinedData = {} + dataContext.keys().forEach((key) => { + const jsonData = dataContext(key) + combinedData = { ...combinedData, ...jsonData } + }) + + return combinedData +} + +// There may have some un-translated content. Always fill in the gaps with EN JSON. +// No need for a defaultMessage prop when render a FormattedMessage component. +export default Object.assign({}, enJson, readAndCombineJsonFiles()) diff --git a/apps/remix-ide/src/app/tabs/locales/ir/noir.json b/apps/remix-ide/src/app/tabs/locales/ir/noir.json new file mode 100644 index 00000000000..03d5e7b8cad --- /dev/null +++ b/apps/remix-ide/src/app/tabs/locales/ir/noir.json @@ -0,0 +1,26 @@ +{ + "noir.compiler": "کامپایلر", + "noir.autoCompile": "کامپایل خودکار", + "noir.hideWarnings": "پنهان کردن هشدارها", + "noir.advancedConfigurations": "تنظیمات پیشرفته", + "noir.compilerConfiguration": "پیکربندی کامپایلر", + "noir.prime": "اول", + "noir.useConfigurationFile": "استفاده از فایل پیکربندی", + "noir.compile": "کامپایل", + "noir.noFileSelected": "هیچ فایلی انتخاب نشده است", + "noir.generateR1cs": "تولید R1CS", + "noir.computeWitness": "محاسبه شاهد", + "noir.generateProof": "تولید اثبات", + "noir.signalInput": "ورودی سیگنال", + "noir.compute": "محاسبه", + "noir.setupExports": "راه اندازی و خروجی ها", + "noir.provingScheme": "طرح اثبات", + "noir.ptau": "قدرت TAU (PTAU)", + "noir.randomText": "مراسم: متن تصادفی", + "noir.randomBeacon": "مراسم: چراغ تصادفی", + "noir.exportVerifierContract": "خروجی قرارداد تأیید کننده", + "noir.exportVerificationKey": "خروجی کلید تأیید", + "noir.exportVerifierCalldata": "خروجی داده تماس تأیید کننده", + "noir.exportWtnsJson": "خروجی شاهد به عنوان JSON", + "noir.runSetup": "اجرای راه اندازی" + } diff --git a/apps/remix-ide/src/app/tabs/locales/ir/panel.json b/apps/remix-ide/src/app/tabs/locales/ir/panel.json new file mode 100644 index 00000000000..a5d8c4521e8 --- /dev/null +++ b/apps/remix-ide/src/app/tabs/locales/ir/panel.json @@ -0,0 +1,13 @@ +{ + "panel.author": "نویسنده", + "panel.maintainedBy": "نگهداری توسط", + "panel.documentation": "مستندات", + "panel.description": "توضیحات", + "panel.maintainedByRemix": "نگهداری توسط Remix", + "panel.pinnedMsg": "برای انتقال افزونه به پنل سمت راست کلیک کنید", + "panel.unPinnedMsg": "برای بازگرداندن افزونه به پنل سمت چپ کلیک کنید", + "panel.maintainedExternally": "توسط Remix نگهداری نمی شود", + "panel.pluginInfo": "اطلاعات افزونه", + "panel.linkToDoc": "پیوند به مستندات", + "panel.makeAnissue": "ایجاد یک مشکل" +} diff --git a/apps/remix-ide/src/app/tabs/locales/ir/permissionHandler.json b/apps/remix-ide/src/app/tabs/locales/ir/permissionHandler.json new file mode 100644 index 00000000000..71682410ad7 --- /dev/null +++ b/apps/remix-ide/src/app/tabs/locales/ir/permissionHandler.json @@ -0,0 +1,13 @@ +{ + "permissionHandler.allPermissionsReset": "همه مجوزها بازنشانی شده اند.", + "permissionHandler.rememberText": "تغییر کرده است و", + "permissionHandler.permissionHandlerMessage": "\"{from}\" {rememberText} می خواهد به \"{method}\" از \"{to}\" دسترسی داشته باشد`", + "permissionHandler.description": "توضیحات", + "permissionHandler.noDescriptionProvided": "هیچ توضیحی ارائه نشده است", + "permissionHandler.makeSureYouTrustThisPlugin": "قبل از پردازش این تماس، مطمئن شوید که به این افزونه اعتماد دارید. اگر انتخاب کنید که انتخاب را برای این تماس خاص به خاطر بسپارید، مقدار فقط برای جلسه فعلی حفظ خواهد شد.", + "permissionHandler.rememberThisChoice": "این انتخاب را به خاطر بسپار", + "permissionHandler.resetAllPermissions": "بازنشانی همه مجوزها", + "permissionHandler.permissionNeededFor": "مجوز مورد نیاز برای {to}", + "permissionHandler.accept": "پذیرفتن", + "permissionHandler.decline": "رد کردن" +} diff --git a/apps/remix-ide/src/app/tabs/locales/ir/pluginManager.json b/apps/remix-ide/src/app/tabs/locales/ir/pluginManager.json new file mode 100644 index 00000000000..6b8dfd3a166 --- /dev/null +++ b/apps/remix-ide/src/app/tabs/locales/ir/pluginManager.json @@ -0,0 +1,45 @@ +{ + "pluginManager.displayName": "مدیر افزونه", + "pluginManager.activate": "فعال کردن", + "pluginManager.deactivate": "غیرفعال کردن", + "pluginManager.activeModules": "افزونه های فعال", + "pluginManager.inactiveModules": "افزونه های غیرفعال", + "pluginManager.connectLocal": "اتصال به یک افزونه محلی", + "pluginManager.localForm.title": "افزونه محلی", + "pluginManager.localForm.pluginName": "نام افزونه", + "pluginManager.localForm.shouldBeCamelCase": "باید camelCase باشد", + "pluginManager.localForm.displayName": "نام نمایشی", + "pluginManager.localForm.nameInTheHeader": "نام در هدر", + "pluginManager.localForm.required": "مورد نیاز", + "pluginManager.localForm.commaSeparatedMethod": "لیست نام های متد با کاما جدا شده", + "pluginManager.localForm.commaSeparatedPlugin": "لیست نام های افزونه با کاما جدا شده", + "pluginManager.localForm.pluginsItCanActivate": "افزونه هایی که می تواند فعال کند", + "pluginManager.localForm.typeOfConnection": "نوع اتصال", + "pluginManager.localForm.locationInRemix": "مکان در remix", + "pluginManager.localForm.sidePanel": "پنل کناری", + "pluginManager.localForm.mainPanel": "پنل اصلی", + "pluginManager.localForm.none": "هیچکدام", + "pluginManager.localForm.methods": "متدها", + "pluginManager.localForm.pluginNames": "نام های افزونه", + "pluginManager.localForm.ok": "تأیید", + "pluginManager.localForm.cancel": "لغو", + "pluginManager.Permissions": "مجوزها", + "pluginManager.permissions": "مجوزها", + "pluginManager.pluginManagerPermissions": "مجوزهای مدیر افزونه", + "pluginManager.currentPermissionSettings": "تنظیمات مجوز فعلی", + "pluginManager.noPermissionRequestedYet": "هنوز هیچ مجوزی درخواست نشده است.", + "pluginManager.allow": "اجازه دادن", + "pluginManager.toCall": "برای تماس", + "pluginManager.ok": "تأیید", + "pluginManager.cancel": "لغو", + "pluginManager.maintainedByRemix": "نگهداری توسط Remix", + "pluginManager.maintainedExternally": "توسط Remix نگهداری نمی شود", + "pluginManager.linkToDoc": "پیوند به مستندات", + "pluginManager.versionAlpha": "نسخه آلفا", + "pluginManager.versionBeta": "نسخه بتا", + "pluginManager.deactivatePlugin": "غیرفعال کردن {pluginName}", + "pluginManager.activatePlugin": "فعال کردن {pluginName}", + "pluginManager.search": "جستجو", + "pluginManager.managePluginsPermissions": "مدیریت مجوزهای افزونه ها", + "pluginManager.UnavailableOffline": "آفلاین در دسترس نیست" +} diff --git a/apps/remix-ide/src/app/tabs/locales/ir/publishToStorage.json b/apps/remix-ide/src/app/tabs/locales/ir/publishToStorage.json new file mode 100644 index 00000000000..3b824a3a4f4 --- /dev/null +++ b/apps/remix-ide/src/app/tabs/locales/ir/publishToStorage.json @@ -0,0 +1,19 @@ +{ + "publishToStorage.title1": "انتشار در حافظه", + "publishToStorage.title1.message": "این قرارداد ممکن است انتزاعی باشد، ممکن است متدهای یک والد انتزاعی را به طور کامل پیاده سازی نکند یا ممکن است سازنده یک قرارداد به ارث برده شده را به درستی فراخوانی نکند.", + "publishToStorage.title2": "فراداده و منابع {name} منتشر شد", + "publishToStorage.title2.message": "فراداده و منابع \"{name}\" با موفقیت منتشر شد.", + "publishToStorage.title3": "انتشار Swarm ناموفق بود", + "publishToStorage.title4": "تنظیمات IPFS", + "publishToStorage.title4.message1": "شما تنظیمات IPFS سفارشی خود را تنظیم نکرده اید.", + "publishToStorage.title4.message2": "ما دیگر یک نقطه پایانی عمومی برای انتشار قراردادهای شما در IPFS ارائه نخواهیم داد.", + "publishToStorage.title4.message3": "در عوض، اکنون 4 گزینه در دسترس است:", + "publishToStorage.title4.message4": "گزینه پیش فرض: از گره عمومی INFURA استفاده کنید. این تضمین نمی کند که داده های شما باقی بمانند.", + "publishToStorage.title4.message5": "از گره IPFS INFURA خود استفاده کنید. این نیاز به اشتراک دارد. بیشتر بدانید ", + "publishToStorage.title4.message6": "از هر IPFS خارجی که نیازی به احراز هویت ندارد استفاده کنید.", + "publishToStorage.title4.message7": "از گره ipfs محلی خود استفاده کنید (که معمولاً تحت http://localhost:5001 اجرا می شود)", + "publishToStorage.title4.message8": "می توانید تنظیمات IPFS خود را در برگه تنظیمات به روز کنید.", + "publishToStorage.title4.message9": "اکنون از گزینه پیش فرض استفاده خواهد شد.", + "publishToStorage.title5": "انتشار IPFS ناموفق بود", + "publishToStorage.title5.message": "انتشار فایل فراداده و منابع در {storage} ناموفق بود، لطفاً بررسی کنید که دروازه های {storage} در دسترس باشند." +} diff --git a/apps/remix-ide/src/app/tabs/locales/ir/quickDapp.json b/apps/remix-ide/src/app/tabs/locales/ir/quickDapp.json new file mode 100644 index 00000000000..f445ca11daf --- /dev/null +++ b/apps/remix-ide/src/app/tabs/locales/ir/quickDapp.json @@ -0,0 +1,43 @@ +{ + "quickDapp.address": "آدرس", + "quickDapp.enterAddress": "آدرس را وارد کنید", + "quickDapp.enterAbi": "abi را وارد کنید", + "quickDapp.name": "نام", + "quickDapp.enterName": "نام را وارد کنید", + "quickDapp.network": "شبکه", + "quickDapp.enterNetwork": "شبکه را وارد کنید", + "quickDapp.submit": "ارسال", + "quickDapp.text1": "QuickDapp در حال حاضر فقط برای ارائه دهنده تزریق شده کار می کند. ارائه دهندگان بیشتری در تکرارهای بعدی سازگار خواهند شد.", + "quickDapp.text2": "با کلیک بر روی نماد ویرایش در یک قرارداد مستقر شده، پارامترها به طور خودکار وارد می شوند.", + "quickDapp.admin": "مدیر", + "quickDapp.resetFunctions": "بازنشانی توابع", + "quickDapp.deleteDapp": "حذف Dapp", + "quickDapp.text3": "QuickDapp در Surge.sh مستقر می شود. حساب های Surge تا زمانی که به سطح استفاده برسید رایگان هستند. ایمیل و رمز عبوری که در زیر وارد می کنید شما را با یک حساب Surge ثبت می کند. زیر دامنه به انتخاب شماست اما باید منحصر به فرد باشد. اطلاعات بیشتر در مورد surge.sh", + "quickDapp.email": "ایمیل", + "quickDapp.surgeEmail": "ایمیل Surge", + "quickDapp.password": "رمز عبور", + "quickDapp.surgePassword": "رمز عبور Surge", + "quickDapp.subdomain": "زیر دامنه", + "quickDapp.uniqueSubdomain": "نام زیر دامنه منحصر به فرد", + "quickDapp.shareTo": "اشتراک گذاری با (اختیاری)", + "quickDapp.useNatSpec": "استفاده از NatSpec (اختیاری)", + "quickDapp.useNatSpecTooltip": "بازیابی اطلاعات از NatSpec قرارداد", + "quickDapp.verifiedByEtherscan": "تأیید شده توسط Etherscan (اختیاری)", + "quickDapp.verified": "تأیید شده", + "quickDapp.noTerminal": "بدون ترمینال (اختیاری)", + "quickDapp.no": "نه", + "quickDapp.themes": "تم ها", + "quickDapp.deploy": "استقرار", + "quickDapp.teardown": "تخریب", + "quickDapp.text4": "با موفقیت مستقر شد!", + "quickDapp.text5": "برای مشاهده dapp خود روی پیوند زیر کلیک کنید", + "quickDapp.text6": "با موفقیت تخریب شد!", + "quickDapp.addLogoTooltip": "برای افزودن لوگو اینجا را کلیک کنید", + "quickDapp.deleteLogoTooltip": "برای حذف لوگو اینجا را کلیک کنید", + "quickDapp.dappTitle": "عنوان Dapp", + "quickDapp.dappInstructions": "دستورالعمل های Dapp", + "quickDapp.functionTitle": "عنوان تابع", + "quickDapp.functionInstructions": "دستورالعمل های تابع", + "quickDapp.addColumn": "افزودن ستون", + "quickDapp.column": "ستون" +} diff --git a/apps/remix-ide/src/app/tabs/locales/ir/remixApp.json b/apps/remix-ide/src/app/tabs/locales/ir/remixApp.json new file mode 100644 index 00000000000..b22a7a0f7f7 --- /dev/null +++ b/apps/remix-ide/src/app/tabs/locales/ir/remixApp.json @@ -0,0 +1,28 @@ +{ + "remixApp.scrollToSeeAllTabs": "برای دیدن همه برگه ها پیمایش کنید", + "remixApp.alert": "هشدار", + "remixApp.ok": "تأیید", + "remixApp.enterText1": "به Remix IDE خوش آمدید", + "remixApp.enterText2": "برای درک بهتر نیازهای شما، می خواهیم بدانیم که معمولاً چگونه از Remix استفاده می کنید", + "remixApp.enterText3": "یادگیری - کشف توسعه وب 3", + "remixApp.enterText4": "نمونه سازی - امتحان کردن مفاهیم و تکنیک ها", + "remixApp.enterText5": "توسعه پروژه ها - Remix به عنوان ابزار اصلی توسعه شما", + "remixApp.enterText6": "تولید - فقط استقرارها", + "remixApp.matomoText1": "Remix دارای یک دستیار کدنویسی هوش مصنوعی به نام RemixAI است که برای استفاده به تأیید شما نیاز دارد.", + "remixApp.matomoText2": "ما همچنین از Matomo، یک پلتفرم تجزیه و تحلیل منبع باز، استفاده می کنیم که به ما در بهبود تجربه شما کمک می کند.", + "remixApp.matomoTitle": "ترجیحات هوش مصنوعی و تجزیه و تحلیل", + "remixApp.accept": "پذیرفتن", + "remixApp.managePreferences": "مدیریت ترجیحات", + "remixApp.savePreferences": "ذخیره ترجیحات", + "remixApp.declineCookies": "رد کوکی ها", + "remixApp.decline": "رد کردن", + "remixApp.mpOp1Title": "تجزیه و تحلیل ناشناس Matomo (ضروری)", + "remixApp.mpOp1Details": "استفاده ما از داده های تجزیه و تحلیل ناشناس به ما کمک می کند تا با شناسایی اشکالات و بهبودهای مهم UX، تجربه شما را بهبود بخشیم. این داده ها همچنین می توانند در آمار کلی استفاده از Remix در اکوسیستم گسترده تر وب 3 استفاده شوند", + "remixApp.mpOp1Tooltip": "این یک انتخاب ضروری برای تجربه بهتر Remix IDE است", + "remixApp.mpOp2Title": "تجزیه و تحلیل عملکرد Matomo", + "remixApp.mpOp2Details": "Remix معتقد است که حریم خصوصی شما از اهمیت اولیه برخوردار است. کمک شما در تبدیل Remix به بهترین مجموعه ابزار عمومی منبع باز ممکن نیز بسیار مهم است. تأیید ردیابی تجزیه و تحلیل عملکرد به ما در اصلاح و بهبود مجموعه ابزار کمک زیادی می کند. مطمئن باشید، ما هرگز این داده ها را با هیچ شخص ثالثی به اشتراک نخواهیم گذاشت.", + "remixApp.mpOp2Link": " درباره تجزیه و تحلیل بیشتر بدانید ", + "remixApp.mpOp3Title": "RemixAI", + "remixApp.mpOp3Details": "RemixAI با ارائه پیشنهادات و بهبودهای کد کمک می کند", + "remixApp.mpOp3Link": " درباره RemixAI Copilot بیشتر بدانید " +} diff --git a/apps/remix-ide/src/app/tabs/locales/ir/remixUiTabs.json b/apps/remix-ide/src/app/tabs/locales/ir/remixUiTabs.json new file mode 100644 index 00000000000..815dac033ad --- /dev/null +++ b/apps/remix-ide/src/app/tabs/locales/ir/remixUiTabs.json @@ -0,0 +1,14 @@ +{ + "remixUiTabs.tooltipText1": "اجرای اسکریپت (CTRL + SHIFT + S)", + "remixUiTabs.tooltipText2": "کامپایل CTRL + S", + "remixUiTabs.tooltipText3": "فایل .sol یا .yul را برای کامپایل یا فایل .ts یا .js را برای اجرا انتخاب کنید", + "remixUiTabs.tooltipText4": "برای توضیح یک قرارداد، یک فایل پشتیبانی شده را انتخاب کنید", + "remixUiTabs.tooltipText5": "توضیح قرارداد(های) موجود در فایل فعلی [BETA]", + "remixUiTabs.tooltipText6": "فعال کردن RemixAI Copilot [BETA]", + "remixUiTabs.tooltipText7": "غیرفعال کردن RemixAI Copilot [BETA]", + "remixUiTabs.tooltipText8": "مستندات ابزارهای RemixAI", + "remixUiTabs.tooltipText9": "پیکربندی وابستگی های اسکریپت نویسی", + "remixUiTabs.tooltipTextDisabledCopilot": "برای استفاده از RemixAI Copilot، یک فایل پشتیبانی شده را انتخاب کنید", + "remixUiTabs.zoomOut": "کوچک نمایی", + "remixUiTabs.zoomIn": "بزرگنمایی" +} diff --git a/apps/remix-ide/src/app/tabs/locales/ir/remixd.json b/apps/remix-ide/src/app/tabs/locales/ir/remixd.json new file mode 100644 index 00000000000..0a76453cdac --- /dev/null +++ b/apps/remix-ide/src/app/tabs/locales/ir/remixd.json @@ -0,0 +1,16 @@ +{ + "remixd.connectionAlert1": "نمی توان به دیمون remixd متصل شد. لطفاً مطمئن شوید که remixd در پس زمینه در حال اجرا است.", + "remixd.connectionAlert2": "اتصال به remixd خاتمه یافت. لطفاً مطمئن شوید که remixd هنوز در پس زمینه در حال اجرا است.", + "remixd.remixdConnect": "دسترسی به سیستم فایل با استفاده از remixd", + "remixd.connect": "اتصال", + "remixd.cancel": "لغو", + "remixd.text1": "با استفاده از بسته NPM Remixd از Remix IDE به سیستم فایل محلی خود دسترسی پیدا کنید.", + "remixd.text2": "مستندات Remixd.", + "remixd.text3": "دستور remixd این است:", + "remixd.text4": "دستور remixd بدون گزینه از دایرکتوری فعلی ترمینال به عنوان دایرکتوری مشترک استفاده می کند و دامنه Remix مشترک فقط می تواند https://remix.ethereum.org، https://remix-alpha.ethereum.org یا https://remix-beta.ethereum.org باشد", + "remixd.text5": "دستور مثال با پرچم ها:", + "remixd.text6": "برای اطلاعات در مورد پورت ها، به استفاده از پورت های Remixd مراجعه کنید", + "remixd.text7": "این ویژگی هنوز در آلفا است. توصیه می کنیم یک نسخه پشتیبان از پوشه مشترک نگه دارید.", + "remixd.text8": "قبل از استفاده، مطمئن شوید که نسخه remixd آخرین نسخه است، یعنی", + "remixd.text9": "اینجا بخوانید که چگونه آن را به روز کنید" +} diff --git a/apps/remix-ide/src/app/tabs/locales/ir/scriptrunnerui.json b/apps/remix-ide/src/app/tabs/locales/ir/scriptrunnerui.json new file mode 100644 index 00000000000..441e6a2312f --- /dev/null +++ b/apps/remix-ide/src/app/tabs/locales/ir/scriptrunnerui.json @@ -0,0 +1,3 @@ +{ + "scriptrunnerui.defaultSection": "{{configName}}" +} diff --git a/apps/remix-ide/src/app/tabs/locales/ir/search.json b/apps/remix-ide/src/app/tabs/locales/ir/search.json new file mode 100644 index 00000000000..2a2961130e5 --- /dev/null +++ b/apps/remix-ide/src/app/tabs/locales/ir/search.json @@ -0,0 +1,24 @@ +{ + "search.displayName": "جستجو در فایل ها", + "search.replace": "جایگزین کردن", + "search.replaceAll": "جایگزینی همه", + "search.placeholder1": "برای جستجو تایپ کنید", + "search.placeholder2": "شامل کردن به عنوان مثال *.sol (برای شامل کردن Enter را بزنید)", + "search.placeholder3": "مستثنی کردن به عنوان مثال .git/**/* (برای مستثنی کردن Enter را بزنید)", + "search.matchCase": "تطابق با حروف بزرگ و کوچک", + "search.matchWholeWord": "تطابق با کلمه کامل", + "search.useRegularExpression": "استفاده از عبارت منظم", + "search.replaceWithoutConfirmation": "جایگزینی بدون تأیید", + "search.filesToInclude": "فایل های شامل شونده", + "search.filesToExclude": "فایل های مستثنی شونده", + "search.toggleReplace": "تغییر وضعیت جایگزینی", + "search.replaceInFiles": "جایگزینی در فایل ها", + "search.stop": "توقف", + "search.undoChanges": "لغو تغییرات در {path}", + "search.confirmreplaceMsg": "آیا مطمئن هستید که می خواهید \"{find}\" را با \"{replace}\" در {filename} جایگزین کنید؟", + "search.yes": "بله", + "search.no": "نه", + "search.loading": "در حال بارگیری", + "search.text1": "نمایش {count} نتیجه در {fileCount} فایل", + "search.text2": "نتایج برای نمایش بیش از حد زیاد است...{br}لطفاً جستجوی خود را محدودتر کنید." +} diff --git a/apps/remix-ide/src/app/tabs/locales/ir/settings.json b/apps/remix-ide/src/app/tabs/locales/ir/settings.json new file mode 100644 index 00000000000..c49ea67befe --- /dev/null +++ b/apps/remix-ide/src/app/tabs/locales/ir/settings.json @@ -0,0 +1,47 @@ +{ + "settings.displayName": "تنظیمات", + "settings.reset": "بازنشانی به تنظیمات پیش فرض", + "settings.general": "عمومی", + "settings.generateContractMetadataText": "تولید فراداده قرارداد", + "settings.generateContractMetadataTooltip": "یک فایل JSON در پوشه قرارداد ایجاد کنید. امکان تعیین آدرس های کتابخانه ای که قرارداد به آنها بستگی دارد را فراهم می کند. اگر چیزی مشخص نشده باشد، Remix کتابخانه ها را به طور خودکار مستقر می کند.", + "settings.ethereunVMText": "همیشه از Remix VM در هنگام بارگذاری استفاده کنید", + "settings.wordWrapText": "شکستن کلمات در ویرایشگر", + "settings.useAutoCompleteText": "فعال کردن تکمیل خودکار کد در ویرایشگر", + "settings.useShowGasInEditorText": "نمایش تخمین های گاز در ویرایشگر", + "settings.displayErrorsText": "نمایش خطاها در ویرایشگر هنگام تایپ", + "settings.matomoAnalytics": "فعال کردن تجزیه و تحلیل Matomo. ببینید", + "settings.matomoPerfAnalytics": "فعال کردن تجزیه و تحلیل عملکرد Matomo", + "settings.matomoAnalyticsTooltip": "ما اطلاعات قابل شناسایی شخصی (PII) را جمع آوری نمی کنیم. این اطلاعات برای بهبود UX و UI سایت استفاده می شود.", + "settings.enablePersonalModeText": "فعال کردن حالت شخصی برای ارائه دهنده وب 3", + "settings.enablePersonalModeTooltip": "تراکنش ارسال شده از طریق وب 3 از API web3.personal استفاده خواهد کرد. قبل از فعال کردن آن، مطمئن شوید که نقطه پایانی باز است. این حالت به کاربر اجازه می دهد تا یک عبارت عبور را در رابط Remix بدون نیاز به باز کردن قفل حساب ارائه دهد. اگرچه این بسیار راحت است، اما باید به باطنی که به آن متصل هستید (Geth، Parity، ...) کاملاً اعتماد کنید. Remix هرگز هیچ عبارت عبوری را ذخیره نمی کند", + "settings.gitAccessTokenTitle": "اعتبارنامه های Github", + "settings.gitAccessTokenText": "توکن دسترسی برای انتشار یک Gist و بازیابی محتویات GitHub استفاده می شود. ممکن است لازم باشد نام کاربری/ایمیل را وارد کنید.", + "settings.gitAccessTokenText2": "برای ایجاد یک توکن جدید به صفحه توکن github (پیوند زیر) بروید و آن را در Remix ذخیره کنید. مطمئن شوید که این توکن فقط مجوز 'create gist' را دارد", + "settings.etherscanTokenTitle": "توکن دسترسی EtherScan", + "settings.etherscanAccessTokenText": "کلید api مورد استفاده برای تعامل با Etherscan را مدیریت کنید.", + "settings.etherscanAccessTokenText2": "برای ایجاد یک کلید api جدید به صفحه کلید api Etherscan (پیوند زیر) بروید و آن را در Remix ذخیره کنید.", + "settings.sindriAccessTokenTitle": "اعتبارنامه های Sindri", + "settings.sindriAccessTokenText": "توکن دسترسی برای کامپایل مدارهای ZKP و تولید اثبات با Sindri استفاده می شود.", + "settings.sindriAccessTokenText2": "برای ایجاد یک توکن جدید به صفحه ایجاد حساب Sindri (پیوند زیر) بروید و آن را در Remix ذخیره کنید.", + "settings.save": "ذخیره", + "settings.remove": "حذف", + "settings.themes": "تم ها", + "settings.locales": "زبان", + "settings.swarm": "تنظیمات Swarm", + "settings.ipfs": "تنظیمات IPFS", + "settings.token": "توکن", + "settings.copy": "کپی", + "settings.deleteEtherscanToken": "حذف توکن Etherscan", + "settings.username": "نام کاربری", + "settings.email": "ایمیل", + "settings.deleteGithubCredentials": "حذف اعتبارنامه های Github", + "settings.privateBeeAddress": "آدرس خصوصی BEE", + "settings.postageStampID": "شناسه تمبر پستی", + "settings.host": "میزبان", + "settings.protocol": "پروتکل", + "settings.port": "پورت", + "settings.projectID": "شناسه پروژه", + "settings.projectSecret": "راز پروژه", + "settings.analyticsInRemix": "تجزیه و تحلیل در Remix IDE", + "settings.enableSaveEnvState": "ذخیره وضعیت محیط" +} diff --git a/apps/remix-ide/src/app/tabs/locales/ir/solUmlGen.json b/apps/remix-ide/src/app/tabs/locales/ir/solUmlGen.json new file mode 100644 index 00000000000..769b02a731a --- /dev/null +++ b/apps/remix-ide/src/app/tabs/locales/ir/solUmlGen.json @@ -0,0 +1,10 @@ +{ + "solUmlGen.pngDownload": "دانلود به صورت PNG", + "solUmlGen.pdfDownload": "دانلود به صورت PDF", + "solUmlGen.pngDownloadTooltip": "دانلود نمودار UML به عنوان یک فایل PNG", + "solUmlGen.pdfDownloadTooltip": "دانلود نمودار UML به عنوان یک فایل PDF", + "solUmlGen.text1": "برای مشاهده قرارداد خود به عنوان یک نمودار UML", + "solUmlGen.text2": "روی فایل قرارداد خود کلیک راست کنید", + "solUmlGen.clickOn": "کلیک کنید روی", + "solUmlGen.generateUML": "تولید UML" +} diff --git a/apps/remix-ide/src/app/tabs/locales/ir/solidity.json b/apps/remix-ide/src/app/tabs/locales/ir/solidity.json new file mode 100644 index 00000000000..9246de388ca --- /dev/null +++ b/apps/remix-ide/src/app/tabs/locales/ir/solidity.json @@ -0,0 +1,94 @@ +{ + "solidity.displayName": "کامپایلر Solidity", + "solidity.openaigptMessage": "کد solidity: {content}\n پیام خطا: {messageText}\n توضیح دهید چرا خطا رخ داده و چگونه آن را برطرف کنید.", + "solidity._comment_compiler-container.tsx": "libs/remix-ui/solidity-compiler/src/lib/compiler-container.tsx", + "solidity.compiler": "کامپایلر", + "solidity.addACustomCompiler": "افزودن یک کامپایلر سفارشی", + "solidity.addACustomCompilerWithURL": "افزودن یک کامپایلر سفارشی با URL", + "solidity.includeNightlyBuilds": "شامل ساخت های شبانه", + "solidity.downloadedCompilers": "فقط کامپایلرهای دانلود شده را نشان بده", + "solidity.autoCompile": "کامپایل خودکار", + "solidity.hideWarnings": "پنهان کردن هشدارها", + "solidity.enableHardhat": "فعال کردن کامپایل Hardhat", + "solidity.learnHardhat": "یاد بگیرید چگونه از کامپایل Hardhat استفاده کنید", + "solidity.enableTruffle": "فعال کردن کامپایل Truffle", + "solidity.learnTruffle": "یاد بگیرید چگونه از کامپایل Truffle استفاده کنید", + "solidity.advancedConfigurations": "تنظیمات پیشرفته", + "solidity.compilerConfiguration": "پیکربندی کامپایلر", + "solidity.compilationDetails": "جزئیات کامپایل", + "solidity.language": "زبان", + "solidity.evmVersion": "نسخه EVM", + "solidity.enableOptimization": "بهینه سازی", + "solidity.useConfigurationFile": "استفاده از فایل پیکربندی", + "solidity.change": "تغییر", + "solidity.compile": "کامپایل", + "solidity.noFileSelected": "هیچ فایلی انتخاب نشده است", + "solidity.compileAndRunScript": "کامپایل و اجرای اسکریپت", + "solidity.newConfigFileTitle": "فایل پیکربندی جدید", + "solidity.newConfigFileMessage": "فایل \"{configFilePathInput}\" که وارد کردید وجود ندارد. آیا می خواهید یکی جدید ایجاد کنید؟", + "solidity.create": "ایجاد", + "solidity.ok": "تأیید", + "solidity.cancel": "لغو", + "solidity.noFileSelected1": "هیچ فایلی انتخاب نشده است.", + "solidity.toCompile": "برای کامپایل", + "solidity.noConfigFileSelected": "هیچ فایل پیکربندی انتخاب نشده است", + "solidity.copyNatSpecTag": "برای کپی کردن برچسب سفارشی NatSpec کلیک کنید", + "solidity.inputTitle1": "اگر فایلی که وارد کردید وجود نداشته باشد، می توانید در مرحله بعد یکی ایجاد کنید.", + "solidity.inputTitle2": "تعداد تخمینی دفعاتی که هر کد عملیاتی کد مستقر شده در طول عمر قرارداد اجرا خواهد شد.", + "solidity.tooltipText1": "اسکریپتی را برای اجرا بلافاصله پس از کامپایل با افزودن برچسب natspec `dev-run-script` انتخاب کنید، مانند:", + "solidity.tooltipText2": "برای کسب اطلاعات بیشتر روی نماد \"i\" کلیک کنید", + "solidity.tooltipText3": "برای کامپایل و اجرای اسکریپت", + "solidity.tooltipText4": "برای باز کردن فایل پیکربندی کلیک کنید", + "solidity.tooltipText5": "نمی توان لیست نسخه کامپایلر را بارگیری کرد. ممکن است توسط یک مسدود کننده تبلیغات مسدود شده باشد. لطفاً سعی کنید هر یک از آنها را از این صفحه غیرفعال کرده و دوباره بارگیری کنید. خطا:", + "solidity.tooltipText6": "مشخصات زبان موجود از کامپایلر >= v0.5.7", + "solidity.toastMessage": "به روز رسانی نسخه کامپایلر برای مطابقت با pragma فایل قرارداد فعلی یعنی {version}", + "solidity.compileIconAttribute": "کامپایلر در حال بارگیری است، لطفاً چند لحظه صبر کنید.", + "solidity.compilerLicense": "مجوز کامپایلر", + "solidity.compilerLicenseMsg1": "کامپایلر در حال بارگیری است. مجوز پس از بارگیری کامپایلر نمایش داده می شود", + "solidity.compilerLicenseMsg2": "نمی توان مجوز را برای نسخه کامپایلر انتخاب شده بازیابی کرد", + "solidity.compilerLicenseMsg3": "مجوز در دسترس نیست", + "solidity.seeCompilerLicense": "مشاهده مجوز کامپایلر", + "solidity._comment_contract-selection.tsx": "libs/remix-ui/solidity-compiler/src/lib/contract-selection.tsx", + "solidity.publishOn": "انتشار در", + "solidity.runStaticAnalysis": "اجرای تجزیه و تحلیل Remix", + "solidity.runStaticAnalysis.iconTooltip": "برای تجزیه و تحلیل این قرارداد برای آسیب پذیری ها با استفاده از تحلیلگران Remix، Solhint و Slither کلیک کنید", + "solidity.runSolidityScan": "اجرای SolidityScan", + "solidity.solScan.iconTooltip": "برای اسکن این قرارداد برای آسیب پذیری ها با استفاده از SolidityScan، یک ارائه دهنده شخص ثالث، کلیک کنید", + "solidity.solScan.modalTitle": "مجوز اشتراک گذاری کد [BETA]", + "solidity.solScan.modalMessage": "برای اسکن و تجزیه و تحلیل قرارداد برای خطرات و آسیب پذیری ها، کد آن با SolidityScan، یک ارائه دهنده شخص ثالث، به اشتراک گذاشته خواهد شد.", + "solidity.solScan.likeToContinue": "آیا می خواهید ادامه دهید؟", + "solidity.solScan.modalOkLabel": "ادامه", + "solidity.solScan.modalCancelLabel": "لغو", + "solidity.solScan.errModalTitle": "خطای اسکن", + "solidity.solScan.successModalTitle": "نتیجه اسکن", + "solidity.flatten": "قبل از تولید UML، قراردادها را مسطح کنید.", + "solidity.generateUML": "یک نمودار UML از قرارداد خود ایجاد کنید.", + "solidity.flattenLabel": "مسطح کردن", + "solidity.generateUMLLabel": "تولید نمودار UML", + "solidity.copy": "کپی", + "solidity.copyABI": "کپی ABI در کلیپ بورد", + "solidity.copyBytecode": "کپی بایت کد در کلیپ بورد", + "solidity.unableToDisplay": "قادر به نمایش نیست", + "solidity.download": "دانلود", + "solidity.compileDetails": "دانلود جزئیات کامپایل (فرمت JSON)", + "solidity.close": "بستن", + "solidity.contract": "قرارداد", + "solidity.displayContractDetails": "نمایش جزئیات قرارداد", + "solidity.noContractCompiled": "هنوز هیچ قراردادی کامپایل نشده است", + "solidity.Assembly": "کدهای عملیاتی اسمبلی که قرارداد را توصیف می کنند، از جمله کد منبع solidity مربوطه", + "solidity.Opcodes": "کدهای عملیاتی اسمبلی که قرارداد را توصیف می کنند", + "solidity.name": "نام قرارداد کامپایل شده", + "solidity.metadata": "شامل تمام اطلاعات مربوط به کامپایل است", + "solidity.bytecode": "بایت کدی که در حین ایجاد قرارداد اجرا می شود", + "solidity.abi": "ABI: توصیف تمام توابع (پارامترهای ورودی/خروجی، دامنه، ...)", + "solidity.web3Deploy": "این کد را برای استقرار این قرارداد در هر کنسول JavaScript/Web3 کپی/پیست کنید", + "solidity.metadataHash": "هش نشان دهنده تمام اطلاعات فراداده", + "solidity.functionHashes": "لیست توابع اعلام شده و هش مربوطه آنها", + "solidity.gasEstimates": "تخمین گاز برای هر فراخوانی تابع", + "solidity.Runtime Bytecode": "بایت کدی که وضعیت را ذخیره می کند و در حین فراخوانی قرارداد عادی اجرا می شود", + "solidity.storageLayout": "به مستندات طرح بندی ذخیره سازی مراجعه کنید.", + "solidity.devdoc": "مستندات توسعه دهنده (natspec)", + "solidity.userdoc": "مستندات کاربر (natspec)", + "solidity.compilerInput": "ورودی به کامپایلر Solidity", + "solidity.swarmLocation": "آدرس Swarm که در آن می توان تمام اطلاعات فراداده را پیدا کرد (ابتدا باید قرارداد منتشر شود)" +} diff --git a/apps/remix-ide/src/app/tabs/locales/ir/solidityUnitTesting.json b/apps/remix-ide/src/app/tabs/locales/ir/solidityUnitTesting.json new file mode 100644 index 00000000000..83451529c87 --- /dev/null +++ b/apps/remix-ide/src/app/tabs/locales/ir/solidityUnitTesting.json @@ -0,0 +1,41 @@ +{ + "solidityUnitTesting.displayName": "تست واحد Solidity", + "solidityUnitTesting.testDirectory": "دایرکتوری تست", + "solidityUnitTesting.testYourSmartContract": "قرارداد هوشمند خود را در Solidity تست کنید.", + "solidityUnitTesting.selectDirectory": "برای بارگیری و تولید فایل های تست، دایرکتوری را انتخاب کنید.", + "solidityUnitTesting.uiPathInputTooltip": "برای تغییر مسیر فایل های تست، 'Enter' را فشار دهید.", + "solidityUnitTesting.uiPathInputButtonTooltip": "ایجاد یک پوشه تست", + "solidityUnitTesting.create": "ایجاد", + "solidityUnitTesting.generateTestsButtonTooltip": "تولید یک فایل تست نمونه", + "solidityUnitTesting.generate": "تولید", + "solidityUnitTesting.generateTestsLinkTooltip": "مستندات را بررسی کنید.", + "solidityUnitTesting.howToUse": "نحوه استفاده...", + "solidityUnitTesting.runButtonTitle1": "اجرای تست ها", + "solidityUnitTesting.runButtonTitle2": "لطفاً نسخه کامپایلر Solidity بزرگتر از 0.4.12 را انتخاب کنید.", + "solidityUnitTesting.runButtonTitle3": "هیچ فایل solidity انتخاب نشده است", + "solidityUnitTesting.runButtonTitle4": "\"افزونه Solidity\" باید فعال شود", + "solidityUnitTesting.runButtonTitle5": "هیچ فایل تستی انتخاب نشده است", + "solidityUnitTesting.stopButtonLabel1": "توقف", + "solidityUnitTesting.stopButtonLabel2": "در حال توقف", + "solidityUnitTesting.run": "اجرا", + "solidityUnitTesting.runTestsTabStopActionTooltip": "توقف اجرای تست ها", + "solidityUnitTesting.selectAll": "انتخاب همه", + "solidityUnitTesting.testTabTestsExecutionStopped": "اجرای تست متوقف شده است", + "solidityUnitTesting.testTabTestsExecutionStoppedError": "اجرای تست به دلیل خطا(ها) در فایل تست شما متوقف شده است", + "solidityUnitTesting.progress": "پیشرفت: {readyTestsNumber} تمام شد (از {runningTestsNumber})", + "solidityUnitTesting.resultFor": "نتیجه برای", + "solidityUnitTesting.passed": "موفق", + "solidityUnitTesting.failed": "ناموفق", + "solidityUnitTesting.timeTaken": "زمان صرف شده", + "solidityUnitTesting.errorMessage": "پیام خطا", + "solidityUnitTesting.assertion": "ادعا", + "solidityUnitTesting.expectedValueShouldBe": "مقدار مورد انتظار باید باشد", + "solidityUnitTesting.receivedValue": "مقدار دریافت شده", + "solidityUnitTesting.skippingTheRemainingTests": "رد شدن از تست های باقیمانده تابع.", + "solidityUnitTesting.toasterMsg": "پوشه با موفقیت ایجاد شد", + "solidityUnitTesting.tooltipText1": "حداقل یک تست قرارداد ناموفق بود", + "solidityUnitTesting.tooltipText2": "همه تست های قرارداد با موفقیت انجام شد", + "solidityUnitTesting.tooltipText3": "شروع دیباگ", + "solidityUnitTesting.fail": "ناموفق", + "solidityUnitTesting.pass": "موفق" +} diff --git a/apps/remix-ide/src/app/tabs/locales/ir/terminal.json b/apps/remix-ide/src/app/tabs/locales/ir/terminal.json new file mode 100644 index 00000000000..1e10557b58a --- /dev/null +++ b/apps/remix-ide/src/app/tabs/locales/ir/terminal.json @@ -0,0 +1,46 @@ +{ + "terminal.listen": "گوش دادن به همه تراکنش ها", + "terminal.listenVM": "گوش دادن به همه تراکنش ها برای محیط VM غیرفعال است", + "terminal.listenTitle": "اگر انتخاب شود، Remix به تمام تراکنش های استخراج شده در محیط فعلی و نه فقط تراکنش های ایجاد شده توسط شما گوش می دهد", + "terminal.search": "فیلتر با هش تراکنش یا آدرس", + "terminal.used": "استفاده شده", + "terminal.debug": "دیباگ", + "terminal.welcomeText1": "به", + "terminal.welcomeText2": "فایل های شما در", + "terminal.welcomeText3": "می توانید از این ترمینال برای", + "terminal.welcomeText4": "بررسی جزئیات تراکنش ها و شروع دیباگ", + "terminal.welcomeText5": "اجرای اسکریپت های جاوا اسکریپت", + "terminal.welcomeText6": "یک اسکریپت را مستقیماً در رابط خط فرمان وارد کنید", + "terminal.welcomeText7": "یک فایل جاوا اسکریپت را در کاوشگر فایل انتخاب کنید و سپس `remix.execute()` یا `remix.exeCurrent()` را در رابط خط فرمان اجرا کنید", + "terminal.welcomeText8": "روی یک فایل جاوا اسکریپت در کاوشگر فایل کلیک راست کرده و سپس روی `Run` کلیک کنید", + "terminal.welcomeText9": "کتابخانه های زیر قابل دسترسی هستند", + "terminal.welcomeText10": "نام کتابخانه را برای دیدن دستورات موجود تایپ کنید", + "terminal.text1": "این نوع دستور منسوخ شده و دیگر کار نمی کند. لطفاً remix.help() را برای لیست دستورات موجود اجرا کنید.", + "terminal.hideTerminal": "پنهان کردن ترمینال", + "terminal.showTerminal": "نمایش ترمینال", + "terminal.clearConsole": "پاک کردن کنسول", + "terminal.pendingTransactions": "تراکنش های در حال انتظار", + "terminal.toasterMsg1": "محتوایی برای اجرا وجود ندارد", + "terminal.toasterMsg2": "ارائه دهنده برای مسیر {fileName} یافت نشد", + "terminal.vmMode": "حالت VM", + "terminal.vmModeMsg": "نمی توان این تماس را دیباگ کرد. دیباگ تماس ها فقط در حالت Remix VM امکان پذیر است.", + "terminal.ok": "تأیید", + "terminal.cancel": "لغو", + "terminal.callWarning": "(هزینه فقط زمانی اعمال می شود که توسط یک قرارداد فراخوانی شود)", + "terminal.msg1": "تراکنش استخراج شد اما اجرا ناموفق بود", + "terminal.msg2": "تراکنش استخراج شد و اجرا با موفقیت انجام شد", + "terminal.msg3": "وضعیت در حال حاضر در دسترس نیست", + "terminal.status": "وضعیت", + "terminal.transactionHash": "هش تراکنش", + "terminal.blockHash": "هش بلوک", + "terminal.blockNumber": "شماره بلوک", + "terminal.contractAddress": "آدرس قرارداد", + "terminal.transactionCost": "هزینه تراکنش", + "terminal.executionCost": "هزینه اجرا", + "terminal.input": "ورودی", + "terminal.decodedInput": "ورودی رمزگشایی شده", + "terminal.output": "خروجی", + "terminal.decodedOutput": "خروجی رمزگشایی شده", + "terminal.rawlogs": "لاگ های خام", + "terminal.logs": "لاگ ها" +} diff --git a/apps/remix-ide/src/app/tabs/locales/ir/udapp.json b/apps/remix-ide/src/app/tabs/locales/ir/udapp.json new file mode 100644 index 00000000000..4b9f4d78553 --- /dev/null +++ b/apps/remix-ide/src/app/tabs/locales/ir/udapp.json @@ -0,0 +1,182 @@ +{ + "udapp.displayName": "استقرار و اجرای تراکنش ها", + "udapp._comment_gasPrice.tsx": "libs/remix-ui/run-tab/src/lib/components/gasPrice.tsx", + "udapp.gasLimit": "محدودیت گاز", + "udapp.gasLimitAuto": "گاز تخمینی", + "udapp.gasLimitManual": "سفارشی", + "udapp.tooltipText4": "محدودیت گاز سفارشی را وارد کنید.", + "udapp._comment_value.tsx": "libs/remix-ui/run-tab/src/lib/components/value.tsx", + "udapp.value": "مقدار", + "udapp.tooltipText5": "مقداری را برای ارسال با تراکنش وارد کنید و واحد آن را انتخاب کنید", + "udapp._comment_contractDropdownUI.tsx": "libs/remix-ui/run-tab/src/lib/components/contractDropdownUI.tsx", + "udapp.contract": "قرارداد", + "udapp.compiledBy": "کامپایل شده توسط {compilerName}", + "udapp.warningEvmVersion": "لطفاً مطمئن شوید که شبکه فعلی با این نسخه evm سازگار است: {evmVersion}. در غیر این صورت هرگونه استقرار با شکست مواجه خواهد شد.", + "udapp.infoSyncCompiledContractTooltip": "برای وارد کردن قراردادهای کامپایل شده از یک چارچوب خارجی اینجا را کلیک کنید. این عمل زمانی فعال می شود که Remix از طریق remixd به یک چارچوب خارجی (hardhat، truffle، foundry) متصل باشد.", + "udapp.remixIpfsUdappTooltip": "انتشار کد منبع و فراداده در IPFS تأیید کد منبع را با استفاده از Sourcify تسهیل می کند و به شدت به پذیرش قرارداد کمک می کند (حسابرسی، دیباگ، فراخوانی آن و غیره...)", + "udapp.deploy": "استقرار", + "udapp.publishTo": "انتشار در", + "udapp.atAddress": "در آدرس", + "udapp.atAddressOptionsTitle1": "آدرس قرارداد", + "udapp.atAddressOptionsTitle2": "تعامل با قرارداد مستقر شده - نیاز به انتخاب فایل .abi یا فایل .sol کامپایل شده در ویرایشگر دارد (با همان پیکربندی کامپایلر)", + "udapp.atAddressOptionsTitle3": "یک فایل *.sol را کامپایل کنید یا یک فایل *.abi را انتخاب کنید.", + "udapp.atAddressOptionsTitle4": "برای تعامل با یک قرارداد مستقر شده، یا آدرس آن را وارد کرده و فایل منبع *.sol آن را کامپایل کنید (با همان تنظیمات کامپایلر) یا فایل .abi آن را در ویرایشگر انتخاب کنید.", + "udapp.contractOptionsTitle1": "لطفاً برای استقرار یا دسترسی به یک قرارداد، فایل *.sol را کامپایل کنید", + "udapp.contractOptionsTitle2": "یک قرارداد کامپایل شده را برای استقرار یا استفاده با At Address انتخاب کنید.", + "udapp.contractOptionsTitle3": "برای استقرار یا دسترسی به یک قرارداد، فایل *.sol را انتخاب و کامپایل کنید.", + "udapp.contractOptionsTitle4": "هنگامی که یک فایل .sol کامپایل شده وجود دارد، قراردادی را برای استقرار یا استفاده با At Address انتخاب کنید.", + "udapp.checkSumWarning": "به نظر می رسد از یک آدرس با جمع کنترلی استفاده نمی کنید. یک آدرس با جمع کنترلی آدرسی است که حاوی حروف بزرگ است، همانطور که در {a} مشخص شده است. آدرس های با جمع کنترلی برای کمک به جلوگیری از ارسال تراکنش به آدرس اشتباه توسط کاربران در نظر گرفته شده اند.", + "udapp.isOverSizePromptEip170": "مقداردهی اولیه ایجاد قرارداد داده هایی با طول بیش از 24576 بایت را برمی گرداند. اگر شبکه فعلی eip 170 را فعال کرده باشد، استقرار احتمالاً با شکست مواجه خواهد شد. اطلاعات بیشتر: {a}", + "udapp.isOverSizePromptEip3860": "کد اولیه ایجاد قرارداد از حداکثر اندازه کد مجاز 49152 بایت فراتر می رود. اگر شبکه فعلی eip 3860 را فعال کرده باشد، استقرار احتمالاً با شکست مواجه خواهد شد. اطلاعات بیشتر: {a}", + "udapp.thisContractMayBeAbstract": "این قرارداد ممکن است انتزاعی باشد، ممکن است متدهای یک والد انتزاعی را به طور کامل پیاده سازی نکند یا ممکن است سازنده یک قرارداد به ارث برده شده را به درستی فراخوانی نکند.", + "udapp.noCompiledContracts": "هیچ قرارداد کامپایل شده ای وجود ندارد", + "udapp.addressOfContract": "آدرس قرارداد", + "udapp.loadContractFromAddress": "بارگیری قرارداد از آدرس", + "udapp.ok": "تأیید", + "udapp.alert": "هشدار", + "udapp.proceed": "ادامه", + "udapp.cancel": "لغو", + "udapp.abiFileSelected": "فایل ABI انتخاب شد", + "udapp.evmVersion": "نسخه evm", + "udapp.addressNotValid": "آدرس معتبر نیست", + "udapp._comment_account.tsx": "libs/remix-ui/run-tab/src/lib/components/account.tsx", + "udapp.account": "حساب", + "udapp.signAMessage": "امضای یک پیام", + "udapp.enterAMessageToSign": "یک پیام برای امضا وارد کنید و روی `Sign` کلیک کنید", + "udapp.hash": "هش", + "udapp.signature": "امضا", + "udapp.forkStateTitle": "انشعاب وضعیت VM", + "udapp.forkStateLabel": "نام محیط جدید", + "udapp.forkVmStateDesc1": "انشعاب وضعیت یک محیط جدید با همان وضعیت محیط انتخاب شده ایجاد می کند", + "udapp.forkVmStateDesc2": "پس از انشعاب، محیط جدید به طور خودکار پین و انتخاب می شود. می توان آن را با استفاده از کاوشگر محیط از پین خارج کرد یا حذف کرد", + "udapp.fork": "انشعاب", + "udapp.resetVmStateTitle": "بازنشانی وضعیت VM", + "udapp.resetVmStateDesc1": "بازنشانی وضعیت این VM جزئیات تراکنش مرتبط را در این فضای کاری حذف می کند.", + "udapp.resetVmStateDesc2": "همچنین داده های قراردادهای مستقر شده و پین شده در این فضای کاری را حذف می کند.", + "udapp.resetVmStateDesc3": "آیا می خواهید ادامه دهید؟", + "udapp.reset": "بازنشانی", + "udapp.delete": "حذف", + "udapp.injectedTitle": "متأسفانه ایجاد حساب با استفاده از ارائه دهنده تزریق شده امکان پذیر نیست. لطفاً حساب را مستقیماً از ارائه دهنده خود ایجاد کنید (یعنی metamask یا موارد مشابه دیگر).", + "udapp.createSmartAccount": "ایجاد حساب هوشمند Gnosis Safe", + "udapp.createSmartAccountAlpha": "ایجاد حساب هوشمند Gnosis Safe [ALPHA]", + "udapp.createSmartAccountDesc1": "ERC-4337 حساب های قرارداد هوشمند را معرفی می کند که به آنها حساب های هوشمند نیز گفته می شود. این حساب ها پیشرفته تر از EOA های سنتی هستند و ویژگی هایی مانند عملکرد چند امضایی، تراکنش های بدون گاز و قوانین تراکنش سفارشی را ارائه می دهند.", + "udapp.createSmartAccountDesc2": "یک حساب هوشمند Safe یک حساب هوشمند با عملکرد چند امضایی Gnosis Safe در هسته خود است.", + "udapp.createSmartAccountDesc3": "در اینجا، یک حساب هوشمند با آدرس ذکر شده در زیر به عنوان OWNER ایجاد می شود. حساب Owner هر تراکنش (عملیات کاربر) انجام شده با استفاده از حساب هوشمند را امضا می کند.", + "udapp.createSmartAccountDesc4": "این حساب هوشمند به طور پیش فرض یک PAYMASTER متصل به آن برای اجرای تراکنش های بدون گاز خواهد داشت. در حال حاضر، در Remix، به روز رسانی های ERC4337 فقط برای شبکه اصلی GNOSIS و شبکه آزمایشی Ethereum SEPOLIA کار می کنند.", + "udapp.createSmartAccountDesc5": "لطفاً توجه داشته باشید که ایجاد حساب هوشمند نیاز به امضای یک تراکنش اولیه در مرحله بعد دارد.", + "udapp.continue": "ادامه", + "udapp.authorize": "مجاز کردن", + "udapp.createNewAccount": "ایجاد حساب جدید", + "udapp.web3Title": "ایجاد حساب فقط در حالت شخصی امکان پذیر است. لطفاً برای فعال کردن آن به تنظیمات بروید.", + "udapp.defaultTitle": "متأسفانه ایجاد حساب با استفاده از یک کیف پول خارجی ({selectExEnv}) امکان پذیر نیست.", + "udapp.text1": "لطفاً یک عبارت عبور برای ایجاد حساب ارائه دهید", + "udapp.tooltipText1": "لیست حساب خالی است، لطفاً مطمئن شوید که ارائه دهنده فعلی به درستی به remix متصل است", + "udapp.modalTitle1": "عبارت عبور برای امضای یک پیام", + "udapp.modalMessage1": "عبارت عبور خود را برای این حساب برای امضای پیام وارد کنید", + "udapp.copyAccount": "کپی حساب", + "udapp.copyOwnerAccount": "کپی آدرس مالک", + "udapp.signMsgUsingAccount": "امضا با استفاده از این حساب", + "udapp._comment_environment.tsx": "libs/remix-ui/run-tab/src/lib/components/environment.tsx", + "udapp.environment": "محیط", + "udapp.environmentDocs": "برای مشاهده مستندات مربوط به محیط کلیک کنید", + "udapp.tooltipText2": "chainlist.org را باز کنید و مشخصات اتصال زنجیره ای را که می خواهید با آن تعامل داشته باشید، دریافت کنید.", + "udapp.tooltipText3": "برای باز کردن یک پل برای تبدیل ETH شبکه اصلی L1 به ارز شبکه انتخاب شده کلیک کنید.", + "udapp.tooltipText14": "برای باز کردن یک مودال اتصال کیف پول کلیک کنید.", + "udapp._comment_instanceContainerUI.tsx": "libs/remix-ui/run-tab/src/lib/components/instanceContainerUI.tsx", + "udapp.deployedContracts": "قراردادهای مستقر شده", + "udapp.deployAndRunClearInstances": "پاک کردن تمام قراردادهای مستقر شده (از جمله پین شده) و بازنشانی ضبط کننده", + "udapp.deployAndRunNoInstanceText": "در حال حاضر هیچ قرارداد پین نشده ای برای تعامل ندارید.", + "udapp.tooltipText6": "رابط های کاربری عمومی تولید شده به صورت خودکار برای تعامل با قراردادهای مستقر شده", + "udapp.pinnedContracts": "قراردادهای پین شده", + "udapp.tooltipTextPinnedContracts": "لیست قراردادهای پین شده برای فضای کاری و شبکه انتخاب شده", + "udapp.NoPinnedInstanceText": "هیچ قرارداد پین شده ای برای فضای کاری و شبکه انتخاب شده یافت نشد", + "udapp.tooltipTextDelete": "حذف فوری", + "udapp.tooltipTextUnpin": "از پین خارج کردن قرارداد برای حذف پس از بارگیری مجدد", + "udapp.pinnedAt": "پین شده در", + "udapp.filePath": "مسیر فایل", + "udapp._comment_recorderCardUI.tsx": "libs/remix-ui/run-tab/src/lib/components/recorderCardUI.tsx", + "udapp.transactionsRecorded": "تراکنش های ضبط شده", + "udapp.transactionsCountTooltip": "تعداد تراکنش های ضبط شده", + "udapp.transactionSaveTooltip1": "هیچ تراکنشی برای ذخیره وجود ندارد", + "udapp.transactionSaveTooltip2": "ذخیره {count} تراکنش به عنوان فایل سناریو", + "udapp.transactionSaveTooltip3": "ذخیره {count} تراکنش به عنوان فایل سناریو", + "udapp.transactionsWalkthroughTooltip": "شروع تور راهنمای ضبط کننده.", + "udapp.infoRecorderTooltip": "تراکنش ها (قراردادهای مستقر شده و اجرای توابع) را ذخیره کرده و آنها را در محیط دیگری پخش کنید، به عنوان مثال تراکنش های ایجاد شده در Remix VM را می توان در ارائه دهنده تزریق شده پخش کرد.", + "udapp.livemodeRecorderTooltip": "اگر قراردادها پس از ضبط تراکنش ها به روز شوند، با انتخاب این کادر، تراکنش های ضبط شده با آخرین نسخه قراردادهای کامپایل شده اجرا می شوند", + "udapp.livemodeRecorderLabel": "اجرای تراکنش ها با استفاده از آخرین نتیجه کامپایل", + "udapp.runRecorderTooltip": "اجرای تراکنش(ها) از فایل سناریوی فعلی", + "udapp.save": "ذخیره", + "udapp.run": "اجرا", + "udapp._comment_contractGUI.tsx": "libs/remix-ui/run-tab/src/lib/components/contractGUI.tsx", + "udapp.parameters": "پارامترها", + "udapp.copyParameters": "کپی پارامترهای ورودی کدگذاری شده در کلیپ بورد", + "udapp.copyCalldata": "کپی داده های تماس در کلیپ بورد", + "udapp.deployWithProxy": "استقرار با پروکسی", + "udapp.upgradeWithProxy": "ارتقا با پروکسی", + "udapp.getEncodedCallError": "نمی توان آرگومان های خالی را کدگذاری کرد", + "udapp.proxyAddressError1": "آدرس پروکسی نمی تواند خالی باشد", + "udapp.proxyAddressError2": "آدرس قرارداد معتبر نیست", + "udapp.tooltipText11": "آدرس پروکسی نمی تواند خالی باشد", + "udapp.tooltipText12": "ورودی مورد نیاز است", + "udapp.tooltipText13": "مستقر شده در {date}", + "udapp._comment_universalDappUI.tsx": "libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx", + "udapp.tooltipTextRemove": "حذف دائمی از لیست", + "udapp.tooltipTextEdit": "ایجاد یک DApp با استفاده از این قرارداد در پنل اصلی", + "udapp.tooltipTextPin": "پین کردن قرارداد برای فضای کاری و شبکه فعلی برای ماندگاری پس از بارگیری مجدد", + "udapp.tooltipText8": "برای مشاهده مستندات مربوط به استفاده از 'receive'/'fallback' کلیک کنید", + "udapp.tooltipText9": "داده های تماسی که باید به تابع بازگشتی قرارداد ارسال شوند.", + "udapp.tooltipText10": "ارسال داده به قرارداد.", + "udapp.balance": "موجودی", + "udapp.lowLevelInteractions": "تعاملات سطح پایین", + "udapp.llIError1": "مقدار ارسالی باید یک عدد باشد", + "udapp.llIError2": "برای دریافت انتقال اتر، قرارداد باید تابع 'receive' یا 'fallback' قابل پرداخت داشته باشد", + "udapp.llIError3": "داده های تماس باید یک مقدار هگزادسیمال معتبر با اندازه حداقل یک بایت باشند.", + "udapp.llIError4": "داده های تماس باید یک مقدار هگزادسیمال معتبر باشند.", + "udapp.llIError5": "تابع 'Fallback' تعریف نشده است", + "udapp.llIError6": "هر دو تابع 'receive' و 'fallback' تعریف نشده اند", + "udapp.llIError7": "لطفاً یک تابع 'Fallback' برای ارسال داده های تماس و یک تابع 'Receive' یا 'fallback' قابل پرداخت برای ارسال اتر تعریف کنید", + "udapp.copy": "کپی", + "udapp.copyAddress": "کپی آدرس", + "udapp._comment_mainnet.tsx": "libs/remix-ui/run-tab/src/lib/components/mainnet.tsx", + "udapp.mainnetText1": "شما در حال ایجاد یک تراکنش در شبکه {name} هستید. جزئیات را برای ارسال اطلاعات به ارائه دهنده خود تأیید کنید.", + "udapp.mainnetText2": "ارائه دهنده برای بسیاری از کاربران MetaMask است. ارائه دهنده از شما می خواهد که قبل از ارسال به شبکه {name}، تراکنش را امضا کنید.", + "udapp.amount": "مقدار", + "udapp.gasEstimation": "تخمین گاز", + "udapp.maxPriorityFee": "حداکثر کارمزد اولویت", + "udapp.maxFee": "حداکثر کارمزد (کمتر از کارمزد پایه {baseFeePerGas} Gwei نباشد)", + "udapp.contractCreation": "ایجاد قرارداد", + "udapp.transactionFee": "تراکنش نامعتبر است. حداکثر کارمزد نباید کمتر از کارمزد پایه باشد", + "udapp.title1": "بخشی از کارمزد تراکنش را که به ماینر می رسد، نشان می دهد.", + "udapp.title2": "حداکثر مقدار کارمزدی را که برای این تراکنش پرداخت خواهید کرد، نشان می دهد. حداقل باید روی کارمزد پایه تنظیم شود.", + "udapp.gasPrice": "قیمت گاز", + "udapp.gweiText": "برای اطلاعات فعلی قیمت گاز به {a} مراجعه کنید.", + "udapp.maxTransactionFee": "حداکثر کارمزد تراکنش", + "udapp.mainnetText3": "این هشدار را دوباره نشان نده.", + "udapp._comment_run-tab.tsx": "libs/remix-ui/run-tab/src/lib/run-tab.tsx", + "udapp.gasEstimationPromptText": "تخمین گاز با پیام زیر با خطا مواجه شد (به زیر مراجعه کنید). اجرای تراکنش احتمالاً با شکست مواجه خواهد شد. آیا می خواهید ارسال را مجبور کنید؟", + "udapp._comment_custom-dropdown.tsx": "libs/remix-ui/helper/src/lib/components/custom-dropdown.tsx", + "udapp.enterProxyAddress": "آدرس پروکسی را وارد کنید", + "udapp._comment_provider": "apps/remix-ide/src/app/providers", + "udapp.customVmForkProviderText": "لطفاً اطلاعات مربوط به انشعاب سفارشی را ارائه دهید. اگر URL گره ارائه نشود، VM با یک وضعیت خالی شروع به کار می کند.", + "udapp.nodeUrl": "URL گره", + "udapp.blockNumber": "شماره بلوک (یا \"latest\")", + "udapp.externalHttpProviderText1": "توجه: برای استفاده از Geth و https://remix.ethereum.org، آن را برای اجازه دادن به درخواست ها از Remix پیکربندی کنید: (به مستندات Geth در مورد سرور rpc مراجعه کنید)", + "udapp.externalHttpProviderText2": "برای اجرای Remix و یک گره تست Geth محلی، از این دستور استفاده کنید: (به مستندات Geth در مورد حالت توسعه مراجعه کنید)", + "udapp.externalHttpProviderText3": "هشدار: استفاده از پرچم --http.corsdomain با یک علامت عام امن نیست: --http.corsdomain *", + "udapp.externalHttpProviderText4": "برای اطلاعات بیشتر: مستندات Remix در مورد ارائه دهنده HTTP خارجی", + "udapp.foundryProviderText1": "توجه: برای اجرای Anvil در سیستم خود، اجرا کنید:", + "udapp.foundryProviderText2": "برای اطلاعات بیشتر، به: مستندات Foundry مراجعه کنید", + "udapp.ganacheProviderText1": "توجه: برای اجرای Ganache در سیستم خود، اجرا کنید:", + "udapp.ganacheProviderText2": "برای اطلاعات بیشتر، به: مستندات Ganache مراجعه کنید", + "udapp.hardhatProviderText1": "توجه: برای اجرای گره شبکه Hardhat در سیستم خود، به پوشه پروژه hardhat بروید و دستور را اجرا کنید:", + "udapp.hardhatProviderText2": "برای اطلاعات بیشتر، به: مستندات Hardhat مراجعه کنید", + "udapp.EIP712-2": "لطفاً برای کسب اطلاعات بیشتر این پیوند را دنبال کنید.", + "udapp.EIP712-3": "در Remix، امضای داده های تایپ شده با کلیک راست (کلیک راست / امضای داده های تایپ شده) روی یک فایل JSON که محتوای آن با EIP-712 سازگار است، امکان پذیر است.", + "udapp.EIP712-create-template": "ایجاد یک JSON سازگار با EIP-712", + "udapp.EIP712-close": "بستن", + "udapp.sign": "امضا", + "udapp.createDelegationAuthorization": "اتصال EOA به کد قرارداد (EIP 7702)", + "udapp.createDelegationTitle": "اتصال EOA به کد قرارداد (EIP 7702)", + "udapp.removeDelegationTitle": "حذف تفویض قرارداد (EIP 7702)", + "udapp.createDelegationDescription": "تفویض اختیار بین EOA فعلی و کد قرارداد در آدرس ارائه شده را مجاز کنید. قرارداد باید در زنجیره فعلی مستقر شود." +} diff --git a/apps/remix-ide/src/app/tabs/locales/ir/vyper.json b/apps/remix-ide/src/app/tabs/locales/ir/vyper.json new file mode 100644 index 00000000000..85e062c3fbc --- /dev/null +++ b/apps/remix-ide/src/app/tabs/locales/ir/vyper.json @@ -0,0 +1,3 @@ +{ + "vyper.openaigptMessage": "کد vyper: {content}\n پیام خطا: {messageText}\n توضیح دهید چرا خطا رخ داده و چگونه آن را برطرف کنید." +}