From d8817a88b9c67ac12e63c525d52c36d2df1908da Mon Sep 17 00:00:00 2001 From: Huang Xin Date: Sun, 8 Feb 2026 13:55:53 +0800 Subject: [PATCH] i18n: add support for Hebrew, closes #3216 (#3218) --- apps/readest-app/i18next-scanner.config.js | 1 + .../public/locales/he/translation.json | 1091 +++++++++++++++++ .../src/components/settings/LangPanel.tsx | 6 +- apps/readest-app/src/services/constants.ts | 1 + 4 files changed, 1098 insertions(+), 1 deletion(-) create mode 100644 apps/readest-app/public/locales/he/translation.json diff --git a/apps/readest-app/i18next-scanner.config.js b/apps/readest-app/i18next-scanner.config.js index 3b114996..b49e3b64 100644 --- a/apps/readest-app/i18next-scanner.config.js +++ b/apps/readest-app/i18next-scanner.config.js @@ -28,6 +28,7 @@ module.exports = { 'id', 'vi', 'ms', + 'he', 'ar', 'th', 'bo', diff --git a/apps/readest-app/public/locales/he/translation.json b/apps/readest-app/public/locales/he/translation.json new file mode 100644 index 00000000..92db7993 --- /dev/null +++ b/apps/readest-app/public/locales/he/translation.json @@ -0,0 +1,1091 @@ +{ + "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": "אסימון (Token)", + "Your OTP token": "אסימון ה-OTP שלך", + "Verify token": "אמת אסימון", + "Go Back": "חזור", + "New Password": "סיסמה חדשה", + "Your new password": "הסיסמה החדשה שלך", + "Update password": "עדכן סיסמה", + "Updating password ...": "מעדכן סיסמה...", + "Your password has been updated": "הסיסמה שלך עודכנה", + "Back": "חזור", + "Confirmation email sent! Please check your old and new email addresses to confirm the change.": "אימייל אישור נשלח! אנא בדוק את כתובות האימייל הישנה והחדשה שלך כדי לאשר את השינוי.", + "Failed to update email": "עדכון האימייל נכשל", + "New Email": "אימייל חדש", + "Your new email": "כתובת האימייל החדשה שלך", + "Updating email ...": "מעדכן אימייל...", + "Update email": "עדכן אימייל", + "Current email": "אימייל נוכחי", + "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": "הצג פרטי ספר", + "Upload Book": "העלה ספר", + "Download Book": "הורד ספר", + "Bookshelf": "מדף ספרים", + "Import Books": "ייבוא ספרים", + "Confirm Deletion": "אשר מחיקה", + "Are you sure to delete {{count}} selected book(s)?_one": "האם אתה בטוח שברצונך למחוק ספר אחד שנבחר?", + "Are you sure to delete {{count}} selected book(s)?_two": "האם אתה בטוח שברצונך למחוק {{count}} ספרים שנבחרו?", + "Are you sure to delete {{count}} selected book(s)?_other": "האם אתה בטוח שברצונך למחוק {{count}} ספרים שנבחרו?", + "Deselect Book": "בטל בחירת ספר", + "Select Book": "בחר ספר", + "Group Books": "קבץ ספרים", + "Mark as Finished": "סמן כסיים", + "Mark as Unread": "סמן כלא נקרא", + "Clear Status": "נקה סטטוס", + "Delete": "מחק", + "Deselect Group": "בטל בחירת קבוצה", + "Select Group": "בחר קבוצה", + "Series": "סדרה", + "Author": "מחבר", + "Group": "קבוצה", + "Back to library": "חזור לספרייה", + "Untitled Group": "קבוצה ללא שם", + "Remove From Group": "הסר מקבוצה", + "Create New Group": "צור קבוצה חדשה", + "Rename Group": "שנה שם קבוצה", + "Save": "שמור", + "All": "הכל", + "Cancel": "ביטול", + "Confirm": "אישור", + "Scroll left": "גלול שמאלה", + "Scroll right": "גלול ימינה", + "From Local File": "מקובץ מקומי", + "From Directory": "מתיקייה", + "Online Library": "ספרייה מקוונת", + "OPDS Catalogs": "קטלוגי OPDS", + "Search in {{count}} Book(s)..._one": "חפש בספר אחד...", + "Search in {{count}} Book(s)..._two": "חפש ב-{{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": "התחל העברה", + "Finished": "הסתיים", + "Unread": "לא נקרא", + "Open": "פתח", + "Status": "סטטוס", + "Details": "פרטים", + "Set status for {{count}} book(s)_one": "קבע סטטוס עבור ספר אחד", + "Set status for {{count}} book(s)_two": "קבע סטטוס עבור {{count}} ספרים", + "Set status for {{count}} book(s)_other": "קבע סטטוס עבור {{count}} ספרים", + "Dark Mode": "מצב כהה", + "Light Mode": "מצב בהיר", + "Auto Mode": "מצב אוטומטי", + "Logged in as {{userDisplayName}}": "מחובר כ-{{userDisplayName}}", + "Logged in": "מחובר", + "View account details and quota": "צפה בפרטי חשבון ומכסה", + "Cloud File Transfers": "העברות קבצים בענן", + "{{activeCount}} active, {{pendingCount}} pending": "{{activeCount}} פעילים, {{pendingCount}} בהמתנה", + "{{failedCount}} failed": "{{failedCount}} נכשלו", + "Synced at {{time}}": "סונכרן ב-{{time}}", + "Never synced": "מעולם לא סונכרן", + "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": "הגדרות מתקדמות", + "Save Book Cover": "שמור כריכת ספר", + "Auto-save last book cover": "שמירה אוטומטית של כריכת הספר האחרון", + "Upgrade to Readest Premium": "שדרג ל-Readest Premium", + "Download Readest": "הורד את Readest", + "About Readest": "אודות Readest", + "Help improve Readest": "עזור לשפר את Readest", + "Sharing anonymized statistics": "שיתוף סטטיסטיקה אנונימית", + "Uploaded": "הועלה", + "Downloaded": "הורד", + "Deleted": "נמחק", + "Waiting...": "ממתין...", + "Failed": "נכשל", + "Completed": "הושלם", + "Cancelled": "בוטל", + "Retry": "נסה שוב", + "Active": "פעיל", + "Transfer Queue": "תור העברות", + "Upload All": "העלה הכל", + "Download All": "הורד הכל", + "Resume Transfers": "חדש העברות", + "Pause Transfers": "השהה העברות", + "Pending": "בהמתנה", + "No transfers": "אין העברות", + "Retry All": "נסה הכל שוב", + "Clear Completed": "נקה הושלמו", + "Clear Failed": "נקה נכשלו", + "List": "רשימה", + "Grid": "רשת", + "Crop": "חיתוך", + "Fit": "התאמה", + "Authors": "מחברים", + "Books": "ספרים", + "Groups": "קבוצות", + "Title": "כותרת", + "Format": "פורמט", + "Date Read": "תאריך קריאה", + "Date Added": "תאריך הוספה", + "Date Published": "תאריך פרסום", + "Ascending": "סדר עולה", + "Descending": "סדר יורד", + "Columns": "עמודות", + "Auto": "אוטומטי", + "Book Covers": "כריכות ספרים", + "Group by...": "קבץ לפי...", + "Sort by...": "מיין לפי...", + "{{count}} book(s) synced_one": "סונכרן ספר אחד", + "{{count}} book(s) synced_two": "סונכרנו {{count}} ספרים", + "{{count}} book(s) synced_other": "סונכרנו {{count}} ספרים", + "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 open the book file": "פתיחת קובץ הספר נכשלה", + "The book file is empty": "קובץ הספר ריק", + "The book file is corrupted": "קובץ הספר פגום", + "Failed to import book(s): {{filenames}}": "ייבוא הספר(ים) נכשל: {{filenames}}", + "Successfully imported {{count}} book(s)_one": "ספר אחד יובא בהצלחה", + "Successfully imported {{count}} book(s)_two": "{{count}} ספרים יובאו בהצלחה", + "Successfully imported {{count}} book(s)_other": "{{count}} ספרים יובאו בהצלחה", + "Upload queued: {{title}}": "העלאה בתור: {{title}}", + "Book downloaded: {{title}}": "ספר הורד: {{title}}", + "Failed to download book: {{title}}": "הורדת הספר נכשלה: {{title}}", + "Download queued: {{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": "כותרת הספרייה", + "Library Sync Progress": "התקדמות סנכרון הספרייה", + "Welcome to your library. You can import your books here and read them anytime.": "ברוכים הבאים לספרייה שלכם. כאן תוכלו לייבא את הספרים שלכם ולקרוא אותם בכל עת.", + "URL must start with http:// or https://": "הכתובת חייבת להתחיל ב-http:// או https://", + "Adding LAN addresses is not supported in the web app version.": "הוספת כתובות LAN אינה נתמכת בגרסת אפליקציית האינטרנט.", + "Invalid OPDS catalog. Please check the URL.": "קטלוג OPDS לא תקין. אנא בדוק את הכתובת.", + "Browse and download books from online catalogs": "דפדף והורד ספרים מקטלוגים מקוונים", + "My Catalogs": "הקטלוגים שלי", + "Add Catalog": "הוסף קטלוג", + "No catalogs yet": "אין קטלוגים עדיין", + "Add your first OPDS catalog to start browsing books": "הוסף את קטלוג ה-OPDS הראשון שלך כדי להתחיל לדפדף בספרים", + "Add Your First Catalog": "הוסף את הקטלוג הראשון שלך", + "Username": "שם משתמש", + "Browse": "דפדפוף", + "Popular Catalogs": "קטלוגים פופולריים", + "Add": "הוסף", + "Add OPDS Catalog": "הוסף קטלוג OPDS", + "Catalog Name": "שם הקטלוג", + "My Calibre Library": "ספריית ה-Calibre שלי", + "OPDS URL": "כתובת OPDS", + "Username (optional)": "שם משתמש (אופציונלי)", + "Password (optional)": "סיסמה (אופציונלי)", + "Password": "סיסמה", + "Description (optional)": "תיאור (אופציונלי)", + "A brief description of this catalog": "תיאור קצר של קטלוג זה", + "Validating...": "מאמת...", + "View All": "הצג הכל", + "First": "ראשון", + "Previous": "הקודם", + "Next": "הבא", + "Last": "אחרון", + "Forward": "קדימה", + "Home": "בית", + "Search in OPDS Catalog...": "חפש בקטלוג OPDS...", + "Untitled": "ללא שם", + "{{count}} items_one": "פריט אחד", + "{{count}} items_two": "{{count}} פריטים", + "{{count}} items_other": "{{count}} פריטים", + "Open Access": "גישה פתוחה", + "Download completed": "ההורדה הושלמה", + "Download failed": "ההורדה נכשלה", + "Borrow": "שאל", + "Buy": "קנה", + "Subscribe": "הירשם כמנוי", + "Sample": "דגימה", + "Download": "הורדה", + "Open & Read": "פתח וקרא", + "Publisher": "מוציא לאור", + "Published": "פורסם", + "Language": "שפה", + "Identifier": "מזהה", + "Tags": "תגיות", + "Tag": "תגית", + "Title, Author, Tag, etc...": "כותרת, מחבר, תגית, וכו'...", + "Query": "שאילתה", + "Subject": "נושא", + "Count": "מספר", + "Start Page": "דף התחלה", + "Search": "חיפוש", + "Enter {{terms}}": "הזן {{terms}}", + "No search results found": "לא נמצאו תוצאות חיפוש", + "Failed to load OPDS feed: {{status}} {{statusText}}": "טעינת פיד ה-OPDS נכשלה: {{status}} {{statusText}}", + "Search in {{title}}": "חפש ב-{{title}}", + "Cannot Load Page": "לא ניתן לטעון את הדף", + "An error occurred": "אירעה שגיאה", + "Copy": "העתק", + "Copy text after selection": "העתק טקסט לאחר הבחירה", + "Highlight": "הדגש", + "Highlight text after selection": "הדגש טקסט לאחר הבחירה", + "Annotate": "הוסף הערה", + "Annotate text after selection": "הוסף הערה לטקסט לאחר הבחירה", + "Search text after selection": "חפש טקסט לאחר הבחירה", + "Dictionary": "מילון", + "Look up text in dictionary after selection": "חפש טקסט במילון לאחר הבחירה", + "Wikipedia": "ויקיפדיה", + "Look up text in Wikipedia after selection": "חפש טקסט בוויקיפדיה לאחר הבחירה", + "Translate": "תרגם", + "Translate text after selection": "תרגם טקסט לאחר הבחירה", + "Speak": "הקרא", + "Read text aloud after selection": "הקרא טקסט בקול לאחר הבחירה", + "Proofread": "הגהה", + "Proofread text after selection": "בצע הגהה לטקסט לאחר הבחירה", + "Copied to notebook": "הועתק למחברת", + "Word limit of 30 words exceeded.": "חרגת ממכסת 30 המילים.", + "No annotations to export": "אין הערות לייצוא", + "Exported successfully": "יוצא בהצלחה", + "Copied to clipboard": "הועתק ללוח", + "Delete Highlight": "מחק הדגשה", + "Exported from Readest": "יוצא מ-Readest", + "Highlights & Annotations": "הדגשות והערות", + "Note:": "הערה:", + "Time:": "זמן:", + "Note": "הערה", + "Export Annotations": "ייצא הערות", + "Format Options": "אפשרויות פורמט", + "Export Date": "תאריך ייצוא", + "Chapter Titles": "כותרות פרקים", + "Chapter Separator": "מפריד פרקים", + "Highlights": "הדגשות", + "Notes": "הערות", + "Note Date": "תאריך הערה", + "Advanced": "מתקדם", + "Hide": "הסתר", + "Show": "הצג", + "Use Custom Template": "השתמש בתבנית מותאמת אישית", + "Export Template": "תבנית ייצוא", + "Reset Template": "אפס תבנית", + "Template Syntax:": "תחביר תבנית:", + "Insert value": "הכנס ערך", + "Format date (locale)": "פרמט תאריך (מקומי)", + "Format date (custom)": "פרמט תאריך (מותאם)", + "Conditional": "תנאי", + "Loop": "לולאה", + "Available Variables:": "משתנים זמינים:", + "Book title": "כותרת הספר", + "Book author": "מחבר הספר", + "Export date": "תאריך ייצוא", + "Array of chapters": "מערך פרקים", + "Chapter title": "כותרת הפרק", + "Array of annotations": "מערך הערות", + "Highlighted text": "טקסט מודגש", + "Annotation note": "הערת הערה", + "Annotation style": "סגנון הערה", + "Annotation color": "צבע הערה", + "Annotation time": "זמן הערה", + "Date Format Tokens:": "סימני פורמט תאריך:", + "Year (4 digits)": "שנה (4 ספרות)", + "Month (01-12)": "חודש (01-12)", + "Day (01-31)": "יום (01-31)", + "Hour (00-23)": "שעה (00-23)", + "Minute (00-59)": "דקה (00-59)", + "Second (00-59)": "שנייה (00-59)", + "Preview": "תצוגה מקדימה", + "Show Source": "הצג מקור", + "No content to preview": "אין תוכן לתצוגה מקדימה", + "Export as Plain Text": "ייצא כטקסט פשוט", + "Export as Markdown": "ייצא כ-Markdown", + "Export": "ייצוא", + "highlight": "הדגשה", + "underline": "קו תחתון", + "squiggly": "קו גלי", + "red": "אדום", + "violet": "סגול", + "blue": "כחול", + "green": "ירוק", + "yellow": "צהוב", + "Select {{style}} style": "בחר סגנון {{style}}", + "Select {{color}} color": "בחר צבע {{color}}", + "Current selection": "הבחירה הנוכחית", + "All occurrences in this book": "כל המופעים בספר זה", + "All occurrences in your library": "כל המופעים בספרייה שלך", + "Selected text:": "טקסט שנבחר:", + "Replace with:": "החלף ב:", + "Enter text...": "הזן טקסט...", + "Apply": "החל", + "Case sensitive:": "תלוי רישיות (Case sensitive):", + "Whole word:": "מילה שלמה:", + "Only for TTS:": "רק עבור TTS:", + "Scope:": "טווח:", + "Instant {{action}} Disabled": "{{action}} מיידי מושבת", + "Annotation": "הערה", + "Instant {{action}}": "{{action}} מיידי", + "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}}.", + "Error": "שגיאה", + "Unable to load the article. Try searching directly on {{link}}.": "לא ניתן לטעון את המאמר. נסה לחפש ישירות ב-{{link}}.", + "Unable to load the word. Try searching directly on {{link}}.": "לא ניתן לטעון את המילה. נסה לחפש ישירות ב-{{link}}.", + "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": "שורת כותרת", + "Disable Quick Action": "השבת פעולה מהירה", + "Enable Quick Action on Selection": "הפעל פעולה מהירה בעת בחירה", + "View Options": "אפשרויות תצוגה", + "Close Book": "סגור ספר", + "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": "כתובת שרת", + "Your Username": "שם המשתמש שלך", + "Connect": "התחבר", + "Are you sure you want to re-index this book?": "האם אתה בטוח שברצונך לאנדקס מחדש ספר זה?", + "Enable AI in Settings": "הפעל AI בהגדרות", + "Index This Book": "אנדקס ספר זה", + "Enable AI search and chat for this book": "הפעל חיפוש וצ'אט AI עבור ספר זה", + "Start Indexing": "התחל אינדוקס", + "Indexing book...": "מאנדקס ספר...", + "Preparing...": "מכין...", + "Notebook": "מחברת", + "Unpin Notebook": "בטל נעילת מחברת", + "Pin Notebook": "נעל מחברת", + "Hide Search Bar": "הסתר שורת חיפוש", + "Show Search Bar": "הצג שורת חיפוש", + "Resize Notebook": "שנה גודל מחברת", + "No notes match your search": "אין הערות התואמות לחיפוש שלך", + "Excerpts": "קטעים (Excerpts)", + "AI": "AI", + "Add your notes here...": "הוסף את ההערות שלך כאן...", + "Search notes and excerpts...": "חפש הערות וקטעים...", + "Page {{number}}": "דף {{number}}", + "Previous Paragraph": "פסקה קודמת", + "Loading": "טוען", + "Next Paragraph": "פסקה הבאה", + "Exit Paragraph Mode": "צא ממצב פסקה", + "{{time}} min left in chapter": "נותרו {{time}} דקות בפרק", + "{{number}} pages left in chapter": "נותרו {{number}} דפים בפרק", + "{{count}} pages left in chapter_one": "נותר דף אחד בפרק", + "{{count}} pages left in chapter_two": "נותרו {{count}} דפים בפרק", + "{{count}} pages left in chapter_other": "נותרו {{count}} דפים בפרק", + "On {{current}} of {{total}} page": "בדף {{current}} מתוך {{total}}", + "Selection": "בחירה", + "Book": "ספר", + "Library": "ספרייה", + "Yes": "כן", + "No": "לא", + "Edit": "ערוך", + "Proofread Replacement Rules": "כללי החלפת הגהה", + "Selected Text Rules": "כללי טקסט שנבחר", + "No selected text replacement rules": "אין כללי החלפת טקסט שנבחר", + "Book Specific Rules": "כללים ספציפיים לספר", + "No book-level replacement rules": "אין כללי החלפה ברמת הספר", + "Unable to open book": "לא ניתן לפתוח את הספר", + "Unable to start RSVP": "לא ניתן להתחיל RSVP", + "RSVP not supported for PDF": "RSVP אינו נתמך עבור PDF", + "Select Chapter": "בחר פרק", + "Speed Reading": "קריאה מהירה", + "Close Speed Reading": "סגור קריאה מהירה", + "{{number}} WPM": "{{number}} מילים לדקה", + "Context": "הקשר", + "Ready": "מוכן", + "Chapter Progress": "התקדמות הפרק", + "words": "מילים", + "{{time}} left": "נותרו {{time}}", + "Reading progress": "התקדמות קריאה", + "Click to seek": "לחץ לחיפוש", + "Skip back 15 words": "קפוץ 15 מילים אחורה", + "Back 15 words (Shift+Left)": "15 מילים אחורה (Shift+Left)", + "Pause": "השהה", + "Play": "נגן", + "Pause (Space)": "השהה (רווח)", + "Play (Space)": "נגן (רווח)", + "Skip forward 15 words": "קפוץ 15 מילים קדימה", + "Forward 15 words (Shift+Right)": "15 מילים קדימה (Shift+Right)", + "Pause:": "השהה:", + "Decrease speed": "הפחת מהירות", + "Slower (Left/Down)": "איטי יותר (חץ שמאלה/למטה)", + "Current speed": "מהירות נוכחית", + "Increase speed": "הגבר מהירות", + "Faster (Right/Up)": "מהיר יותר (חץ ימינה/למעלה)", + "Start RSVP Reading": "התחל קריאת RSVP", + "Choose where to start reading": "בחר היכן להתחיל לקרוא", + "From Chapter Start": "מתחילת הפרק", + "Start reading from the beginning of the chapter": "התחל לקרוא מתחילת הפרק", + "Resume": "המשך", + "Continue from where you left off": "המשך מאיפה שהפסקת", + "From Current Page": "מהדף הנוכחי", + "Start from where you are currently reading": "התחל מאיפה שאתה קורא כרגע", + "From Selection": "מהבחירה", + "Section Title": "כותרת הסעיף", + "More Info": "מידע נוסף", + "Parallel Read": "קריאה מקבילה", + "Disable": "השבת", + "Enable": "הפעל", + "Exit Parallel Read": "צא מקריאה מקבילה", + "Enter Parallel Read": "היכנס לקריאה מקבילה", + "KOReader Sync": "סנכרון KOReader", + "Push Progress": "דחף התקדמות", + "Pull Progress": "משוך התקדמות", + "Show on Discord": "הצג ב-Discord", + "Display what I'm reading on Discord": "הצג מה אני קורא ב-Discord", + "Sort TOC by Page": "מיין תוכן עניינים לפי דף", + "Bookmarks": "סימניות", + "Annotations": "הערות", + "Delete this conversation?": "למחוק שיחה זו?", + "No conversations yet": "אין שיחות עדיין", + "Start a new chat to ask questions about this book": "התחל צ'אט חדש כדי לשאול שאלות על ספר זה", + "Rename": "שנה שם", + "New Chat": "צ'אט חדש", + "Show Results": "הצג תוצאות", + "Go to Library": "עבור לספרייה", + "Book Menu": "תפריט ספר", + "Unpin Sidebar": "בטל נעילת סרגל צד", + "Pin Sidebar": "נעל סרגל צד", + "Search...": "חיפוש...", + "Clear search": "נקה חיפוש", + "Search Options": "אפשרויות חיפוש", + "Clear search history": "נקה היסטוריית חיפוש", + "Chapter": "פרק", + "Match Case": "התאמת רישיות (Match Case)", + "Match Whole Words": "התאמת מילים שלמות", + "Match Diacritics": "התאמת סימני דיאקריטיקה", + "Search results for '{{term}}'": "תוצאות חיפוש עבור '{{term}}'", + "Previous Result": "תוצאה קודמת", + "Next Result": "תוצאה הבאה", + "Show Search Results": "הצג תוצאות חיפוש", + "Close Search": "סגור חיפוש", + "Sidebar": "סרגל צד", + "Resize Sidebar": "שנה גודל סרגל צד", + "TOC": "תוכן עניינים", + "Bookmark": "סימנייה", + "Chat": "צ'אט", + "Toggle Sidebar": "הצג/הסתר סרגל צד", + "Toggle Translation": "הצג/הסתר תרגום", + "Disable Translation": "השבת תרגום", + "Enable Translation": "הפעל תרגום", + "Translation Disabled": "התרגום מושבת", + "Previous Sentence": "משפט קודם", + "Next Sentence": "משפט הבא", + "Read Aloud": "הקרא בקול", + "Ready to read aloud": "מוכן להקראה בקול", + "Please log in to use advanced TTS features": "אנא התחבר כדי להשתמש בתכונות TTS מתקדמות", + "TTS not supported for PDF": "TTS אינו נתמך עבור PDF", + "TTS not supported for this document": "TTS אינו נתמך עבור מסמך זה", + "Back to TTS Location": "חזור למיקום ה-TTS", + "No Timeout": "ללא הגבלת זמן", + "{{value}} minute": "דקה {{value}}", + "{{value}} minutes": "{{value}} דקות", + "{{value}} hour": "שעה {{value}}", + "{{value}} hours": "{{value}} שעות", + "Voices for {{lang}}": "קולות עבור {{lang}}", + "Slow": "איטי", + "Fast": "מהיר", + "Set Timeout": "הגדר הגבלת זמן", + "Select Voice": "בחר קול", + "{{engine}}: {{count}} voices_one": "{{engine}}: קול אחד", + "{{engine}}: {{count}} voices_two": "{{engine}}: {{count}} קולות", + "{{engine}}: {{count}} voices_other": "{{engine}}: {{count}} קולות", + "Toggle Sticky Bottom TTS Bar": "הצג/הסתר שורת TTS תחתונה קבועה", + "Zoom Level": "רמת זום", + "Zoom Out": "הקטן", + "Reset Zoom": "אפס זום", + "Zoom In": "הגדל", + "Zoom Mode": "מצב זום", + "Single Page": "דף יחיד", + "Auto Spread": "פריסה אוטומטית", + "Fit Page": "התאם לדף", + "Fit Width": "התאם לרוחב", + "Separate Cover Page": "דף כריכה נפרד", + "Scrolled Mode": "מצב גלילה", + "Paragraph Mode": "מצב פסקה", + "Speed Reading Mode": "מצב קריאה מהירה", + "Sign in to Sync": "התחבר לסנכרון", + "Invert Image In Dark Mode": "הפוך צבעי תמונה במצב כהה", + "Failed to auto-save book cover for lock screen: {{error}}": "שמירה אוטומטית של כריכת הספר למסך הנעילה נכשלה: {{error}}", + "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": "נהל מנוי", + "Manage Storage": "נהל אחסון", + "Reset Password": "אפס סיסמה", + "Update Email": "עדכן אימייל", + "Sign Out": "התנתק", + "Delete Account": "מחק חשבון", + "Upgrade to {{plan}}": "שדרג ל-{{plan}}", + "Complete Your Subscription": "השלם את המנוי שלך", + "Coming Soon": "בקרוב", + "Upgrade to Plus or Pro": "שדרג ל-Plus או Pro", + "Current Plan": "תוכנית נוכחית", + "On-Demand Purchase": "רכישה לפי דרישה", + "Plan Limits": "מגבלות תוכנית", + "Full Customization": "התאמה אישית מלאה", + "Failed to load files": "טעינת הקבצים נכשלה", + "Deleted {{count}} file(s)_one": "קובץ אחד נמחק", + "Deleted {{count}} file(s)_two": "{{count}} קבצים נמחקו", + "Deleted {{count}} file(s)_other": "{{count}} קבצים נמחקו", + "Failed to delete {{count}} file(s)_one": "מחיקת קובץ אחד נכשלה", + "Failed to delete {{count}} file(s)_two": "מחיקת {{count}} קבצים נכשלה", + "Failed to delete {{count}} file(s)_other": "מחיקת {{count}} קבצים נכשלה", + "Failed to delete files": "מחיקת הקבצים נכשלה", + "Cloud Storage Usage": "שימוש באחסון ענן", + "Total Files": "סך הכל קבצים", + "Total Size": "גודל כולל", + "Quota": "מכסה", + "Used": "בשימוש", + "Files": "קבצים", + "Search files...": "חפש קבצים...", + "Newest First": "החדש ביותר קודם", + "Oldest First": "הישן ביותר קודם", + "Largest First": "הגדול ביותר קודם", + "Smallest First": "הקטן ביותר קודם", + "Name A-Z": "שם א-ת", + "Name Z-A": "שם ת-א", + "{{count}} selected_one": "פריט אחד נבחר", + "{{count}} selected_two": "{{count}} פריטים נבחרו", + "{{count}} selected_other": "{{count}} פריטים נבחרו", + "Delete Selected": "מחק נבחרים", + "Size": "גודל", + "Created": "נוצר", + "No files found": "לא נמצאו קבצים", + "No files uploaded yet": "לא הועלו קבצים עדיין", + "files": "קבצים", + "Page {{current}} of {{total}}": "דף {{current}} מתוך {{total}}", + "Are you sure to delete {{count}} selected file(s)?_one": "האם אתה בטוח שברצונך למחוק קובץ אחד שנבחר?", + "Are you sure to delete {{count}} selected file(s)?_two": "האם אתה בטוח שברצונך למחוק {{count}} קבצים שנבחרו?", + "Are you sure to delete {{count}} selected file(s)?_other": "האם אתה בטוח שברצונך למחוק {{count}} קבצים שנבחרו?", + "Failed to create checkout session": "יצירת מסע הקופה נכשלה", + "No purchases found to restore.": "לא נמצאו רכישות לשחזור.", + "Failed to restore purchases.": "שחזור הרכישות נכשל.", + "Failed to manage subscription.": "ניהול המנוי נכשל.", + "Failed to delete user. Please try again later.": "מחיקת המשתמש נכשלה. אנא נסה שוב מאוחר יותר.", + "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": "חזור לפרופיל", + "Purchase Successful!": "הרכישה הצליחה!", + "Subscription Successful!": "המנוי הצליח!", + "Thank you for your purchase! Your payment has been processed successfully.": "תודה על הרכישה! התשלום שלך עובד בהצלחה.", + "Thank you for your subscription! Your payment has been processed successfully.": "תודה על המנוי! התשלום שלך עובד בהצלחה.", + "Email:": "אימייל:", + "Plan:": "תוכנית:", + "Amount:": "סכום:", + "Order ID:": "מזהה הזמנה:", + "Need help? Contact our support team at support@readest.com": "צריך עזרה? צור קשר עם צוות התמיכה שלנו בכתובת support@readest.com", + "Lifetime Plan": "תוכנית לכל החיים", + "lifetime": "לכל החיים", + "One-Time Payment": "תשלום חד-פעמי", + "Make a single payment to enjoy lifetime access to specific features on all devices. Purchase specific features or services only when you need them.": "בצע תשלום אחד כדי ליהנות מגישה לכל החיים לתכונות ספציפיות בכל המכשירים. רכוש תכונות או שירותים ספציפיים רק כשאתה צריך אותם.", + "Expand Cloud Sync Storage": "הרחב את נפח אחסון סנכרון הענן", + "Expand your cloud storage forever with a one-time purchase. Each additional purchase adds more space.": "הרחב את אחסון הענן שלך לתמיד ברכישה חד-פעמית. כל רכישה נוספת מוסיפה עוד מקום.", + "Unlock All Customization Options": "פתח את כל אפשרויות ההתאמה האישית", + "Unlock additional themes, fonts, layout options and read aloud, translators, cloud storage services.": "פתח ערכות נושא נוספות, גופנים, אפשרויות פריסה והקראה בקול, מתרגמים ושירותי אחסון ענן.", + "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": "הקראה בקול של AI", + "Enjoy hands-free reading with natural-sounding AI voices that bring your books to life.": "תהנה מקריאה ללא ידיים עם קולות AI בעלי צליל טבעי שמפיחים חיים בספרים שלך.", + "AI Translations": "תרגומי AI", + "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)": "תרגומי AI (ליום)", + "Plus Plan": "תוכנית Plus", + "Includes All Free Plan Benefits": "כולל את כל יתרונות התוכנית החינמית", + "Unlimited AI Read Aloud Hours": "שעות הקראה בקול של AI ללא הגבלה", + "Listen without limits—convert as much text as you like into immersive audio.": "האזן ללא הגבלה - המר כמה טקסט שתרצה לאודיו סוחף.", + "More AI Translations": "יותר תרגומי AI", + "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.": "תרגם עד 100,000 תווים ביום עם מנוע התרגום המדויק ביותר שיש.", + "Securely store and access your entire reading collection with up to 5 GB of cloud storage.": "אחסן וגש בצורה מאובטחת לכל אוסף הקריאה שלך עם עד 5 ג'יגה-בייט של אחסון ענן.", + "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": "כלי AI מתקדמים", + "Harness powerful AI tools for smarter reading, translation, and content discovery.": "רתום כלי AI עוצמתיים לקריאה, תרגום וגילוי תוכן חכמים יותר.", + "Translate up to 500,000 characters daily with the most accurate translation engine available.": "תרגם עד 500,000 תווים ביום עם מנוע התרגום המדויק ביותר שיש.", + "Securely store and access your entire reading collection with up to 20 GB of cloud storage.": "אחסן וגש בצורה מאובטחת לכל אוסף הקריאה שלך עם עד 20 ג'יגה-בייט של אחסון ענן.", + "Version {{version}}": "גרסה {{version}}", + "Check Update": "בדוק עדכון", + "Already the latest version": "כבר בגרסה האחרונה", + "Checking for updates...": "בודק עדכונים...", + "Error checking for updates": "שגיאה בבדיקת עדכונים", + "Command Palette": "לוח פקודות", + "Search settings and actions...": "חפש הגדרות ופעולות...", + "No results found for": "לא נמצאו תוצאות עבור", + "Type to search settings and actions": "הקלד כדי לחפש הגדרות ופעולות", + "Recent": "אחרונים", + "navigate": "ניווט", + "select": "בחירה", + "close": "סגירה", + "Drop to Import Books": "שחרר כאן לייבוא ספרים", + "Terms of Service": "תנאי שימוש", + "Privacy Policy": "מדיניות פרטיות", + "ON": "פעיל", + "OFF": "כבוי", + "Enter book title": "הזן כותרת ספר", + "Subtitle": "כותרת משנה", + "Enter book subtitle": "הזן כותרת משנה לספר", + "Enter author name": "הזן שם מחבר", + "Enter series name": "הזן שם סדרה", + "Series Index": "אינדקס סדרה", + "Enter series index": "הזן אינדקס סדרה", + "Total in Series": "סה\"כ בסדרה", + "Enter total books in series": "הזן סך הכל ספרים בסדרה", + "Enter publisher": "הזן מוציא לאור", + "Publication Date": "תאריך פרסום", + "YYYY or YYYY-MM-DD": "YYYY או YYYY-MM-DD", + "Subjects": "נושאים", + "Fiction, Science, History": "פרוזה, מדע, היסטוריה", + "Description": "תיאור", + "Enter book description": "הזן תיאור ספר", + "Change cover image": "שנה תמונת כריכה", + "Replace": "החלף", + "Remove cover image": "הסר תמונת כריכה", + "Unlock cover": "בטל נעילת כריכה", + "Lock cover": "נעל כריכה", + "Auto-Retrieve Metadata": "אחזר מטא-נתונים אוטומטית", + "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?": "האם אתה בטוח שברצונך למחוק את העותק המקומי של הספר הנבחר?", + "Book exported successfully.": "הספר יוצא בהצלחה.", + "Failed to export the book.": "ייצוא הספר נכשל.", + "Edit Metadata": "ערוך מטא-נתונים", + "Book Details": "פרטי ספר", + "Unknown": "לא ידוע", + "Delete Book Options": "אפשרויות מחיקת ספר", + "Remove from Cloud & Device": "הסר מהענן ומהמכשיר", + "Remove from Cloud Only": "הסר מהענן בלבד", + "Remove from Device Only": "הסר מהמכשיר בלבד", + "Download from Cloud": "הורד מהענן", + "Upload to Cloud": "העלה לענן", + "Export Book": "ייצא ספר", + "Updated": "עודכן", + "Added": "נוסף", + "File Size": "גודל קובץ", + "No description available": "אין תיאור זמין", + "Locked": "נעול", + "Select Metadata Source": "בחר מקור מטא-נתונים", + "Keep manual input": "השאר קלט ידני", + "Please enter a model ID": "אנא הזן מזהה מודל", + "Model not available or invalid": "המודל אינו זמין או לא תקין", + "Failed to validate model": "אימות המודל נכשל", + "Couldn't connect to Ollama. Is it running?": "לא ניתן להתחבר ל-Ollama. האם הוא פועל?", + "Invalid API key or connection failed": "מפתח API לא תקין או שהחיבור נכשל", + "Connection failed": "החיבור נכשל", + "AI Assistant": "עוזר AI", + "Enable AI Assistant": "הפעל עוזר AI", + "Provider": "ספק", + "Ollama (Local)": "Ollama (מקומי)", + "AI Gateway (Cloud)": "AI Gateway (ענן)", + "Ollama Configuration": "תצורת Ollama", + "Refresh Models": "רענן מודלים", + "AI Model": "מודל AI", + "Embedding Model": "מודל Embedding", + "No models detected": "לא זוהו מודלים", + "AI Gateway Configuration": "תצורת AI Gateway", + "Choose from a selection of high-quality, economical AI models. You can also bring your own model by selecting \"Custom Model\" below.": "בחר מתוך מבחר מודלי AI איכותיים וחסכוניים. אתה יכול גם להביא מודל משלך על ידי בחירה ב-\"Custom Model\" למטה.", + "API Key": "מפתח API", + "Get Key": "קבל מפתח", + "Model": "מודל", + "Custom Model...": "מודל מותאם אישית...", + "Custom Model ID": "מזהה מודל מותאם אישית", + "Validate": "אמת", + "Model available": "מודל זמין", + "Connection": "חיבור", + "Test Connection": "בדוק חיבור", + "Connected": "מחובר", + "Background Image": "תמונת רקע", + "Import Image": "ייבוא תמונה", + "Opacity": "אטימות", + "Cover": "כריכה", + "Contain": "הכלה (Contain)", + "Code Highlighting": "הדגשת קוד", + "Enable Highlighting": "הפעל הדגשה", + "Code Language": "שפת קוד", + "Highlight Colors": "צבעי הדגשה", + "Custom Colors": "צבעים מותאמים אישית", + "Reading Ruler": "סרגל קריאה", + "Enable Reading Ruler": "הפעל סרגל קריאה", + "Lines to Highlight": "שורות להדגשה", + "Ruler Color": "צבע סרגל", + "Theme Color": "צבע ערכת נושא", + "Custom": "מותאם אישית", + "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": "צבע קישור", + "Theme Mode": "מצב ערכת נושא", + "TTS Highlighting": "הדגשת TTS", + "Style": "סגנון", + "Highlighter": "מרקר", + "Underline": "קו תחתון", + "Strikethrough": "קו חוצה", + "Squiggly": "קו גלי", + "Outline": "מתאר (Outline)", + "Save Current Color": "שמור צבע נוכחי", + "Quick Colors": "צבעים מהירים", + "Override Book Color": "דרוס צבע ספר", + "None": "ללא", + "Scroll": "גלילה", + "Continuous Scroll": "גלילה רציפה", + "Overlap Pixels": "פיקסלים לחפיפה", + "Pagination": "עימוד (Pagination)", + "Tap to Paginate": "הקש לעימוד", + "Click to Paginate": "לחץ לעימוד", + "Tap Both Sides": "הקש בשני הצדדים", + "Click Both Sides": "לחץ בשני הצדדים", + "Swap Tap Sides": "החלף צדדי הקשה", + "Swap Click Sides": "החלף צדדי לחיצה", + "Disable Double Tap": "השבת הקשה כפולה", + "Disable Double Click": "השבת לחיצה כפולה", + "Volume Keys for Page Flip": "מקשי עוצמת קול לדפדוף", + "Show Page Navigation Buttons": "הצג כפתורי ניווט בעמוד", + "Annotation Tools": "כלי הערות", + "Enable Quick Actions": "הפעל פעולות מהירות", + "Quick Action": "פעולה מהירה", + "Copy to Notebook": "העתק למחברת", + "Animation": "אנימציה", + "Paging Animation": "אנימציית דפדוף", + "Device": "מכשיר", + "E-Ink Mode": "מצב E-Ink", + "Color E-Ink Mode": "מצב E-Ink צבעוני", + "Auto Screen Brightness": "בהירות מסך אוטומטית", + "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": "אפס הגדרות", + "Clear Custom Fonts": "נקה גופנים מותאמים אישית", + "Manage Custom Fonts": "נהל גופנים מותאמים אישית", + "System Fonts": "גופני מערכת", + "Serif Font": "גופן סריף", + "Sans-Serif Font": "גופן סנס-סריף", + "Override Book Font": "דרוס גופן ספר", + "Default Font Size": "גודל גופן ברירת מחדל", + "Minimum Font Size": "גודל גופן מינימלי", + "Font Weight": "עובי גופן", + "Font Family": "משפחת גופנים", + "Default Font": "גופן ברירת מחדל", + "CJK Font": "גופן CJK (סינית/יפנית/קוריאנית)", + "Font Face": "סוג גופן (Font Face)", + "Monospace Font": "גופן ברוחב קבוע (Monospace)", + "Source and Translated": "מקור ומתורגם", + "Translated Only": "מתורגם בלבד", + "Source Only": "מקור בלבד", + "No Conversion": "ללא המרה", + "Simplified to Traditional": "מסינית מופשטת למסורתית", + "Traditional to Simplified": "מסינית מסורתית למופשטת", + "Simplified to Traditional (Taiwan)": "מסינית מופשטת למסורתית (טאיוואן)", + "Simplified to Traditional (Hong Kong)": "מסינית מופשטת למסורתית (הונג קונג)", + "Simplified to Traditional (Taiwan), with phrases": "מסינית מופשטת למסורתית (טאיוואן), עם ביטויים", + "Traditional (Taiwan) to Simplified": "מסינית מסורתית (טאיוואן) למופשטת", + "Traditional (Hong Kong) to Simplified": "מסינית מסורתית (הונג קונג) למופשטת", + "Traditional (Taiwan) to Simplified, with phrases": "מסינית מסורתית (טאיוואן) למופשטת, עם ביטויים", + "Interface Language": "שפת ממשק", + "Translation": "תרגום", + "Show Source Text": "הצג טקסט מקור", + "TTS Text": "טקסט להקראה (TTS)", + "Translation Service": "שירות תרגום", + "Translate To": "תרגם ל-", + "Punctuation": "פיסוק", + "Replace Quotation Marks": "החלף גרשיים", + "Enabled only in vertical layout.": "פעיל רק בפריסה אנכית.", + "Convert Simplified and Traditional Chinese": "המר סינית מופשטת ומסורתית", + "Convert Mode": "מצב המרה", + "Override Book Layout": "דרוס פריסת ספר", + "Writing Mode": "מצב כתיבה", + "Default": "ברירת מחדל", + "Horizontal Direction": "כיוון אופקי", + "Vertical Direction": "כיוון אנכי", + "RTL Direction": "כיוון מימין לשמאל (RTL)", + "Border Frame": "מסגרת", + "Double Border": "מסגרת כפולה", + "Border Color": "צבע מסגרת", + "Paragraph": "פסקה", + "Paragraph Margin": "שולי פסקה", + "Word Spacing": "מרווח בין מילים", + "Letter Spacing": "מרווח בין אותיות", + "Text Indent": "הזחת טקסט", + "Full Justification": "יישור לשני הצדדים", + "Hyphenation": "מיקוף (Hyphenation)", + "Page": "דף", + "Top Margin (px)": "שוליים עליונים (פיקסלים)", + "Bottom Margin (px)": "שוליים תחתונים (פיקסלים)", + "Left Margin (px)": "שוליים שמאליים (פיקסלים)", + "Right Margin (px)": "שוליים ימניים (פיקסלים)", + "Column Gap (%)": "רווח בין עמודות (%)", + "Maximum Number of Columns": "מספר עמודות מקסימלי", + "Maximum Column Height": "גובה עמודה מקסימלי", + "Maximum Column Width": "רוחב עמודה מקסימלי", + "Apply also in Scrolled Mode": "החל גם במצב גלילה", + "Header & Footer": "כותרת עליונה ותחתונה", + "Show Header": "הצג כותרת עליונה", + "Show Footer": "הצג כותרת תחתונה", + "Show Remaining Time": "הצג זמן נותר", + "Show Remaining Pages": "הצג דפים נותרים", + "Show Reading Progress": "הצג התקדמות קריאה", + "Reading Progress Style": "סגנון התקדמות קריאה", + "Page Number": "מספר דף", + "Percentage": "אחוזים", + "Tap to Toggle Footer": "הקש להצגת/הסתרת כותרת תחתונה", + "Screen": "מסך", + "Orientation": "כיוון מסך (Orientation)", + "Portrait": "לאורך (Portrait)", + "Landscape": "לרוחב (Landscape)", + "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": "התנהגות", + "Search Settings": "חפש הגדרות", + "Reset {{settings}}": "אפס {{settings}}", + "Settings Panels": "לוחות הגדרות", + "Get Help from the Readest Community": "קבל עזרה מקהילת Readest", + "A new version of Readest is available!": "גרסה חדנה של Readest זמינה!", + "Readest {{newVersion}} is available (installed version {{currentVersion}}).": "Readest {{newVersion}} זמינה (הגרסה המותקנת היא {{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": "הגדל או שחזר", + "Failed to load subscription plans.": "טעינת תוכניות המנוי נכנלה.", + "Select Files": "בחר קבצים", + "Select Image": "בחר תמונה", + "Select Video": "בחר וידאו", + "Select Audio": "בחר אודיו", + "Select Fonts": "בחר גופנים", + "Invalid file type. Please select {{types}}.": "סוג קובץ לא תקין. אנא בחר {{types}}.", + "Add Files": "הוסף קבצים", + "Failed to download the book. Please check your internet connection and try again.": "הורדת הספר נכשלה. אנא בדוק את חיבור האינטרנט שלך ונסה שוב.", + "An unexpected error occurred. Please try again later.": "אירעה שגיאה בלתי צפויה. אנא נסה שוב מאוחר יותר.", + "Please enter a valid email address and password.": "אנא הזן כתובת אימייל וסיסמה תקינות.", + "Verification email sent. Please check your inbox.": "אימייל אימות נשלח. אנא בדוק את תיבת הדואר הנכנס שלך.", + "Verification failed. Please try again or contact support.": "האימות נכשל. אנא נסה שוב או צור קשר עם התמיכה.", + "Email updated successfully.": "האימייל עודכן בהצלחה.", + "Password reset email sent. Please check your inbox.": "אימייל לאיפוס סיסמה נשלח. אנא בדוק את תיבת הדואר הנכנס שלך.", + "Account deleted successfully.": "החשבון נמחק בהצלחה.", + "Failed to update email. Please try again.": "עדכון האימייל נכשל. אנא נסה שוב.", + "Failed to reset password. Please try again.": "איפוס הסיסמה נכשל. אנא נסה שוב.", + "Invalid name. Please enter a valid name.": "שם לא תקין. אנא הזן שם תקין.", + "Profile updated successfully.": "הפרופיל עודכן בהצלחה.", + "Failed to update profile. Please try again.": "עדכון הפרופיל נכשל. אנא נסה שוב.", + "Cloud storage is full. Please upgrade your plan for more space.": "אחסון הענן מלא. אנא שדרג את התוכנית שלך לקבלת מקום נוסף.", + "File uploaded successfully.": "הקובץ הועלה בהצלחה.", + "Failed to upload file. Please try again.": "העלאת הקובץ נכשלה. אנא נסה שוב.", + "File deleted successfully from cloud.": "הקובץ נמחק בהצלחה מהענן.", + "Cloud backup removed successfully.": "גיבוי הענן הוסר בהצלחה.", + "Failed to remove cloud backup.": "הסרת גיבוי הענן נכשלה.", + "Reading progress updated.": "התקדמות הקריאה עודכנה.", + "Failed to update reading progress.": "עדכון התקדמות הקריאה נכשל.", + "Syncing...": "מסנכרן...", + "Sync completed.": "הסנכרון הושלם.", + "Sync failed. Please check your connection.": "הסנכרון נכשל. אנא בדוק את החיבור שלך.", + "Update check failed.": "הבדיקה לעדכונים נכשלה.", + "New version {{version}} is available for download.": "גרסה חדשה {{version}} זמינה להורדה.", + "Export successful.": "הייצוא הצליח.", + "Export failed.": "הייצוא נכשל.", + "File not found.": "הקובץ לא נמצא.", + "Book re-indexed successfully.": "הספר אונדקס מחדש בהצלחה.", + "Failed to re-index book.": "אינדוקס מחדש של הספר נכשל.", + "Indexing in progress...": "אינדוקס בתהליך...", + "Please enter a valid server URL.": "אנא הזן כתובת שרת תקינה.", + "Connected to KOReader Sync server.": "מחובר לשרת סנכרון KOReader.", + "Failed to connect to KOReader Sync server.": "התחברות לשרת סנכרון KOReader נכשלה.", + "Subscription details updated.": "פרטי המנוי עודכנו.", + "Failed to load subscription details.": "טעינת פרטי המנוי נכשלה.", + "Session expired. Please sign in again.": "תוקף הפגישה פג. אנא התחבר שוב.", + "Subscription cancelled successfully.": "המנוי בוטל בהצלחה.", + "Failed to cancel subscription.": "ביטול המנוי נכשל.", + "Storage management is not available in offline mode.": "ניהול אחסון אינו זמין במצב אופליין.", + "Please enter a display name.": "אנא הזן שם לתצוגה.", + "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.": "מכסת התרגום היומית הושגה. שדרג את התוכנית שלך כדי להמשיך להשתמש בתרגומי AI.", + "Page Margins": "שולי עמוד", + "AI Provider": "ספק AI", + "Ollama URL": "כתובת Ollama", + "Ollama Model": "מודל Ollama", + "AI Gateway Model": "מודל AI Gateway", + "Actions": "פעולות", + "Navigation": "ניווט", + "LXGW WenKai GB Screen": "LXGW WenKai GB Screen", + "LXGW WenKai TC": "LXGW WenKai TC", + "GuanKiapTsingKhai-T": "GuanKiapTsingKhai-T", + "Source Han Serif CN": "Source Han Serif CN", + "Huiwen-MinchoGBK": "Huiwen-MinchoGBK", + "KingHwa_OldSong": "KingHwa_OldSong", + "Google Books": "Google Books", + "Open Library": "Open Library", + "Book not found in library": "הספר לא נמצא בספרייה", + "Book uploaded: {{title}}": "הספר הועלה: {{title}}", + "Unknown error": "שגיאה לא ידועה", + "Please log in to continue": "אנא התחבר כדי להמשיך", + "Insufficient storage quota": "מכסת אחסון לא מספקת", + "Failed to upload book: {{title}}": "העלאת הספר נכשלה: {{title}}", + "Azure Translator": "מתרגם Azure", + "DeepL": "DeepL", + "Google Translate": "Google Translate", + "Yandex Translate": "Yandex Translate", + "Gray": "אפור", + "Sepia": "ספיה", + "Grass": "ירוק דשא", + "Cherry": "דובדבן", + "Sky": "שמיים", + "Solarized": "סולאריזד", + "Gruvbox": "גרובבוקס", + "Nord": "נורד", + "Contrast": "ניגודיות", + "Sunset": "שקיעה", + "Reveal in Finder": "הצג ב-Finder", + "Reveal in File Explorer": "הצג בסייר הקבצים", + "Reveal in Folder": "הצג בתיקייה" +} diff --git a/apps/readest-app/src/components/settings/LangPanel.tsx b/apps/readest-app/src/components/settings/LangPanel.tsx index 397b308a..bc3240ea 100644 --- a/apps/readest-app/src/components/settings/LangPanel.tsx +++ b/apps/readest-app/src/components/settings/LangPanel.tsx @@ -11,6 +11,7 @@ import { useResetViewSettings } from '@/hooks/useResetSettings'; import { TRANSLATED_LANGS, TRANSLATOR_LANGS } from '@/services/constants'; import { ConvertChineseVariant } from '@/types/book'; import { SettingsPanelPanelProp } from './SettingsDialog'; +import { getDirFromLanguage } from '@/utils/rtl'; import { isCJKEnv } from '@/utils/misc'; import Select from '@/components/Select'; @@ -142,8 +143,11 @@ const LangPanel: React.FC = ({ bookKey, onRegisterReset useEffect(() => { if (uiLanguage === viewSettings.uiLanguage) return; - saveViewSettings(envConfig, bookKey, 'uiLanguage', uiLanguage, false, false); + const sameDir = getDirFromLanguage(uiLanguage) === getDirFromLanguage(viewSettings.uiLanguage); applyUILanguage(uiLanguage); + saveViewSettings(envConfig, bookKey, 'uiLanguage', uiLanguage, false, false).then(() => { + if (!sameDir) window.location.reload(); + }); // eslint-disable-next-line react-hooks/exhaustive-deps }, [uiLanguage]); diff --git a/apps/readest-app/src/services/constants.ts b/apps/readest-app/src/services/constants.ts index 479c4615..50af37e3 100644 --- a/apps/readest-app/src/services/constants.ts +++ b/apps/readest-app/src/services/constants.ts @@ -784,6 +784,7 @@ export const TRANSLATED_LANGS = { es: 'Español', pt: 'Português', ru: 'Русский', + he: 'עברית', ar: 'العربية', fa: 'فارسی', el: 'Ελληνικά',