Merge pull request #165 from asedmammad/feat/add-persian-i18n

Add Persian (Farsi) language
This commit is contained in:
Muhammed Nazeem 2024-08-06 21:01:41 +05:30 committed by GitHub
commit fa42f71821
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
13 changed files with 576 additions and 1 deletions

View File

@ -0,0 +1,13 @@
{
"heading": "تنظیمات AI کروم",
"status": {
"label": "فعال یا غیر فعال کردن پشتیبانی از AI کروم"
},
"error": {
"browser_not_supported": "این نسخه از کروم توسط مدل Gemini Nano پشتیبانی نمی شود. لطفا به نسخه ۱۲۷ یا بالاتر به روزرسانی کنید.",
"ai_not_supported": "تنظیم chrome://flags/#prompt-api-for-gemini-nano فعال نشده است. لطفا فعالش کنید..",
"ai_not_ready": "Gemini Nano هنوز آماده نیست; تنظیمات کروم را مجددا بررسی کنید.",
"internal_error": "یک خطای داخلی رخ داد. لطفا بعدا مجددا تلاش نمایید."
},
"errorDescription": "برای استفاده از AI کروم، به نسخه مرورگر بالاتر از ۱۲۷ احتیاج دارید که اکنون در کانال های Dev و Canary در دسترس است. بعد از دریافت نسخه پشتیبانی شده این گام ها را دنبال کنید: \n\n۱. به `chrome://flags/#prompt-api-for-gemini-nano` بروید و \"Enable\" را انتخاب کنید.\n۲. به `chrome://flags/#optimization-guide-on-device-model` بروید و \"EnabledBypassPrefRequirement\" را انتخاب کنید.\n۳. به `chrome://components` بروید و \"Optimization Guide On Device Model\" را جستجو کنید، بر روی \"Check for Update\" کلیک کنید. این کار مدل را دریافت خواهد کرد. اگر این تنظیمات را نمی بینید، گام های ۱ و ۲ را تکرار و مرورگر را مجددا اجرا کنید."
}

View File

@ -0,0 +1,88 @@
{
"pageAssist": "دستیار صفحه",
"selectAModel": "یک مدل انتخاب کنید",
"save": "ذخیره",
"saved": "ذخیره شد",
"cancel": "لغو",
"retry": "تلاش مجدد",
"share": {
"tooltip": {
"share": "اشتراک گذاری"
},
"modal": {
"title": "اشتراک گذاری لینک به گپ"
},
"form": {
"defaultValue": {
"name": "ناشناس",
"title": "گپ بی نام"
},
"title": {
"label": "عنوان گپ",
"placeholder": "عنوان گپ را وارد کنید",
"required": "وارد کردن عنوان چت الزامی است"
},
"name": {
"label": "نام شما",
"placeholder": "نام خود را وارد کنید",
"required": "وارد کردن نام الزامی است"
},
"btn": {
"save": "ایجاد لینک",
"saving": "در حال ایجاد لینک..."
}
},
"notification": {
"successGenerate": "پیوند در کلیپ بورد کپی شد",
"failGenerate": "پیوند ایجاد نشد"
}
},
"copyToClipboard": "کپی به کلیپ بورد",
"webSearch": "جستجوی وب",
"regenerate": "ایجاد مجدد",
"edit": "ویرایش",
"saveAndSubmit": "ذخیره و ارسال",
"editMessage": {
"placeholder": "یک پیام وارد کنید..."
},
"submit": "ارسال",
"noData": "اطلاعاتی وجود ندارد",
"noHistory": "تاریخچه گپ وجود ندارد",
"chatWithCurrentPage": "گپ زدن با این صفحه",
"beta": "بتا",
"tts": "بلند بخوان",
"currentChatModelSettings": "تنظیمات مدل گپ فعلی",
"modelSettings": {
"label": "تنظیمات مدل",
"description": "گزینه های مدل را به صورت کلی برای همه گپ ها تنظیم کنید",
"form": {
"keepAlive": {
"label": "Keep Alive",
"help": "کنترل می کند که چه مدت مدل پس از درخواست در حافظه باقی می ماند (پیش فرض: 5 دقیقه)",
"placeholder": "مدت زمان Keep Alive را وارد کنید (مثلا 5m, 10m, 1h)"
},
"temperature": {
"label": "Temperature",
"placeholder": "مقدار Temperature را وارد کنید (مثلا 0.7, 1.0)"
},
"numCtx": {
"label": "Number of Contexts",
"placeholder": "مقدار Number of Contexts را وارد کنید (پیش فرض: 2048)"
},
"seed": {
"label": "Seed",
"placeholder": "مقدار Seed را وارد کنید (e.g. 1234)",
"help": "تکرارپذیری خروجی مدل"
},
"topK": {
"label": "Top K",
"placeholder": "مقدار Top K را وارد کنید (مثلا 40, 100)"
},
"topP": {
"label": "Top P",
"placeholder": "مقدار Top P را وارد کنید (مثلا 0.9, 0.95)"
}
},
"advanced": "تنظیمات بیشتر مدل"
}
}

