From 1eb59561d5f2e95c580d201bd3507215b0e878ce Mon Sep 17 00:00:00 2001 From: Satan2049 Date: Wed, 24 Jun 2026 00:31:59 +0330 Subject: [PATCH] Add Persian (fa) locale with RTL support Introduce fluent Persian UI translations and wire fa into the i18n stack, following the same RTL layout behavior as Arabic via a shared isRtlLanguage helper. --- README.md | 4 +- doc/README-CN.md | 1 + i18next-parser.config.mjs | 2 +- script/translate.mjs | 2 +- src/renderer/Sidebar.tsx | 11 +- src/renderer/components/StyledMenu.tsx | 3 +- .../session/ThreadHistoryDrawer.tsx | 7 +- src/renderer/hooks/useAppTheme.ts | 5 +- src/renderer/i18n/index.ts | 4 + src/renderer/i18n/locales.ts | 1 + src/renderer/i18n/locales/fa/translation.json | 984 ++++++++++++++++++ src/renderer/i18n/parser.ts | 3 + src/renderer/i18n/rtl.ts | 7 + src/renderer/packages/openLinkWithAuth.ts | 1 + .../packages/web-search/accept-language.ts | 1 + src/renderer/routes/__root.tsx | 5 +- src/shared/types.ts | 1 + src/shared/types/settings.ts | 1 + 18 files changed, 1027 insertions(+), 16 deletions(-) create mode 100644 src/renderer/i18n/locales/fa/translation.json create mode 100644 src/renderer/i18n/rtl.ts diff --git a/README.md b/README.md index e5748d23b8..3e86f87880 100644 --- a/README.md +++ b/README.md @@ -223,6 +223,8 @@ For more information: [chatboxai.app](https://chatboxai.app/) - Deutsch (German) - Русский (Russian) - Español (Spanish) + - العربية (Arabic) + - فارسی (Persian) ### ✨ More Features - **And More...** @@ -250,7 +252,7 @@ We welcome contributions from the community! Here's how you can help make Chatbo ### 🌍 Translations Help make Chatbox accessible to more people by contributing translations: -- Translation files are located in the `src/locales` directory +- Translation files are located in the `src/renderer/i18n/locales` directory - Follow the existing translation format - Submit a PR with your translation improvements diff --git a/doc/README-CN.md b/doc/README-CN.md index 1d7692e716..c8c9cd507a 100644 --- a/doc/README-CN.md +++ b/doc/README-CN.md @@ -170,6 +170,7 @@ - Français (French) - Deutsch (German) - Русский (Russian) + - فارسی (Persian) - **更多...** :sparkles: 不断增强体验,加入新功能! diff --git a/i18next-parser.config.mjs b/i18next-parser.config.mjs index 5da5471bfa..e5f7b594b4 100644 --- a/i18next-parser.config.mjs +++ b/i18next-parser.config.mjs @@ -1,7 +1,7 @@ export default { input: ['src/renderer/**/*.{js,jsx,ts,tsx}'], output: 'src/renderer/i18n/locales/$LOCALE/$NAMESPACE.json', - locales: ['en', 'ar', 'de', 'es', 'fr', 'it-IT', 'ja', 'ko', 'nb-NO', 'pt-PT', 'ru', 'sv', 'zh-Hans', 'zh-Hant'], + locales: ['en', 'ar', 'de', 'es', 'fa', 'fr', 'it-IT', 'ja', 'ko', 'nb-NO', 'pt-PT', 'ru', 'sv', 'zh-Hans', 'zh-Hant'], createOldCatalogs: false, keepRemoved: false, pluralSeparator: false, diff --git a/script/translate.mjs b/script/translate.mjs index 4443fbc044..5c4c151630 100644 --- a/script/translate.mjs +++ b/script/translate.mjs @@ -84,7 +84,7 @@ const instruction = process.argv[2] || '' try { await pMap( - ['en', 'ar', 'de', 'es', 'fr', 'it-IT', 'ja', 'ko', 'nb-NO', 'pt-PT', 'ru', 'sv', 'zh-Hans', 'zh-Hant'], + ['en', 'ar', 'de', 'es', 'fa', 'fr', 'it-IT', 'ja', 'ko', 'nb-NO', 'pt-PT', 'ru', 'sv', 'zh-Hans', 'zh-Hant'], async (locale) => { try { await translateFile(locale, instruction) diff --git a/src/renderer/Sidebar.tsx b/src/renderer/Sidebar.tsx index b8a4d4f50b..723c050f40 100644 --- a/src/renderer/Sidebar.tsx +++ b/src/renderer/Sidebar.tsx @@ -31,6 +31,7 @@ import platform from './platform' import { featureFlags } from './utils/feature-flags' import icon from './static/icon.png' import { settingsStore, useLanguage } from './stores/settingsStore' +import { isRtlLanguage } from './i18n/rtl' import { taskSessionStore } from './stores/taskSessionStore' import { useUIStore } from './stores/uiStore' import { installUpdate, useUpdateStore } from './stores/updateStore' @@ -104,7 +105,7 @@ export default function Sidebar() { if (!isResizing) return const handleMouseMove = (e: MouseEvent) => { - const isRTL = language === 'ar' + const isRTL = isRtlLanguage(language) const deltaX = isRTL ? resizeStartX.current - e.clientX : e.clientX - resizeStartX.current const newWidth = Math.max(200, Math.min(500, resizeStartWidth.current + deltaX)) setSidebarWidth(newWidth) @@ -125,7 +126,7 @@ export default function Sidebar() { return ( setShowSidebar(false)} @@ -143,9 +144,9 @@ export default function Sidebar() { maxWidth: '75vw', }, }} - SlideProps={language === 'ar' ? { direction: 'left' } : undefined} + SlideProps={isRtlLanguage(language) ? { direction: 'left' } : undefined} PaperProps={ - language === 'ar' ? { sx: { direction: 'rtl', overflowY: 'initial' } } : { sx: { overflowY: 'initial' } } + isRtlLanguage(language) ? { sx: { direction: 'rtl', overflowY: 'initial' } } : { sx: { overflowY: 'initial' } } } disableSwipeToOpen={CHATBOX_BUILD_PLATFORM !== 'ios'} // 只在iOS设备上启用SwipeToOpen > @@ -350,7 +351,7 @@ export default function Sidebar() { onMouseDown={handleResizeStart} className={clsx( `sidebar-resizer absolute top-0 bottom-0 w-1 cursor-col-resize z-[1] bg-chatbox-border-primary opacity-0 hover:opacity-70 transition-opacity duration-200`, - language === 'ar' ? '-left-1' : '-right-1' + isRtlLanguage(language) ? '-left-1' : '-right-1' )} /> )} diff --git a/src/renderer/components/StyledMenu.tsx b/src/renderer/components/StyledMenu.tsx index 29032a0a14..7657c0113d 100644 --- a/src/renderer/components/StyledMenu.tsx +++ b/src/renderer/components/StyledMenu.tsx @@ -2,12 +2,13 @@ import { Menu, type MenuProps } from '@mui/material' import 'katex/dist/katex.min.css' import { alpha, styled } from '@mui/material/styles' import { useLanguage } from '@/stores/settingsStore' +import { isRtlLanguage } from '@/i18n/rtl' const StyledMenu = styled((props: MenuProps) => { const language = useLanguage() return ( setShowDrawer(false)} @@ -67,9 +68,9 @@ export default function ThreadHistoryDrawer({ session }: { session: Session }) { paper: 'bg-none box-border max-w-75vw min-w-[240px] flex flex-col gap-0 pt-[var(--mobile-safe-area-inset-top)] pb-[var(--mobile-safe-area-inset-bottom)]', }} - SlideProps={language === 'ar' ? { direction: 'right' } : undefined} + SlideProps={isRtlLanguage(language) ? { direction: 'right' } : undefined} PaperProps={ - language === 'ar' ? { sx: { direction: 'rtl', overflowY: 'initial' } } : { sx: { overflowY: 'initial' } } + isRtlLanguage(language) ? { sx: { direction: 'rtl', overflowY: 'initial' } } : { sx: { overflowY: 'initial' } } } disableSwipeToOpen={CHATBOX_BUILD_PLATFORM !== 'ios'} // 只在iOS设备上启用SwipeToOpen disableEnforceFocus={true} // 关闭 focus trap,避免在侧边栏打开时弹出的 modal 中 input 无法点击 diff --git a/src/renderer/hooks/useAppTheme.ts b/src/renderer/hooks/useAppTheme.ts index 4f7e83363f..498d786fed 100644 --- a/src/renderer/hooks/useAppTheme.ts +++ b/src/renderer/hooks/useAppTheme.ts @@ -3,6 +3,7 @@ import { useLayoutEffect, useMemo } from 'react' import { settingsStore, useLanguage, useSettingsStore } from '@/stores/settingsStore' import { uiStore, useUIStore } from '@/stores/uiStore' import { type Language, Theme } from '../../shared/types' +import { isRtlLanguage } from '../i18n/rtl' import platform from '../platform' import DesktopPlatform from '../platform/desktop_platform' @@ -80,14 +81,14 @@ export function getThemeDesign(realTheme: 'light' | 'dark', language: Language): typography: { // In Chinese and Japanese the characters are usually larger, // so a smaller fontsize may be appropriate. - ...(language === 'ar' + ...(isRtlLanguage(language) ? { fontFamily: 'Cairo, Arial, sans-serif', } : {}), fontSize: 14, }, - direction: language === 'ar' ? 'rtl' : 'ltr', + direction: isRtlLanguage(language) ? 'rtl' : 'ltr', breakpoints: { values: { xs: 0, diff --git a/src/renderer/i18n/index.ts b/src/renderer/i18n/index.ts index 23bb8f5539..d646a72292 100644 --- a/src/renderer/i18n/index.ts +++ b/src/renderer/i18n/index.ts @@ -7,6 +7,7 @@ import changelogZhHans from './changelogs/changelog_zh_Hans' import changelogZhHant from './changelogs/changelog_zh_Hant' import ar from './locales/ar/translation.json' import de from './locales/de/translation.json' +import fa from './locales/fa/translation.json' import en from './locales/en/translation.json' import es from './locales/es/translation.json' import fr from './locales/fr/translation.json' @@ -55,6 +56,9 @@ i18n.use(initReactI18next).init({ ar: { translation: ar, }, + fa: { + translation: fa, + }, 'it-IT': { translation: itIT, }, diff --git a/src/renderer/i18n/locales.ts b/src/renderer/i18n/locales.ts index e0965fc2b7..f8a3253020 100644 --- a/src/renderer/i18n/locales.ts +++ b/src/renderer/i18n/locales.ts @@ -12,6 +12,7 @@ export const languageNameMap: Record = { 'pt-PT': 'Português', // Portuguese es: 'Español', // Spanish ar: 'العربية', // Arabic + fa: 'فارسی', // Persian 'it-IT': 'Italiano', // Italian sv: 'Svenska', // Swedish 瑞典语 'nb-NO': 'Norsk', // Norwegian 挪威语 diff --git a/src/renderer/i18n/locales/fa/translation.json b/src/renderer/i18n/locales/fa/translation.json new file mode 100644 index 0000000000..3f51053b9c --- /dev/null +++ b/src/renderer/i18n/locales/fa/translation.json @@ -0,0 +1,984 @@ +{ + " for free now!": " همین حالا رایگان!", + "(Remaining/Total)": "(باقی‌مانده/کل)", + "(Trial)": "(آزمایشی)", + ") — Detailed feature documentation\n- 🆘 [Help Center](": ") — مستندات کامل ویژگی‌ها\n- 🆘 [مرکز راهنما](", + ") — FAQs\n- 📮 Contact us: hi@chatboxai.com\n\n---\n\n**Now, let me help you get set up!** First, tell me about your AI experience:": ") — سؤالات متداول\n- 📮 تماس با ما: hi@chatboxai.com\n\n---\n\n**حالا بگذارید کمکتان کنم راه‌اندازی کنید!** اول بگویید چه تجربه‌ای با AI دارید:", + ") — FAQs\n- 📮 Contact us: hi@chatboxai.com\n\n💡 Follow Chatbox on [Xiaohongshu](https://www.xiaohongshu.com/user/profile/67b581b6000000000e01d11f) for the latest updates and tips\n\n---\n\n**Now, let me help you get set up!** First, tell me about your AI experience:": ") — سؤالات متداول\n- 📮 تماس با ما: hi@chatboxai.com\n\n💡 Chatbox را در [Xiaohongshu](https://www.xiaohongshu.com/user/profile/67b581b6000000000e01d11f) دنبال کنید تا از آخرین به‌روزرسانی‌ها و نکات باخبر شوید\n\n---\n\n**حالا بگذارید کمکتان کنم راه‌اندازی کنید!** اول بگویید چه تجربه‌ای با AI دارید:", + "{{count}} conversations could not be recovered due to data read errors": "{{count}} گفتگو به‌خاطر خطای خواندن داده بازیابی نشد", + "{{count}} document(s) are still being prepared. If you send now, the answer may not use the full document.": "{{count}} سند هنوز در حال آماده‌سازی است. اگر الان ارسال کنید، ممکن است پاسخ از کل سند استفاده نکند.", + "{{count}} file(s) exceed the {{limit}} knowledge base upload limit.": "{{count}} فایل از حد آپلود {{limit}} پایگاه دانش بیشتر است.", + "{{count}} file(s) failed to parse": "تجزیه {{count}} فایل ناموفق بود", + "{{count}} file(s) failed to queue": "افزودن {{count}} فایل به صف ناموفق بود", + "{{count}} file(s) not supported: {{files}}. Supported formats: {{formats}}": "{{count}} فایل پشتیبانی نمی‌شود: {{files}}. فرمت‌های پشتیبانی‌شده: {{formats}}", + "{{count}} file(s) queued for server parsing": "{{count}} فایل در صف تجزیه سرور قرار گرفت", + "{{count}} MCP servers imported": "{{count}} سرور MCP وارد شد", + "{{count}} ref": "{{count}} مرجع", + "{{count}} results": "{{count}} نتیجه", + "## 👋 Hey! I'm Boxy, your setup guide assistant.\n\nChatbox is an **all-in-one AI chat client** that supports 30+ mainstream models including ChatGPT, Claude, DeepSeek, and more.\n\n### ✨ Key Features\n- 🔐 **Local First** — Your data stays on your device, ensuring privacy and security\n- 🎯 **Multi-Model Support** — One app, chat with all AI models\n- 📚 **Knowledge Base** — Let AI understand your private documents\n\n### 📖 Get Help\n- 🎬 [Xiaohongshu Setup Guide](https://www.xiaohongshu.com/user/profile/67b581b6000000000e01d11f) — Step-by-step tutorial (Recommended)\n- 📕 [Product Manual](": "## 👋 سلام! من Boxy هستم، دستیار راهنمای راه‌اندازی شما.\n\nChatbox یک **کلاینت گفتگوی AI همه‌کاره** است که بیش از ۳۰ مدل اصلی از جمله ChatGPT، Claude، DeepSeek و موارد دیگر را پشتیبانی می‌کند.\n\n### ✨ ویژگی‌های کلیدی\n- 🔐 **اولویت با داده محلی** — داده‌های شما روی دستگاهتان می‌ماند و حریم خصوصی و امنیت حفظ می‌شود\n- 🎯 **پشتیبانی چندمدلی** — یک برنامه، گفتگو با همه مدل‌های AI\n- 📚 **پایگاه دانش** — به AI اجازه دهید اسناد خصوصی شما را بفهمد\n\n### 📖 دریافت کمک\n- 🎬 [راهنمای راه‌اندازی Xiaohongshu](https://www.xiaohongshu.com/user/profile/67b581b6000000000e01d11f) — آموزش گام‌به‌گام (پیشنهادی)\n- 📕 [راهنمای محصول](", + "## 👋 Hey! I'm Boxy, your setup guide assistant.\n\nChatbox is an **all-in-one AI chat client** that supports 30+ mainstream models including ChatGPT, Claude, DeepSeek, and more.\n\n### ✨ Key Features\n- 🔐 **Local First** — Your data stays on your device, ensuring privacy and security\n- 🎯 **Multi-Model Support** — One app, chat with all AI models\n- 📚 **Knowledge Base** — Let AI understand your private documents\n\n### 📖 Get Help\n- 📕 [Product Manual](": "## 👋 سلام! من Boxy هستم، دستیار راهنمای راه‌اندازی شما.\n\nChatbox یک **کلاینت گفتگوی AI همه‌کاره** است که بیش از ۳۰ مدل اصلی از جمله ChatGPT، Claude، DeepSeek و موارد دیگر را پشتیبانی می‌کند.\n\n### ✨ ویژگی‌های کلیدی\n- 🔐 **اولویت با داده محلی** — داده‌های شما روی دستگاهتان می‌ماند و حریم خصوصی و امنیت حفظ می‌شود\n- 🎯 **پشتیبانی چندمدلی** — یک برنامه، گفتگو با همه مدل‌های AI\n- 📚 **پایگاه دانش** — به AI اجازه دهید اسناد خصوصی شما را بفهمد\n\n### 📖 دریافت کمک\n- 📕 [راهنمای محصول](", + "1. Open PowerShell or Command Prompt as Administrator": "۱. PowerShell یا Command Prompt را به‌عنوان مدیر باز کنید", + "2. Run command: wsl --install": "۲. این دستور را اجرا کنید: wsl --install", + "3. Restart your computer when prompted": "۳. وقتی خواسته شد، رایانه را راه‌اندازی مجدد کنید", + "A cozy coffee shop interior": "فضای داخلی یک کافه دنج", + "A cute rabbit in Pixar animation style": "خرگوش بامزه به سبک انیمیشن Pixar", + "A futuristic city with flying cars": "شهری آینده‌نگر با ماشین‌های پرنده", + "A provider with this ID already exists. Continuing will overwrite the existing configuration.": "ارائه‌دهنده‌ای با این ID از قبل وجود دارد. ادامه دادن تنظیمات قبلی را بازنویسی می‌کند.", + "A serene mountain landscape at sunset": "منظره کوهستانی آرام در غروب", + "About": "درباره", + "about-introduction": "کلاینت دسکتاپ کاربرپسند AI که چندین مدل پیشرفته را پشتیبانی می‌کند و فناوری هوش مصنوعی پیشرفته را به ابزاری ساده برای بهره‌وری تبدیل می‌کند.", + "about-slogan": "با AI بهره‌وری خود را بالا ببرید؛ دستیار نهایی شما برای کار و یادگیری", + "Action": "عملیات", + "Activate License": "فعال‌سازی مجوز", + "Add": "افزودن", + "Add at least one model to check connection": "حداقل یک مدل برای بررسی اتصال اضافه کنید", + "Add Custom Provider": "افزودن ارائه‌دهنده سفارشی", + "Add Custom Server": "افزودن سرور سفارشی", + "Add Directory": "افزودن پوشه", + "Add File": "افزودن فایل", + "Add MCP Server": "افزودن سرور MCP", + "Add or Import": "افزودن یا وارد کردن", + "Add provider": "افزودن ارائه‌دهنده", + "Add Reference Image": "افزودن تصویر مرجع", + "Add Server": "افزودن سرور", + "Add Skills": "افزودن مهارت‌ها", + "Add skills from the marketplace or install from a GitHub repository.": "مهارت‌ها را از بازار اضافه کنید یا از مخزن GitHub نصب کنید.", + "Add to My Copilots": "افزودن به دستیارهای من", + "Add your first MCP server": "اولین سرور MCP خود را اضافه کنید", + "Advanced image formats are not supported. Please convert to JPG or PNG.": "فرمت‌های تصویری پیشرفته پشتیبانی نمی‌شوند. لطفاً به JPG یا PNG تبدیل کنید.", + "Advanced Mode": "حالت پیشرفته", + "Advanced Settings": "تنظیمات پیشرفته", + "ai provider no implemented paint tips": "ارائه‌دهنده مدل AI فعلی ({{aiProvider}}) در حال حاضر قابلیت نقاشی را پشتیبانی نمی‌کند. فعلاً فقط Chatbox AI، OpenAI و Azure OpenAI این قابلیت را دارند. در صورت نیاز، <0>به تنظیمات بروید و ارائه‌دهنده مدل AI را تغییر دهید.", + "AI-generated content may be inaccurate. Please verify important information.": "محتوای تولیدشده توسط AI ممکن است دقیق نباشد. لطفاً اطلاعات مهم را بررسی کنید.", + "AI-generated images may not be accurate. Review output carefully.": "تصاویر تولیدشده توسط AI ممکن است دقیق نباشند. خروجی را با دقت بررسی کنید.", + "AIHubMix integration in Chatbox offers 10% discount": "یکپارچه‌سازی AIHubMix در Chatbox ۱۰٪ تخفیف دارد", + "All": "همه", + "All data is stored locally, ensuring privacy and rapid access": "همه داده‌ها به‌صورت محلی ذخیره می‌شوند و حریم خصوصی و دسترسی سریع تضمین می‌شود", + "All threads": "همه موضوعات", + "already existed": "از قبل وجود داشت", + "Already up to date": "هم‌اکنون به‌روز است", + "An abstract painting with vibrant colors": "نقاشی انتزاعی با رنگ‌های زنده", + "An easy-to-use AI client app": "برنامه کلاینت AI ساده و کاربرپسند", + "An error occurred while processing your request. Please try again later. If this error continues, please send an email to hi@chatboxai.com for support.": "هنگام پردازش درخواست شما خطایی رخ داد. لطفاً بعداً دوباره تلاش کنید. اگر این خطا ادامه داشت، برای پشتیبانی به hi@chatboxai.com ایمیل بزنید.", + "An error occurred while sending the message.": "هنگام ارسال پیام خطایی رخ داد.", + "An MCP server implementation that provides a tool for dynamic and reflective problem-solving through a structured thinking process.": "پیاده‌سازی سرور MCP که ابزاری برای حل مسئله پویا و تفکرمحور از طریق فرایند تفکر ساخت‌یافته فراهم می‌کند.", + "An unknown error occurred. Please try again later. If this error continues, please send an email to hi@chatboxai.com for support.": "خطای ناشناخته‌ای رخ داد. لطفاً بعداً دوباره تلاش کنید. اگر این خطا ادامه داشت، برای پشتیبانی به hi@chatboxai.com ایمیل بزنید.", + "And {{count}} more file(s).": "و {{count}} فایل دیگر.", + "API Host": "میزبان API", + "API Key": "کلید API", + "API KEY & License": "کلید API و مجوز", + "API key invalid!": "کلید API نامعتبر است!", + "API Key is required to check connection": "برای بررسی اتصال کلید API لازم است", + "API Mode": "حالت API", + "API Path": "مسیر API", + "Archive files are not supported. Please extract and upload individual files.": "فایل‌های فشرده پشتیبانی نمی‌شوند. لطفاً استخراج کنید و فایل‌ها را جداگانه آپلود کنید.", + "Are you sure you want to delete the knowledge base": "آیا مطمئنید می‌خواهید پایگاه دانش را حذف کنید", + "Are you sure you want to delete this server?": "آیا مطمئنید می‌خواهید این سرور را حذف کنید؟", + "Arguments": "آرگومان‌ها", + "Aspect Ratio": "نسبت تصویر", + "Attach Image": "پیوست تصویر", + "Attach Link": "پیوست لینک", + "Audio files are not supported": "فایل‌های صوتی پشتیبانی نمی‌شوند", + "Authentication": "احراز هویت", + "Authorization Code": "کد مجوز", + "Auto": "خودکار", + "Auto (Use Chat Model)": "خودکار (استفاده از مدل گفتگو)", + "Auto (Use Chatbox AI)": "خودکار (استفاده از Chatbox AI)", + "Auto (Use Last Used)": "خودکار (استفاده از آخرین مورد)", + "Auto Compaction": "فشرده‌سازی خودکار", + "Auto-collapse code blocks": "جمع کردن خودکار بلوک‌های کد", + "Auto-Generate Chat Titles": "تولید خودکار عنوان گفتگو", + "Auto-preview artifacts": "پیش‌نمایش خودکار خروجی‌ها", + "Automatic updates": "به‌روزرسانی خودکار", + "Automatically render generated artifacts (e.g., HTML with CSS, JS, Tailwind)": "رندر خودکار خروجی‌های تولیدشده (مثلاً HTML با CSS، JS، Tailwind)", + "Automatically summarize and compact conversation history when context size exceeds the threshold, preserving key information while reducing token usage.": "وقتی اندازه زمینه از آستانه بیشتر شود، تاریخچه گفتگو به‌صورت خودکار خلاصه و فشرده می‌شود؛ اطلاعات کلیدی حفظ می‌شود و مصرف توکن کم می‌شود.", + "Awesome, you're all set! You can now start using Chatbox.\n\nClick **New Chat** below to start chatting, or **View License Details** to check your subscription info. If you have any questions, feel free to click the Help button in the bottom left corner anytime. Enjoy!": "عالی، همه چیز آماده است! حالا می‌توانید از Chatbox استفاده کنید.\n\nبرای شروع گفتگو روی **گفتگوی جدید** پایین کلیک کنید، یا برای دیدن اطلاعات اشتراک **مشاهده جزئیات مجوز** را بزنید. اگر سؤالی دارید، هر وقت خواستید دکمه راهنما را در گوشه پایین چپ بزنید. لذت ببرید!", + "Awesome, you're all set! You can now start using Chatbox.\n\nClick **New Chat** below to start chatting, or **View License Details** to check your subscription info. If you have more questions, feel free to click the Help button in the bottom left corner anytime. Enjoy!": "عالی، همه چیز آماده است! حالا می‌توانید از Chatbox استفاده کنید.\n\nبرای شروع گفتگو روی **گفتگوی جدید** پایین کلیک کنید، یا برای دیدن اطلاعات اشتراک **مشاهده جزئیات مجوز** را بزنید. اگر سؤال بیشتری دارید، هر وقت خواستید دکمه راهنما را در گوشه پایین چپ بزنید. لذت ببرید!", + "AWS Access Key ID": "AWS Access Key ID", + "AWS Access Key ID and Secret Access Key are required to check connection": "برای بررسی اتصال AWS Access Key ID و Secret Access Key لازم است", + "AWS Region": "منطقه AWS", + "AWS Secret Access Key": "AWS Secret Access Key", + "Azure API Version": "نسخه Azure API", + "Azure Endpoint": "نقطه پایانی Azure", + "Back to HomePage": "بازگشت به صفحه اصلی", + "Back to Login": "بازگشت به ورود", + "Back to previous message": "بازگشت به پیام قبلی", + "Back to Tasks": "بازگشت به وظایف", + "Background Image": "تصویر پس‌زمینه", + "Background Settings": "تنظیمات پس‌زمینه", + "Balanced: Good balance between cost and context preservation": "متعادل: تعادل خوب بین هزینه و حفظ زمینه", + "Beta updates": "به‌روزرسانی‌های بتا", + "Binary/executable files are not supported": "فایل‌های باینری/اجرایی پشتیبانی نمی‌شوند", + "Bing Search is provided for free use, but it may have limitations and is subject to change by Microsoft.": "Bing Search به‌صورت رایگان ارائه می‌شود، اما ممکن است محدودیت داشته باشد و توسط Microsoft قابل تغییر است.", + "BoCha API Key": "کلید API BoCha", + "Bonus points are used first, then plan quota, and expansion packs are used last.": "ابتدا امتیازهای جایزه، سپس سهمیه طرح و در آخر بسته‌های توسعه مصرف می‌شوند.", + "Browse Skills": "مرور مهارت‌ها", + "Bubble": "حبابی", + "Builtin MCP Servers": "سرورهای MCP داخلی", + "Buy": "خرید", + "By continuing, you agree to our": "با ادامه دادن، با", + "cancel": "لغو", + "Cancel": "لغو", + "cannot be empty": "نمی‌تواند خالی باشد", + "Capabilities": "قابلیت‌ها", + "Changelog": "تغییرات", + "characters": "کاراکتر", + "Chat": "گفتگو", + "Chat attachments must be {{limit}} or smaller. Please upload larger documents through Knowledge Base.": "پیوست‌های گفتگو باید {{limit}} یا کوچک‌تر باشند. اسناد بزرگ‌تر را از طریق پایگاه دانش آپلود کنید.", + "Chat History": "تاریخچه گفتگو", + "Chat Settings": "تنظیمات گفتگو", + "Chatbox AI document parsing failed. Please try again later.": "تجزیه سند Chatbox AI ناموفق بود. لطفاً بعداً دوباره تلاش کنید.", + "Chatbox AI free trial available": "نسخه آزمایشی رایگان Chatbox AI موجود است", + "Chatbox AI License": "مجوز Chatbox AI", + "Chatbox AI offers a user-friendly AI solution to help you enhance productivity": "Chatbox AI راه‌حل AI کاربرپسندی برای افزایش بهره‌وری شما ارائه می‌دهد", + "Chatbox AI parse failed": "تجزیه Chatbox AI ناموفق بود", + "Chatbox AI provides all the essential model support required for knowledge base processing. Consumes compute points.": "Chatbox AI همه پشتیبانی‌های ضروری مدل برای پردازش پایگاه دانش را فراهم می‌کند. امتیاز محاسباتی مصرف می‌کند.", + "Chatbox Featured": "ویژه Chatbox", + "Chatbox is ready. To save resources, please start a new chat to continue.": "Chatbox آماده است. برای صرفه‌جویی در منابع، لطفاً گفتگوی جدیدی شروع کنید.", + "Chatbox OCRs images with this model and sends the text to models without image support.": "Chatbox با این مدل OCR روی تصاویر انجام می‌دهد و متن را به مدل‌هایی بدون پشتیبانی تصویر می‌فرستد.", + "Chatbox respects your privacy and only uploads anonymous error data and events when necessary. You can change your preferences at any time in the settings.": "Chatbox به حریم خصوصی شما احترام می‌گذارد و فقط در صورت نیاز داده‌های خطا و رویدادهای ناشناس را آپلود می‌کند. هر وقت بخواهید می‌توانید ترجیحات را در تنظیمات تغییر دهید.", + "Chatbox Search is a paid feature with advanced capabilities and better performance.": "جستجوی Chatbox یک قابلیت پولی با امکانات پیشرفته و عملکرد بهتر است.", + "Chatbox will automatically use this model to construct search term.": "Chatbox به‌صورت خودکار از این مدل برای ساخت عبارت جستجو استفاده می‌کند.", + "Chatbox will automatically use this model to rename threads.": "Chatbox به‌صورت خودکار از این مدل برای نام‌گذاری موضوعات استفاده می‌کند.", + "Chatbox will use this model as the default for new chats.": "Chatbox این مدل را به‌عنوان پیش‌فرض گفتگوهای جدید استفاده می‌کند.", + "Check": "بررسی", + "Check Update": "بررسی به‌روزرسانی", + "Checking availability...": "در حال بررسی دسترسی...", + "Checking...": "در حال بررسی...", + "Child-inappropriate content": "محتوای نامناسب برای کودکان", + "Choose a different folder": "پوشه دیگری انتخاب کنید", + "Choose a directory": "یک پوشه انتخاب کنید", + "Choose a local directory for the AI to work in. Files in this directory will be accessible to the sandbox.": "یک پوشه محلی برای کار AI انتخاب کنید. فایل‌های این پوشه در sandbox در دسترس خواهند بود.", + "Chunk": "بخش", + "chunks": "بخش‌ها", + "Claim Free Plan": "دریافت طرح رایگان", + "Classic": "کلاسیک", + "Claude API Compatible": "سازگار با Claude API", + "clean it up": "پاکسازی کنید", + "Clear All Messages": "پاک کردن همه پیام‌ها", + "Clear Conversation List": "پاک کردن فهرست گفتگوها", + "Click here to set up": "برای راه‌اندازی اینجا کلیک کنید", + "Click here to start a new chat": "برای شروع گفتگوی جدید اینجا کلیک کنید", + "Click to retry": "برای تلاش مجدد کلیک کنید", + "Click to view full text": "برای دیدن متن کامل کلیک کنید", + "Click to view parsed content": "برای دیدن محتوای تجزیه‌شده کلیک کنید", + "Close": "بستن", + "Cloud-based document parsing service, supports PDF, Office files, EPUB and many other file types. Consumes compute points.": "سرویس تجزیه سند ابری؛ PDF، فایل‌های Office، EPUB و انواع دیگر را پشتیبانی می‌کند. امتیاز محاسباتی مصرف می‌کند.", + "Code Search": "جستجوی کد", + "Collapse": "جمع کردن", + "Collapse attachments": "جمع کردن پیوست‌ها", + "Command": "دستور", + "Compacting conversation...": "در حال فشرده‌سازی گفتگو...", + "Compacting...": "در حال فشرده‌سازی...", + "Compaction failed": "فشرده‌سازی ناموفق بود", + "Compaction Threshold": "آستانه فشرده‌سازی", + "Compress Conversation": "فشرده‌سازی گفتگو", + "Configure a custom OpenAI-compatible provider": "پیکربندی ارائه‌دهنده سفارشی سازگار با OpenAI", + "Configure MCP server manually": "پیکربندی دستی سرور MCP", + "Confirm": "تأیید", + "Confirm Delete?": "حذف تأیید شود؟", + "Confirm to delete this custom provider?": "حذف این ارائه‌دهنده سفارشی تأیید شود؟", + "Confirm?": "تأیید می‌کنید؟", + "Connected": "متصل", + "Connection failed": "اتصال ناموفق بود", + "Connection failed!": "اتصال ناموفق بود!", + "Connection successful": "اتصال موفق بود", + "Connection successful!": "اتصال موفق بود!", + "Connection to {{aiProvider}} failed. This typically occurs due to a temporary service issue. Please try again later or check your settings.": "اتصال به {{aiProvider}} ناموفق بود. معمولاً به‌خاطر مشکل موقت سرویس است. لطفاً بعداً دوباره تلاش کنید یا تنظیمات را بررسی کنید.", + "Connection to {{aiProvider}} failed. This typically occurs due to incorrect configuration or {{aiProvider}} account issues. Please check your settings and verify your {{aiProvider}} account status, or purchase a Chatbox AI License to unlock all advanced models instantly without any configuration.": "اتصال به {{aiProvider}} ناموفق بود. معمولاً به‌خاطر تنظیمات نادرست یا مشکل حساب {{aiProvider}} است. لطفاً تنظیمات را بررسی کنید و وضعیت حساب {{aiProvider}} را بسنجید، یا مجوز Chatbox AI بخرید تا بدون تنظیمات همه مدل‌های پیشرفته را فوراً باز کنید.", + "Content": "محتوا", + "Content not allowed. Please modify your request and try again.": "محتوا مجاز نیست. لطفاً درخواست را اصلاح کنید و دوباره تلاش کنید.", + "Context": "زمینه", + "Context Management": "مدیریت زمینه", + "Context messages": "پیام‌های زمینه", + "Context Priority: Preserves more context, uses more tokens": "اولویت زمینه: زمینه بیشتری حفظ می‌شود، توکن بیشتری مصرف می‌شود", + "Context Window": "پنجره زمینه", + "Context window unknown for this model": "پنجره زمینه این مدل نامشخص است", + "Continue Editing": "ادامه ویرایش", + "Continue this thread": "ادامه این موضوع", + "Continue with": "ادامه با", + "Conversation not found": "گفتگو پیدا نشد", + "Conversation Settings": "تنظیمات گفتگو", + "Copied": "کپی شد", + "copied to clipboard": "در کلیپ‌بورد کپی شد", + "Copilot Prompt Demo": "شما مترجم هستید و کار شما ترجمه از غیرانگلیسی به انگلیسی است", + "Copilot Settings": "تنظیمات Copilot", + "copy": "کپی", + "Copy": "کپی", + "Copy reasoning content": "کپی محتوای استدلال", + "Cost": "هزینه", + "Cost Priority: Compacts early to save tokens, may lose some context": "اولویت هزینه: زودتر فشرده می‌کند تا توکن صرفه‌جویی شود؛ ممکن است بخشی از زمینه از دست برود", + "Create": "ایجاد", + "Create a New Conversation": "ایجاد گفتگوی جدید", + "Create a New Image-Creator Conversation": "ایجاد گفتگوی جدید سازنده تصویر", + "Create amazing images": "تصاویر شگفت‌انگیز بسازید", + "Create File": "ایجاد فایل", + "Create First Knowledge Base": "ایجاد اولین پایگاه دانش", + "Create Image": "ایجاد تصویر", + "Create Knowledge Base": "ایجاد پایگاه دانش", + "Create your first knowledge base to start adding documents and enhance your AI conversations with contextual information.": "اولین پایگاه دانش را بسازید تا اسناد اضافه کنید و گفتگوهای AI را با اطلاعات زمینه‌ای غنی‌تر کنید.", + "Created on {{date}}": "ایجادشده در {{date}}", + "Current input": "ورودی فعلی", + "current model": "مدل فعلی", + "Current model {{modelName}} does not support image input, using OCR to process images": "مدل فعلی {{modelName}} ورودی تصویر را پشتیبانی نمی‌کند؛ از OCR برای پردازش تصاویر استفاده می‌شود", + "Current thread": "موضوع فعلی", + "Custom": "سفارشی", + "Custom MCP Servers": "سرورهای MCP سفارشی", + "Customize settings for the current conversation": "تنظیمات گفتگوی فعلی را سفارشی کنید", + "Dark Mode": "حالت تیره", + "Data Backup": "پشتیبان‌گیری داده", + "Data Backup and Restore": "پشتیبان‌گیری و بازیابی داده", + "Data Recovery": "بازیابی داده", + "Data Restore": "بازیابی داده", + "Deactivate": "غیرفعال‌سازی", + "Deeply thought": "عمیق فکر شد", + "Default Assistant Avatar": "آواتار پیش‌فرض دستیار", + "Default Chat Model": "مدل پیش‌فرض گفتگو", + "Default Models": "مدل‌های پیش‌فرض", + "Default Settings for New Conversation": "تنظیمات پیش‌فرض گفتگوی جدید", + "Default Thread Naming Model": "مدل پیش‌فرض نام‌گذاری موضوع", + "delete": "حذف", + "Delete": "حذف", + "Delete Current Session": "حذف نشست فعلی", + "Delete File": "حذف فایل", + "Delete Knowledge Base": "حذف پایگاه دانش", + "Delete Summary": "حذف خلاصه", + "Delete this record?": "این رکورد حذف شود؟", + "Deleting this summary will restore original messages to context calculation.": "با حذف این خلاصه، پیام‌های اصلی دوباره در محاسبه زمینه لحاظ می‌شوند.", + "Deploy HTML content to EdgeOne Pages and obtaining an accessible public URL.": "محتوای HTML را در EdgeOne Pages منتشر کنید و یک URL عمومی قابل دسترس بگیرید.", + "Describe the image you want to create...": "تصویری که می‌خواهید بسازید را توصیف کنید...", + "Describe the image you want to generate. Be as detailed as possible for best results.": "تصویری که می‌خواهید تولید کنید را توصیف کنید. هرچه جزئیات بیشتر باشد، نتیجه بهتر است.", + "Describe what you want to do...": "بگویید چه کاری می‌خواهید انجام دهید...", + "Description": "توضیحات", + "Details": "جزئیات", + "Device Authorization": "مجوز دستگاه", + "Diagnostic Logs": "گزارش‌های تشخیصی", + "Directory selection is not available on this platform.": "انتخاب پوشه در این پلتفرم در دسترس نیست.", + "Disabled": "غیرفعال", + "Discard Changes": "نادیده گرفتن تغییرات", + "Discard Changes?": "تغییرات نادیده گرفته شود؟", + "Dismiss": "رد کردن", + "Display": "نمایش", + "Display Settings": "تنظیمات نمایش", + "Document is still indexing": "سند هنوز در حال نمایه‌سازی است", + "Document Parser": "تجزیه‌گر سند", + "Document parsing failed. You can go to Settings and switch to Chatbox AI for cloud-based document parsing.": "تجزیه سند ناموفق بود. می‌توانید به تنظیمات بروید و برای تجزیه ابری سند به Chatbox AI بروید.", + "Documents": "اسناد", + "Done": "انجام شد", + "Download": "دانلود", + "Download Desktop App": "دانلود برنامه دسکتاپ", + "Download from official site": "دانلود از سایت رسمی", + "Downloading...": "در حال دانلود...", + "Drag and drop files here, or click to browse": "فایل‌ها را اینجا بکشید و رها کنید، یا برای مرور کلیک کنید", + "Drop files here": "فایل‌ها را اینجا رها کنید", + "Due to local processing limitations, Chatbox AI Service is recommended for enhanced document processing capabilities and better results.": "به‌خاطر محدودیت‌های پردازش محلی، سرویس Chatbox AI برای پردازش بهتر اسناد و نتایج بهتر پیشنهاد می‌شود.", + "Due to local processing limitations, Chatbox AI Service is recommended to enhance webpage parsing capabilities, especially for dynamic pages.": "به‌خاطر محدودیت‌های پردازش محلی، سرویس Chatbox AI برای بهبود تجزیه صفحات وب، به‌ویژه صفحات پویا، پیشنهاد می‌شود.", + "E-mail": "ایمیل", + "e.g. 128000": "مثلاً 128000", + "e.g. 4096": "مثلاً 4096", + "e.g., Model Name, Current Date": "مثلاً نام مدل، تاریخ فعلی", + "Earlier messages summarized": "پیام‌های قبلی خلاصه شدند", + "Edit": "ویرایش", + "Edit Avatars": "ویرایش آواتارها", + "Edit File": "ویرایش فایل", + "Edit Knowledge Base": "ویرایش پایگاه دانش", + "Edit MCP Server": "ویرایش سرور MCP", + "Edit Model": "ویرایش مدل", + "Edit Thread Name": "ویرایش نام موضوع", + "Email": "ایمیل", + "Embedding": "جاسازی", + "Embedding Model": "مدل جاسازی", + "Enable optional anonymous reporting of crash and event data": "گزارش اختیاری ناشناس خطاها و رویدادها را فعال کنید", + "Enabled skills will be available in Task mode.": "مهارت‌های فعال در حالت وظیفه در دسترس خواهند بود.", + "Enjoying Chatbox?": "از Chatbox لذت می‌برید؟", + "Enter the 6-digit verification code we sent to your email.": "کد تأیید ۶ رقمی که به ایمیل شما فرستادیم را وارد کنید.", + "Enter the code below on the authorization page, then wait for approval.": "کد زیر را در صفحه مجوز وارد کنید، سپس منتظر تأیید بمانید.", + "Enter your MinerU API token": "توکن API MinerU خود را وارد کنید", + "Enter your Querit API Key": "کلید API Querit خود را وارد کنید", + "Environment Variables": "متغیرهای محیطی", + "Error": "خطا", + "Error Reporting": "گزارش خطا", + "Estimated Token Usage": "مصرف تقریبی توکن", + "Excellent! You're all set to explore on your own.\n\nClick the **Settings** icon in the sidebar, then go to **Model Providers** to configure your API key. If you need help later, just click the Help button in the bottom left corner. Enjoy!": "عالی! همه چیز برای کاوش خودتان آماده است.\n\nروی آیکون **تنظیمات** در نوار کناری کلیک کنید، سپس به **ارائه‌دهندگان مدل** بروید و کلید API را تنظیم کنید. اگر بعداً کمک خواستید، دکمه راهنما را در گوشه پایین چپ بزنید. لذت ببرید!", + "expand": "باز کردن", + "Expand": "باز کردن", + "Expansion Pack Quota": "سهمیه بسته توسعه", + "Expired": "منقضی‌شده", + "Expires": "انقضا", + "Explore (community)": "کاوش (انجمن)", + "Explore (official)": "کاوش (رسمی)", + "Export": "خروجی گرفتن", + "Export application logs for troubleshooting. These logs may be requested by support to help diagnose issues.": "گزارش‌های برنامه را برای عیب‌یابی خروجی بگیرید. پشتیبانی ممکن است برای تشخیص مشکل این گزارش‌ها را بخواهد.", + "Export Chat": "خروجی گفتگو", + "Export failed": "خروجی گرفتن ناموفق بود", + "Export Logs": "خروجی گزارش‌ها", + "Export Selected Data": "خروجی داده‌های انتخاب‌شده", + "Exporting...": "در حال خروجی گرفتن...", + "Exports are for viewing only. Use Settings → Backup if you need a backup you can restore.": "خروجی‌ها فقط برای مشاهده‌اند. اگر به پشتیبان قابل بازیابی نیاز دارید از تنظیمات ← پشتیبان‌گیری استفاده کنید.", + "Failed": "ناموفق", + "Failed to activate license, please check your license key and network connection": "فعال‌سازی مجوز ناموفق بود؛ کلید مجوز و اتصال شبکه را بررسی کنید", + "Failed to activate the license key. You can try activating manually in **Settings**, or log in to the [Chatbox AI website](https://chatboxai.app) to view your license details.": "فعال‌سازی کلید مجوز ناموفق بود. می‌توانید در **تنظیمات** دستی فعال کنید، یا در [وب‌سایت Chatbox AI](https://chatboxai.app) وارد شوید و جزئیات مجوز را ببینید.", + "Failed to check for updates": "بررسی به‌روزرسانی ناموفق بود", + "Failed to create knowledge base, Error: {{error}}": "ایجاد پایگاه دانش ناموفق بود، خطا: {{error}}", + "Failed to delete skill": "حذف مهارت ناموفق بود", + "Failed to export file: {{error}}": "خروجی فایل ناموفق بود: {{error}}", + "Failed to fetch Chatbox AI models config, Error: {{error}}": "دریافت تنظیمات مدل‌های Chatbox AI ناموفق بود، خطا: {{error}}", + "Failed to fetch knowledge base list, Error: {{error}}": "دریافت فهرست پایگاه دانش ناموفق بود، خطا: {{error}}", + "Failed to fetch models": "دریافت مدل‌ها ناموفق بود", + "Failed to import provider": "وارد کردن ارائه‌دهنده ناموفق بود", + "Failed to load": "بارگذاری ناموفق بود", + "Failed to load account data. Please try again.": "بارگذاری داده حساب ناموفق بود. لطفاً دوباره تلاش کنید.", + "Failed to load Chatbox AI models configuration": "بارگذاری تنظیمات مدل‌های Chatbox AI ناموفق بود", + "Failed to load license details": "بارگذاری جزئیات مجوز ناموفق بود", + "Failed to open file dialog: {{error}}": "باز کردن پنجره فایل ناموفق بود: {{error}}", + "Failed to parse file. Please try again or use a different file format.": "تجزیه فایل ناموفق بود. دوباره تلاش کنید یا فرمت دیگری استفاده کنید.", + "Failed to read from clipboard": "خواندن از کلیپ‌بورد ناموفق بود", + "Failed to read webpage content. Please try again later or use a different URL.": "خواندن محتوای صفحه وب ناموفق بود. بعداً دوباره تلاش کنید یا URL دیگری استفاده کنید.", + "Failed to retry {{filename}}: {{error}}": "تلاش مجدد برای {{filename}} ناموفق بود: {{error}}", + "Failed to save file: {{error}}": "ذخیره فایل ناموفق بود: {{error}}", + "Failed to scan repository": "اسکن مخزن ناموفق بود", + "Failed to send login code": "ارسال کد ورود ناموفق بود", + "Failed to update knowledge base, Error: {{error}}": "به‌روزرسانی پایگاه دانش ناموفق بود، خطا: {{error}}", + "Failed to upload {{filename}}: {{error}}": "آپلود {{filename}} ناموفق بود: {{error}}", + "FAQs": "سؤالات متداول", + "Favorite": "علاقه‌مندی", + "Feedback": "بازخورد", + "Fetch": "دریافت", + "Fetch next batch from marketplace": "دریافت دسته بعدی از بازار", + "Fetching marketplace results": "در حال دریافت نتایج بازار", + "File": "فایل", + "File {{filename}} queued for server parsing": "فایل {{filename}} در صف تجزیه سرور قرار گرفت", + "File Chunks Preview": "پیش‌نمایش بخش‌های فایل", + "File Content": "محتوای فایل", + "File Processing Error": "خطای پردازش فایل", + "File saved to {{uri}}": "فایل در {{uri}} ذخیره شد", + "File Search": "جستجوی فایل", + "File type not supported. Supported formats vary by parser. Try PDF, modern Office files, EPUB, CSV/TSV, HTML/Markdown, or non-binary text/code files. Legacy Office formats may require Chatbox AI cloud parsing.": "نوع فایل پشتیبانی نمی‌شود. فرمت‌های پشتیبانی‌شده بسته به تجزیه‌گر متفاوت است. PDF، فایل‌های Office جدید، EPUB، CSV/TSV، HTML/Markdown یا فایل‌های متنی/کد غیرباینری را امتحان کنید. فرمت‌های قدیمی Office ممکن است به تجزیه ابری Chatbox AI نیاز داشته باشند.", + "Finishing": "در حال پایان", + "First token latency": "تأخیر اولین توکن", + "Focus on the Input Box": "تمرکز روی جعبه ورودی", + "Focus on the Input Box and Enter Web Browsing Mode": "تمرکز روی جعبه ورودی و ورود به حالت مرور وب", + "Follow System": "مطابق سیستم", + "Font Size": "اندازه قلم", + "For general conversations, please click": "برای گفتگوهای عمومی، لطفاً کلیک کنید", + "Format": "فرمت", + "Free trial available": "نسخه آزمایشی رایگان موجود است", + "Function": "تابع", + "General Settings": "تنظیمات عمومی", + "Generate More Images Below": "تولید تصاویر بیشتر در پایین", + "Generating...": "در حال تولید...", + "Generation Failed": "تولید ناموفق بود", + "Get API Key": "دریافت کلید API", + "Get API Token": "دریافت توکن API", + "Get Files Meta": "دریافت فراداده فایل‌ها", + "Get License": "دریافت مجوز", + "get more": "بیشتر بگیرید", + "Getting Started": "شروع کار", + "Github": "Github", + "Go to Image Creator": "رفتن به سازنده تصویر", + "Google Gemini API Compatible": "سازگار با Google Gemini API", + "Great! Chatbox AI is our all-in-one service designed for new users - it works out of the box with no complex setup required.\n\nClick the login button below, then enter your email and verification code in the popup to sign in.": "عالی! Chatbox AI سرویس همه‌کاره ماست که برای کاربران تازه‌کار طراحی شده — بدون تنظیمات پیچیده آماده استفاده است.\n\nدکمه ورود پایین را بزنید، سپس ایمیل و کد تأیید را در پنجره بازشده وارد کنید.", + "Harmful or offensive content": "محتوای مضر یا توهین‌آمیز", + "Hassle-free setup": "راه‌اندازی بدون دردسر", + "Hate speech or harassment": "سخن نفرت‌پراکنی یا آزار", + "Help": "راهنما", + "High": "زیاد", + "History": "تاریخچه", + "Home Page": "صفحه اصلی", + "Hotkeys": "کلیدهای میانبر", + "How do I switch to different models, like DeepSeek?": "چطور به مدل‌های دیگر مثل DeepSeek بروم؟", + "How to install WSL2": "نحوه نصب WSL2", + "How to use?": "چطور استفاده کنم؟", + "HTTP error: Bad Gateway (502). The server received an invalid response from the upstream service. This is usually a temporary issue, please try again later.": "خطای HTTP: Bad Gateway (502). سرور پاسخ نامعتبری از سرویس بالادستی دریافت کرد. معمولاً موقت است؛ لطفاً بعداً دوباره تلاش کنید.", + "HTTP error: Forbidden (403). You do not have permission to access this resource. Please check your API key permissions or account status.": "خطای HTTP: Forbidden (403). اجازه دسترسی به این منبع را ندارید. مجوزهای کلید API یا وضعیت حساب را بررسی کنید.", + "HTTP error: Gateway Timeout (504). The server did not receive a timely response from the upstream service. This is usually a temporary issue, please try again later.": "خطای HTTP: Gateway Timeout (504). سرور به‌موقع پاسخی از سرویس بالادستی دریافت نکرد. معمولاً موقت است؛ لطفاً بعداً دوباره تلاش کنید.", + "HTTP error: Internal Server Error (500). The server encountered an unexpected error. Please try again later.": "خطای HTTP: Internal Server Error (500). سرور با خطای غیرمنتظره‌ای مواجه شد. لطفاً بعداً دوباره تلاش کنید.", + "HTTP error: Request Timeout (408). The server took too long to respond. Please try again later.": "خطای HTTP: Request Timeout (408). پاسخ سرور خیلی طول کشید. لطفاً بعداً دوباره تلاش کنید.", + "HTTP error: Service Unavailable (503). The server is temporarily unavailable, possibly due to maintenance or overload. Please try again later.": "خطای HTTP: Service Unavailable (503). سرور موقتاً در دسترس نیست؛ شاید به‌خاطر نگهداری یا بار زیاد. لطفاً بعداً دوباره تلاش کنید.", + "HTTP error: Too Many Requests (429). The service is currently experiencing high demand or resource limitations. Please wait a moment and try again.": "خطای HTTP: Too Many Requests (429). سرویس الان تقاضای زیادی دارد یا منابع محدود است. کمی صبر کنید و دوباره تلاش کنید.", + "HTTP error: Unauthorized (401). Your authentication credentials are invalid or have expired. Please check your API key or login status.": "خطای HTTP: Unauthorized (401). اطلاعات احراز هویت نامعتبر یا منقضی شده است. کلید API یا وضعیت ورود را بررسی کنید.", + "I know how to configure API keys": "می‌دانم چطور کلیدهای API را تنظیم کنم", + "I want to try Chatbox for free!": "می‌خواهم Chatbox را رایگان امتحان کنم!", + "I'm a bit tired now. Please click the **New Chat** button in the sidebar or below to start a new conversation.": "الان کمی خسته‌ام. لطفاً دکمه **گفتگوی جدید** را در نوار کناری یا پایین بزنید تا گفتگوی تازه‌ای شروع کنید.", + "I'm new to this": "تازه‌کارم", + "Icon": "آیکون", + "Ideal for both work and educational scenarios": "مناسب هم برای کار و هم آموزش", + "Ideal for work and study": "مناسب کار و مطالعه", + "If conversations are missing from the list, use this feature to scan and recover them from storage": "اگر گفتگوها در فهرست نیستند، با این قابلیت از حافظه اسکن و بازیابی‌شان کنید", + "If no account exists, it will automatically create one.": "اگر حسابی نباشد، به‌صورت خودکار ساخته می‌شود.", + "If you have never had a license before, you can claim it after logging in on the official website.": "اگر قبلاً مجوزی نداشته‌اید، بعد از ورود در سایت رسمی می‌توانید آن را دریافت کنید.", + "Image": "تصویر", + "Image Creator": "سازنده تصویر", + "Image Creator Intro": "معرفی سازنده تصویر", + "Image generation failed. Please try again.": "تولید تصویر ناموفق بود. لطفاً دوباره تلاش کنید.", + "Image Quota (Remaining/Total)": "سهمیه تصویر (باقی‌مانده/کل)", + "Image Style": "سبک تصویر", + "Import and Restore": "وارد کردن و بازیابی", + "Import Error": "خطای وارد کردن", + "Import failed, unsupported data format": "وارد کردن ناموفق بود؛ فرمت داده پشتیبانی نمی‌شود", + "Import from clipboard": "وارد کردن از کلیپ‌بورد", + "Import from JSON in clipboard": "وارد کردن JSON از کلیپ‌بورد", + "Import MCP servers from JSON in your clipboard": "وارد کردن سرورهای MCP از JSON در کلیپ‌بورد", + "Import provider config from clipboard": "وارد کردن تنظیمات ارائه‌دهنده از کلیپ‌بورد", + "Import Provider Configuration": "وارد کردن تنظیمات ارائه‌دهنده", + "Importing...": "در حال وارد کردن...", + "Improve Network Compatibility": "بهبود سازگاری شبکه", + "Indexed": "نمایه‌سازی شد", + "Indexed · {{count}} chunks": "نمایه‌سازی شد · {{count}} بخش", + "Indexing": "در حال نمایه‌سازی", + "Indexing failed": "نمایه‌سازی ناموفق بود", + "Inject default metadata": "تزریق فراداده پیش‌فرض", + "Insert a New Line into the Input Box": "درج خط جدید در جعبه ورودی", + "Install failed": "نصب ناموفق بود", + "Install from GitHub": "نصب از GitHub", + "Install from GitHub Repository": "نصب از مخزن GitHub", + "Install Selected": "نصب موارد انتخاب‌شده", + "Install Skills from {{owner}}/{{repo}}": "نصب مهارت‌ها از {{owner}}/{{repo}}", + "Installation failed": "نصب ناموفق بود", + "Installed": "نصب شد", + "Installed \"{{name}}\"": "\"{{name}}\" نصب شد", + "Installing": "در حال نصب", + "Instruction (System Prompt)": "دستور (System Prompt)", + "Invalid deep link config format": "فرمت تنظیمات Deep Link نامعتبر است", + "Invalid provider configuration format": "فرمت تنظیمات ارائه‌دهنده نامعتبر است", + "Invalid request parameters detected. Please try again later. Persistent failures may indicate an outdated software version. Consider upgrading to access the latest performance improvements and features.": "پارامترهای درخواست نامعتبر شناسایی شد. لطفاً بعداً دوباره تلاش کنید. اگر ادامه داشت، شاید نسخه برنامه قدیمی باشد؛ برای بهبودها و قابلیت‌های جدید به‌روزرسانی کنید.", + "It only takes a few seconds and helps a lot.": "فقط چند ثانیه طول می‌کشد و خیلی کمک می‌کند.", + "iWork files (Pages, Keynote) are not supported. Please export to PDF or Office format.": "فایل‌های iWork (Pages، Keynote) پشتیبانی نمی‌شوند. لطفاً به PDF یا فرمت Office خروجی بگیرید.", + "Keep only the Top Conversations in List and Permanently Delete the Rest": "فقط گفتگوی بالای فهرست بماند و بقیه برای همیشه حذف شوند", + "Keyboard Shortcuts": "میانبرهای صفحه‌کلید", + "Knowledge Base": "پایگاه دانش", + "Knowledge Base documents must be {{limit}} or smaller.": "اسناد پایگاه دانش باید {{limit}} یا کوچک‌تر باشند.", + "Knowledge Base functionality is not available on Windows ARM64 due to library compatibility issues. This feature is supported on Windows x64, macOS, and Linux.": "قابلیت پایگاه دانش روی Windows ARM64 به‌خاطر ناسازگاری کتابخانه‌ها در دسترس نیست. این قابلیت روی Windows x64، macOS و Linux پشتیبانی می‌شود.", + "Language": "زبان", + "Large file indexing failed. Remove this file and try uploading it again. If the problem continues, use a smaller file or Knowledge Base.": "نمایه‌سازی فایل بزرگ ناموفق بود. فایل را حذف و دوباره آپلود کنید. اگر ادامه داشت، فایل کوچک‌تر یا پایگاه دانش استفاده کنید.", + "Large file indexing failed. The file was parsed, but Chatbox could not save the local search index. Remove this file and try uploading it again. If the problem continues, use a smaller file or Knowledge Base.": "نمایه‌سازی فایل بزرگ ناموفق بود. فایل تجزیه شد اما Chatbox نتوانست نمایه جستجوی محلی را ذخیره کند. فایل را حذف و دوباره آپلود کنید. اگر ادامه داشت، فایل کوچک‌تر یا پایگاه دانش استفاده کنید.", + "Large file Q&A requires a model with tool use support. Switch to a compatible model or remove this file.": "پرسش‌وپاسخ فایل بزرگ به مدلی با پشتیبانی ابزار نیاز دارد. به مدل سازگار بروید یا این فایل را حذف کنید.", + "Last Session": "آخرین نشست", + "LaTeX Rendering (Requires Markdown)": "رندر LaTeX (نیاز به Markdown)", + "Launch at system startup": "اجرای خودکار هنگام راه‌اندازی سیستم", + "Learn more about WSL2": "بیشتر درباره WSL2 بدانید", + "Leave": "خروج", + "Leave Guide?": "از راهنما خارج شوید؟", + "License Activated": "مجوز فعال شد", + "License expired, please check your license key": "مجوز منقضی شده؛ کلید مجوز را بررسی کنید", + "License Expiry": "انقضای مجوز", + "license key": "کلید مجوز", + "License not found, please check your license key": "مجوز پیدا نشد؛ کلید مجوز را بررسی کنید", + "License Plan Overview": "نمای کلی طرح مجوز", + "Light Mode": "حالت روشن", + "Link Content": "محتوای لینک", + "List Files": "فهرست فایل‌ها", + "Load More": "بارگذاری بیشتر", + "Load more skills": "بارگذاری مهارت‌های بیشتر", + "Loaded {{count}} skills · Loading next batch...": "{{count}} مهارت بارگذاری شد · در حال بارگذاری دسته بعدی...", + "Loaded {{count}} skills · Reached end": "{{count}} مهارت بارگذاری شد · به انتها رسید", + "Loaded {{count}} skills · Scroll to load more": "{{count}} مهارت بارگذاری شد · برای بیشتر اسکرول کنید", + "Loading chunks...": "در حال بارگذاری بخش‌ها...", + "Loading license details...": "در حال بارگذاری جزئیات مجوز...", + "Loading more skills...": "در حال بارگذاری مهارت‌های بیشتر...", + "Loading webpage...": "در حال بارگذاری صفحه وب...", + "Loading...": "در حال بارگذاری...", + "Local": "محلی", + "Local (stdio)": "محلی (stdio)", + "Local document parsing failed. You can go to Settings and switch to Chatbox AI for cloud-based document parsing.": "تجزیه محلی سند ناموفق بود. می‌توانید به تنظیمات بروید و برای تجزیه ابری به Chatbox AI بروید.", + "Local Mode": "حالت محلی", + "Local parse failed": "تجزیه محلی ناموفق بود", + "Log in to Chatbox AI": "ورود به Chatbox AI", + "Log in to your Chatbox account": "ورود به حساب Chatbox", + "Log out": "خروج", + "Logged in": "وارد شدید", + "Login": "ورود", + "Login Chatbox AI": "ورود به Chatbox AI", + "Login failed": "ورود ناموفق بود", + "Login Successful": "ورود موفق بود", + "Login to Chatbox AI": "ورود به Chatbox AI", + "Login to start chatting with AI": "برای گفتگو با AI وارد شوید", + "Login with OAuth": "ورود با OAuth", + "Logout": "خروج", + "Looks like it's taking a while. You can open Settings to log in again, or close and reopen the app.": "به نظر می‌رسد زمان می‌برد. می‌توانید تنظیمات را باز کنید و دوباره وارد شوید، یا برنامه را ببندید و دوباره باز کنید.", + "Low": "کم", + "Make sure you have the following command installed:": "مطمئن شوید این دستور نصب شده است:", + "Manage License": "مدیریت مجوز", + "Markdown Rendering": "رندر Markdown", + "Max Message Count in Context": "حداکثر تعداد پیام در زمینه", + "Max Output": "حداکثر خروجی", + "Max Output Tokens": "حداکثر توکن خروجی", + "Max Results": "حداکثر نتایج", + "Maximize": "بزرگ‌نمایی", + "Maximum file size": "حداکثر اندازه فایل", + "Maximum number of results to return.": "حداکثر تعداد نتایج برگشتی.", + "Maybe Later": "شاید بعداً", + "MCP": "MCP", + "MCP and Knowledge Base are currently supported on the desktop app only. Download Chatbox Desktop to use these features.": "MCP و پایگاه دانش فعلاً فقط در برنامه دسکتاپ پشتیبانی می‌شوند. Chatbox Desktop را دانلود کنید تا از این قابلیت‌ها استفاده کنید.", + "MCP server added": "سرور MCP اضافه شد", + "MCP server for accessing arXiv papers": "سرور MCP برای دسترسی به مقالات arXiv", + "MCP Settings": "تنظیمات MCP", + "Medium": "متوسط", + "Mermaid Diagrams & Charts Rendering": "رندر نمودارها و چارت‌های Mermaid", + "Message Layout": "چیدمان پیام", + "Message Raw JSON": "JSON خام پیام", + "MinerU": "MinerU", + "MinerU API Token": "توکن API MinerU", + "MinerU API token is required. Please go to Settings and configure your MinerU API token.": "توکن API MinerU لازم است. به تنظیمات بروید و توکن MinerU را تنظیم کنید.", + "MinerU parse failed": "تجزیه MinerU ناموفق بود", + "Minimal": "مینیمال", + "Minimize": "کوچک‌نمایی", + "Misleading information": "اطلاعات گمراه‌کننده", + "Mobile devices temporarily do not support local parsing of this file type. Please use text files (txt, markdown, etc.) or use Chatbox AI Service for cloud-based document analysis.": "دستگاه‌های موبایل فعلاً تجزیه محلی این نوع فایل را پشتیبانی نمی‌کنند. از فایل‌های متنی (txt، markdown و غیره) استفاده کنید یا برای تحلیل ابری سرویس Chatbox AI را به کار ببرید.", + "Model": "مدل", + "Model ID": "شناسه مدل", + "Model limit": "محدودیت مدل", + "Model Provider": "ارائه‌دهنده مدل", + "Model Test Results": "نتایج آزمون مدل", + "Model Type": "نوع مدل", + "Models": "مدل‌ها", + "Modify the creativity of AI responses; the higher the value, the more random and intriguing the answers become, while a lower value ensures greater stability and reliability.": "خلاقیت پاسخ‌های AI را تنظیم کنید؛ مقدار بالاتر پاسخ‌های تصادفی‌تر و جالب‌تر می‌دهد و مقدار پایین‌تر پایداری و اطمینان بیشتری دارد.", + "More": "بیشتر", + "More advanced features are available in Chatbox Desktop.": "قابلیت‌های پیشرفته‌تر در Chatbox Desktop موجود است.", + "More Providers": "ارائه‌دهندگان بیشتر", + "More results will load automatically when you reach the bottom": "وقتی به پایین برسید، نتایج بیشتر خودکار بارگذاری می‌شوند", + "Move to Conversations": "انتقال به گفتگوها", + "My Copilots": "دستیارهای من", + "My Created & Added Copilots": "دستیارهای ساخته‌شده و افزوده‌شده من", + "Name": "نام", + "Name is required": "نام الزامی است", + "Natural": "طبیعی", + "Navigate to the Next Conversation": "رفتن به گفتگوی بعدی", + "Navigate to the Next Option (in search dialog)": "رفتن به گزینه بعدی (در پنجره جستجو)", + "Navigate to the Previous Conversation": "رفتن به گفتگوی قبلی", + "Navigate to the Previous Option (in search dialog)": "رفتن به گزینه قبلی (در پنجره جستجو)", + "Navigate to the Specific Conversation": "رفتن به گفتگوی مشخص", + "network error tips": "خطای شبکه رخ داد. وضعیت شبکه و اتصال به {{host}} را بررسی کنید.", + "Network Proxy": "پروکسی شبکه", + "network proxy error tips": "به‌خاطر آدرس پروکسی {{proxy}} که تنظیم کرده‌اید، مطمئن شوید سرور پروکسی درست کار می‌کند یا پروکسی را از تنظیمات حذف کنید.", + "New": "جدید", + "New Chat": "گفتگوی جدید", + "New Creation": "اثر جدید", + "New knowledge base name": "نام پایگاه دانش جدید", + "New Task": "وظیفه جدید", + "New Thread": "موضوع جدید", + "New version available": "نسخه جدید موجود است", + "Nickname": "نام مستعار", + "No chunks available. Try converting the file to a text format before adding it to the knowledge base.": "بخشی در دسترس نیست. قبل از افزودن به پایگاه دانش، فایل را به فرمت متنی تبدیل کنید.", + "No content available": "محتوایی موجود نیست", + "No copilots matched your search.": "دستیاری با جستجوی شما مطابقت نداشت.", + "No copilots yet. Create your first one!": "هنوز دستیاری ندارید. اولین را بسازید!", + "No custom skills yet": "هنوز مهارت سفارشی ندارید", + "No documents yet": "هنوز سندی نیست", + "No eligible models available": "مدل واجد شرایطی موجود نیست", + "No Expansion Pack": "بسته توسعه‌ای نیست", + "No expiration": "بدون انقضا", + "No favorite models": "مدل علاقه‌مندی نیست", + "No featured copilots available.": "دستیار ویژه‌ای موجود نیست.", + "No files were dropped": "فایلی رها نشد", + "No history yet": "هنوز تاریخچه‌ای نیست", + "No Knowledge Base Yet": "هنوز پایگاه دانشی نیست", + "No licenses found": "مجوزی پیدا نشد", + "No licenses found. Please purchase a license to continue.": "مجوزی پیدا نشد. برای ادامه مجوز بخرید.", + "No Limit": "بدون محدودیت", + "No MCP servers parsed from clipboard": "سرور MCP از کلیپ‌بورد تجزیه نشد", + "No models available": "مدلی موجود نیست", + "No models found matching your search": "مدلی مطابق جستجوی شما پیدا نشد", + "No more marketplace results for current query": "نتیجه بیشتری در بازار برای این جستجو نیست", + "No permission to write file": "اجازه نوشتن فایل نیست", + "No results found": "نتیجه‌ای پیدا نشد", + "No retry available": "تلاش مجدد در دسترس نیست", + "No rewards yet": "هنوز پاداشی نیست", + "No search results found. Please use another search provider or try again later.": "نتیجه جستجو پیدا نشد. ارائه‌دهنده جستجوی دیگری استفاده کنید یا بعداً دوباره تلاش کنید.", + "No skills found in this repository": "مهارتی در این مخزن پیدا نشد", + "No updates for {{name}}": "به‌روزرسانی برای {{name}} نیست", + "None": "هیچ‌کدام", + "not available in browser": "در مرورگر در دسترس نیست", + "Not set": "تنظیم نشده", + "Note: If you have never had a license before, you can claim it after logging in on the official website. Quota refreshed daily.": "توجه: اگر قبلاً مجوزی نداشته‌اید، بعد از ورود در سایت رسمی می‌توانید آن را دریافت کنید. سهمیه روزانه تازه می‌شود.", + "Nothing found...": "چیزی پیدا نشد...", + "Number of Images per Reply": "تعداد تصاویر در هر پاسخ", + "OAuth Login": "ورود OAuth", + "OCR Model": "مدل OCR", + "OCR processing failed (provider: {{aiProvider}}). Please check your OCR model settings and ensure the configured model is available.": "پردازش OCR ناموفق بود (ارائه‌دهنده: {{aiProvider}}). تنظیمات مدل OCR را بررسی کنید و مطمئن شوید مدل تنظیم‌شده در دسترس است.", + "OCR Text": "متن OCR", + "OCR Text Content": "محتوای متن OCR", + "Official Site": "سایت رسمی", + "on the side bar to start a new conversation.": "در نوار کناری بزنید تا گفتگوی جدیدی شروع کنید.", + "One-click MCP servers for Chatbox AI subscribers": "سرورهای MCP یک‌کلیکی برای مشترکان Chatbox AI", + "Only supports basic text files (.txt, .md, .json, code files, etc.). For PDF and Office files, please switch to Chatbox AI.": "فقط فایل‌های متنی ساده (.txt، .md، .json، فایل‌های کد و غیره) را پشتیبانی می‌کند. برای PDF و Office به Chatbox AI بروید.", + "Only the first {{limit}} links can be attached. The extra links were skipped.": "فقط {{limit}} لینک اول قابل پیوست است. لینک‌های اضافی نادیده گرفته شدند.", + "Open": "باز کردن", + "Open Authorization Page": "باز کردن صفحه مجوز", + "Open page again": "باز کردن دوباره صفحه", + "Open Provider Settings": "باز کردن تنظیمات ارائه‌دهنده", + "Open Skills Folder": "باز کردن پوشه مهارت‌ها", + "OpenAI API Compatible": "سازگار با OpenAI API", + "OpenAI Responses API Compatible": "سازگار با OpenAI Responses API", + "optional": "اختیاری", + "or choose a directory": "یا یک پوشه انتخاب کنید", + "Other concerns": "نگرانی‌های دیگر", + "Other options": "گزینه‌های دیگر", + "Parse Link": "تجزیه لینک", + "Parsed document content must be {{limit}} or smaller.": "محتوای تجزیه‌شده سند باید {{limit}} یا کوچک‌تر باشد.", + "Parser": "تجزیه‌گر", + "Parser Type": "نوع تجزیه‌گر", + "Parser used to process uploaded documents": "تجزیه‌گری که اسناد آپلودشده را پردازش می‌کند", + "Paste code here": "کد را اینجا بچسبانید", + "Paste long text as a file": "چسباندن متن بلند به‌صورت فایل", + "Pasting long text will automatically insert it as a file, keeping chats clean and reducing token usage with prompt caching.": "چسباندن متن بلند خودکار آن را به‌صورت فایل درج می‌کند؛ گفتگوها تمیز می‌مانند و با کش prompt مصرف توکن کم می‌شود.", + "Pause": "توقف", + "Platform Not Supported": "پلتفرم پشتیبانی نمی‌شود", + "Please complete setup to continue chatting": "برای ادامه گفتگو راه‌اندازی را کامل کنید", + "Please enter a valid email address": "یک آدرس ایمیل معتبر وارد کنید", + "Please enter a valid GitHub repository URL": "یک URL معتبر مخزن GitHub وارد کنید", + "Please enter an API token": "یک توکن API وارد کنید", + "Please enter the 6-digit verification code": "کد تأیید ۶ رقمی را وارد کنید", + "Please enter your email address": "آدرس ایمیل خود را وارد کنید", + "Please log in to Chatbox AI first": "ابتدا به Chatbox AI وارد شوید", + "Please select a model": "یک مدل انتخاب کنید", + "Please test before saving": "قبل از ذخیره آزمایش کنید", + "Popular": "محبوب", + "Popular Skills": "مهارت‌های محبوب", + "Preparing": "در حال آماده‌سازی", + "Preview": "پیش‌نمایش", + "Privacy Policy": "سیاست حریم خصوصی", + "Processing failed": "پردازش ناموفق بود", + "Prompt": "دستور", + "Prompt Content": "محتوای دستور", + "Provided tools": "ابزارهای ارائه‌شده", + "Provider already exists": "ارائه‌دهنده از قبل وجود دارد", + "Provider not found": "ارائه‌دهنده پیدا نشد", + "Provider unavailable": "ارائه‌دهنده در دسترس نیست", + "Proxy Address": "آدرس پروکسی", + "Publish failed": "انتشار ناموفق بود؛ لطفاً بعداً دوباره تلاش کنید.", + "Publish Webpage": "انتشار صفحه وب", + "Published on {{date}}": "منتشرشده در {{date}}", + "Purchase Plan": "خرید طرح", + "QR Code": "کد QR", + "Querit API Key": "کلید API Querit", + "Querit Search Options": "گزینه‌های جستجوی Querit", + "Query Knowledge Base": "پرس‌وجو از پایگاه دانش", + "Queued": "در صف", + "Quick Actions": "اقدامات سریع", + "Quick Start": "شروع سریع", + "Quota": "سهمیه", + "Quota Details": "جزئیات سهمیه", + "Quota Reset Time": "زمان بازنشانی سهمیه", + "Quote": "نقل‌قول", + "Rate Now": "همین حالا امتیاز دهید", + "Read File": "خواندن فایل", + "Read File Chunks": "خواندن بخش‌های فایل", + "Read our": "مطالعه", + "Read Webpage": "خواندن صفحه وب", + "Reading file...": "در حال خواندن فایل...", + "Reasoning": "استدلال", + "Recent": "اخیر", + "Recommended": "پیشنهادی", + "Recover Conversation List": "بازیابی فهرست گفتگوها", + "Recovered {{count}} conversations": "{{count}} گفتگو بازیابی شد", + "Recovering...": "در حال بازیابی...", + "Recovery failed": "بازیابی ناموفق بود", + "RedNote": "RedNote", + "Refresh": "تازه‌سازی", + "Regulate the volume of historical messages sent to the AI, striking a harmonious balance between depth of comprehension and the efficiency of responses.": "حجم پیام‌های تاریخی ارسالی به AI را تنظیم کنید تا بین عمق درک و سرعت پاسخ تعادل برقرار شود.", + "Remaining/Total Quota": "سهمیه باقی‌مانده/کل", + "Remote (http/sse)": "دور (http/sse)", + "Remove": "حذف", + "Renew License": "تمدید مجوز", + "Reply Again": "پاسخ دوباره", + "Reply Again Below": "پاسخ دوباره در پایین", + "report": "گزارش", + "Report Content": "گزارش محتوا", + "Report Content ID": "شناسه محتوای گزارش", + "Report Type": "نوع گزارش", + "Request ID: {{requestId}}": "شناسه درخواست: {{requestId}}", + "Rerank": "رتبه‌بندی مجدد", + "Rerank Model (optional)": "مدل رتبه‌بندی مجدد (اختیاری)", + "Resend in {{count}}s": "ارسال مجدد در {{count}} ثانیه", + "Reset": "بازنشانی", + "Reset to Default": "بازگشت به پیش‌فرض", + "Restart & Update": "راه‌اندازی مجدد و به‌روزرسانی", + "Restore": "بازیابی", + "Result": "نتیجه", + "Resume": "ادامه", + "Resume Generation": "ادامه تولید", + "Retrieve License": "بازیابی مجوز", + "Retrieves up-to-date documentation and code examples for any library.": "مستندات و نمونه کدهای به‌روز هر کتابخانه را بازیابی می‌کند.", + "Retry": "تلاش مجدد", + "Retry All": "تلاش مجدد همه", + "Retry failed: {{error}}": "تلاش مجدد ناموفق بود: {{error}}", + "Retry locally": "تلاش مجدد محلی", + "Retry queued": "تلاش مجدد در صف قرار گرفت", + "Retry with Server Parsing": "تلاش مجدد با تجزیه سرور", + "Retrying {{attempt}}/{{maxAttempts}}": "تلاش مجدد {{attempt}}/{{maxAttempts}}", + "Return to the top": "بازگشت به بالا", + "Reward Quota": "سهمیه پاداش", + "Rollback Thread": "بازگردانی موضوع", + "Sandbox Not Available": "Sandbox در دسترس نیست", + "save": "ذخیره", + "Save": "ذخیره", + "Save & Resend": "ذخیره و ارسال مجدد", + "Scan": "اسکن", + "Scope": "محدوده", + "Screenshots": "نماگرفت‌ها", + "Search": "جستجو", + "Search All Conversations": "جستجو در همه گفتگوها", + "Search conversations": "جستجوی گفتگوها", + "Search copilots...": "جستجوی دستیارها...", + "Search in Current Conversation": "جستجو در گفتگوی فعلی", + "Search models": "جستجوی مدل‌ها", + "Search models...": "جستجوی مدل‌ها...", + "Search Provider": "ارائه‌دهنده جستجو", + "Search providers...": "جستجوی ارائه‌دهندگان...", + "Search Results": "نتایج جستجو", + "Search skills...": "جستجوی مهارت‌ها...", + "Search starts after a short pause to reduce requests": "جستجو بعد از مکث کوتاه شروع می‌شود تا درخواست‌ها کم شود", + "Search Term Construction Model": "مدل ساخت عبارت جستجو", + "Search unsuccessful": "جستجو ناموفق بود", + "Search...": "جستجو...", + "Searching skills...": "در حال جستجوی مهارت‌ها...", + "See All": "دیدن همه", + "Select a license": "یک مجوز انتخاب کنید", + "Select and configure an AI model provider": "ارائه‌دهنده مدل AI را انتخاب و تنظیم کنید", + "Select File": "انتخاب فایل", + "Select Language": "انتخاب زبان", + "Select License": "انتخاب مجوز", + "Select Model": "انتخاب مدل", + "Select Test Model": "انتخاب مدل آزمون", + "Select the Current Option (in search dialog)": "انتخاب گزینه فعلی (در پنجره جستجو)", + "Select Working Directory": "انتخاب پوشه کاری", + "Selected document parser is currently only supported in Knowledge Base. For chat file attachments, please go to Settings and switch to Local or Chatbox AI.": "تجزیه‌گر سند انتخاب‌شده فعلاً فقط در پایگاه دانش پشتیبانی می‌شود. برای پیوست فایل در گفتگو به تنظیمات بروید و به محلی یا Chatbox AI بروید.", + "Selected Key": "کلید انتخاب‌شده", + "Send": "ارسال", + "Send a message to start working in this directory.": "برای شروع کار در این پوشه یک پیام بفرستید.", + "Send a message to start. Choose a working directory for file access.": "برای شروع پیام بفرستید. پوشه کاری را برای دسترسی به فایل انتخاب کنید.", + "Send anyway": "با این حال ارسال شود", + "Send Code": "ارسال کد", + "Send message": "ارسال پیام", + "Send Without Generating Response": "ارسال بدون تولید پاسخ", + "Server parsing will consume compute credits. Please be cautious with large files.": "تجزیه سرور امتیاز محاسباتی مصرف می‌کند. با فایل‌های بزرگ احتیاط کنید.", + "Session Raw JSON": "JSON خام نشست", + "Set Background Image": "تنظیم تصویر پس‌زمینه", + "Set the maximum number of tokens for model output. Please set it within the acceptable range of the model, otherwise errors may occur.": "حداکثر تعداد توکن خروجی مدل را تنظیم کنید. در محدوده قابل قبول مدل بگذارید، وگرنه ممکن است خطا رخ دهد.", + "Settings": "تنظیمات", + "Setup guide": "راهنمای راه‌اندازی", + "Setup later": "بعداً راه‌اندازی کنم", + "Setup Provider": "راه‌اندازی ارائه‌دهنده", + "Sexual content": "محتوای جنسی", + "Share File": "اشتراک‌گذاری فایل", + "Show all attachments": "نمایش همه پیوست‌ها", + "Show Avatar": "نمایش آواتار", + "show first token latency": "نمایش تأخیر اولین توکن", + "Show in Thread List": "نمایش در فهرست موضوعات", + "show message timestamp": "نمایش زمان پیام", + "show message token usage": "نمایش مصرف توکن پیام", + "show message word count": "نمایش تعداد کلمات پیام", + "show model name": "نمایش نام مدل", + "Show My Copilots in New Conversations": "نمایش دستیارهای من در گفتگوهای جدید", + "Show original": "نمایش اصل", + "Show/Hide the Application Window": "نمایش/مخفی کردن پنجره برنامه", + "Show/Hide the Search Dialog": "نمایش/مخفی کردن پنجره جستجو", + "Showing first {{count}} chunks": "نمایش {{count}} بخش اول", + "Sign in needed": "ورود لازم است", + "Sign in to Chatbox AI": "ورود به Chatbox AI", + "Sign in to Chatbox AI to use this knowledge base": "برای استفاده از این پایگاه دانش به Chatbox AI وارد شوید", + "Skill deleted": "مهارت حذف شد", + "Skills": "مهارت‌ها", + "Skip for now": "فعلاً رد شود", + "Skip guide": "رد کردن راهنما", + "Smartest AI-Powered Services for Rapid Access": "هوشمندترین سرویس‌های AI برای دسترسی سریع", + "Some files were not uploaded": "برخی فایل‌ها آپلود نشدند", + "Sorry, the current model {{model}} API itself does not support image understanding. If you need to send images, please switch to another model or use the recommended Chatbox AI Models.": "متأسفانه API مدل فعلی {{model}} خودش درک تصویر را پشتیبانی نمی‌کند. برای ارسال تصویر به مدل دیگری بروید یا از مدل‌های Chatbox AI پیشنهادی استفاده کنید.", + "Spam or advertising": "هرزنامه یا تبلیغات", + "Specific model settings": "تنظیمات مدل مشخص", + "Spell Check": "بررسی املا", + "Star": "ستاره", + "Start a New Thread": "شروع موضوع جدید", + "Startup Page": "صفحه شروع", + "Status": "وضعیت", + "Stay": "بمان", + "Still indexing": "هنوز در حال نمایه‌سازی", + "Stop generating": "توقف تولید", + "Stream output": "خروجی جریانی", + "Submit": "ارسال", + "Successfully uploaded {{count}} file(s)": "{{count}} فایل با موفقیت آپلود شد", + "Successfully uploaded {{success}} of {{total}} file(s). {{failed}} file(s) failed.": "{{success}} از {{total}} فایل با موفقیت آپلود شد. {{failed}} فایل ناموفق بود.", + "Support jpg or png file smaller than 5MB": "فایل jpg یا png کوچک‌تر از ۵ مگابایت پشتیبانی می‌شود", + "Support jpg or png file smaller than 5MB. Overrides global background when set.": "فایل jpg یا png کوچک‌تر از ۵ مگابایت پشتیبانی می‌شود. وقتی تنظیم شود، پس‌زمینه سراسری را بازنویسی می‌کند.", + "Supported formats": "فرمت‌های پشتیبانی‌شده", + "Supports a variety of advanced AI models": "چندین مدل AI پیشرفته را پشتیبانی می‌کند", + "Survey": "نظرسنجی", + "Switch": "تغییر", + "Switch language": "تغییر زبان", + "Switch model": "تغییر مدل", + "Switching license...": "در حال تغییر مجوز...", + "Task": "وظیفه", + "Task not found": "وظیفه پیدا نشد", + "Tavily API Key": "کلید API Tavily", + "temperature": "دما", + "Temperature": "دما", + "Terminal": "ترمینال", + "Terms of Service": "شرایط استفاده", + "Test": "آزمون", + "Test Connection": "آزمون اتصال", + "Test failed": "آزمون ناموفق بود", + "Test Model": "آزمون مدل", + "Test successful": "آزمون موفق بود", + "Testing...": "در حال آزمون...", + "Text Only": "فقط متن", + "Text Request": "درخواست متنی", + "Thank you for your report": "از گزارش شما سپاسگزاریم", + "The {{model}} API doesn't support document understanding. You can download Chatbox Desktop App for local document analysis.": "API {{model}} درک سند را پشتیبانی نمی‌کند. برای تحلیل محلی سند برنامه دسکتاپ Chatbox را دانلود کنید.", + "The {{model}} API doesn't support document understanding. You can use Chatbox AI Service for cloud-based document analysis, or download Chatbox Desktop App for local document analysis.": "API {{model}} درک سند را پشتیبانی نمی‌کند. برای تحلیل ابری از سرویس Chatbox AI استفاده کنید، یا برنامه دسکتاپ Chatbox را برای تحلیل محلی دانلود کنید.", + "The {{model}} API itself does not support sending files. Due to the complexity of file parsing locally, Chatbox only processes text-based files (including code).": "API {{model}} خودش ارسال فایل را پشتیبانی نمی‌کند. به‌خاطر پیچیدگی تجزیه محلی، Chatbox فقط فایل‌های متنی (از جمله کد) را پردازش می‌کند.", + "The {{model}} API itself does not support sending files. Due to the complexity of file parsing locally, Chatbox only processes text-based files (including code). For additional file formats and enhanced document understanding capabilities, Chatbox AI Service is recommended.": "API {{model}} خودش ارسال فایل را پشتیبانی نمی‌کند. به‌خاطر پیچیدگی تجزیه محلی، Chatbox فقط فایل‌های متنی (از جمله کد) را پردازش می‌کند. برای فرمت‌های بیشتر و درک بهتر سند، سرویس Chatbox AI پیشنهاد می‌شود.", + "The {{model}} API itself does not support web browsing. Supported models: {{supported_web_browsing_models}}": "API {{model}} خودش مرور وب را پشتیبانی نمی‌کند. مدل‌های پشتیبانی‌شده: {{supported_web_browsing_models}}", + "The {{model}} API itself does not support web browsing. Supported models: Chatbox AI models, {{supported_web_browsing_models}}": "API {{model}} خودش مرور وب را پشتیبانی نمی‌کند. مدل‌های پشتیبانی‌شده: مدل‌های Chatbox AI، {{supported_web_browsing_models}}", + "The AI provider is temporarily unavailable. Please try again later.": "ارائه‌دهنده AI موقتاً در دسترس نیست. لطفاً بعداً دوباره تلاش کنید.", + "The cache data for the file was not found. Please create a new conversation or refresh the context, and then send the file again.": "داده کش فایل پیدا نشد. گفتگوی جدید بسازید یا زمینه را تازه کنید، سپس فایل را دوباره بفرستید.", + "The conversation list has been successfully recovered": "فهرست گفتگوها با موفقیت بازیابی شد", + "The current search provider does not support reading webpages. Please choose a different search provider that supports this capability.": "ارائه‌دهنده جستجوی فعلی خواندن صفحات وب را پشتیبانی نمی‌کند. ارائه‌دهنده جستجوی دیگری انتخاب کنید که این قابلیت را دارد.", + "The file size exceeds the limit of 50MB. Please reduce the file size and try again.": "اندازه فایل از حد ۵۰ مگابایت بیشتر است. اندازه را کم کنید و دوباره تلاش کنید.", + "The file you sent has expired. To protect your privacy, all file-related cache data has been cleared. You need to create a new conversation or refresh the context, and then send the file again.": "فایلی که فرستادید منقضی شده است. برای حفظ حریم خصوصی، همه داده‌های کش مربوط به فایل پاک شد. گفتگوی جدید بسازید یا زمینه را تازه کنید، سپس فایل را دوباره بفرستید.", + "The license key you entered is invalid. Please check your license key and try again.": "کلید مجوزی که وارد کردید نامعتبر است. آن را بررسی کنید و دوباره تلاش کنید.", + "The percentage of context window usage that triggers automatic compaction. Lower values save tokens but may lose context earlier.": "درصد استفاده از پنجره زمینه که فشرده‌سازی خودکار را فعال می‌کند. مقادیر پایین‌تر توکن کمتر مصرف می‌کنند اما ممکن است زودتر زمینه از دست برود.", + "The topP parameter controls the diversity of AI responses: lower values make the output more focused and predictable, while higher values allow for more varied and creative replies.": "پارامتر topP تنوع پاسخ‌های AI را کنترل می‌کند: مقادیر پایین‌تر خروجی متمرکزتر و قابل پیش‌بینی‌تر است و مقادیر بالاتر پاسخ‌های متنوع‌تر و خلاقانه‌تر می‌دهد.", + "The verification code you entered is incorrect or has expired. Please request a new code and try again.": "کد تأییدی که وارد کردید نادرست یا منقضی شده است. کد جدید بخواهید و دوباره تلاش کنید.", + "The web version temporarily does not support local parsing of this file type. Please use text files (txt, markdown, etc.) or use Chatbox AI Service for cloud-based document analysis.": "نسخه وب فعلاً تجزیه محلی این نوع فایل را پشتیبانی نمی‌کند. از فایل‌های متنی (txt، markdown و غیره) استفاده کنید یا برای تحلیل ابری سرویس Chatbox AI را به کار ببرید.", + "Theme": "پوسته", + "Thinking": "در حال فکر کردن", + "Thinking Budget": "بودجه تفکر", + "Thinking Budget only works for 3.7 or later models": "بودجه تفکر فقط برای مدل‌های ۳.۷ به بعد کار می‌کند", + "Thinking Budget only works for Gemini 2.5 models": "بودجه تفکر فقط برای مدل‌های Gemini 2.5 کار می‌کند", + "Thinking Effort": "تلاش تفکر", + "Thinking Effort only works for OpenAI o-series models": "تلاش تفکر فقط برای مدل‌های سری o از OpenAI کار می‌کند", + "Thinking Level": "سطح تفکر", + "Thinking Level only works for Gemini 3 models": "سطح تفکر فقط برای مدل‌های Gemini 3 کار می‌کند", + "Third-party cloud parsing service, supports PDF and most Office files. Requires API token.": "سرویس تجزیه ابری شخص ثالث؛ PDF و بیشتر فایل‌های Office را پشتیبانی می‌کند. به توکن API نیاز دارد.", + "This action cannot be undone. All documents and their embeddings will be permanently deleted.": "این کار قابل بازگشت نیست. همه اسناد و جاسازی‌هایشان برای همیشه حذف می‌شوند.", + "This attachment is too large for chat attachments. Please upload it through Knowledge Base instead.": "این پیوست برای پیوست گفتگو خیلی بزرگ است. از طریق پایگاه دانش آپلود کنید.", + "This attachment is very large and may consume more points. You can send it anyway, or remove it and use a smaller file.": "این پیوست خیلی بزرگ است و ممکن است امتیاز بیشتری مصرف کند. می‌توانید باز هم بفرستید، یا حذفش کنید و فایل کوچک‌تری استفاده کنید.", + "This document contains too much text for chat attachments. Please upload it through Knowledge Base instead.": "این سند برای پیوست گفتگو متن زیادی دارد. از طریق پایگاه دانش آپلود کنید.", + "This feature is not available on your system. Please check the system requirements.": "این قابلیت روی سیستم شما در دسترس نیست. الزامات سیستم را بررسی کنید.", + "This feature requires WSL2 on Windows. Please install WSL2 to use sandbox features.": "این قابلیت به WSL2 روی Windows نیاز دارد. WSL2 را نصب کنید تا از قابلیت‌های sandbox استفاده کنید.", + "This file type requires a document parser. Please go to Settings and enable Chatbox AI document parsing.": "این نوع فایل به تجزیه‌گر سند نیاز دارد. به تنظیمات بروید و تجزیه سند Chatbox AI را فعال کنید.", + "This image session is no longer active. Please use the new Image Creator for image generation.": "این نشست تصویر دیگر فعال نیست. برای تولید تصویر از سازنده تصویر جدید استفاده کنید.", + "This is the onboarding assistant": "این دستیار راه‌اندازی است", + "This large file needs Chatbox AI to finish indexing. Sign in to Chatbox AI, then retry this file.": "این فایل بزرگ برای تکمیل نمایه‌سازی به Chatbox AI نیاز دارد. وارد Chatbox AI شوید، سپس این فایل را دوباره امتحان کنید.", + "This large file needs Chatbox AI to finish indexing. Sign in to Chatbox AI, then retry this file. If you do not want to use Chatbox AI, remove the file and upload a smaller attachment instead.": "این فایل بزرگ برای تکمیل نمایه‌سازی به Chatbox AI نیاز دارد. وارد Chatbox AI شوید و دوباره امتحان کنید. اگر نمی‌خواهید از Chatbox AI استفاده کنید، فایل را حذف و پیوست کوچک‌تری آپلود کنید.", + "This license key has reached the activation limit.": "این کلید مجوز به حد فعال‌سازی رسیده است.", + "This model does not support tool use": "این مدل استفاده از ابزار را پشتیبانی نمی‌کند", + "This model does not support vision": "این مدل بینایی را پشتیبانی نمی‌کند", + "This model may not be able to read the uploaded document. Try another model if you want to ask about the file.": "شاید این مدل نتواند سند آپلودشده را بخواند. اگر می‌خواهید درباره فایل بپرسید، مدل دیگری امتحان کنید.", + "This server enables LLMs to retrieve and process content from web pages, converting HTML to markdown for easier consumption.": "این سرور به LLMها اجازه می‌دهد محتوای صفحات وب را بگیرند و پردازش کنند و HTML را به markdown تبدیل کنند.", + "This session": "این نشست", + "This will summarize the current conversation and start a new thread with the compressed context. Continue?": "گفتگوی فعلی خلاصه می‌شود و موضوع جدیدی با زمینه فشرده شروع می‌شود. ادامه می‌دهید؟", + "Thought for {{time}}": "{{time}} فکر کرد", + "Thread History": "تاریخچه موضوع", + "Time Range": "بازه زمانی", + "Time range of the search. For example, the last month.": "بازه زمانی جستجو؛ مثلاً ماه گذشته.", + "Title": "عنوان", + "tokens": "توکن", + "Too large": "خیلی بزرگ", + "Too much text": "متن زیاد", + "Tool call failed": "فراخوانی ابزار ناموفق بود", + "Tool use": "استفاده از ابزار", + "Tool Use": "استفاده از ابزار", + "Tool use is not enabled for Model {{model}}. Please enable it in provider settings or switch to a model that supports tool use.": "استفاده از ابزار برای مدل {{model}} فعال نیست. در تنظیمات ارائه‌دهنده فعالش کنید یا به مدلی که ابزار را پشتیبانی می‌کند بروید.", + "Tool Use Request": "درخواست استفاده از ابزار", + "Tools": "ابزارها", + "Top P": "Top P", + "Total": "کل", + "Total Quota": "کل سهمیه", + "Total tokens consumed": "کل توکن‌های مصرف‌شده", + "Translate": "ترجمه", + "try Chatbox AI": "Chatbox AI را امتحان کنید", + "Type": "نوع", + "Type a command or search": "دستور یا جستجو بنویسید", + "Type at least 2 characters": "حداقل ۲ کاراکتر بنویسید", + "Type your question here...": "سؤال خود را اینجا بنویسید...", + "Unable to verify the code right now. Please try again.": "الان تأیید کد ممکن نیست. لطفاً دوباره تلاش کنید.", + "Unavailable": "در دسترس نیست", + "Unknown": "ناشناخته", + "Unknown error": "خطای ناشناخته", + "unknown error tips": "خطای ناشناخته. تنظیمات AI و وضعیت حساب را بررسی کنید، یا <0>اینجا کلیک کنید تا سند سؤالات متداول را ببینید.", + "Unstar": "حذف ستاره", + "Unsupported file type: {{fileName}}": "نوع فایل پشتیبانی نمی‌شود: {{fileName}}", + "Update available for {{name}}": "به‌روزرسانی برای {{name}} موجود است", + "Update failed": "به‌روزرسانی ناموفق بود", + "Update ready to install": "به‌روزرسانی آماده نصب است", + "Upload": "آپلود", + "Upload failed: {{error}}": "آپلود ناموفق بود: {{error}}", + "Upload Image": "آپلود تصویر", + "Upload your first document to get started": "اولین سند را آپلود کنید تا شروع کنید", + "Upon import, changes will take effect immediately and existing data will be overwritten": "با وارد کردن، تغییرات فوراً اعمال می‌شوند و داده‌های موجود بازنویسی می‌شوند", + "Use as Reference": "استفاده به‌عنوان مرجع", + "Use Chatbox AI service": "استفاده از سرویس Chatbox AI", + "Use server parsing": "استفاده از تجزیه سرور", + "Use this Copilot": "استفاده از این Copilot", + "Used to extract text feature vectors, add in Settings - Provider - Model List": "برای استخراج بردار ویژگی متن؛ در تنظیمات - ارائه‌دهنده - فهرست مدل اضافه کنید", + "Used to get more accurate search results": "برای نتایج جستجوی دقیق‌تر", + "Used to preprocess image files, requires models with vision capabilities enabled": "برای پیش‌پردازش فایل‌های تصویری؛ به مدل‌هایی با قابلیت بینایی فعال نیاز دارد", + "User Avatar": "آواتار کاربر", + "User Skills": "مهارت‌های کاربر", + "User Terms": "شرایط کاربر", + "Uses built-in document parsing feature, supports common file types. Free usage, no compute points will be consumed.": "از تجزیه سند داخلی استفاده می‌کند و فرمت‌های رایج را پشتیبانی می‌کند. رایگان است و امتیاز محاسباتی مصرف نمی‌شود.", + "Using OAuth": "با OAuth", + "Verification Code": "کد تأیید", + "Verification failed": "تأیید ناموفق بود", + "Verify and Log in": "تأیید و ورود", + "Video files are not supported": "فایل‌های ویدیویی پشتیبانی نمی‌شوند", + "View": "مشاهده", + "View All Copilots": "مشاهده همه دستیارها", + "View Details": "مشاهده جزئیات", + "View License Details": "مشاهده جزئیات مجوز", + "View Message JSON": "مشاهده JSON پیام", + "View More Plans": "مشاهده طرح‌های بیشتر", + "View Session JSON": "مشاهده JSON نشست", + "Violence or dangerous content": "خشونت یا محتوای خطرناک", + "Vision": "بینایی", + "Vision capability is not enabled for Model {{model}}. Please enable it or set a default OCR model in Settings": "قابلیت بینایی برای مدل {{model}} فعال نیست. آن را فعال کنید یا مدل OCR پیش‌فرض را در تنظیمات تنظیم کنید", + "Vision Model (optional)": "مدل بینایی (اختیاری)", + "Vision Request": "درخواست بینایی", + "Vision, Drawing, File Understanding and more": "بینایی، نقاشی، درک فایل و بیشتر", + "Vivid": "زنده", + "Wait": "صبر", + "Waiting for authorization...": "در انتظار مجوز...", + "We're waiting for you to finish on chatboxai.app...": "منتظریم کار را در chatboxai.app تمام کنید...", + "We've been chatting for a while now. To conserve resources, please complete the setup before continuing our conversation.": "مدتی است گفتگو می‌کنیم. برای صرفه‌جویی در منابع، قبل از ادامه گفتگو راه‌اندازی را کامل کنید.", + "Web Search": "جستجوی وب", + "Webpage Published": "صفحه وب منتشر شد", + "WeChat": "WeChat", + "Welcome to Chatbox": "به Chatbox AI خوش آمدید", + "Welcome to Chatbox!": "به Chatbox خوش آمدید!", + "What can I help you with today?": "امروز چطور می‌توانم کمکتان کنم؟", + "What is an API? Where to get it? How to connect?": "API چیست؟ از کجا بگیرم؟ چطور وصل شوم؟", + "What is the relationship between Chatbox and other model providers?": "رابطه Chatbox با سایر ارائه‌دهندگان مدل چیست؟", + "When enabled, conversations will be automatically summarized to manage context window usage.": "وقتی فعال باشد، گفتگوها خودکار خلاصه می‌شوند تا مصرف پنجره زمینه مدیریت شود.", + "When OAuth Login is enabled, OpenAI requests use the Responses transport instead of the legacy Chat Completions transport.": "وقتی ورود OAuth فعال باشد، درخواست‌های OpenAI از Responses transport به‌جای Chat Completions قدیمی استفاده می‌کنند.", + "Where is the Knowledge Base feature?": "قابلیت پایگاه دانش کجاست؟", + "Word count": "تعداد کلمات", + "You can ": "می‌توانید ", + "You can attach up to {{limit}} files. The extra files were skipped.": "حداکثر {{limit}} فایل می‌توانید پیوست کنید. فایل‌های اضافی نادیده گرفته شدند.", + "You can attach up to {{limit}} images. The extra images were skipped.": "حداکثر {{limit}} تصویر می‌توانید پیوست کنید. تصاویر اضافی نادیده گرفته شدند.", + "You can change this setting later in Settings → ": "بعداً می‌توانید این تنظیم را در تنظیمات ← ", + "You have exceeded the rate limit for the Chatbox AI service. Please try again later.": "از حد مجاز نرخ سرویس Chatbox AI عبور کرده‌اید. لطفاً بعداً دوباره تلاش کنید.", + "You have multiple licenses. Please select one to use:": "چند مجوز دارید. یکی را برای استفاده انتخاب کنید:", + "You have no more Chatbox AI quota left this month.": "این ماه سهمیه Chatbox AI شما تمام شده است.", + "You have no more Chatbox AI quota left today.": "امروز سهمیه Chatbox AI شما تمام شده است.", + "You have reached your daily quota for the {{model}} model. Please go to Settings to switch to a different model, view your quota usage, or upgrade your plan.": "به سهمیه روزانه مدل {{model}} رسیده‌اید. به تنظیمات بروید تا مدل را عوض کنید، مصرف سهمیه را ببینید یا طرح را ارتقا دهید.", + "You have reached your monthly quota for the {{model}} model. Please go to Settings to switch to a different model, view your quota usage, or upgrade your plan.": "به سهمیه ماهانه مدل {{model}} رسیده‌اید. به تنظیمات بروید تا مدل را عوض کنید، مصرف سهمیه را ببینید یا طرح را ارتقا دهید.", + "You have selected BoCha as the search provider, but an API key has not been entered yet. Please click here to open Settings and enter your API key, or choose a different search provider.": "BoCha را به‌عنوان ارائه‌دهنده جستجو انتخاب کرده‌اید اما کلید API وارد نشده است. اینجا کلیک کنید تا تنظیمات باز شود و کلید API را وارد کنید، یا ارائه‌دهنده جستجوی دیگری انتخاب کنید.", + "You have selected Chatbox AI as the model provider, but a license key has not been entered yet. Please click here to open Settings and enter your license key, or choose a different model provider.": "Chatbox AI را به‌عنوان ارائه‌دهنده مدل انتخاب کرده‌اید اما کلید مجوز وارد نشده است. اینجا کلیک کنید تا تنظیمات باز شود و کلید مجوز را وارد کنید، یا ارائه‌دهنده دیگری انتخاب کنید.", + "You have selected Chatbox AI as the search provider, but a license key has not been entered yet. Please click here to open Settings and enter your license key, or choose a different search provider.": "Chatbox AI را به‌عنوان ارائه‌دهنده جستجو انتخاب کرده‌اید اما کلید مجوز وارد نشده است. اینجا کلیک کنید تا تنظیمات باز شود و کلید مجوز را وارد کنید، یا ارائه‌دهنده جستجوی دیگری انتخاب کنید.", + "You have selected Tavily as the search provider, but an API key has not been entered yet. Please click here to open Settings and enter your API key, or choose a different search provider.": "Tavily را به‌عنوان ارائه‌دهنده جستجو انتخاب کرده‌اید اما کلید API وارد نشده است. اینجا کلیک کنید تا تنظیمات باز شود و کلید API را وارد کنید، یا ارائه‌دهنده جستجوی دیگری انتخاب کنید.", + "You have unsaved changes. Exiting will discard these changes.": "تغییرات ذخیره‌نشده دارید. با خروج، این تغییرات از بین می‌روند.", + "You haven't completed the setup yet. Your progress will be cleared if you leave now.": "هنوز راه‌اندازی را کامل نکرده‌اید. اگر الان خارج شوید، پیشرفت شما پاک می‌شود.", + "You might also want to ask": "شاید بخواهید بپرسید", + "You're logged in! Claim your **free plan** below to unlock Chatbox AI features. If you have any questions, feel free to click the Help button in the bottom left corner anytime.": "وارد شدید! **طرح رایگان** را پایین دریافت کنید تا قابلیت‌های Chatbox AI باز شود. اگر سؤالی دارید، هر وقت خواستید دکمه راهنما را در گوشه پایین چپ بزنید.", + "You've already completed the setup and can use Chatbox normally.\n\nIf you have any questions about Chatbox AI, feel free to ask me here.": "راه‌اندازی را کامل کرده‌اید و می‌توانید معمولاً از Chatbox استفاده کنید.\n\nاگر درباره Chatbox AI سؤالی دارید، اینجا بپرسید.", + "Your Chatbox AI knowledge base requires an active login. Please sign in to Chatbox AI to use this knowledge base.": "پایگاه دانش Chatbox AI شما به ورود فعال نیاز دارد. برای استفاده از این پایگاه دانش به Chatbox AI وارد شوید.", + "Your conversation has exceeded the model's context limit. Try compressing the conversation, starting a new chat, or reducing the number of context messages in settings.": "گفتگوی شما از حد زمینه مدل گذشته است. گفتگو را فشرده کنید، گفتگوی جدید شروع کنید، یا تعداد پیام‌های زمینه را در تنظیمات کم کنید.", + "Your current License (Chatbox AI Free/Lite) does not support the {{model}} model. To use this model, please upgrade to Chatbox AI Pro or a higher-tier package. Alternatively, you can switch to a different model by accessing the settings.": "مجوز فعلی شما (Chatbox AI Free/Lite) مدل {{model}} را پشتیبانی نمی‌کند. برای این مدل ارتقا به Chatbox AI Pro یا بسته بالاتر دهید. یا با رفتن به تنظیمات مدل دیگری انتخاب کنید.", + "Your HTML content has been published. You can access it via the link below.": "محتوای HTML شما منتشر شد. از لینک پایین می‌توانید به آن دسترسی داشته باشید.", + "Your license has expired.": "مجوز شما منقضی شده است.", + "Your license has expired. Please check your subscription or purchase a new one.": "مجوز شما منقضی شده است. اشتراک را بررسی کنید یا مجوز جدید بخرید.", + "Your license has expired. You can continue using your expansion pack.": "مجوز شما منقضی شده است. می‌توانید از بسته توسعه خود استفاده کنید.", + "Your rating on the App Store would help make Chatbox even better!": "امتیاز شما در App Store به بهتر شدن Chatbox کمک می‌کند!" +} diff --git a/src/renderer/i18n/parser.ts b/src/renderer/i18n/parser.ts index a0e2babbbd..82ebbcda77 100644 --- a/src/renderer/i18n/parser.ts +++ b/src/renderer/i18n/parser.ts @@ -45,6 +45,9 @@ export function parseLocale(locale: string): Language { if (locale.startsWith('es')) { return 'es' } + if (locale.startsWith('fa')) { + return 'fa' + } if (locale.startsWith('ar')) { return 'ar' } diff --git a/src/renderer/i18n/rtl.ts b/src/renderer/i18n/rtl.ts new file mode 100644 index 0000000000..d0b1d62035 --- /dev/null +++ b/src/renderer/i18n/rtl.ts @@ -0,0 +1,7 @@ +import type { Language } from '@shared/types' + +const RTL_LANGUAGES: ReadonlySet = new Set(['ar', 'fa']) + +export function isRtlLanguage(language: Language): boolean { + return RTL_LANGUAGES.has(language) +} diff --git a/src/renderer/packages/openLinkWithAuth.ts b/src/renderer/packages/openLinkWithAuth.ts index 556f9f45cc..dca8689b91 100644 --- a/src/renderer/packages/openLinkWithAuth.ts +++ b/src/renderer/packages/openLinkWithAuth.ts @@ -19,6 +19,7 @@ const SUPPORTED_LOCALES = new Set([ 'es', 'it-IT', 'ar', + 'fa', 'nb-NO', 'sv', ]) diff --git a/src/renderer/packages/web-search/accept-language.ts b/src/renderer/packages/web-search/accept-language.ts index 350408e046..f6fb839932 100644 --- a/src/renderer/packages/web-search/accept-language.ts +++ b/src/renderer/packages/web-search/accept-language.ts @@ -13,6 +13,7 @@ const ACCEPT_LANGUAGE_BY_APP_LANGUAGE: Record = { 'pt-PT': 'pt-PT,pt;q=0.9,en;q=0.8', es: 'es-ES,es;q=0.9,en;q=0.8', ar: 'ar,ar-SA;q=0.9,en;q=0.8', + fa: 'fa-IR,fa;q=0.9,en;q=0.8', 'it-IT': 'it-IT,it;q=0.9,en;q=0.8', sv: 'sv-SE,sv;q=0.9,en;q=0.8', 'nb-NO': 'nb-NO,nb;q=0.9,no;q=0.8,en;q=0.7', diff --git a/src/renderer/routes/__root.tsx b/src/renderer/routes/__root.tsx index bb897b4424..29177bd401 100644 --- a/src/renderer/routes/__root.tsx +++ b/src/renderer/routes/__root.tsx @@ -65,6 +65,7 @@ import { initOnboardingStore, onboardingStore } from '@/stores/onboardingStore' import * as premiumActions from '@/stores/premiumActions' import * as settingActions from '@/stores/settingActions' import { initSettingsStore, settingsStore, useLanguage, useSettingsStore, useTheme } from '@/stores/settingsStore' +import { isRtlLanguage } from '@/i18n/rtl' import { getTaskSession } from '@/stores/taskSessionStore' import { useUIStore } from '@/stores/uiStore' import { CHATBOX_BUILD_CHANNEL, CHATBOX_BUILD_PLATFORM } from '@/variables' @@ -320,7 +321,7 @@ function Root() { }, [needRoomForMacWindowControls]) return ( - + {platform.type === 'desktop' && (getOS() === 'Windows' || getOS() === 'Linux') && } @@ -330,7 +331,7 @@ function Root() { sx={{ flexGrow: 1, ...(showSidebar - ? language === 'ar' + ? isRtlLanguage(language) ? { paddingRight: { sm: `${sidebarWidth}px` } } : { paddingLeft: { sm: `${sidebarWidth}px` } } : {}), diff --git a/src/shared/types.ts b/src/shared/types.ts index 4316a45ff8..de6ffc9637 100644 --- a/src/shared/types.ts +++ b/src/shared/types.ts @@ -49,6 +49,7 @@ export type Language = | 'pt-PT' | 'es' | 'ar' + | 'fa' | 'it-IT' | 'sv' | 'nb-NO' diff --git a/src/shared/types/settings.ts b/src/shared/types/settings.ts index 5b809c9973..930c9b5f9c 100644 --- a/src/shared/types/settings.ts +++ b/src/shared/types/settings.ts @@ -367,6 +367,7 @@ export const SettingsSchema = GlobalSessionSettingsSchema.extend({ 'pt-PT', 'es', 'ar', + 'fa', 'it-IT', 'sv', 'nb-NO',