From ebb077f6e0c3a3fea9018bb7f5a9be699b6ea840 Mon Sep 17 00:00:00 2001 From: AlI <13054619+411A@users.noreply.github.com> Date: Sat, 25 Oct 2025 17:02:24 +0330 Subject: [PATCH] i18n: add translations for Persian/Farsi(fa), closes #2321 (#2326) --- apps/readest-app/i18next-scanner.config.js | 1 + .../public/locales/fa/translation.json | 613 ++++++++++++++++++ apps/readest-app/src/services/constants.ts | 1 + 3 files changed, 615 insertions(+) create mode 100644 apps/readest-app/public/locales/fa/translation.json diff --git a/apps/readest-app/i18next-scanner.config.js b/apps/readest-app/i18next-scanner.config.js index a771004e..c25a26c8 100644 --- a/apps/readest-app/i18next-scanner.config.js +++ b/apps/readest-app/i18next-scanner.config.js @@ -12,6 +12,7 @@ module.exports = { 'de', 'ja', 'es', + 'fa', 'fr', 'it', 'el', diff --git a/apps/readest-app/public/locales/fa/translation.json b/apps/readest-app/public/locales/fa/translation.json new file mode 100644 index 00000000..8c411bf8 --- /dev/null +++ b/apps/readest-app/public/locales/fa/translation.json @@ -0,0 +1,613 @@ +{ + "Email address": "آدرس ایمیل", + "Your Password": "رمز عبور شما", + "Your email address": "آدرس ایمیل شما", + "Your password": "رمز عبور شما", + "Sign in": "ورود", + "Signing in...": "در حال ورود...", + "Sign in with {{provider}}": "ورود با {{provider}}", + "Already have an account? Sign in": "اگر از قبل حساب دارید، وارد شوید", + "Create a Password": "ایجاد رمز عبور", + "Sign up": "ثبت‌نام", + "Signing up...": "در حال ثبت‌نام...", + "Don't have an account? Sign up": "حساب کاربری ندارید؟ ثبت‌نام کنید", + "Check your email for the confirmation link": "ایمیل خود را برای لینک تأیید بررسی کنید", + "Signing in ...": "در حال ورود ...", + "Send a magic link email": "ارسال لینک جادویی به ایمیل", + "Check your email for the magic link": "ایمیل خود را برای دریافت لینک جادویی بررسی کنید", + "Send reset password instructions": "ارسال دستورالعمل بازنشانی رمز عبور", + "Sending reset instructions ...": "در حال ارسال دستورالعمل بازنشانی...", + "Forgot your password?": "رمز عبور خود را فراموش کرده‌اید؟", + "Check your email for the password reset link": "ایمیل خود را برای لینک بازنشانی رمز عبور بررسی کنید", + "Phone number": "شماره تلفن", + "Your phone number": "شماره تلفن شما", + "Token": "توکن", + "Your OTP token": "کد یک‌بارمصرف شما", + "Verify token": "تأیید کد", + "Go Back": "بازگشت", + "Sign in with Google": "ورود با گوگل", + "Sign in with Apple": "ورود با اپل", + "Sign in with GitHub": "ورود با گیت‌هاب", + "New Password": "رمز عبور جدید", + "Your new password": "رمز عبور جدید شما", + "Update password": "به‌روزرسانی رمز عبور", + "Updating password ...": "در حال به‌روزرسانی رمز عبور...", + "Your password has been updated": "رمز عبور شما به‌روزرسانی شد", + "Something went wrong. Don't worry, our team has been notified and we're working on a fix.": "مشکلی پیش آمد. نگران نباشید—تیم ما مطلع شد و در حال رفع مشکل است.", + "Error Details:": "جزئیات خطا:", + "Try Again": "دوباره تلاش کنید", + "Your Library": "کتابخانه‌ی شما", + "Need help?": "به کمک نیاز دارید؟", + "Contact Support": "تماس با پشتیبانی", + "Show Book Details": "نمایش جزئیات کتاب", + "Bookshelf": "قفسه‌ی کتاب", + "Import Books": "وارد کردن کتاب‌ها", + "Open": "باز کردن", + "Group": "گروه", + "Details": "جزئیات", + "Delete": "حذف", + "Cancel": "لغو", + "Confirm Deletion": "تأیید حذف", + "Are you sure to delete {{count}} selected book(s)?_one": "آیا از حذف {{count}} کتاب انتخاب‌شده مطمئن هستید؟", + "Are you sure to delete {{count}} selected book(s)?_other": "آیا از حذف {{count}} کتاب انتخاب‌شده مطمئن هستید؟", + "Deselect Book": "لغو انتخاب کتاب", + "Select Book": "انتخاب کتاب", + "Download Book": "دانلود کتاب", + "Upload Book": "آپلود کتاب", + "Deselect Group": "لغو انتخاب گروه", + "Select Group": "انتخاب گروه", + "Untitled Group": "گروه بدون عنوان", + "Group Books": "گروه‌بندی کتاب‌ها", + "Remove From Group": "حذف از گروه", + "Create New Group": "ایجاد گروه جدید", + "Save": "ذخیره", + "Confirm": "تأیید", + "From Local File": "از فایل محلی", + "Search in {{count}} Book(s)..._one": "جستجو در {{count}} کتاب...", + "Search in {{count}} Book(s)..._other": "جستجو در {{count}} کتاب...", + "Search Books...": "جستجوی کتاب‌ها...", + "Clear Search": "پاک کردن جستجو", + "Select Books": "انتخاب کتاب‌ها", + "Deselect": "لغو انتخاب", + "Select All": "انتخاب همه", + "View Menu": "نمایش منو", + "Settings Menu": "منوی تنظیمات", + "Failed to select directory": "انتخاب مسیر ناموفق بود", + "The new data directory must be different from the current one.": "مسیر داده‌ی جدید باید با مسیر فعلی متفاوت باشد.", + "Migration failed: {{error}}": "انتقال ناموفق بود: {{error}}", + "Change Data Location": "تغییر محل داده‌ها", + "Current Data Location": "محل فعلی داده‌ها", + "Loading...": "در حال بارگیری...", + "File count: {{size}}": "تعداد فایل‌ها: {{size}}", + "Total size: {{size}}": "حجم کل: {{size}}", + "Calculating file info...": "در حال محاسبه‌ی اطلاعات فایل...", + "New Data Location": "محل جدید داده‌ها", + "Choose New Folder": "انتخاب پوشه‌ی جدید", + "Choose Different Folder": "انتخاب پوشه‌ی دیگر", + "Migrating data...": "در حال انتقال داده‌ها...", + "Copying: {{file}}": "در حال کپی‌کردن: {{file}}", + "{{current}} of {{total}} files": "{{current}} از {{total}} فایل‌ها", + "Migration completed successfully!": "انتقال با موفقیت انجام شد!", + "Your data has been moved to the new location. Please restart the application to complete the process.": "داده‌های شما به محل جدید منتقل شدند. لطفاً برای تکمیل فرایند، برنامه را مجدداً راه‌اندازی کنید.", + "Migration failed": "انتقال ناموفق بود", + "Important Notice": "اطلاعیه‌ی مهم", + "This will move all your app data to the new location. Make sure the destination has enough free space.": "این کار، همه‌ی داده‌های برنامه را به محل جدید منتقل خواهد کرد. مطمئن شوید که در مقصد، فضای کافی وجود دارد.", + "Close": "بستن", + "Restart App": "راه‌اندازی مجدد برنامه", + "Start Migration": "شروع انتقال", + "Dark Mode": "حالت تاریک", + "Light Mode": "حالت روشن", + "Auto Mode": "حالت خودکار", + "Logged in as {{userDisplayName}}": "شما با نام «{{userDisplayName}}» وارد شده‌اید", + "Logged in": "وارد شده‌اید", + "View account details and quota": "مشاهده‌ی جزئیات حساب و وضعیت سهمیه", + "Account": "حساب", + "Sign In": "ورود", + "Auto Upload Books to Cloud": "بارگذاری خودکار کتاب‌ها در فضای ابری", + "Auto Import on File Open": "وارد کردن خودکار هنگام باز کردن فایل", + "Open Last Book on Start": "باز کردن آخرین کتاب هنگام شروع برنامه", + "Check Updates on Start": "بررسی به‌روزرسانی‌ها هنگام شروع", + "Open Book in New Window": "باز کردن کتاب در پنجره‌ی جدید", + "Fullscreen": "تمام‌صفحه", + "Always on Top": "همیشه در بالا", + "Always Show Status Bar": "نمایش همیشگی نوار وضعیت", + "Keep Screen Awake": "روشن نگه داشتن صفحه", + "Background Read Aloud": "خواندن با صدای بلند در پس‌زمینه", + "Reload Page": "بارگذاری مجدد صفحه", + "Settings": "تنظیمات", + "Advanced Settings": "تنظیمات پیشرفته", + "Upgrade to Readest Premium": "ارتقاء به Readest Premium", + "Download Readest": "دانلود Readest", + "About Readest": "درباره‌ی Readest", + "Help improve Readest": "کمک به بهبود Readest", + "Sharing anonymized statistics": "اشتراک‌گذاری آمار ناشناس", + "List": "لیست", + "Grid": "جدول", + "Crop": "برش", + "Fit": "متناسب", + "Title": "عنوان", + "Author": "نویسنده", + "Format": "نوع فرمت", + "Date Read": "تاریخ مطالعه", + "Date Added": "تاریخ اضافه‌شدن", + "Ascending": "صعودی", + "Descending": "نزولی", + "Book Covers": "جلد کتاب‌ها", + "Sort by...": "مرتب‌سازی بر اساس...", + "No supported files found. Supported formats: {{formats}}": "فایل پشتیبانی‌شده‌ای یافت نشد. فرمت‌های قابل پشتیبانی: {{formats}}", + "No chapters detected.": "هیچ فصلی شناسایی نشد.", + "Failed to parse the EPUB file.": "پردازش فایل EPUB ناموفق بود.", + "This book format is not supported.": "این فرمت کتاب پشتیبانی نمی‌شود.", + "Failed to import book(s): {{filenames}}": "وارد کردن کتاب(ها) ناموفق بود: {{filenames}}", + "Book uploaded: {{title}}": "کتاب آپلود شد: {{title}}", + "Insufficient storage quota": "سهمیه‌ی ذخیره‌سازی کافی نیست", + "Failed to upload book: {{title}}": "آپلود کتاب ناموفق بود: {{title}}", + "Book downloaded: {{title}}": "کتاب دانلود شد: {{title}}", + "Failed to download book: {{title}}": "دانلود کتاب ناموفق بود: {{title}}", + "Book deleted: {{title}}": "کتاب حذف شد: {{title}}", + "Deleted cloud backup of the book: {{title}}": "نسخه‌ی پشتیبان ابری کتاب حذف شد: {{title}}", + "Deleted local copy of the book: {{title}}": "نسخه‌ی محلی کتاب حذف شد: {{title}}", + "Failed to delete book: {{title}}": "حذف کتاب ناموفق بود: {{title}}", + "Failed to delete cloud backup of the book: {{title}}": "حذف نسخه‌ی پشتیبان ابری ناموفق بود: {{title}}", + "Failed to delete local copy of the book: {{title}}": "حذف نسخه‌ی محلی کتاب ناموفق بود: {{title}}", + "Library Header": "سربرگ کتابخانه", + "Welcome to your library. You can import your books here and read them anytime.": "به کتابخانه‌تان خوش آمدید. می‌توانید کتاب‌هایتان را اینجا وارد کنید و هر زمان خواستید آن‌ها را بخوانید.", + "Copied to notebook": "به دفترچه یادداشت کپی شد", + "No annotations to export": "هیچ حاشیه‌نویسی‌ای برای خروجی‌گرفتن وجود ندارد", + "Exported from Readest": "خروجی‌گرفته‌شده از Readest", + "Highlights & Annotations": "هایلایت‌ها و حاشیه‌نویسی‌ها", + "Untitled": "بدون عنوان", + "Note": "یادداشت", + "Copied to clipboard": "به کلیپ‌بورد کپی شد", + "Copy": "کپی", + "Delete Highlight": "حذف هایلایت", + "Highlight": "هایلایت", + "Annotate": "حاشیه‌نویسی", + "Search": "جستجو", + "Dictionary": "فرهنگ لغت", + "Wikipedia": "ویکی‌پدیا", + "Translate": "ترجمه", + "Speak": "پخش صوتی", + "Login Required": "نیازمند ورود", + "Quota Exceeded": "سهمیه به پایان رسیده است", + "Unable to fetch the translation. Please log in first and try again.": "نمی‌توان ترجمه را دریافت کرد. لطفاً ابتدا وارد شوید و دوباره تلاش کنید.", + "Unable to fetch the translation. Try again later.": "نمی‌توان ترجمه را دریافت کرد. بعداً دوباره تلاش کنید.", + "Original Text": "متن اصلی", + "Auto Detect": "تشخیص خودکار", + "(detected)": "(تشخیص‌داده‌شده)", + "Translated Text": "متن ترجمه‌شده", + "System Language": "زبان سیستم", + "No translation available.": "هیچ ترجمه‌ای در دسترس نیست.", + "Translated by {{provider}}.": "ترجمه‌شده توسط {{provider}}.", + "Remove Bookmark": "حذف نشانک", + "Add Bookmark": "افزودن نشانک", + "Books Content": "محتوای کتاب‌ها", + "Book Content": "محتوای کتاب", + "Screen Brightness": "روشنایی صفحه", + "Color": "رنگ", + "Previous Section": "بخش قبلی", + "Next Section": "بخش بعدی", + "Previous Page": "صفحه‌ی قبل", + "Next Page": "صفحه‌ی بعد", + "Go Forward": "رفتن به جلو", + "Reading Progress": "وضعیت مطالعه", + "Jump to Location": "پرش به مکان", + "Font Size": "اندازه فونت", + "Page Margin": "حاشیه صفحه", + "Small": "کوچک", + "Large": "بزرگ", + "Line Spacing": "فاصله‌ی خطوط", + "Footer Bar": "نوار پاورقی", + "Table of Contents": "فهرست مطالب", + "Font & Layout": "فونت و چیدمان", + "Header Bar": "نوار سربرگ", + "View Options": "گزینه‌های نمایش", + "Sync Conflict": "تداخل همگام‌سازی", + "Sync reading progress from \"{{deviceName}}\"?": "همگام‌سازی وضعیت مطالعه از «{{deviceName}}»؟", + "another device": "دستگاه دیگر", + "Local Progress": "وضعیت مطالعه محلی", + "Remote Progress": "وضعیت مطالعه از راه دور", + "Failed to connect": "اتصال برقرار نشد", + "Disconnected": "قطع اتصال", + "KOReader Sync Settings": "تنظیمات همگام‌سازی KOReader", + "Sync as {{userDisplayName}}": "همگام‌سازی به‌عنوان {{userDisplayName}}", + "Sync Server Connected": "سرور همگام‌سازی متصل شد", + "Sync Strategy": "استراتژی همگام‌سازی", + "Ask on conflict": "پرسش هنگام تداخل", + "Always use latest": "همیشه از آخرین استفاده شود", + "Send changes only": "فقط ارسال تغییرات", + "Receive changes only": "فقط دریافت تغییرات", + "Checksum Method": "روش Checksum", + "File Content (recommended)": "محتوای فایل (توصیه‌شده)", + "File Name": "نام فایل", + "Device Name": "نام دستگاه", + "Connect to your KOReader Sync server.": "به سرور همگام‌سازی KOReader خود متصل شوید.", + "Server URL": "آدرس سرور", + "Username": "نام کاربری", + "Your Username": "نام کاربری شما", + "Password": "رمز عبور", + "Connect": "اتصال", + "Notebook": "دفترچه یادداشت", + "Unpin Notebook": "برداشتن سنجاق دفترچه یادداشت", + "Pin Notebook": "سنجاق کردن دفترچه یادداشت", + "Hide Search Bar": "پنهان کردن نوار جستجو", + "Show Search Bar": "نمایش نوار جستجو", + "Resize Notebook": "تغییر اندازه دفترچه یادداشت", + "No notes match your search": "هیچ یادداشتی با جستجوی شما مطابقت ندارد", + "Excerpts": "گزیده‌ها", + "Notes": "یادداشت‌ها", + "Add your notes here...": "یادداشت‌های خود را اینجا اضافه کنید...", + "Search notes and excerpts...": "جستجوی یادداشت‌ها و گزیده‌ها...", + "{{time}} min left in chapter": "{{time}} دقیقه تا انتهای فصل", + "{{number}} pages left in chapter": "{{number}} صفحه تا انتهای فصل", + "{{count}} pages left in chapter_one": "{{count}} صفحه تا انتهای فصل", + "{{count}} pages left in chapter_other": "{{count}} صفحه تا انتهای فصل‌ها", + "On {{current}} of {{total}} page": "در صفحه‌ی {{current}} از {{total}}", + "Section Title": "عنوان بخش", + "Book Cover": "جلد کتاب", + "More Info": "اطلاعات بیشتر", + "Parallel Read": "خواندن موازی", + "Disable": "غیرفعال", + "Enable": "فعال", + "Exit Parallel Read": "خروج از خواندن موازی", + "Enter Parallel Read": "ورود به خواندن موازی", + "KOReader Sync": "همگام‌سازی KOReader", + "Push Progress": "ارسال وضعیت مطالعه", + "Pull Progress": "دریافت وضعیت مطالعه", + "Export Annotations": "خروجی‌گرفتن از حاشیه‌نویسی‌ها", + "Sort TOC by Page": "مرتب‌سازی فهرست مطالب بر اساس صفحه", + "Edit": "ویرایش", + "Go to Library": "رفتن به کتابخانه", + "Book Menu": "منوی کتاب", + "Unpin Sidebar": "برداشتن سنجاق نوار کناری", + "Pin Sidebar": "سنجاق کردن نوار کناری", + "Search...": "جستجو...", + "Search Options": "گزینه‌های جستجو", + "Book": "کتاب", + "Chapter": "فصل", + "Match Case": "تطابق حروف بزرگ/کوچک", + "Match Whole Words": "تطابق کل کلمات", + "Match Diacritics": "تطابق علائم اِعرابی", + "Sidebar": "نوار کناری", + "Resize Sidebar": "تغییر اندازه نوار کناری", + "TOC": "فهرست مطالب", + "Bookmark": "نشانک", + "Toggle Sidebar": "تغییر وضعیت نوار کناری", + "Toggle Translation": "تغییر وضعیت ترجمه", + "Disable Translation": "غیرفعال کردن ترجمه", + "Enable Translation": "فعال کردن ترجمه", + "Translation Disabled": "ترجمه غیرفعال است", + "Previous Paragraph": "پاراگراف قبلی", + "Previous Sentence": "جمله‌ی قبلی", + "Pause": "توقف", + "Play": "پخش", + "Next Sentence": "جمله‌ی بعدی", + "Next Paragraph": "پاراگراف بعدی", + "Read Aloud": "خواندن با صدای بلند", + "Ready to read aloud": "آماده برای خواندن با صدای بلند", + "TTS not supported for PDF": "قابلیت تبدیل متن به گفتار برای PDF پشتیبانی نمی‌شود", + "TTS not supported for this document": "قابلیت تبدیل متن به گفتار برای این سند پشتیبانی نمی‌شود", + "No Timeout": "بدون محدودیت زمانی", + "{{value}} minute": "{{value}} دقیقه", + "{{value}} minutes": "{{value}} دقیقه", + "{{value}} hour": "{{value}} ساعت", + "{{value}} hours": "{{value}} ساعت", + "Voices for {{lang}}": "صداها برای {{lang}}", + "Slow": "آهسته", + "Fast": "سریع", + "{{engine}}: {{count}} voices_one": "{{engine}}: {{count}} صدا", + "{{engine}}: {{count}} voices_other": "{{engine}}: {{count}} صدا", + "Zoom Level": "اندازه بزرگ‌نمایی", + "Zoom Out": "کوچک‌نمایی", + "Reset Zoom": "بازنشانی بزرگ‌نمایی", + "Zoom In": "بزرگ‌نمایی", + "Zoom Mode": "حالت بزرگ‌نمایی", + "Single Page": "تک‌صفحه‌ای", + "Auto Spread": "گسترش خودکار", + "Fit Page": "تناسب صفحه", + "Fit Width": "تناسب با عرض", + "Separate Cover Page": "جدا کردن صفحه‌ی جلد", + "Scrolled Mode": "حالت پیمایشی", + "Sign in to Sync": "برای همگام‌سازی وارد شوید", + "Synced at {{time}}": "همگام‌سازی شده در {{time}}", + "Never synced": "هرگز همگام‌سازی نشده", + "Invert Image In Dark Mode": "معکوس کردن تصویر در حالت تاریک", + "Reading Progress Synced": "وضعیت مطالعه همگام‌سازی شد", + "Page {{page}} of {{total}} ({{percentage}}%)": "صفحه‌ی {{page}} از {{total}} ({{percentage}}%)", + "Current position": "موقعیت فعلی", + "Approximately page {{page}} of {{total}} ({{percentage}}%)": "تقریباً صفحه‌ی {{page}} از {{total}} ({{percentage}}%)", + "Approximately {{percentage}}%": "تقریباً {{percentage}}%", + "Delete Your Account?": "حذف حساب کاربری؟", + "This action cannot be undone. All your data in the cloud will be permanently deleted.": "این عمل غیرقابل بازگشت است. تمام داده‌های شما در فضای ابری به‌طور دائمی حذف خواهند شد.", + "Delete Permanently": "حذف دائمی", + "Restore Purchase": "بازیابی خرید", + "Manage Subscription": "مدیریت اشتراک", + "Reset Password": "بازنشانی رمز عبور", + "Sign Out": "خروج", + "Delete Account": "حذف حساب", + "Upgrade to {{plan}}": "ارتقاء به {{plan}}", + "Complete Your Subscription": "تکمیل اشتراک", + "Coming Soon": "به‌زودی", + "Upgrade to Plus or Pro": "ارتقاء به Plus یا Pro", + "Current Plan": "طرح فعلی", + "Plan Limits": "محدودیت‌های طرح", + "Failed to delete user. Please try again later.": "حذف کاربر ناموفق بود. لطفاً بعداً دوباره تلاش کنید.", + "Failed to create checkout session": "ایجاد صفحه‌ی پرداخت ناموفق بود", + "No purchases found to restore.": "هیچ خریدی برای بازیابی یافت نشد.", + "Failed to restore purchases.": "بازیابی خریدها ناموفق بود.", + "Failed to manage subscription.": "مدیریت اشتراک ناموفق بود.", + "Failed to load subscription plans.": "بارگذاری طرح‌های اشتراک ناموفق بود.", + "Loading profile...": "در حال بارگذاری پروفایل...", + "Processing your payment...": "در حال پردازش پرداخت شما...", + "Please wait while we confirm your subscription.": "لطفاً تا تأیید اشتراک صبور باشید.", + "Payment Processing": "پردازش پرداخت", + "Your payment is being processed. This usually takes a few moments.": "پرداخت شما در حال پردازش است. معمولاً چند لحظه طول می‌کشد.", + "Payment Failed": "پرداخت ناموفق", + "We couldn't process your subscription. Please try again or contact support if the issue persists.": "نتوانستیم اشتراک شما را پردازش کنیم. لطفاً دوباره تلاش کنید یا در صورت ادامه‌ی مشکل با پشتیبانی تماس بگیرید.", + "Back to Profile": "بازگشت به پروفایل", + "Subscription Successful!": "اشتراک با موفقیت فعال شد!", + "Thank you for your subscription! Your payment has been processed successfully.": "از اشتراک شما سپاس‌گزاریم! پرداخت شما با موفقیت انجام شد.", + "Email:": "ایمیل:", + "Plan:": "طرح:", + "Amount:": "مبلغ:", + "Subscription ID:": "شناسه اشتراک:", + "Need help? Contact our support team at support@readest.com": "نیاز به کمک دارید؟ با تیم پشتیبانی ما به آدرس support@readest.com تماس بگیرید", + "Free Plan": "طرح رایگان", + "month": "ماه", + "year": "سال", + "Cross-Platform Sync": "همگام‌سازی چندپلتفرمی", + "Seamlessly sync your library, progress, highlights, and notes across all your devices—never lose your place again.": "کتابخانه، وضعیت مطالعه، هایلایت‌ها و یادداشت‌های خود را بین همه‌ی دستگاه‌ها به‌صورت یکپارچه همگام‌سازی کنید — دیگر هرگز محل مطالعه‌تان را از دست ندهید.", + "Customizable Reading": "تجربه‌ی مطالعه شخصی‌سازی‌شده", + "Personalize every detail with adjustable fonts, layouts, themes, and advanced display settings for the perfect reading experience.": "همه‌چیز را با فونت‌ها، چیدمان‌ها، تِم‌ها و تنظیمات نمایش پیشرفته قابل تغییر کنید تا تجربه‌ی خواندنِ ایده‌آل خود را بسازید.", + "AI Read Aloud": "خواندن صوتی با هوش مصنوعی", + "Enjoy hands-free reading with natural-sounding AI voices that bring your books to life.": "از خواندن بدون دخالت دست با صداهای طبیعیِ هوش مصنوعی لذت ببرید که کتاب‌هایتان را جان می‌بخشند.", + "AI Translations": "ترجمه‌های هوش مصنوعی", + "Translate any text instantly with the power of Google, Azure, or DeepL—understand content in any language.": "هر متنی را فوراً با قدرت Google، Azure یا DeepL ترجمه کنید — محتوای هر زبانی را بفهمید.", + "Community Support": "پشتیبانی جامعه", + "Connect with fellow readers and get help fast in our friendly community channels.": "با دیگر خوانندگان ارتباط برقرار کنید و از کانال‌های دوستانه‌ی جامعه‌ی ما کمک بگیرید.", + "Cloud Sync Storage": "ذخیره‌سازی همگام‌سازی ابری", + "AI Translations (per day)": "ترجمه‌های هوش مصنوعی (در روز)", + "Plus Plan": "طرح Plus", + "Includes All Free Plan Benefits": "شامل تمام امکانات طرح رایگان", + "Unlimited AI Read Aloud Hours": "ساعات نامحدود خواندن صوتی با هوش مصنوعی", + "Listen without limits—convert as much text as you like into immersive audio.": "بدون محدودیت گوش دهید — هر میزان متن را که بخواهید می‌توانید به صدایی جذاب تبدیل کنید.", + "More AI Translations": "ترجمه‌های هوش مصنوعی بیشتر", + "Unlock enhanced translation capabilities with more daily usage and advanced options.": "با استفاده‌ی روزانه‌ی بیشتر و گزینه‌های پیشرفته، قابلیت‌های ترجمه را افزایش دهید.", + "DeepL Pro Access": "دسترسی به DeepL Pro", + "Translate up to 100,000 characters daily with the most accurate translation engine available.": "تا روزانه ۱۰۰٬۰۰۰ کاراکتر را با دقیق‌ترین ابزار ترجمه، ترجمه کنید.", + "Securely store and access your entire reading collection with up to 5 GB of cloud storage.": "مجموعه‌ی خواندن خود را تا ۵ گیگابایت به‌صورت امن در فضای ابری ذخیره و دسترسی داشته باشید.", + "Priority Support": "پشتیبانی اولویت‌دار", + "Enjoy faster responses and dedicated assistance whenever you need help.": "از پاسخ‌های سریع‌تر و کمک اختصاصی هر زمان که نیاز دارید برخوردار شوید.", + "Pro Plan": "طرح Pro", + "Includes All Plus Plan Benefits": "شامل تمام مزایای طرح Plus", + "Early Feature Access": "دسترسی زودهنگام به ویژگی‌ها", + "Be the first to explore new features, updates, and innovations before anyone else.": "اولین نفری باشید که ویژگی‌ها، به‌روزرسانی‌ها و نوآوری‌های جدید را تجربه می‌کنید.", + "Advanced AI Tools": "ابزارهای هوش مصنوعی پیشرفته", + "Harness powerful AI tools for smarter reading, translation, and content discovery.": "از ابزارهای قدرتمند هوش مصنوعی برای خواندن هوشمندتر، ترجمه و کشف محتوا بهره ببرید.", + "Translate up to 500,000 characters daily with the most accurate translation engine available.": "تا روزانه ۵۰۰٬۰۰۰ کاراکتر را با دقیق‌ترین ابزار ترجمه، ترجمه کنید.", + "Securely store and access your entire reading collection with up to 20 GB of cloud storage.": "کل مجموعه‌ی خواندن خود را تا ۲۰ گیگابایت به‌صورت ایمن در فضای ابری ذخیره و دسترسی داشته باشید.", + "Version {{version}}": "نسخه‌ی {{version}}", + "Check Update": "بررسی به‌روزرسانی", + "Already the latest version": "در حال حاضر آخرین نسخه نصب است", + "Checking for updates...": "در حال بررسی به‌روزرسانی‌ها...", + "Error checking for updates": "خطا در بررسی به‌روزرسانی‌ها", + "Drop to Import Books": "برای وارد کردن کتاب‌ها، فایل را رها کنید", + "Terms of Service": "شرایط و قوانین", + "Privacy Policy": "سیاست حفظ حریم خصوصی", + "ON": "روشن", + "OFF": "خاموش", + "Enter book title": "عنوان کتاب را وارد کنید", + "Subtitle": "زیرعنوان", + "Enter book subtitle": "زیرعنوان کتاب را وارد کنید", + "Enter author name": "نام نویسنده را وارد کنید", + "Series": "سری", + "Enter series name": "نام سری را وارد کنید", + "Series Index": "شماره‌ی سری", + "Enter series index": "شماره‌ی سری را وارد کنید", + "Total in Series": "تعداد کل در سری", + "Enter total books in series": "تعداد کل کتاب‌ها در سری را وارد کنید", + "Publisher": "ناشر", + "Enter publisher": "ناشر را وارد کنید", + "Publication Date": "تاریخ انتشار", + "YYYY or YYYY-MM-DD": "YYYY یا YYYY-MM-DD", + "Language": "زبان", + "Identifier": "شناسه", + "Subjects": "موضوعات", + "Fiction, Science, History": "داستان، علم، تاریخ", + "Description": "توضیحات", + "Enter book description": "توضیحات کتاب را وارد کنید", + "Change cover image": "تغییر تصویر جلد", + "Replace": "جایگزین", + "Remove cover image": "حذف تصویر جلد", + "Unlock cover": "باز کردن قفل جلد", + "Lock cover": "قفل کردن جلد", + "Auto-Retrieve Metadata": "دریافت خودکار فراداده", + "Auto": "خودکار", + "Auto-Retrieve": "دریافت خودکار", + "Unlock all fields": "باز کردن قفل همه‌ی فیلدها", + "Unlock All": "باز کردن قفل همه", + "Lock all fields": "قفل کردن همه‌ی فیلدها", + "Lock All": "قفل کردن همه", + "Reset": "بازنشانی", + "Are you sure to delete the selected book?": "آیا از حذف کتاب انتخاب‌شده مطمئن هستید؟", + "Are you sure to delete the cloud backup of the selected book?": "آیا از حذف نسخه‌ی پشتیبان ابری کتاب انتخاب‌شده مطمئن هستید؟", + "Are you sure to delete the local copy of the selected book?": "آیا از حذف نسخه‌ی محلی کتاب انتخاب‌شده مطمئن هستید؟", + "Edit Metadata": "ویرایش فراداده", + "Book Details": "جزئیات کتاب", + "Unknown": "ناشناخته", + "Delete Book Options": "گزینه‌های حذف کتاب", + "Remove from Cloud & Device": "حذف از فضای ابری و دستگاه", + "Remove from Cloud Only": "حذف فقط از فضای ابری", + "Remove from Device Only": "حذف فقط از دستگاه", + "Published": "منتشر شده", + "Updated": "به‌روزرسانی شده", + "Added": "افزوده شده", + "File Size": "حجم فایل", + "No description available": "هیچ توضیحی موجود نیست", + "Locked": "قفل شده", + "Select Metadata Source": "انتخاب منبع فراداده", + "Keep manual input": "حفظ ورودی دستی", + "Theme Mode": "حالت تِم", + "Override Book Color": "جایگزینی رنگ کتاب", + "Theme Color": "رنگ تِم", + "Custom": "سفارشی", + "Background Image": "تصویر پس‌زمینه", + "Import Image": "وارد کردن تصویر", + "Opacity": "شفافیت", + "Size": "اندازه", + "Cover": "جلد", + "Contain": "شامل", + "Code Highlighting": "هایلایت کد", + "Enable Highlighting": "فعال کردن هایلایت", + "Code Language": "زبان کد", + "Scroll": "پیمایش", + "Continuous Scroll": "پیمایش مداوم", + "Overlap Pixels": "پیکسل‌های هم‌پوشانی", + "Click": "کلیک", + "Clicks for Page Flip": "کلیک‌ها برای ورق زدن صفحه", + "Swap Clicks Area": "تعویض ناحیه‌ی کلیک", + "Disable Double Click": "غیرفعال کردن کلیک دوبل", + "Volume Keys for Page Flip": "استفاده از کلیدهای صدا برای ورق زدن صفحه", + "Animation": "انیمیشن", + "Paging Animation": "انیمیشن صفحه‌بندی", + "Device": "دستگاه", + "E-Ink Mode": "حالت E-Ink", + "Security": "امنیت", + "Allow JavaScript": "اجازه‌ی اجرای JavaScript", + "Enable only if you trust the file.": "فقط در صورتی فعال کنید که به فایل اعتماد دارید.", + "Font": "فونت", + "Custom Fonts": "فونت‌های سفارشی", + "Cancel Delete": "لغو حذف", + "Delete Font": "حذف فونت", + "Import Font": "وارد کردن فونت", + "Tips": "نکات", + "Supported font formats: .ttf, .otf, .woff, .woff2": "فرمت‌های فونت پشتیبانی‌شده: .ttf, .otf, .woff, .woff2", + "Custom fonts can be selected from the Font Face menu": "فونت‌های سفارشی را می‌توان از منوی انتخاب فونت برگزید", + "Global Settings": "تنظیمات سراسری", + "Apply to All Books": "اِعمال برای همه‌ی کتاب‌ها", + "Apply to This Book": "اِعمال برای این کتاب", + "Reset Settings": "بازنشانی تنظیمات", + "Manage Custom Fonts": "مدیریت فونت‌های سفارشی", + "System Fonts": "فونت‌های سیستم", + "Serif Font": "فونت Serif", + "Sans-Serif Font": "فونت Sans-Serif", + "Override Book Font": "جایگزینی فونت کتاب", + "Default Font Size": "اندازه فونت پیش‌فرض", + "Minimum Font Size": "حداقل اندازه فونت", + "Font Weight": "وزن فونت", + "Font Family": "خانواده‌ی فونت", + "Default Font": "فونت پیش‌فرض", + "CJK Font": "فونت CJK", + "Font Face": "نمای فونت", + "Monospace Font": "فونت Monospace", + "Interface Language": "زبان برنامه", + "Translation": "ترجمه", + "Show Source Text": "نمایش متن منبع", + "Translation Service": "سرویس ترجمه", + "Translate To": "ترجمه به", + "Override Book Layout": "جایگزینی چیدمان کتاب", + "Writing Mode": "حالت نوشتن", + "Default": "پیش‌فرض", + "Horizontal Direction": "جهت افقی", + "Vertical Direction": "جهت عمودی", + "RTL Direction": "جهت راست‌به‌چپ", + "Border Frame": "قاب حاشیه", + "Double Border": "حاشیه‌ی دوبل", + "Border Color": "رنگ حاشیه", + "Paragraph": "پاراگراف", + "Paragraph Margin": "حاشیه‌ی پاراگراف", + "Word Spacing": "فاصله‌ی کلمات", + "Letter Spacing": "فاصله‌ی حروف", + "Text Indent": "تورفتگی متن", + "Full Justification": "تراز کامل", + "Hyphenation": "تقسیم‌بندی کلمات", + "Page": "صفحه", + "Top Margin (px)": "حاشیه‌ی بالا (px)", + "Bottom Margin (px)": "حاشیه‌ی پایین (px)", + "Left Margin (px)": "حاشیه‌ی چپ (px)", + "Right Margin (px)": "حاشیه‌ی راست (px)", + "Column Gap (%)": "فاصله‌ی ستون (%)", + "Maximum Number of Columns": "حداکثر تعداد ستون‌ها", + "Maximum Column Height": "حداکثر ارتفاع ستون", + "Maximum Column Width": "حداکثر عرض ستون", + "Header & Footer": "سربرگ و پاورقی", + "Show Header": "نمایش سربرگ", + "Show Footer": "نمایش پاورقی", + "Show Remaining Time": "نمایش زمان باقی‌مانده", + "Show Remaining Pages": "نمایش صفحات باقی‌مانده", + "Show Reading Progress": "نمایش وضعیت مطالعه", + "Reading Progress Style": "سبک نمایش وضعیت مطالعه", + "Page Number": "شماره صفحه", + "Percentage": "درصد", + "Apply also in Scrolled Mode": "همچنین در حالت پیمایشی اعمال شود", + "Screen": "صفحه", + "Orientation": "جهت", + "Portrait": "عمودی", + "Landscape": "افقی", + "Apply": "اعمال", + "Custom Content CSS": "CSS محتوای سفارشی", + "Enter CSS for book content styling...": "CSS برای استایل محتوای کتاب وارد کنید...", + "Custom Reader UI CSS": "CSS رابط خواننده‌ی سفارشی", + "Enter CSS for reader interface styling...": "CSS برای استایل رابط خواننده وارد کنید...", + "Decrease": "کاهش", + "Increase": "افزایش", + "Layout": "چیدمان", + "Behavior": "رفتار", + "Settings Panels": "پنل‌های تنظیمات", + "Reset {{settings}}": "بازنشانی {{settings}}", + "All the world's a stage,\nAnd all the men and women merely players;\nThey have their exits and their entrances,\nAnd one man in his time plays many parts,\nHis acts being seven ages.\n\n— William Shakespeare": "تمام دنیا صحنه‌ای است،\nو همه‌ی مردان و زنان تنها بازیگرانی بیش نیستند؛\nآن‌ها ورود و خروج خود را دارند،\nو هر آدمی در طول زمان نقش‌های بسیاری ایفا می‌کند،\nاعمال او هفت دوره‌اند.\n\n— ویلیام شکسپیر", + "(from 'As You Like It', Act II)": "(از «همان‌طور که دوست دارید»، پرده‌ی دوم)", + "Custom Theme": "تِم سفارشی", + "Theme Name": "نام تِم", + "Text Color": "رنگ متن", + "Background Color": "رنگ پس‌زمینه", + "Link Color": "رنگ لینک", + "Preview": "پیش‌نمایش", + "Get Help from the Readest Community": "دریافت کمک از جامعه‌ی Readest", + "A new version of Readest is available!": "نسخه‌ی جدیدی از Readest در دسترس است!", + "Readest {{newVersion}} is available (installed version {{currentVersion}}).": "نسخه‌ی {{newVersion}} Readest در دسترس است (نسخه‌ی نصب‌شده: {{currentVersion}}).", + "Download and install now?": "الان دانلود و نصب شود؟", + "Downloading {{downloaded}} of {{contentLength}}": "در حال دانلود {{downloaded}} از {{contentLength}}", + "Download finished": "دانلود تکمیل شد", + "DOWNLOAD & INSTALL": "دانلود و نصب", + "Changelog": "لیست تغییرات", + "Software Update": "به‌روزرسانی نرم‌افزار", + "What's New in Readest": "چه چیز تازه‌ای در Readest است", + "Minimize": "کوچک کردن", + "Maximize or Restore": "بزرگ کردن یا بازگردانی", + "Select Files": "انتخاب فایل‌ها", + "Select Image": "انتخاب تصویر", + "Select Video": "انتخاب ویدیو", + "Select Audio": "انتخاب صوت", + "Select Fonts": "انتخاب فونت‌ها", + "Storage": "ذخیره‌سازی", + "{{percentage}}% of Cloud Sync Space Used.": "{{percentage}}% از فضای همگام‌سازی ابری استفاده شده است.", + "Translation Characters": "کاراکترهای ترجمه", + "{{percentage}}% of Daily Translation Characters Used.": "{{percentage}}% از کاراکترهای ترجمه‌ی روزانه استفاده شده است.", + "Daily translation quota reached. Upgrade your plan to continue using AI translations.": "سهمیه‌ی ترجمه‌ی روزانه به پایان رسیده است. برای ادامه‌ی استفاده از ترجمه‌های هوش مصنوعی، طرح خود را ارتقاء دهید.", + "LXGW WenKai GB Screen": "LXGW WenKai GB Screen", + "LXGW WenKai TC": "LXGW WenKai TC", + "GuanKiapTsingKhai-T": "GuanKiapTsingKhai-T", + "Source Han Serif CN VF": "Source Han Serif CN VF", + "Huiwen-mincho": "Huiwen-mincho", + "KingHwa_OldSong": "KingHwa_OldSong", + "Google Books": "کتاب‌های گوگل", + "Open Library": "Open Library", + "Azure Translator": "مترجم Azure", + "DeepL": "DeepL", + "Google Translate": "ترجمه‌ی Google", + "Yandex Translate": "ترجمه‌ی Yandex", + "Gray": "خاکستری", + "Sepia": "سپیا", + "Grass": "چمنی", + "Cherry": "گیلاسی", + "Sky": "آسمانی", + "Solarized": "سولاریزد", + "Gruvbox": "Gruvbox", + "Nord": "Nord", + "Contrast": "کنتراست", + "Sunset": "غروب", + "Reveal in Finder": "نمایش در Finder", + "Reveal in File Explorer": "نمایش در File Explorer", + "Reveal in Folder": "نمایش در پوشه" +} diff --git a/apps/readest-app/src/services/constants.ts b/apps/readest-app/src/services/constants.ts index eb9cc0b5..d614a04e 100644 --- a/apps/readest-app/src/services/constants.ts +++ b/apps/readest-app/src/services/constants.ts @@ -695,6 +695,7 @@ export const TRANSLATED_LANGS = { pt: 'Português', ru: 'Русский', ar: 'العربية', + fa: 'فارسی', el: 'Ελληνικά', uk: 'Українська', pl: 'Polski',