View File

@ -0,0 +1,43 @@
{
"addBtn": "افزودن دانش جدید",
"columns": {
"title": "عنوان",
"status": "وضعیت",
"embeddings": "مدل جاسازی",
"createdAt": "ایجاد شده در",
"action": "اقدامات"
},
"expandedColumns": {
"name": "نام"
},
"tooltip": {
"delete": "حذف"
},
"confirm": {
"delete": "آیا مطمئن هستید که می خواهید این دانش را حذف کنید؟"
},
"deleteSuccess": "دانش با موفقیت حذف شد",
"status": {
"pending": "انتظار",
"finished": "تمام",
"processing": "در حال پردازش",
"failed": "ناموفق"
},
"addKnowledge": "دانش را اضافه کنید",
"form": {
"title": {
"label": "عنوان دانش",
"placeholder": "عنوان دانش را وارد کنید",
"required": "وارد کردن عنوان دانش الزامی است"
},
"uploadFile": {
"label": "آپلود فایل",
"uploadText": "یک فایل را در اینجا بکشید و رها کنید یا برای آپلود کلیک کنید",
"uploadHint": "انواع فایل های پشتیبانی شده: .pdf, .csv, .txt, .md, .docx",
"required": "وارد کردن فایل مورد نیاز است"
},
"submit": "ارسال",
"success": "دانش با موفقیت اضافه شد"
},
"noEmbeddingModel": "لطفا ابتدا یک مدل جاسازی را از صفحه تنظیمات RAG اضافه کنید"
}

View File

@ -0,0 +1,12 @@
{
"newChat": "گپ جدید",
"selectAPrompt": "یک پرامپت را انتخاب کنید",
"githubRepository": "مخزن GitHub",
"settings": "تنظیمات",
"sidebarTitle": "تاریخچه گپ",
"error": "خطا",
"somethingWentWrong": "مشکلی پیش آمد",
"validationSelectModel": "لطفا یک مدل را برای ادامه انتخاب کنید",
"deleteHistoryConfirmation": "آیا مطمئن هستید که می خواهید این تاریخچه را حذف کنید؟",
"editHistoryTitle": "یک عنوان جدید وارد کنید"
}

View File

@ -0,0 +1,29 @@
{
"ollamaState": {
"searching": "در حال جستجوی Ollama شما 🦙",
"running": "Ollama در حال اجرا است 🦙",
"notRunning": "امکان اتصال به Ollama وجود ندارد 🦙",
"connectionError": "به نظر می رسد که خطای اتصال دارید. لطفا برای عیب یابی به این <anchor>مستندات</anchor> مراجعه کنید."
},
"formError": {
"noModel": "لطفا یک مدل را انتخاب کنید",
"noEmbeddingModel": "لطفا یک مدل جاسازی در صفحه تنظیمات > RAG تنظیم کنید"
},
"form": {
"textarea": {
"placeholder": "یک پیام تایپ کنید..."
},
"webSearch": {
"on": "روشن",
"off": "خاموش"
}
},
"tooltip": {
"searchInternet": "جستجوی اینترنت",
"speechToText": "گفتار به متن",
"uploadImage": "آپلود تصویر",
"stopStreaming": "توقف Streaming",
"knowledge": "دانش"
},
"sendWhenEnter": "با فشار دادن Enter ارسال شود"
}

View File

@ -0,0 +1,328 @@
{
"generalSettings": {
"title": "تنظیمات عمومی",
"settings": {
"heading": "تنظیمات رابط کاربری وب",
"speechRecognitionLang": {
"label": "زبان تشخیص گفتار",
"placeholder": "یک زبان را انتخاب کنید"
},
"language": {
"label": "زبان",
"placeholder": "یک زبان را انتخاب کنید"
},
"darkMode": {
"label": "تغییر تم",
"options": {
"light": "روشن",
"dark": "تیره"
}
},
"copilotResumeLastChat": {
"label": "آخرین گفتگو را هنگام باز کردن SidePanel (Copilot) از سر بگیر"
},
"hideCurrentChatModelSettings": {
"label": "مخفی کردن تنظیمات مدل گپ فعلی را"
},
"restoreLastChatModel": {
"label": "بازیابی آخرین مدل استفاده شده برای گپ‌های قبلی"
},
"sendNotificationAfterIndexing": {
"label": "ارسال نوتیفیکیشن پس از اتمام پردازش پایگاه دانش"
}
},
"sidepanelRag": {
"heading": "تنظیمات گپ Copilot با وب سایت",
"ragEnabled": {
"label": "چت با وب سایت با استفاده از بردارهای جاسازی"
},
"maxWebsiteContext": {
"label": "اندازه محتوای وب سایت حالت عادی",
"placeholder": "اندازه محتوا (پیش فرض 4028)"
}
},
"webSearch": {
"heading": "مدیریت جستجوی وب",
"searchMode": {
"label": "انجام جستجوی ساده اینترنتی"
},
"provider": {
"label": "موتور جستجو",
"placeholder": "یک موتور جستجو را انتخاب کنید"
},
"totalSearchResults": {
"label": "مجموع نتایج جستجو",
"placeholder": "کل نتایج جستجو را وارد کنید"
},
"visitSpecificWebsite": {
"label": "مراجعه به وب سایت ذکر شده در پیام"
}
},
"system": {
"heading": "تنظیمات سیستم",
"deleteChatHistory": {
"label": "حذف تاریخچه گفتگو",
"button": "حذف",
"confirm": "آیا مطمئن هستید که می خواهید تاریخچه گفتگوهای خود را حذف کنید؟ این عمل قابل برگشت نیست."
},
"export": {
"label": "تاریخچه گپ، پایگاه دانش و پرامپت‌ها را اکسپورت کنید",
"button": "اکسپورت داده‌ها",
"success": "موفقیت در اکسپورت"
},
"import": {
"label": "تاریخچه گپ، پایگاه دانش و پرامپت‌ها را ایمپورت کنید",
"button": "ایمپورت داده‌ها",
"success": "موفقیت در ایمپورت",
"error": "خطا در ایمپورت"
}
},
"tts": {
"heading": "تنظیمات تبدیل متن به گفتار",
"ttsEnabled": {
"label": "فعال کردن تبدیل متن به گفتار"
},
"ttsProvider": {
"label": "ارائه دهنده تبدیل متن به گفتار",
"placeholder": "یک ارائه دهنده را انتخاب کنید"
},
"ttsVoice": {
"label": "صدای تبدیل متن به گفتار",
"placeholder": "صدا را انتخاب کنید"
},
"ssmlEnabled": {
"label": "فعال کردن SSML (Speech Synthesis Markup Language)"
}
}
},
"manageModels": {
"title": "مدیریت مدل‌ها",
"addBtn": "افزودن مدل جدید",
"columns": {
"name": "نام",
"digest": "هضم",
"modifiedAt": "اصلاح شده در",
"size": "اندازه",
"actions": "اقدامات"
},
"expandedColumns": {
"parentModel": "مدل والد",
"format": "فرمت",
"family": "خانواده",
"parameterSize": "اندازه پارامترها",
"quantizationLevel": "سطح کوانتیزاسیون"
},
"tooltip": {
"delete": "حذف مدل",
"repull": "دریافت دوباره مدل"
},
"confirm": {
"delete": "آیا مطمئن هستید که می خواهید این مدل را حذف کنید؟",
"repull": "آیا مطمئن هستید که می خواهید این مدل را دوباره دریافت کنید؟"
},
"modal": {
"title": "افزودن مدل جدید",
"placeholder": "نام مدل را وارد کنید",
"pull": "دریافت مدل"
},
"notification": {
"pullModel": "در حال دریافت مدل",
"pullModelDescription": "در حال دریافت مدل {{modelName}}. برای جزئیات بیشتر، آیکون افزونه را بررسی کنید.",
"success": "موفقیت",
"error": "خطا",
"successDescription": "مدل با موفقیت دریافت شد",
"successDeleteDescription": "مدل با موفقیت حذف شد",
"someError": "مشکلی پیش آمد. لطفا بعدا دوباره امتحان کنید"
}
},
"managePrompts": {
"title": "مدیریت پرامپت‌ها",
"addBtn": "اضافه کردن پرامپت جدید",
"option1": "عادی",
"option2": "RAG",
"questionPrompt": "سوال پرامپت",
"columns": {
"title": "عنولن",
"prompt": "پرامپت",
"type": "نوع پرامپت",
"actions": "اقدامات"
},
"systemPrompt": "پرامپت سیستم ",
"quickPrompt": "پرامپت سریع",
"tooltip": {
"delete": "پاک کردن پرامپت",
"edit": "ویرایش پرامپت"
},
"confirm": {
"delete": "آیا مطمئن هستید که می خواهید این پرامپت را حذف کنید؟ این عمل قابل برگشت نیست."
},
"modal": {
"addTitle": "اضافه کردن پرامپت جدید",
"editTitle": "ویرایش پرامپت"
},
"form": {
"title": {
"label": "عنوان",
"placeholder": "پرامپت عالی من",
"required": "لطفا یک عنوان وارد کنید"
},
"prompt": {
"label": "پرامپت",
"placeholder": "پرامپت وارد کنید",
"required": "لطفا یک پرامپت وارد کنید",
"help": "می توانید از {key} به عنوان متغیر در درخواست خود استفاده کنید."
},
"isSystem": {
"label": "یک پرامپت سیستمی باشد"
},
"btnSave": {
"saving": "در حال اضافه کردن پرامپت...",
"save": "اضافه کردن پرامپت"
},
"btnEdit": {
"saving": "در حال به روزرسانی پرامپت...",
"save": "به روزرسانی پرامپت"
}
},
"notification": {
"addSuccess": "پرامپت اضافه شد",
"addSuccessDesc": "پرامپت با موفقیت اضافه شد",
"error": "خطا",
"someError": "مشکلی پیش آمد. لطفا بعدا دوباره امتحان کنید",
"updatedSuccess": "پرامپت به روز شد",
"updatedSuccessDesc": "پرامپت با موفقیت به روز شد",
"deletedSuccess": "پرامپت حذف شد",
"deletedSuccessDesc": "پرامپت با موفقیت حذف شد"
}
},
"manageShare": {
"title": "مدیریت اشتراک گذاری",
"heading": "پیکربندی URL اشتراک گذاری صفحه",
"form": {
"url": {
"label": "آدرس اشتراک گذاری صفحه",
"placeholder": "URL اشتراک گذاری صفحه را وارد کنید",
"required": "لطفا URL اشتراک گذاری صفحه خود را وارد کنید!",
"help": "به دلایل حفظ حریم خصوصی، می توانید اشتراک گذاری صفحه را خودتان میزبانی کنید و URL را در اینجا ارائه دهید. <anchor>بیشتر بدانید</anchor>."
}
},
"webshare": {
"heading": "اشتراک گذاری وب",
"columns": {
"title": "عنوان",
"url": "URL",
"actions": "اقدامات"
},
"tooltip": {
"delete": "حذف اشتراک گذاری"
},
"confirm": {
"delete": "آیا مطمئن هستید که می خواهید این اشتراک گذاری را حذف کنید؟ این عمل قابل برگشت نیست."
},
"label": "مدیریت اشتراک گذاری صفحه",
"description": "ویژگی اشتراک گذاری صفحه را فعال یا غیرفعال کنید"
},
"notification": {
"pageShareSuccess": "URL اشتراک گذاری صفحه با موفقیت به روز شد",
"someError": "مشکلی پیش آمد. لطفا بعدا دوباره امتحان کنید",
"webShareDeleteSuccess": "اشتراک گذاری وب با موفقیت حذف شد"
}
},
"ollamaSettings": {
"title": "تنظیمات Ollama",
"heading": "پیکربندی Ollama",
"settings": {
"ollamaUrl": {
"label": "آدرس Ollama",
"placeholder": "URL Ollama را وارد کنید"
},
"advanced": {
"label": "پیکربندی پیشرفته URL Ollama",
"urlRewriteEnabled": {
"label": "URL مبدا سفارشی را فعال یا غیرفعال کنید"
},
"rewriteUrl": {
"label": "URL مبدا سفارشی",
"placeholder": "URL مبدا سفارشی را وارد کنید"
},
"headers": {
"label": "هدرهای سفارشی",
"add": "افزودن هدر",
"key": {
"label": "کلید هدر",
"placeholder": "Authorization"
},
"value": {
"label": "مقدار هدر",
"placeholder": "Bearer token"
}
},
"help": "اگر با Ollama در Page Assist مشکل اتصال دارید، می توانید یک URL اصلی سفارشی پیکربندی کنید. برای کسب اطلاعات بیشتر در مورد پیکربندی، <anchor>اینجا را کلیک</anchor> کنید."
}
}
},
"manageSearch": {
"title": "مدیریت جستجوی وب",
"heading": "پیکربندی جستجوی وب"
},
"about": {
"title": "درباره",
"heading": "درباره",
"chromeVersion": "نسخه دستیار صفحه",
"ollamaVersion": "نسخه Ollama",
"support": "شما می توانید با کمک مالی یا حمایت مالی از طریق پلتفرم های زیر از پروژه Page Assist حمایت کنید:",
"koFi": "پشتیبانی در Ko-fi",
"githubSponsor": "حمایت مالی در GitHub",
"githubRepo": "مخزن GitHub"
},
"manageKnowledge": {
"title": "مدیریت دانش",
"heading": "پیکربندی پایگاه دانش"
},
"rag": {
"title": "تنظیمات RAG",
"ragSettings": {
"label": "تنظیمات RAG",
"model": {
"label": "مدل جاسازی",
"required": "لطفا یک مدل را انتخاب کنید",
"help": "به شدت توصیه می شود از مدل های جاسازی مانند `nomic-embed-text` استفاده کنید.",
"placeholder": "یک مدل را انتخاب کنید"
},
"chunkSize": {
"label": "اندازه تکه",
"placeholder": "اندازه تکه را وارد کنید",
"required": "لطفا اندازه تکه را وارد کنید"
},
"chunkOverlap": {
"label": "همپوشانی تکه",
"placeholder": "داخل تکه همپوشانی شوید",
"required": "لطفا یک همپوشانی تکه ای وارد کنید"
},
"totalFilePerKB": {
"label": "محدودیت فایل پیش فرض پایگاه دانش",
"placeholder": "محدودیت فایل پیش فرض را وارد کنید (به عنوان مثال، 10)",
"required": "لطفا محدودیت پیش فرض فایل را وارد کنید"
}
},
"prompt": {
"label": "پیکربندی پرامپت RAG",
"option1": "عادی",
"option2": "وب",
"alert": "پیکربندی اعلان سیستم در اینجا منسوخ شده است. لطفا از بخش مدیریت پرامپت‌ها برای افزودن یا ویرایش درخواست‌ها استفاده کنید. این بخش در نسخه بعدی حذف خواهد شد",
"systemPrompt": "پرامپت سیستم",
"systemPromptPlaceholder": "پرامپت سیستم را وارد کنید",
"webSearchPrompt": "پرامپت جستجوی وب",
"webSearchPromptHelp": "«{search_results}» را از پرامپت حذف نکنید.",
"webSearchPromptError": "لطفا یک پرامپت جستجوی وب وارد کنید",
"webSearchPromptPlaceholder": "پرامپت جستجوی وب را وارد کنید",
"webSearchFollowUpPrompt": "پرامپت پیگیری جستجوی وب",
"webSearchFollowUpPromptHelp": "«{chat_history}» و «{question}» را از پرامپت حذف نکنید.",
"webSearchFollowUpPromptError": "لطفا پرامپت پیگیری جستجوی وب خود را وارد کنید!",
"webSearchFollowUpPromptPlaceholder": "پرامپت پیگیری جستجوی وب شما"
}
},
"chromeAiSettings": {
"title": "تنظیمات هوش مصنوعی کروم"
}
}

View File

@ -0,0 +1,7 @@
{
"tooltip": {
"embed": "ممکن است چند دقیقه طول بکشد تا صفحه جاسازی شود. لطفاً منتظر بمانید...",
"clear": "پاک کردن تاریخچه گپ",
"history": "تاریخچه گپ"
}
}

View File

@ -1,5 +1,6 @@
import { QueryClient, QueryClientProvider } from "@tanstack/react-query"
import { MemoryRouter } from "react-router-dom"
import { useEffect } from "react"
const queryClient = new QueryClient()
import { ConfigProvider, Empty, theme } from "antd"
import { StyleProvider } from "@ant-design/cssinjs"
@ -12,6 +13,14 @@ import { PageAssistProvider } from "@/components/Common/PageAssistProvider"
function IndexOption() {
const { mode } = useDarkMode()
const { t, i18n } = useTranslation()
useEffect(() => {
if (i18n.resolvedLanguage) {
document.documentElement.lang = i18n.resolvedLanguage;
document.documentElement.dir = i18n.dir(i18n.resolvedLanguage);
}
}, [i18n, i18n.resolvedLanguage]);
return (
<MemoryRouter>
<ConfigProvider

View File

@ -1,5 +1,6 @@
import { QueryClient, QueryClientProvider } from "@tanstack/react-query"
import { MemoryRouter } from "react-router-dom"
import { useEffect } from "react"
import { SidepanelRouting } from "~/routes"
const queryClient = new QueryClient()
import { ConfigProvider, Empty, theme } from "antd"
@ -13,6 +14,13 @@ function IndexSidepanel() {
const { mode } = useDarkMode()
const { t, i18n } = useTranslation()
useEffect(() => {
if (i18n.resolvedLanguage) {
document.documentElement.lang = i18n.resolvedLanguage;
document.documentElement.dir = i18n.dir(i18n.resolvedLanguage);
}
}, [i18n, i18n.resolvedLanguage]);
return (
<MemoryRouter>
<ConfigProvider

View File

@ -9,6 +9,7 @@ import { zh } from "./lang/zh";
import { ja } from "./lang/ja";
import { it } from "./lang/it";
import { es } from "./lang/es";
import { fa } from "./lang/fa";
import LanguageDetector from 'i18next-browser-languagedetector';
i18n
@ -27,7 +28,9 @@ i18n
"ru-RU": ru,
zh: zh,
ja: ja,
"ja-JP": ja
"ja-JP": ja,
fa: fa,
"fa-IR": fa
},
fallbackLng: "en",
lng: localStorage.getItem("i18nextLng") || "en",

17
src/i18n/lang/fa.ts Normal file
View File

@ -0,0 +1,17 @@
import option from "@/assets/locale/fa/option.json"
import playground from "@/assets/locale/fa/playground.json"
import common from "@/assets/locale/fa/common.json"
import sidepanel from "@/assets/locale/fa/sidepanel.json"
import settings from "@/assets/locale/fa/settings.json"
import knowledge from "@/assets/locale/fa/knowledge.json"
import chrome from "@/assets/locale/fa/chrome.json"
export const fa = {
option,
playground,
common,
sidepanel,
settings,
knowledge,
chrome
}

View File

@ -35,5 +35,9 @@ export const supportLanguage = [
{
label: "日本語",
value: "ja-JP"
},
{
label: "فارسی",
value: "fa"
}
]

View File

@ -0,0 +1,14 @@
{
"extName": {
"message": "دستیار صفحه - یک رابط کاربری وب برای مدل های هوش مصنوعی لوکال"
},
"extDescription": {
"message": "از مدل های هوش مصنوعی لوکال خود برای دریافت کمک در هنگام مرور وب استفاده کنید."
},
"openSidePanelToChat": {
"message": "باز کردن کوپایلت برای گفتگو"
},
"openOptionToChat": {
"message": "باز کردن رابط کاربری وب برای گفتگو"
}
}